From bc5b38a77127de126bd35175862414367102e1bf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=88=98=E6=97=AD?= <liuxu623@gmail.com>
Date: Fri, 17 Nov 2023 21:41:53 +0800
Subject: [PATCH] support CoreDNS use host network and config dns port (#10617)

---
 roles/kubernetes-apps/ansible/defaults/main.yml              | 2 ++
 .../kubernetes-apps/ansible/templates/coredns-config.yml.j2  | 2 +-
 .../ansible/templates/coredns-deployment.yml.j2              | 5 +++--
 roles/kubernetes-apps/ansible/templates/coredns-svc.yml.j2   | 2 ++
 4 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/roles/kubernetes-apps/ansible/defaults/main.yml b/roles/kubernetes-apps/ansible/defaults/main.yml
index 4e8b23356..fb26bd3eb 100644
--- a/roles/kubernetes-apps/ansible/defaults/main.yml
+++ b/roles/kubernetes-apps/ansible/defaults/main.yml
@@ -16,6 +16,8 @@ coredns_ordinal_suffix: ""
 coredns_deployment_nodeselector: "kubernetes.io/os: linux"
 coredns_default_zone_cache_block: |
   cache 30
+coredns_host_network: false
+coredns_port: 53
 # coredns_additional_configs adds any extra configuration to coredns
 # coredns_additional_configs: |
 #   whoami
diff --git a/roles/kubernetes-apps/ansible/templates/coredns-config.yml.j2 b/roles/kubernetes-apps/ansible/templates/coredns-config.yml.j2
index 004ce0643..acab26628 100644
--- a/roles/kubernetes-apps/ansible/templates/coredns-config.yml.j2
+++ b/roles/kubernetes-apps/ansible/templates/coredns-config.yml.j2
@@ -34,7 +34,7 @@ data:
     }
 {%   endfor %}
 {% endif %}
-    .:53 {
+    .:{{ coredns_port }} {
 {% if coredns_additional_configs is defined %}
         {{ coredns_additional_configs | indent(width=8, first=False) }}
 {% endif %}
diff --git a/roles/kubernetes-apps/ansible/templates/coredns-deployment.yml.j2 b/roles/kubernetes-apps/ansible/templates/coredns-deployment.yml.j2
index d2123937f..466e4463b 100644
--- a/roles/kubernetes-apps/ansible/templates/coredns-deployment.yml.j2
+++ b/roles/kubernetes-apps/ansible/templates/coredns-deployment.yml.j2
@@ -24,6 +24,7 @@ spec:
       annotations:
         createdby: 'kubespray'
     spec:
+      hostNetwork: {{ coredns_host_network | default(false) }}
       securityContext:
         seccompProfile:
           type: RuntimeDefault
@@ -75,10 +76,10 @@ spec:
         - name: config-volume
           mountPath: /etc/coredns
         ports:
-        - containerPort: 53
+        - containerPort: {{ coredns_port }}
           name: dns
           protocol: UDP
-        - containerPort: 53
+        - containerPort: {{ coredns_port }}
           name: dns-tcp
           protocol: TCP
         - containerPort: 9153
diff --git a/roles/kubernetes-apps/ansible/templates/coredns-svc.yml.j2 b/roles/kubernetes-apps/ansible/templates/coredns-svc.yml.j2
index 0e051c346..961e02a6a 100644
--- a/roles/kubernetes-apps/ansible/templates/coredns-svc.yml.j2
+++ b/roles/kubernetes-apps/ansible/templates/coredns-svc.yml.j2
@@ -20,9 +20,11 @@ spec:
     - name: dns
       port: 53
       protocol: UDP
+      targetPort: "dns"
     - name: dns-tcp
       port: 53
       protocol: TCP
+      targetPort: "dns-tcp"
     - name: metrics
       port: 9153
       protocol: TCP
-- 
GitLab