ad6fecefa8
Update checksum for kubeadm Use v1.9.0 kubeadm params Include hash of ca.crt for kubeadm join Update tag for testing upgrades Add workaround for testing upgrades Remove scale CI scenarios because of slow inventory parsing in ansible 2.4.x. Change region for tests to us-central1 to improve ansible performance
64 lines
2 KiB
YAML
64 lines
2 KiB
YAML
---
|
|
- name: Set kubeadm_discovery_address
|
|
set_fact:
|
|
kubeadm_discovery_address: >-
|
|
{%- if "127.0.0.1" or "localhost" in kube_apiserver_endpoint -%}
|
|
{{ first_kube_master }}:{{ kube_apiserver_port }}
|
|
{%- else -%}
|
|
{{ kube_apiserver_endpoint }}
|
|
{%- endif %}
|
|
when: not is_kube_master
|
|
tags:
|
|
- facts
|
|
|
|
- name: Check if kubelet.conf exists
|
|
stat:
|
|
path: "{{ kube_config_dir }}/kubelet.conf"
|
|
register: kubelet_conf
|
|
|
|
|
|
- name: Calculate kubeadm CA cert hash
|
|
shell: openssl x509 -pubkey -in {{ kube_config_dir }}/ssl/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
|
|
register: kubeadm_ca_hash
|
|
delegate_to: "{{ groups['kube-master'][0] }}"
|
|
run_once: true
|
|
|
|
- name: Create kubeadm client config
|
|
template:
|
|
src: kubeadm-client.conf.j2
|
|
dest: "{{ kube_config_dir }}/kubeadm-client.conf"
|
|
backup: yes
|
|
when: not is_kube_master
|
|
register: kubeadm_client_conf
|
|
|
|
- name: Join to cluster if needed
|
|
command: >-
|
|
{{ bin_dir }}/kubeadm join
|
|
--config {{ kube_config_dir}}/kubeadm-client.conf
|
|
--ignore-preflight-errors=all
|
|
register: kubeadm_join
|
|
when: not is_kube_master and (kubeadm_client_conf.changed or not kubelet_conf.stat.exists)
|
|
|
|
- name: Wait for kubelet bootstrap to create config
|
|
wait_for:
|
|
path: "{{ kube_config_dir }}/kubelet.conf"
|
|
delay: 1
|
|
timeout: 60
|
|
|
|
- name: Update server field in kubelet kubeconfig
|
|
replace:
|
|
path: "{{ kube_config_dir }}/kubelet.conf"
|
|
regexp: '(\s+)https://{{ first_kube_master }}:{{ kube_apiserver_port }}(\s+.*)?$'
|
|
replace: '\1{{ kube_apiserver_endpoint }}\2'
|
|
backup: yes
|
|
when: not is_kube_master and kubeadm_discovery_address != kube_apiserver_endpoint
|
|
notify: restart kubelet
|
|
|
|
# FIXME(mattymo): Reconcile kubelet kubeconfig filename for both deploy modes
|
|
- name: Symlink kubelet kubeconfig for calico/canal
|
|
file:
|
|
src: "{{ kube_config_dir }}//kubelet.conf"
|
|
dest: "{{ kube_config_dir }}/node-kubeconfig.yaml"
|
|
state: link
|
|
force: yes
|
|
when: kube_network_plugin in ['calico','canal']
|