- Helm chart: Primary и Secondary Deployment, kube-vip LoadBalancer сервисы (UDP+TCP :53), ClusterIP для Web UI, PVC (ReadWriteOnce), Secret, Ingress - CronJob sync (*/5 мин): Python sync.py опрашивает Technitium REST API, создаёт Secondary зоны на secondary и вызывает forceSyncZone для каждой зоны - ExternalDNS (disabled по умолчанию): RFC 2136 DDNS для автоматических DNS-записей из Ingress - Ansible role: validate, namespace, Helm deploy, cleanup secrets, summary с Keenetic-инструкцией - Интеграция: Makefile, playbooks/addons.yml, group_vars/all/addons.yml, vault.yml.example - README с архитектурой, Keenetic-конфигурацией и troubleshooting
65 lines
2.0 KiB
YAML
65 lines
2.0 KiB
YAML
{{- if .Values.ingress.enabled }}
|
|
---
|
|
# Ingress for primary Web UI
|
|
apiVersion: networking.k8s.io/v1
|
|
kind: Ingress
|
|
metadata:
|
|
name: {{ include "technitium-dns.name" . }}-primary
|
|
namespace: {{ .Release.Namespace }}
|
|
labels:
|
|
{{- include "technitium-dns.labels" . | nindent 4 }}
|
|
app.kubernetes.io/component: primary
|
|
annotations:
|
|
kubernetes.io/ingress.class: {{ .Values.ingress.ingressClass | quote }}
|
|
spec:
|
|
{{- if .Values.ingress.tls.enabled }}
|
|
tls:
|
|
- hosts:
|
|
- {{ .Values.ingress.primary.host | quote }}
|
|
secretName: {{ .Values.ingress.tls.secretName | default (printf "%s-primary-tls" (include "technitium-dns.name" .)) | quote }}
|
|
{{- end }}
|
|
rules:
|
|
- host: {{ .Values.ingress.primary.host | quote }}
|
|
http:
|
|
paths:
|
|
- path: /
|
|
pathType: Prefix
|
|
backend:
|
|
service:
|
|
name: {{ include "technitium-dns.name" . }}-primary-web
|
|
port:
|
|
number: 5380
|
|
{{- if .Values.secondary.enabled }}
|
|
---
|
|
# Ingress for secondary Web UI
|
|
apiVersion: networking.k8s.io/v1
|
|
kind: Ingress
|
|
metadata:
|
|
name: {{ include "technitium-dns.name" . }}-secondary
|
|
namespace: {{ .Release.Namespace }}
|
|
labels:
|
|
{{- include "technitium-dns.labels" . | nindent 4 }}
|
|
app.kubernetes.io/component: secondary
|
|
annotations:
|
|
kubernetes.io/ingress.class: {{ .Values.ingress.ingressClass | quote }}
|
|
spec:
|
|
{{- if .Values.ingress.tls.enabled }}
|
|
tls:
|
|
- hosts:
|
|
- {{ .Values.ingress.secondary.host | quote }}
|
|
secretName: {{ .Values.ingress.tls.secretName | default (printf "%s-secondary-tls" (include "technitium-dns.name" .)) | quote }}
|
|
{{- end }}
|
|
rules:
|
|
- host: {{ .Values.ingress.secondary.host | quote }}
|
|
http:
|
|
paths:
|
|
- path: /
|
|
pathType: Prefix
|
|
backend:
|
|
service:
|
|
name: {{ include "technitium-dns.name" . }}-secondary-web
|
|
port:
|
|
number: 5380
|
|
{{- end }}
|
|
{{- end }}
|