Files
K3S/addons/technitium-dns/role/chart/templates/pvc.yaml
Sergey Antropoff f3dfe87d03 feat: добавить аддон technitium-dns — HA DNS Primary+Secondary с kube-vip LB и zone sync
- 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
2026-04-26 17:58:28 +03:00

41 lines
1.1 KiB
YAML

---
# PVC for primary instance
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: {{ include "technitium-dns.name" . }}-primary
namespace: {{ .Release.Namespace }}
labels:
{{- include "technitium-dns.labels" . | nindent 4 }}
app.kubernetes.io/component: primary
spec:
accessModes:
- {{ .Values.storage.accessMode }}
{{- if .Values.storage.storageClassName }}
storageClassName: {{ .Values.storage.storageClassName | quote }}
{{- end }}
resources:
requests:
storage: {{ .Values.storage.size }}
{{- if .Values.secondary.enabled }}
---
# PVC for secondary instance
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: {{ include "technitium-dns.name" . }}-secondary
namespace: {{ .Release.Namespace }}
labels:
{{- include "technitium-dns.labels" . | nindent 4 }}
app.kubernetes.io/component: secondary
spec:
accessModes:
- {{ .Values.storage.accessMode }}
{{- if .Values.storage.storageClassName }}
storageClassName: {{ .Values.storage.storageClassName | quote }}
{{- end }}
resources:
requests:
storage: {{ .Values.storage.size }}
{{- end }}