From b9781fa7c2d7dbde6dd7bf23779a46f984e172c9 Mon Sep 17 00:00:00 2001
From: Antoine Legrand <antoine.legrand@arkena.com>
Date: Mon, 25 Jan 2016 17:34:51 +0100
Subject: [PATCH] Symlink dnsmasq conf

---
 roles/dnsmasq/tasks/main.yml            | 26 ++++++++++++++++++++++---
 roles/etcd/tasks/configure.yml          |  2 +-
 roles/kubernetes/master/tasks/main.yml  |  2 +-
 roles/kubernetes/node/tasks/install.yml |  4 ++--
 roles/network_plugin/tasks/calico.yml   |  4 ++--
 5 files changed, 29 insertions(+), 9 deletions(-)

diff --git a/roles/dnsmasq/tasks/main.yml b/roles/dnsmasq/tasks/main.yml
index df8eb3a59..01b898fda 100644
--- a/roles/dnsmasq/tasks/main.yml
+++ b/roles/dnsmasq/tasks/main.yml
@@ -4,13 +4,33 @@
     path: /etc/dnsmasq.d
     state: directory
 
+- name: ensure dnsmasq.d-available directory exists
+  file:
+    path: /etc/dnsmasq.d-available
+    state: directory
+
 - name: Write dnsmasq configuration
   template:
     src: 01-kube-dns.conf.j2
-    dest: /etc/dnsmasq.d/01-kube-dns.conf
-    mode: 755
+    dest: /etc/dnsmasq.d-available/01-kube-dns.conf
+    mode: 0755
     backup: yes
 
+- name: Stat dnsmasq configuration
+  stat: path=/etc/dnsmasq.d/01-kube-dns.conf
+  register: sym
+
+- name: Move previous configuration
+  command: mv /etc/dnsmasq.d/01-kube-dns.conf /etc/dnsmasq.d-available/01-kube-dns.conf.bak
+  changed_when: False
+  when: sym.stat.islnk is defined and sym.stat.islnk == False
+
+- name: Enable dnsmasq configuration
+  file:
+    src: /etc/dnsmasq.d-available/01-kube-dns.conf
+    dest: /etc/dnsmasq.d/01-kube-dns.conf
+    state: link
+
 - name: Create dnsmasq pod manifest
   template: src=dnsmasq-pod.yml dest=/etc/kubernetes/manifests/dnsmasq-pod.manifest
 
@@ -60,7 +80,7 @@
     - attempts:2
 
 - name: disable resolv.conf modification by dhclient
-  copy: src=dhclient_nodnsupdate dest=/etc/dhcp/dhclient-enter-hooks.d/nodnsupdate mode=u+x backup=yes
+  copy: src=dhclient_nodnsupdate dest=/etc/dhcp/dhclient-enter-hooks.d/nodnsupdate mode=0755 backup=yes
   when: ansible_os_family == "Debian"
 
 - name: disable resolv.conf modification by dhclient
diff --git a/roles/etcd/tasks/configure.yml b/roles/etcd/tasks/configure.yml
index 91f743d2e..1d3f7887b 100644
--- a/roles/etcd/tasks/configure.yml
+++ b/roles/etcd/tasks/configure.yml
@@ -12,7 +12,7 @@
     src: deb-etcd.initd.j2
     dest: /etc/init.d/etcd
     owner: root
-    mode: 755
+    mode: 0755
   when: init_system == "sysvinit" and ansible_os_family == "Debian"
   notify: restart etcd
 
diff --git a/roles/kubernetes/master/tasks/main.yml b/roles/kubernetes/master/tasks/main.yml
index 2cfb6b0ff..430fb7c97 100644
--- a/roles/kubernetes/master/tasks/main.yml
+++ b/roles/kubernetes/master/tasks/main.yml
@@ -54,7 +54,7 @@
     src: "deb-kube-apiserver.initd.j2"
     dest: "/etc/init.d/kube-apiserver"
     owner: root
-    mode: 755
+    mode: 0755
     backup: yes
   when: init_system == "sysvinit" and ansible_os_family == "Debian"
 
diff --git a/roles/kubernetes/node/tasks/install.yml b/roles/kubernetes/node/tasks/install.yml
index c8146ec5e..32c64fae4 100644
--- a/roles/kubernetes/node/tasks/install.yml
+++ b/roles/kubernetes/node/tasks/install.yml
@@ -5,12 +5,12 @@
   notify: restart kubelet
 
 - name: install | Write kubelet initd script
-  template: src=deb-kubelet.initd.j2 dest=/etc/init.d/kubelet owner=root mode=755 backup=yes
+  template: src=deb-kubelet.initd.j2 dest=/etc/init.d/kubelet owner=root mode=0755 backup=yes
   when: init_system == "sysvinit" and ansible_os_family == "Debian"
   notify: restart kubelet
 
 - name: install | Write kubelet initd script
-  template: src=rh-kubelet.initd.j2 dest=/etc/init.d/kubelet owner=root mode=755 backup=yes
+  template: src=rh-kubelet.initd.j2 dest=/etc/init.d/kubelet owner=root mode=0755 backup=yes
   when: init_system == "sysvinit" and ansible_os_family == "RedHat"
   notify: restart kubelet
 
diff --git a/roles/network_plugin/tasks/calico.yml b/roles/network_plugin/tasks/calico.yml
index f9a77fa47..ae306d973 100644
--- a/roles/network_plugin/tasks/calico.yml
+++ b/roles/network_plugin/tasks/calico.yml
@@ -60,12 +60,12 @@
   notify: restart calico-node
 
 - name: Calico | Write calico-node initd script
-  template: src=calico/deb-calico.initd.j2 dest=/etc/init.d/calico-node owner=root mode=755
+  template: src=calico/deb-calico.initd.j2 dest=/etc/init.d/calico-node owner=root mode=0755
   when: init_system == "sysvinit" and ansible_os_family == "Debian"
   notify: restart calico-node
 
 - name: Calico | Write calico-node initd script
-  template: src=calico/rh-calico.initd.j2 dest=/etc/init.d/calico-node owner=root mode=755
+  template: src=calico/rh-calico.initd.j2 dest=/etc/init.d/calico-node owner=root mode=0755
   when: init_system == "sysvinit" and ansible_os_family == "RedHat"
   notify: restart calico-node
 
-- 
GitLab