From ed24aa4f8d905615f82c012c1d3579649c1fd2cd Mon Sep 17 00:00:00 2001 From: Paul-Henri Froidmont Date: Mon, 1 Oct 2018 16:52:40 +0200 Subject: [PATCH] Cleanup some tasks and manage differences between Kubernetes version and apt package version --- playbooks/group_vars | 1 - playbooks/host_vars | 1 - playbooks/kubectl-config.yml | 8 -------- playbooks/roles | 1 - roles/kubernetes/defaults/main.yml | 3 ++- roles/kubernetes/tasks/main.yml | 13 ++++++------- roles/kubernetes/tasks/packages.yml | 3 +-- roles/kubernetes/templates/kubeadm-config.j2 | 2 +- roles/proxy/tasks/keepalived.yml | 1 + scripts/scw_inventory.py | 4 ++-- 10 files changed, 13 insertions(+), 24 deletions(-) delete mode 120000 playbooks/group_vars delete mode 120000 playbooks/host_vars delete mode 100644 playbooks/kubectl-config.yml delete mode 120000 playbooks/roles diff --git a/playbooks/group_vars b/playbooks/group_vars deleted file mode 120000 index cc7e7a9..0000000 --- a/playbooks/group_vars +++ /dev/null @@ -1 +0,0 @@ -../group_vars \ No newline at end of file diff --git a/playbooks/host_vars b/playbooks/host_vars deleted file mode 120000 index e0ccba1..0000000 --- a/playbooks/host_vars +++ /dev/null @@ -1 +0,0 @@ -../host_vars \ No newline at end of file diff --git a/playbooks/kubectl-config.yml b/playbooks/kubectl-config.yml deleted file mode 100644 index a4781a6..0000000 --- a/playbooks/kubectl-config.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -- hosts: all - tasks: [ ] -- hosts: k8s_kubectl - become: yes - roles: - - role: kubectl - tags: role-kubectl diff --git a/playbooks/roles b/playbooks/roles deleted file mode 120000 index d8c4472..0000000 --- a/playbooks/roles +++ /dev/null @@ -1 +0,0 @@ -../roles \ No newline at end of file diff --git a/roles/kubernetes/defaults/main.yml b/roles/kubernetes/defaults/main.yml index 65f3105..2ee2741 100644 --- a/roles/kubernetes/defaults/main.yml +++ b/roles/kubernetes/defaults/main.yml @@ -4,7 +4,8 @@ kubernetes_apt_key: https://packages.cloud.google.com/apt/doc/apt-key.gpg kubernetes_apt_channel: main kubernetes_release: xenial # versions can be found here -kubernetes_version: v1.11.3 +kubernetes_version: 1.11.3 +kubernetes_version_apt: "{{kubernetes_version}}-00" kubernetes_port: 6443 # kubeadm diff --git a/roles/kubernetes/tasks/main.yml b/roles/kubernetes/tasks/main.yml index 58d96b4..68b9e12 100644 --- a/roles/kubernetes/tasks/main.yml +++ b/roles/kubernetes/tasks/main.yml @@ -8,9 +8,6 @@ - "'k8s_masters' in group_names" - groups.k8s_masters | length > 1 -# at this point everyone should be able to ping the api floating ip if multimaster -# add a test here and don't continue until everyone does not ping the api ip - - name: Install iputils-ping apt: name: iputils-ping @@ -23,8 +20,10 @@ - name: Check all hosts can ping API floating IP shell: "ping {{ api_floating_ip }} -c 1" register: result + until: ('100% packet loss' not in result.stdout) + retries: 15 + delay: 10 changed_when: no - failed_when: ('100% packet loss' in result.stdout) - include: packages.yml @@ -37,7 +36,7 @@ # add masters - block: # docker-in-docker sometimes hangs pulling images so explicitly do it here - - include: docker-images.yml + #- include: docker-images.yml - include: kubeadm-master.yml when: inventory_hostname == initial_master @@ -51,7 +50,7 @@ - name: Wait for coredns to be running shell: "kubectl get pods --namespace=kube-system | grep coredns | grep Running | wc -l" register: result - until: result.stdout.find("2") != -1 + until: ("2" in result.stdout) retries: 180 delay: 10 changed_when: no @@ -68,7 +67,7 @@ - name: Wait for all nodes to be ready shell: "kubectl get nodes {{ ansible_hostname }} | tail -n+2 | awk '{ print $2 }'" register: result - until: result.stdout.find("Ready") == 0 + until: ("Ready" in result.stdout) retries: 36 delay: 10 changed_when: no diff --git a/roles/kubernetes/tasks/packages.yml b/roles/kubernetes/tasks/packages.yml index 97dacff..8abf0fe 100644 --- a/roles/kubernetes/tasks/packages.yml +++ b/roles/kubernetes/tasks/packages.yml @@ -12,8 +12,7 @@ - name: Installing kubernetes core components (kubectl, kubelet ...) apt: - name: ['kubelet', 'kubeadm', 'kubectl', 'kubernetes-cni'] - state: latest + name: ['kubelet={{kubernetes_version_apt}}', 'kubeadm={{kubernetes_version_apt}}', 'kubectl={{kubernetes_version_apt}}'] register: result retries: 3 until: result is success diff --git a/roles/kubernetes/templates/kubeadm-config.j2 b/roles/kubernetes/templates/kubeadm-config.j2 index 01b457a..4613f92 100644 --- a/roles/kubernetes/templates/kubeadm-config.j2 +++ b/roles/kubernetes/templates/kubeadm-config.j2 @@ -10,7 +10,7 @@ etcd: {% endfor %} networking: podSubnet: "{{ pod_subnet }}" -kubernetesVersion: "{{ kubernetes_version }}" +kubernetesVersion: "v{{ kubernetes_version }}" apiServerCertSANs: {% for host in groups['k8s_masters'] %} - "{{ hostvars[host]['vpn_ip'] }}" diff --git a/roles/proxy/tasks/keepalived.yml b/roles/proxy/tasks/keepalived.yml index bf1d8b5..eac45d4 100644 --- a/roles/proxy/tasks/keepalived.yml +++ b/roles/proxy/tasks/keepalived.yml @@ -1,2 +1,3 @@ --- +#TODO - debug: msg="Not Implemented" diff --git a/scripts/scw_inventory.py b/scripts/scw_inventory.py index 8f8627f..ed81810 100755 --- a/scripts/scw_inventory.py +++ b/scripts/scw_inventory.py @@ -78,8 +78,8 @@ class SCWInventory(object): for host, variables in self.response['_meta']['hostvars'].items(): if host != 'proxy1': variables['ansible_ssh_common_args'] = '-o ProxyCommand="ssh -W %h:%p -q root@' + \ - self.response['_meta']['hostvars']['proxy1'][ - 'public_ip'] + ' -o StrictHostKeyChecking=no"' + self.response['_meta']['hostvars']['proxy1']['public_ip'] \ + + ' -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"' def _add_to_response(self, group, hostname): """