func()

in argocd-clusterprofile-syncer/cmd/main.go [140:164]


func (r *ClusterProfileReconciler) createOrUpdateClusterSecret(ctx context.Context, cp *clusterinventoryv1alpha1.ClusterProfile) error {
	logger := log.FromContext(ctx)

	serverURL, ok := cp.Annotations[gkeEndpointAnnotation]
	if !ok {
		return fmt.Errorf("cluster endpoint annotation %q not found", gkeEndpointAnnotation)
	}

	secretName := fmt.Sprintf("%s.%s", cp.Namespace, cp.Name)
	secret := &corev1.Secret{
		ObjectMeta: metav1.ObjectMeta{
			Name:      secretName,
			Namespace: argoCDNamespace,
		},
	}

	logger.Info("Reconciling secret", "name", secretName)
	if _, err := controllerutil.CreateOrUpdate(ctx, r.Client, secret, func() error {
		return r.mutateSecret(secret, cp, serverURL, secretName)
	}); err != nil {
		return fmt.Errorf("failed to create/update secret: %w", err)
	}

	return nil
}