in internal/deployers/eksapi/janitor.go [51:78]
func (j *janitor) Sweep(ctx context.Context) error {
awsConfig := awssdk.NewConfig()
cfnClient := cloudformation.NewFromConfig(awsConfig)
stacks, err := j.getStacks(ctx, cfnClient)
if err != nil {
return fmt.Errorf("failed to get stacks: %v", err)
}
var wg sync.WaitGroup
stackQueue := make(chan cloudformationtypes.Stack, len(stacks))
errChan := make(chan error, len(stacks))
for i := 1; i <= j.workers; i++ {
wg.Add(1)
go j.sweepWorker(&wg, stackQueue, errChan)
}
for _, stack := range stacks {
stackQueue <- stack
}
close(stackQueue)
wg.Wait()
close(errChan)
var errs []error
for err := range errChan {
errs = append(errs, err)
}
return errors.Join(errs...)
}