You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
1.7 KiB

  1. ---
  2. - name: Set kubeadm_discovery_address
  3. set_fact:
  4. kubeadm_discovery_address: >-
  5. {%- if "127.0.0.1" or "localhost" in kube_apiserver_endpoint -%}
  6. {{ first_kube_master }}:{{ kube_apiserver_port }}
  7. {%- else -%}
  8. {{ kube_apiserver_endpoint }}
  9. {%- endif %}
  10. when: not is_kube_master
  11. tags:
  12. - facts
  13. - name: Check if kubelet.conf exists
  14. stat:
  15. path: "{{ kube_config_dir }}/kubelet.conf"
  16. register: kubelet_conf
  17. - name: Create kubeadm client config
  18. template:
  19. src: kubeadm-client.conf.j2
  20. dest: "{{ kube_config_dir }}/kubeadm-client.conf"
  21. backup: yes
  22. when: not is_kube_master
  23. register: kubeadm_client_conf
  24. - name: Join to cluster if needed
  25. command: "{{ bin_dir }}/kubeadm join --config {{ kube_config_dir}}/kubeadm-client.conf --skip-preflight-checks"
  26. register: kubeadm_join
  27. when: not is_kube_master and (kubeadm_client_conf.changed or not kubelet_conf.stat.exists)
  28. - name: Wait for kubelet bootstrap to create config
  29. wait_for:
  30. path: "{{ kube_config_dir }}/kubelet.conf"
  31. delay: 1
  32. timeout: 60
  33. - name: Update server field in kubelet kubeconfig
  34. replace:
  35. path: "{{ kube_config_dir }}/kubelet.conf"
  36. regexp: '(\s+)https://{{ first_kube_master }}:{{ kube_apiserver_port }}(\s+.*)?$'
  37. replace: '\1{{ kube_apiserver_endpoint }}\2'
  38. backup: yes
  39. when: not is_kube_master and kubeadm_discovery_address != kube_apiserver_endpoint
  40. notify: restart kubelet
  41. # FIXME(mattymo): Reconcile kubelet kubeconfig filename for both deploy modes
  42. - name: Symlink kubelet kubeconfig for calico/canal
  43. file:
  44. src: "{{ kube_config_dir }}//kubelet.conf"
  45. dest: "{{ kube_config_dir }}/node-kubeconfig.yaml"
  46. state: link
  47. force: yes
  48. when: kube_network_plugin in ['calico','canal']