From a7bf7867d739f2e556eec7e4687ce80b837dbc1e Mon Sep 17 00:00:00 2001 From: Alexander Block Date: Wed, 11 Jan 2017 15:08:24 +0100 Subject: [PATCH] Add tasks to undo changes to hosts /etc/resolv.conf and dhclient configs --- .../preinstall/tasks/dhclient-hooks-undo.yml | 22 +++++++++++++++++++ roles/kubernetes/preinstall/tasks/main.yml | 8 +++++++ .../preinstall/tasks/resolvconf.yml | 4 ---- 3 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 roles/kubernetes/preinstall/tasks/dhclient-hooks-undo.yml diff --git a/roles/kubernetes/preinstall/tasks/dhclient-hooks-undo.yml b/roles/kubernetes/preinstall/tasks/dhclient-hooks-undo.yml new file mode 100644 index 000000000..b62956929 --- /dev/null +++ b/roles/kubernetes/preinstall/tasks/dhclient-hooks-undo.yml @@ -0,0 +1,22 @@ +--- + +# These tasks will undo changes done by kargo in the past if needed (e.g. when upgrading from kargo 2.0.x +# or when changing resolvconf_mode) + +- name: Remove kargo specific config from dhclient config + blockinfile: + dest: "{{dhclientconffile}}" + state: absent + backup: yes + follow: yes + marker: "# Ansible entries {mark}" + notify: Preinstall | restart network + +- name: Remove kargo specific dhclient hook + file: path="{{ dhclienthookfile }}" state=absent + notify: Preinstall | restart network + when: ansible_os_family != "RedHat" + +# We need to make sure the network is restarted early enough so that docker can later pick up the correct system +# nameservers and search domains +- meta: flush_handlers diff --git a/roles/kubernetes/preinstall/tasks/main.yml b/roles/kubernetes/preinstall/tasks/main.yml index a5a706da4..c9c034d4f 100644 --- a/roles/kubernetes/preinstall/tasks/main.yml +++ b/roles/kubernetes/preinstall/tasks/main.yml @@ -175,6 +175,14 @@ when: dns_mode != 'none' and resolvconf_mode == 'host_resolvconf' tags: [bootstrap-os, resolvconf] +- include: dhclient-hooks.yml + when: dns_mode != 'none' and resolvconf_mode == 'host_resolvconf' and not ansible_os_family in ["CoreOS", "Container Linux by CoreOS"] + tags: [bootstrap-os, resolvconf] + +- include: dhclient-hooks-undo.yml + when: dns_mode != 'none' and resolvconf_mode != 'host_resolvconf' and not ansible_os_family in ["CoreOS", "Container Linux by CoreOS"] + tags: [bootstrap-os, resolvconf] + - name: Check if we are running inside a Azure VM stat: path=/var/lib/waagent/ register: azure_check diff --git a/roles/kubernetes/preinstall/tasks/resolvconf.yml b/roles/kubernetes/preinstall/tasks/resolvconf.yml index c75f1dd86..55edd0ca7 100644 --- a/roles/kubernetes/preinstall/tasks/resolvconf.yml +++ b/roles/kubernetes/preinstall/tasks/resolvconf.yml @@ -58,7 +58,3 @@ mode: 0644 notify: Preinstall | update resolvconf for Container Linux by CoreOS when: ansible_os_family in ["CoreOS", "Container Linux by CoreOS"] - -- include: dhclient-hooks.yml - when: not ansible_os_family in ["CoreOS", "Container Linux by CoreOS"] - tags: [bootstrap-os, resolvconf]