65 lines
1.9 KiB
Smarty
65 lines
1.9 KiB
Smarty
{{/*
|
|
Create the matchable regex from domain
|
|
*/}}
|
|
{{- define "k8s-gateway.configmap.regex" -}}
|
|
{{- if .Values.domain }}
|
|
{{- .Values.domain | replace "." "[.]" -}}
|
|
{{- else -}}
|
|
{{ "unset" }}
|
|
{{- end }}
|
|
{{- end -}}
|
|
|
|
{{/* Define the configmap */}}
|
|
{{- define "k8s-gateway.configmap" -}}
|
|
{{- $values := .Values }}
|
|
{{- $fqdn := ( include "tc.common.names.fqdn" . ) }}
|
|
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: {{ include "tc.common.names.fullname" . }}-corefile
|
|
labels:
|
|
{{- include "tc.common.labels" . | nindent 4 }}
|
|
data:
|
|
Corefile: |-
|
|
.:53 {
|
|
errors
|
|
log
|
|
health {
|
|
lameduck 5s
|
|
}
|
|
ready
|
|
{{- range .Values.domains }}
|
|
{{- if .dnsChallenge.enabled }}
|
|
template IN ANY {{ required "Delegated domain ('domain') is mandatory " .domain }} {
|
|
match "_acme-challenge[.](.*)[.]{{ include "k8s-gateway.configmap.regex" . }}"
|
|
answer "{{ "{{" }} .Name {{ "}}" }} 5 IN CNAME {{ "{{" }} index .Match 1 {{ "}}" }}.{{ required "DNS01 challenge domain is mandatory " $values.dnsChallenge.domain }}"
|
|
fallthrough
|
|
}
|
|
{{- end }}
|
|
k8s_gateway "{{ required "Delegated domain ('domain') is mandatory " .domain }}" {
|
|
apex {{ $values.apex | default $fqdn }}
|
|
ttl {{ $values.ttl }}
|
|
{{- if $values.secondary }}
|
|
secondary {{ $values.secondary }}
|
|
{{- end }}
|
|
{{- if $values.watchedResources }}
|
|
resources {{ join " " $values.watchedResources }}
|
|
{{- end }}
|
|
fallthrough
|
|
}
|
|
{{- end }}
|
|
prometheus 0.0.0.0:9153
|
|
{{- if .Values.forward.enabled }}
|
|
forward . {{ .Values.forward.primary }} {{ .Values.forward.secondary }} {
|
|
{{- range .Values.forward.options }}
|
|
{{ .name }} {{ .value }}
|
|
{{- end }}
|
|
}
|
|
{{- end }}
|
|
loop
|
|
reload
|
|
loadbalance
|
|
}
|
|
{{- end -}}
|