func CreateDeleteChain()

in controllers/stage/chain/factory.go [65:94]


func CreateDeleteChain(ctx context.Context, c client.Client, stage *cdPipeApi.Stage) (handler.CdStageHandler, error) {
	log := ctrl.LoggerFrom(ctx)
	ch := &chain{}

	ch.Use(
		DeleteEnvironmentLabelFromCodebaseImageStreams{
			client: c,
		},
		RemoveApplicationSetGenerators{
			applicationSetManager: argocd.NewArgoApplicationSetManager(c),
		},
	)

	multiClusterCl, err := multiclusterclient.NewClientProvider(c).GetClusterClient(ctx, stage.Namespace, stage.Spec.ClusterName, client.Options{})
	if err != nil {
		log.Error(err, "Failed to get cluster internalClient. Skipping namespace deletion.")
		return ch, nil
	}

	ch.Use(
		DelegateNamespaceDeletion{
			multiClusterClient: multiClusterCl,
		},
		DeleteRegistryViewerRbac{
			multiClusterCl: multiClusterCl,
		},
	)

	return ch, nil
}