From 4566d60e6f855d64fab3f537177d9047ad304395 Mon Sep 17 00:00:00 2001 From: Antoine Legrand Date: Tue, 26 Jan 2016 11:58:14 +0100 Subject: [PATCH 1/3] Slowdown apimaster restart --- roles/kubernetes/master/handlers/main.yml | 16 ++-------------- roles/kubernetes/master/tasks/main.yml | 8 +++----- roles/kubernetes/master/tasks/start.yml | 21 +++++++++++++++++++++ 3 files changed, 26 insertions(+), 19 deletions(-) create mode 100644 roles/kubernetes/master/tasks/start.yml diff --git a/roles/kubernetes/master/handlers/main.yml b/roles/kubernetes/master/handlers/main.yml index e5d5f7739..a4082887b 100644 --- a/roles/kubernetes/master/handlers/main.yml +++ b/roles/kubernetes/master/handlers/main.yml @@ -1,16 +1,4 @@ --- - - name: restart kube-apiserver - command: /bin/true - notify: - - reload systemd - - reload kube-apiserver - -- name: reload systemd - command: systemctl daemon-reload - when: init_system == "systemd" - -- name: reload kube-apiserver - service: - name: kube-apiserver - state: restarted + set_fact: + restart_apimaster: True diff --git a/roles/kubernetes/master/tasks/main.yml b/roles/kubernetes/master/tasks/main.yml index 430fb7c97..5dfa7c49b 100644 --- a/roles/kubernetes/master/tasks/main.yml +++ b/roles/kubernetes/master/tasks/main.yml @@ -76,11 +76,9 @@ - meta: flush_handlers -- name: Enable apiserver - service: - name: kube-apiserver - enabled: yes - state: started +- include: start.yml + with_items: groups['kube-master'] + when: "{{ hostvars[item].inventory_hostname == inventory_hostname }}" # Create kube-system namespace - name: copy 'kube-system' namespace manifest diff --git a/roles/kubernetes/master/tasks/start.yml b/roles/kubernetes/master/tasks/start.yml new file mode 100644 index 000000000..7fa4f2764 --- /dev/null +++ b/roles/kubernetes/master/tasks/start.yml @@ -0,0 +1,21 @@ +--- +- name: Pause + pause: seconds=10 + +- name: reload systemd + command: systemctl daemon-reload + when: init_system == "systemd" and restart_apimaster is defined and restart_apimaster == True + +- name: reload kube-apiserver + service: + name: kube-apiserver + state: restarted + enabled: yes + when: restart_apimaster is defined and restart_apimaster == True + +- name: Enable apiserver + service: + name: kube-apiserver + enabled: yes + state: started + when: restart_apimaster is not defined or restart_apimaster == False \ No newline at end of file From 16a1926f943d3ea617d5b3907f051ff67b2ad672 Mon Sep 17 00:00:00 2001 From: Antoine Legrand Date: Tue, 26 Jan 2016 15:31:11 +0100 Subject: [PATCH 2/3] Drop ansible 1.9 support --- .travis.yml | 1 - README.md | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 02b78b07c..578bac4cc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,6 @@ addons: env: - SITE=cluster.yml ANSIBLE_VERSION=2.0.0 - - SITE=cluster.yml ANSIBLE_VERSION=1.9.4 install: # Install Ansible. diff --git a/README.md b/README.md index c2e3432ba..94676bb7c 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ Linux distributions tested: * The firewalls are not managed, you'll need to implement your own rules the way you used to. in order to avoid any issue during deployment you should **disable your firewall** * **Copy your ssh keys** to all the servers part of your inventory. -* **Ansible v1.9.x/v2.x and python-netaddr** +* **Ansible v2.x and python-netaddr** * Base knowledge on Ansible. Please refer to [Ansible documentation](http://www.ansible.com/how-ansible-works) ### Components From fd6ac61afc655e1313dc44cd464abc494912f93f Mon Sep 17 00:00:00 2001 From: ant31 <2t.antoine@gmail.com> Date: Tue, 26 Jan 2016 17:28:30 +0100 Subject: [PATCH 3/3] Use local etcd/etcdproxy for calico --- roles/network_plugin/tasks/calico.yml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/roles/network_plugin/tasks/calico.yml b/roles/network_plugin/tasks/calico.yml index ae306d973..225c20222 100644 --- a/roles/network_plugin/tasks/calico.yml +++ b/roles/network_plugin/tasks/calico.yml @@ -25,13 +25,11 @@ status_code: 200,404 register: calico_conf run_once: true - delegate_to: "{{ groups['etcd'][0] }}" - name: Calico | Configure calico network pool shell: calicoctl pool add {{ kube_pods_subnet }} run_once: true when: calico_conf.status == 404 - delegate_to: "{{ groups['etcd'][0] }}" - name: Calico | Get calico configuration from etcd uri: @@ -39,7 +37,6 @@ return_content: yes register: calico_pools run_once: true - delegate_to: "{{ groups['etcd'][0] }}" - name: Calico | Check if calico pool is properly configured fail: @@ -48,7 +45,6 @@ when: ( calico_pools.json['node']['nodes'] | length > 1 ) or ( not calico_pools.json['node']['nodes'][0]['key'] | search(".*{{ kube_pods_subnet | ipaddr('network') }}.*") ) run_once: true - delegate_to: "{{ groups['etcd'][0] }}" - name: Calico | Write calico-node configuration template: src=calico/calico.conf.j2 dest=/usr/libexec/kubernetes/kubelet-plugins/net/exec/calico/calico_kubernetes.ini @@ -83,12 +79,12 @@ - name: Calico | Disable node mesh shell: calicoctl bgp node-mesh off environment: - ETCD_AUTHORITY: "{{ groups['etcd'][0] }}:2379" + ETCD_AUTHORITY: "127.0.0.1:2379" when: peer_with_router|default(false) and inventory_hostname in groups['kube-node'] - name: Calico | Configure peering with router(s) shell: calicoctl node bgp peer add {{ item.router_id }} as {{ item.as }} environment: - ETCD_AUTHORITY: "{{ groups['etcd'][0] }}:2379" + ETCD_AUTHORITY: "127.0.0.1:2379" with_items: peers when: peer_with_router|default(false) and inventory_hostname in groups['kube-node']