Files
homelab/cluster/cert-manager/templates/clusterissuers.yaml
2025-05-14 11:30:03 -05:00

70 lines
1.7 KiB
YAML

{{- 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 }}