From 66cf5d3b47e14d45e68e8defd9ff17e02c342d0f Mon Sep 17 00:00:00 2001 From: alexlebens Date: Fri, 16 Aug 2024 16:53:26 -0500 Subject: [PATCH] convert coredns to standalone application --- .../stack/templates/application.yaml | 34 +++++++ clusters/cl01tl/standalone/coredns/Chart.yaml | 21 ++++ .../cl01tl/standalone/coredns/values.yaml | 98 +++++++++++++++++++ 3 files changed, 153 insertions(+) create mode 100644 clusters/cl01tl/standalone/coredns/Chart.yaml create mode 100644 clusters/cl01tl/standalone/coredns/values.yaml diff --git a/clusters/cl01tl/deployment/stack/templates/application.yaml b/clusters/cl01tl/deployment/stack/templates/application.yaml index ea6195040..ea98163a6 100644 --- a/clusters/cl01tl/deployment/stack/templates/application.yaml +++ b/clusters/cl01tl/deployment/stack/templates/application.yaml @@ -36,6 +36,40 @@ spec: - ServerSideApply=false - PruneLast=true +--- +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: coredns + namespace: {{ .Release.Namespace }} + finalizers: + - resources-finalizer.argocd.argoproj.io +spec: + project: default + source: + repoURL: {{ .Values.git.repo }} + targetRevision: {{ .Values.git.revision }} + path: clusters/{{ .Values.cluster.name }}/standalone/coredns + destination: + name: in-cluster + namespace: kube-system + revisionHistoryLimit: 10 + syncPolicy: + automated: + prune: true + selfHeal: false + retry: + limit: 10 + backoff: + duration: 1m + factor: 2 + maxDuration: 16m + syncOptions: + - CreateNamespace=false + - ApplyOutOfSyncOnly=true + - ServerSideApply=false + - PruneLast=true + --- apiVersion: argoproj.io/v1alpha1 kind: Application diff --git a/clusters/cl01tl/standalone/coredns/Chart.yaml b/clusters/cl01tl/standalone/coredns/Chart.yaml new file mode 100644 index 000000000..8f4a9ba00 --- /dev/null +++ b/clusters/cl01tl/standalone/coredns/Chart.yaml @@ -0,0 +1,21 @@ +apiVersion: v2 +name: coredns +version: 1.0.0 +description: CoreDNS +keywords: + - coredns + - dns + - network + - kubernetes +home: https://wiki.alexlebens.dev/doc/coredns-FsWQrBaL1W +sources: + - https://github.com/coredns/coredns + - https://github.com/coredns/helm +maintainers: + - name: alexlebens +dependencies: + - name: coredns + version: 1.32.0 + repository: https://coredns.github.io/helm +icon: https://raw.githubusercontent.com/walkxcode/dashboard-icons/main/png/coredns.png +appVersion: 1.11.3 diff --git a/clusters/cl01tl/standalone/coredns/values.yaml b/clusters/cl01tl/standalone/coredns/values.yaml new file mode 100644 index 000000000..9848fe86a --- /dev/null +++ b/clusters/cl01tl/standalone/coredns/values.yaml @@ -0,0 +1,98 @@ +coredns: + image: + repository: registry.k8s.io/coredns/coredns + tag: v1.11.3 + replicaCount: 2 + resources: + limits: + memory: 170Mi + requests: + cpu: 100m + memory: 70Mi + rollingUpdate: + maxUnavailable: 1 + maxSurge: 25% + terminationGracePeriodSeconds: 30 + serviceType: "ClusterIP" + prometheus: + service: + enabled: true + annotations: + prometheus.io/scrape: "true" + prometheus.io/port: "9153" + monitor: + enabled: true + namespace: kube-system + service: + ipFamilyPolicy: + IPv4 + name: kube-dns + selector: + k8s-app: kube-dns + serviceAccount: + create: true + name: coredns + rbac: + create: true + isClusterService: true + priorityClassName: system-cluster-critical + securityContext: + capabilities: + add: + - NET_BIND_SERVICE + drop: + - ALL + readOnlyRootFilesystem: true + allowPrivilegeEscalation: false + servers: + - zones: + - zone: . + port: 53 + plugins: + - name: errors + - name: health + configBlock: |- + lameduck 5s + - name: ready + - name: kubernetes + parameters: cluster.local in-addr.arpa ip6.arpa + configBlock: |- + pods insecure + fallthrough in-addr.arpa ip6.arpa + - name: prometheus + parameters: :9153 + - name: forward + parameters: . /etc/resolv.conf + - name: cache + parameters: 30 + - name: loop + - name: reload + - name: loadbalance + affinity: + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - weight: 100 + podAffinityTerm: + labelSelector: + matchExpressions: + - key: k8s-app + operator: In + values: + - kube-dns + topologyKey: kubernetes.io/hostname + nodeSelector: + kubernetes.io/os: linux + tolerations: + - key: node-role.kubernetes.io/control-plane + operator: Exists + effect: NoSchedule + - key: node.cloudprovider.kubernetes.io/uninitialized + operator: Exists + effect: NoSchedule + deployment: + skipConfig: false + enabled: true + name: coredns + selector: + matchLabels: + k8s-app: kube-dns