diff --git a/roles/kubernetes/kubeadm/tasks/kubeadm_etcd_node.yml b/roles/kubernetes/kubeadm/tasks/kubeadm_etcd_node.yml index c87b840c164966f4ab1c30b204fefe2170c44251..651bcc39dd0d611b2e606752707af6dd31edae84 100644 --- a/roles/kubernetes/kubeadm/tasks/kubeadm_etcd_node.yml +++ b/roles/kubernetes/kubeadm/tasks/kubeadm_etcd_node.yml @@ -4,22 +4,23 @@ kubeadm_certificate_key: "{{ hostvars[groups['kube_control_plane'][0]]['kubeadm_certificate_key'] }}" when: kubeadm_certificate_key is undefined +- name: Create kubeadm cert controlplane config + template: + src: "kubeadm-client.conf.{{ kubeadmConfig_api_version }}.j2" + dest: "{{ kube_config_dir }}/kubeadm-cert-controlplane.conf" + mode: 0640 + vars: + kubeadm_cert_controlplane: true + - name: Pull control plane certs down shell: >- {{ bin_dir }}/kubeadm join phase control-plane-prepare download-certs - --certificate-key {{ kubeadm_certificate_key }} - --control-plane - --token {{ kubeadm_token }} - --discovery-token-unsafe-skip-ca-verification - {{ kubeadm_discovery_address }} + --config {{ kube_config_dir }}/kubeadm-cert-controlplane.conf && {{ bin_dir }}/kubeadm join phase control-plane-prepare certs - --control-plane - --token {{ kubeadm_token }} - --discovery-token-unsafe-skip-ca-verification - {{ kubeadm_discovery_address }} + --config {{ kube_config_dir }}/kubeadm-cert-controlplane.conf args: creates: "{{ kube_cert_dir }}/apiserver-etcd-client.key" diff --git a/roles/kubernetes/kubeadm/templates/kubeadm-client.conf.v1beta3.j2 b/roles/kubernetes/kubeadm/templates/kubeadm-client.conf.v1beta3.j2 index 64c3db99addcca083e020f95b7debe8cb479b295..5104ecfb949b5e98a19915f7e45b9533a24b618e 100644 --- a/roles/kubernetes/kubeadm/templates/kubeadm-client.conf.v1beta3.j2 +++ b/roles/kubernetes/kubeadm/templates/kubeadm-client.conf.v1beta3.j2 @@ -18,6 +18,13 @@ discovery: timeout: {{ discovery_timeout }} tlsBootstrapToken: {{ kubeadm_token }} caCertPath: {{ kube_cert_dir }}/ca.crt +{% if kubeadm_cert_controlplane is defined and kubeadm_cert_controlplane %} +controlPlane: + localAPIEndpoint: + advertiseAddress: {{ kube_apiserver_address }} + bindPort: {{ kube_apiserver_port }} + certificateKey: {{ kubeadm_certificate_key }} +{% endif %} nodeRegistration: name: '{{ kube_override_hostname }}' criSocket: {{ cri_socket }}