{{- define "le.solvers" -}} {{- range $solver := .Values.le.solvers -}} {{- if eq $solver.type "dns" -}} - dns01: {{- toYaml $solver.dnsConfig | nindent 4 }} {{- with $solver.dnsZones }} selector: dnsZones: {{- toYaml . | nindent 4 }} {{- end }} {{- else if eq $solver.type "http" }} - http01: ingress: ingressClassName: {{ $solver.ingressClassName }} {{- end }} {{- end }} {{- end }} {{- if .Values.ca.enabled }} --- apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: name: ca-issuer annotations: argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true spec: ca: secretName: cert-manager-ca {{- end }} {{- if .Values.le.prod.enabled }} --- apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: name: letsencrypt-prod annotations: argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true spec: acme: email: {{ .Values.le.email }} {{- with .Values.le.preferredChain }} preferredChain: {{ toYaml . }} {{- end }} privateKeySecretRef: name: letsencrypt-prod server: {{ .Values.le.prod.server }} solvers: {{- include "le.solvers" . | nindent 4 }} {{- end }} {{- if .Values.le.staging.enabled }} --- apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: name: letsencrypt-staging annotations: argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true spec: acme: email: {{ .Values.le.email }} {{- with .Values.le.preferredChain }} preferredChain: {{ toYaml . }} {{- end }} privateKeySecretRef: name: letsencrypt-staging server: {{ .Values.le.staging.server }} solvers: {{- include "le.solvers" . | nindent 4 }} {{- end }}