From 3ff5f40bdb6955f05ee1e9e3e977cb4e16a30678 Mon Sep 17 00:00:00 2001 From: Matthew Mosesohn Date: Wed, 27 Sep 2017 14:49:20 +0100 Subject: [PATCH] fix graceful upgrade (#1704) Fix system namespace creation Only rotate tokens when necessary --- .../rotate_tokens/tasks/main.yml | 17 +++++++++++++++++ .../master/tasks/static-pod-setup.yml | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/roles/kubernetes-apps/rotate_tokens/tasks/main.yml b/roles/kubernetes-apps/rotate_tokens/tasks/main.yml index 0e257a65a..5bab7120a 100644 --- a/roles/kubernetes-apps/rotate_tokens/tasks/main.yml +++ b/roles/kubernetes-apps/rotate_tokens/tasks/main.yml @@ -1,4 +1,18 @@ --- +- name: Rotate Tokens | Test if default certificate is expired + shell: >- + kubectl run -i test-rotate-tokens + --image={{ hyperkube_image_repo }}:{{ hyperkube_image_tag }} + --restart=Never --rm + kubectl get nodes + register: check_secret + failed_when: false + run_once: true + +- name: Rotate Tokens | Determine if certificate is expired + set_fact: + needs_rotation: '{{ "You must be logged in" in check_secret.stderr }}' + # FIXME(mattymo): Exclude built in secrets that were automatically rotated, # instead of filtering manually - name: Rotate Tokens | Get all serviceaccount tokens to expire @@ -9,12 +23,15 @@ | egrep 'default-token|kube-proxy|kube-dns|dnsmasq|netchecker|weave|calico|canal|flannel|dashboard|cluster-proportional-autoscaler|efk|tiller' register: tokens_to_delete run_once: true + when: needs_rotation - name: Rotate Tokens | Delete expired tokens command: "{{ bin_dir }}/kubectl delete secrets -n {{ item.split(' ')[0] }} {{ item.split(' ')[1] }}" with_items: "{{ tokens_to_delete.stdout_lines }}" run_once: true + when: needs_rotation - name: Rotate Tokens | Delete pods in system namespace command: "{{ bin_dir }}/kubectl delete pods -n {{ system_namespace }} --all" run_once: true + when: needs_rotation diff --git a/roles/kubernetes/master/tasks/static-pod-setup.yml b/roles/kubernetes/master/tasks/static-pod-setup.yml index d20557e95..1a431e9dc 100644 --- a/roles/kubernetes/master/tasks/static-pod-setup.yml +++ b/roles/kubernetes/master/tasks/static-pod-setup.yml @@ -30,7 +30,7 @@ register: create_system_ns until: create_system_ns.rc == 0 changed_when: False - when: kubesystem.rc != 0 and inventory_hostname == groups['kube-master'][0] + when: inventory_hostname == groups['kube-master'][0] and kubesystem.rc != 0 tags: apps - name: Write kube-scheduler kubeconfig