|
|
@ -1,13 +1,45 @@ |
|
|
|
--- |
|
|
|
- name: Update server field in component kubeconfigs |
|
|
|
lineinfile: |
|
|
|
dest: "{{ kube_config_dir }}/{{ item }}.conf" |
|
|
|
regexp: 'server:' |
|
|
|
line: ' server: {{ kube_apiserver_endpoint }}' |
|
|
|
backup: yes |
|
|
|
- name: Test if correct apiserver is set in all kubeconfigs |
|
|
|
shell: >- |
|
|
|
grep -Fq "{{ kube_apiserver_endpoint }}" {{ kube_config_dir }}/admin.conf && |
|
|
|
grep -Fq "{{ kube_apiserver_endpoint }}" {{ kube_config_dir }}/controller-manager.conf && |
|
|
|
grep -Fq "{{ kube_apiserver_endpoint }}" {{ kube_config_dir }}/kubelet.conf && |
|
|
|
grep -Fq "{{ kube_apiserver_endpoint }}" {{ kube_config_dir }}/scheduler.conf |
|
|
|
register: kubeconfig_correct_apiserver |
|
|
|
changed_when: False |
|
|
|
failed_when: False |
|
|
|
|
|
|
|
- name: Create temporary directory |
|
|
|
tempfile: |
|
|
|
state: directory |
|
|
|
register: kubeconfig_temp_dir |
|
|
|
when: kubeconfig_correct_apiserver.rc != 0 |
|
|
|
|
|
|
|
- name: Generate new kubeconfigs with correct apiserver |
|
|
|
command: >- |
|
|
|
{{ bin_dir }}/kubeadm init phase kubeconfig all |
|
|
|
--config {{ kube_config_dir }}/kubeadm-config.yaml |
|
|
|
--kubeconfig-dir {{ kubeconfig_temp_dir.path }} |
|
|
|
when: kubeconfig_correct_apiserver.rc != 0 |
|
|
|
|
|
|
|
- name: Copy new kubeconfigs to kube config dir |
|
|
|
copy: |
|
|
|
src: "{{ kubeconfig_temp_dir.path }}/{{ item }}" |
|
|
|
dest: "{{ kube_config_dir }}/{{ item }}" |
|
|
|
remote_src: yes |
|
|
|
when: kubeconfig_correct_apiserver.rc != 0 |
|
|
|
with_items: |
|
|
|
- controller-manager |
|
|
|
- scheduler |
|
|
|
when: |
|
|
|
- not loadbalancer_apiserver is defined |
|
|
|
notify: "Master | Restart kube-{{ item }}" |
|
|
|
- admin.conf |
|
|
|
- controller-manager.conf |
|
|
|
- kubelet.conf |
|
|
|
- scheduler.conf |
|
|
|
notify: |
|
|
|
- "Master | Restart kube-controller-manager" |
|
|
|
- "Master | Restart kube-scheduler" |
|
|
|
- "Master | reload kubelet" |
|
|
|
|
|
|
|
- name: Cleanup temporary directory |
|
|
|
file: |
|
|
|
path: "{{ kubeconfig_temp_dir.path }}" |
|
|
|
state: absent |
|
|
|
when: kubeconfig_correct_apiserver.rc != 0 |