From 35999b45b7860ebf62b62647c9388c1e749c8da5 Mon Sep 17 00:00:00 2001 From: Haim Kortovich Date: Tue, 31 Dec 2024 16:44:00 -0500 Subject: [PATCH] add domain instead of trusted domain [ZITADOPER-7] --- .../controller/zitadelcluster_controller.go | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/internal/controller/zitadelcluster_controller.go b/src/internal/controller/zitadelcluster_controller.go index 141d009..1cec4b6 100644 --- a/src/internal/controller/zitadelcluster_controller.go +++ b/src/internal/controller/zitadelcluster_controller.go @@ -510,18 +510,32 @@ func (r *ZitadelClusterReconciler) reconcileDefaultInstance(ctx context.Context, } func (r *ZitadelClusterReconciler) reconcileSMTPConfig(ctx context.Context, zitadel *zitadelv1alpha1.ZitadelCluster) (ctrl.Result, error) { - adminClient, err := zitadelClient.NewAdminClient(ctx, zitadel, *r.RefResolver) + privateKeyData, err := r.RefResolver.SecretKeyRef(ctx, corev1.SecretKeySelector{LocalObjectReference: corev1.LocalObjectReference{Name: systemapiaccount.SystemAPIAccountName(zitadel)}, Key: systemapiaccount.Key}, zitadel.Namespace) if err != nil { return ctrl.Result{}, err } - _, err = adminClient.AddInstanceTrustedDomain(ctx, &adm.AddInstanceTrustedDomainRequest{ - Domain: strings.Split(zitadel.Spec.SMTPConfig.SenderAddress, "@")[1], + ztdClient, err := system.NewClient(ctx, GetIssuer(zitadel), GetAPI(zitadel), system.JWTProfileFromKey([]byte(privateKeyData), masterkey.OwnerName), system.WithInsecure()) + if err != nil { + return ctrl.Result{}, fmt.Errorf("Error creating sytem client: %v", err) + } + defer ztdClient.Connection.Close() + + _, err = ztdClient.AddDomain(ctx, &pb.AddDomainRequest{ + Domain: strings.Split(zitadel.Spec.SMTPConfig.SenderAddress, "@")[1], + InstanceId: zitadel.Status.DefaultInstanceId, }) if err != nil { if !strings.Contains(err.Error(), "AlreadyExists") { return ctrl.Result{}, fmt.Errorf("Could add smtp trusted domain: %v", err) } } + + adminClient, err := zitadelClient.NewAdminClient(ctx, zitadel, *r.RefResolver) + if err != nil { + return ctrl.Result{}, err + } + defer adminClient.Connection.Close() + resp, err := adminClient.GetEmailProvider(ctx, &adm.GetEmailProviderRequest{}) if err != nil { if strings.Contains(err.Error(), "not found") {