diff --git a/roles/kubernetes-apps/ansible/defaults/main.yml b/roles/kubernetes-apps/ansible/defaults/main.yml
index 4e8b23356bd289e8b91f00bc13dc0b5bb92126f7..fb26bd3eb3ad41829618b6694bcd50c131ec87b2 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 004ce0643d1bb36248d524905be5feb11f0b8a58..acab26628c82a822554abb548bf9d1013b59cc17 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 d2123937f6530e16e60902170d5ab073eb150c56..466e4463bed54f5e76192c074f79752a1ecd0139 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 0e051c34678dcf36c3eaee36dd816d2a41ab77d1..961e02a6aada995a76adc01eee833253f89a6e07 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