From 7a72e567d5cd7aefd8e48b9522bac15f1245ffd6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20Kr=C3=BCger?= <ak@patientsky.com>
Date: Thu, 4 Apr 2019 09:40:50 +0200
Subject: [PATCH] Update CoreDNS to 1.4.0 (#4422)

* Update CoreDNS to 1.4.0

* Update readme to reflect CoreDNS update
---
 README.md                                                | 6 +++---
 roles/download/defaults/main.yml                         | 2 +-
 .../ansible/templates/coredns-config.yml.j2              | 4 ++--
 .../ansible/templates/coredns-deployment.yml.j2          | 9 +++++++++
 4 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/README.md b/README.md
index 6559d0307..f20c14f25 100644
--- a/README.md
+++ b/README.md
@@ -129,7 +129,7 @@ Supported Components
 -   Application
     -   [cephfs-provisioner](https://github.com/kubernetes-incubator/external-storage) v2.1.0-k8s1.11
     -   [cert-manager](https://github.com/jetstack/cert-manager) v0.5.2
-    -   [coredns](https://github.com/coredns/coredns) v1.2.6
+    -   [coredns](https://github.com/coredns/coredns) v1.4.0
     -   [ingress-nginx](https://github.com/kubernetes/ingress-nginx) v0.21.0
 
 Note: The list of validated [docker versions](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.13.md) was updated to 1.11.1, 1.12.1, 1.13.1, 17.03, 17.06, 17.09, 18.06. kubeadm now properly recognizes Docker 18.09.0 and newer, but still treats 18.06 as the default supported version. The kubelet might break on docker's non-standard version numbering (it no longer uses semantic versioning). To ensure auto-updates don't break your cluster look into e.g. yum versionlock plugin or apt pin).
@@ -155,9 +155,9 @@ Requirements
     or command parameters `--become or -b` should be specified.
 
 Hardware:        
-These limits are safe guarded by Kubespray. Actual requirements for your workload can differ. For a sizing guide go to the [Building Large Clusters](https://kubernetes.io/docs/setup/cluster-large/#size-of-master-and-master-components) guide. 
+These limits are safe guarded by Kubespray. Actual requirements for your workload can differ. For a sizing guide go to the [Building Large Clusters](https://kubernetes.io/docs/setup/cluster-large/#size-of-master-and-master-components) guide.
 
--   Master 
+-   Master
     - Memory: 1500 MB
 -   Node
     - Memory: 1024 MB
diff --git a/roles/download/defaults/main.yml b/roles/download/defaults/main.yml
index 00cc715ad..2689e889c 100644
--- a/roles/download/defaults/main.yml
+++ b/roles/download/defaults/main.yml
@@ -202,7 +202,7 @@ multus_image_tag: "{{ multus_version }}"
 nginx_image_repo: nginx
 nginx_image_tag: 1.13
 
-coredns_version: "1.2.6"
+coredns_version: "1.4.0"
 coredns_image_repo: "coredns/coredns"
 coredns_image_tag: "{{ coredns_version }}"
 
diff --git a/roles/kubernetes-apps/ansible/templates/coredns-config.yml.j2 b/roles/kubernetes-apps/ansible/templates/coredns-config.yml.j2
index faa26a341..51131df68 100644
--- a/roles/kubernetes-apps/ansible/templates/coredns-config.yml.j2
+++ b/roles/kubernetes-apps/ansible/templates/coredns-config.yml.j2
@@ -22,9 +22,9 @@ data:
         }
         prometheus :9153
 {% if resolvconf_mode == 'host_resolvconf' and upstream_dns_servers is defined and upstream_dns_servers|length > 0 %}
-        proxy . {{ upstream_dns_servers.join(' ') }}
+        forward . {{ upstream_dns_servers.join(' ') }}
 {% else %}
-        proxy . /etc/resolv.conf
+        forward . /etc/resolv.conf
 {% endif %}
         cache 30
         loop
diff --git a/roles/kubernetes-apps/ansible/templates/coredns-deployment.yml.j2 b/roles/kubernetes-apps/ansible/templates/coredns-deployment.yml.j2
index 5a56a49b6..5a1edb8ae 100644
--- a/roles/kubernetes-apps/ansible/templates/coredns-deployment.yml.j2
+++ b/roles/kubernetes-apps/ansible/templates/coredns-deployment.yml.j2
@@ -95,6 +95,15 @@ spec:
           timeoutSeconds: 5
           successThreshold: 1
           failureThreshold: 5
+        readinessProbe:
+          httpGet:
+            path: /health
+            port: 8080
+            scheme: HTTP
+          initialDelaySeconds: 60
+          timeoutSeconds: 5
+          successThreshold: 1
+          failureThreshold: 5
       dnsPolicy: Default
       volumes:
         - name: config-volume
-- 
GitLab