func()

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...)
}