--- - 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: - 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