From c2e5e8292342d12e16ff1dfd63f862151789dfde Mon Sep 17 00:00:00 2001 From: Pavan Date: Tue, 29 Aug 2023 13:37:35 +0200 Subject: [PATCH] [Misc] Operator: Duplicate DNSNames handled There seems to be cases when mulitple apps use the same secondary domain. Don't add multiple DNSNames to the certificate in such cases. Change-Id: Ieefb04d66b54f2ad23c6ae940f11fcbfe72dad26 --- internal/controller/reconcile-domains.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/internal/controller/reconcile-domains.go b/internal/controller/reconcile-domains.go index b90d847..4ca5b11 100644 --- a/internal/controller/reconcile-domains.go +++ b/internal/controller/reconcile-domains.go @@ -17,6 +17,7 @@ import ( certv1alpha1 "github.com/gardener/cert-management/pkg/apis/cert/v1alpha1" dnsv1alpha1 "github.com/gardener/external-dns-management/pkg/apis/dns/v1alpha1" "github.com/sap/cap-operator/pkg/apis/sme.sap.com/v1alpha1" + "golang.org/x/exp/slices" "google.golang.org/protobuf/types/known/durationpb" networkingv1beta1 "istio.io/api/networking/v1beta1" istionwv1beta1 "istio.io/client-go/pkg/apis/networking/v1beta1" @@ -1259,7 +1260,10 @@ func (c *Controller) cleanUpOperatorDomains(ctx context.Context, relevantDomainI func getCertificateDNSNames(relevantDomainInfo *operatorDomainInfo) []string { dnsNames := []string{} for _, domain := range relevantDomainInfo.Domains { - dnsNames = append(dnsNames, "*."+domain) + // Don't add duplicate DNSNames when multiple apps provide same secondary domain! + if !slices.ContainsFunc(dnsNames, func(dnsName string) bool { return dnsName == "*."+domain }) { + dnsNames = append(dnsNames, "*."+domain) + } } return dnsNames }