mirror of
https://github.com/kubernetes-sigs/kubespray.git
synced 2026-02-28 09:39:12 +03:00
kubeadm support (#1631)
* kubeadm support * move k8s master to a subtask * disable k8s secrets when using kubeadm * fix etcd cert serial var * move simple auth users to master role * make a kubeadm-specific env file for kubelet * add non-ha CI job * change ci boolean vars to json format * fixup * Update create-gce.yml * Update create-gce.yml * Update create-gce.yml
This commit is contained in:
41
roles/kubernetes/kubeadm/tasks/main.yml
Normal file
41
roles/kubernetes/kubeadm/tasks/main.yml
Normal file
@@ -0,0 +1,41 @@
|
||||
---
|
||||
- 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: 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: kubeadm join --config {{ kube_config_dir}}/kubeadm-client.conf --skip-preflight-checks
|
||||
register: kubeadm_join
|
||||
when: not is_kube_master and kubeadm_client_conf.changed
|
||||
|
||||
- name: Update server field in kubelet kubeconfig
|
||||
replace:
|
||||
path: "{{ kube_config_dir }}/kubelet.conf"
|
||||
regexp: '(\s+){{ 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
|
||||
|
||||
# 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']
|
||||
@@ -0,0 +1,6 @@
|
||||
apiVersion: kubeadm.k8s.io/v1alpha1
|
||||
kind: NodeConfiguration
|
||||
caCertPath: {{ kube_config_dir }}/ssl/ca.crt
|
||||
token: {{ kubeadm_token }}
|
||||
discoveryTokenAPIServers:
|
||||
- {{ kubeadm_discovery_address | replace("https://", "")}}
|
||||
Reference in New Issue
Block a user