From 2a08898a23e77e1eb10c01bffa0ba7d9b4849b9d Mon Sep 17 00:00:00 2001 From: Ultradesu Date: Wed, 14 Oct 2026 13:57:36 +0100 Subject: [PATCH] Configure three CoreDNS replicas on core nodes --- k8s-ng/core-state/templates/applications.yaml | 3 +++ k8s-ng/core-state/values.yaml | 5 +++++ k8s-ng/core/coredns-config/deployment.yaml | 22 +++++++++++++++++++ k8s-ng/core/coredns-config/kustomization.yaml | 5 +++++ 4 files changed, 35 insertions(+) create mode 100644 k8s-ng/core/coredns-config/deployment.yaml create mode 100644 k8s-ng/core/coredns-config/kustomization.yaml diff --git a/k8s-ng/core-state/templates/applications.yaml b/k8s-ng/core-state/templates/applications.yaml index 8438561..85df577 100644 --- a/k8s-ng/core-state/templates/applications.yaml +++ b/k8s-ng/core-state/templates/applications.yaml @@ -23,6 +23,9 @@ spec: syncOptions: - CreateNamespace=true - ServerSideApply=true + {{- if and (hasKey . "validate") (not .validate) }} + - Validate=false + {{- end }} {{- if .skipDryRunOnMissingResource }} - SkipDryRunOnMissingResource=true {{- end }} diff --git a/k8s-ng/core-state/values.yaml b/k8s-ng/core-state/values.yaml index 36b4e50..027c327 100644 --- a/k8s-ng/core-state/values.yaml +++ b/k8s-ng/core-state/values.yaml @@ -24,6 +24,11 @@ apps: path: k8s-ng/core/traefik-config namespace: kube-system wave: 1 + - name: coredns-config + path: k8s-ng/core/coredns-config + namespace: kube-system + wave: 1 + validate: false # partial Deployment: only the fields we manage - name: reloader path: k8s-ng/core/reloader namespace: reloader diff --git a/k8s-ng/core/coredns-config/deployment.yaml b/k8s-ng/core/coredns-config/deployment.yaml new file mode 100644 index 0000000..ee708cc --- /dev/null +++ b/k8s-ng/core/coredns-config/deployment.yaml @@ -0,0 +1,22 @@ +# K3s owns the CoreDNS Deployment. Apply only the fields customized here so +# upstream image, probes, Corefile mounts and topology spread stay intact. +apiVersion: apps/v1 +kind: Deployment +metadata: + name: coredns + namespace: kube-system + annotations: + argocd.argoproj.io/sync-options: Prune=false,Delete=false +spec: + replicas: 3 + template: + spec: + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: homelab.hexor.cy/pool + operator: In + values: + - core diff --git a/k8s-ng/core/coredns-config/kustomization.yaml b/k8s-ng/core/coredns-config/kustomization.yaml new file mode 100644 index 0000000..88a04b5 --- /dev/null +++ b/k8s-ng/core/coredns-config/kustomization.yaml @@ -0,0 +1,5 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: + - deployment.yaml