func()

in controllers/stage/chain/configure_secret_manager.go [108:141]


func (h ConfigureSecretManager) configureOwn(ctx context.Context, stage *cdPipeApi.Stage) error {
	logger := ctrl.LoggerFrom(ctx)

	logger.Info("Configuring own secrets management")

	recred := &corev1.Secret{}
	if err := h.internalClient.Get(ctx, client.ObjectKey{
		Namespace: stage.Namespace,
		Name:      externalSecretName,
	}, recred); err != nil {
		return fmt.Errorf("failed to get %s secret: %w", externalSecretName, err)
	}

	externalRecred := &corev1.Secret{
		ObjectMeta: metaV1.ObjectMeta{
			Name:      externalSecretName,
			Namespace: stage.Spec.Namespace,
		},
		Type: recred.Type,
		Data: recred.Data,
	}

	if err := h.multiClusterClient.Create(ctx, externalRecred); err != nil {
		if !k8sErrors.IsAlreadyExists(err) {
			return fmt.Errorf("failed to create %s secret: %w", externalSecretName, err)
		}

		logger.Info(fmt.Sprintf("Secret %s already exists", externalSecretName))
	}

	logger.Info("Own secrets management has been configured successfully")

	return nil
}