diff --git a/hosting/k8s/helm/templates/_helpers.tpl b/hosting/k8s/helm/templates/_helpers.tpl index 26d3bd1bf..74ce765cb 100644 --- a/hosting/k8s/helm/templates/_helpers.tpl +++ b/hosting/k8s/helm/templates/_helpers.tpl @@ -234,3 +234,21 @@ Generate docker config for image pull secret {{- end }} {{- end }} +{{/* +Merge ingress annotations to avoid duplicates +*/}} +{{- define "trigger-v4.ingress.annotations" -}} +{{- $annotations := dict -}} +{{- if .Values.ingress.annotations -}} +{{- $annotations = .Values.ingress.annotations -}} +{{- end -}} +{{- if .Values.ingress.certManager.enabled -}} +{{- $_ := set $annotations "cert-manager.io/cluster-issuer" .Values.ingress.certManager.clusterIssuer -}} +{{- end -}} +{{- if .Values.ingress.externalDns.enabled -}} +{{- $_ := set $annotations "external-dns.alpha.kubernetes.io/hostname" .Values.ingress.externalDns.hostname -}} +{{- $_ := set $annotations "external-dns.alpha.kubernetes.io/ttl" (.Values.ingress.externalDns.ttl | toString) -}} +{{- end -}} +{{- toYaml $annotations -}} +{{- end }} + diff --git a/hosting/k8s/helm/templates/ingress.yaml b/hosting/k8s/helm/templates/ingress.yaml index 8227f15ad..ba9640b9f 100644 --- a/hosting/k8s/helm/templates/ingress.yaml +++ b/hosting/k8s/helm/templates/ingress.yaml @@ -8,16 +8,7 @@ metadata: labels: {{- include "trigger-v4.labels" . | nindent 4 }} annotations: - {{- with .Values.ingress.annotations }} - {{- toYaml . | nindent 4 }} - {{- end }} - {{- if .Values.ingress.certManager.enabled }} - cert-manager.io/cluster-issuer: {{ .Values.ingress.certManager.clusterIssuer | quote }} - {{- end }} - {{- if .Values.ingress.externalDns.enabled }} - external-dns.alpha.kubernetes.io/hostname: {{ .Values.ingress.externalDns.hostname | quote }} - external-dns.alpha.kubernetes.io/ttl: {{ .Values.ingress.externalDns.ttl | quote }} - {{- end }} + {{- include "trigger-v4.ingress.annotations" . | nindent 4 }} spec: {{- if .Values.ingress.className }} ingressClassName: {{ .Values.ingress.className }} diff --git a/hosting/k8s/helm/values.yaml b/hosting/k8s/helm/values.yaml index b9ca9f495..8a62c4b7d 100644 --- a/hosting/k8s/helm/values.yaml +++ b/hosting/k8s/helm/values.yaml @@ -548,6 +548,11 @@ persistence: ingress: enabled: false className: "traefik" + # Custom annotations for the ingress resource + # Note: The following annotation keys are reserved and will be automatically set: + # - cert-manager.io/cluster-issuer (when certManager.enabled is true) + # - external-dns.alpha.kubernetes.io/hostname (when externalDns.enabled is true) + # - external-dns.alpha.kubernetes.io/ttl (when externalDns.enabled is true) annotations: {} certManager: enabled: false