mirror of
				https://github.com/geerlingguy/ansible-role-kubernetes.git
				synced 2025-10-24 11:16:22 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			90 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| ---
 | |
| - name: Create the directory for the kubernetes_config_file
 | |
|   file:
 | |
|     path: "{{ kubernetes_kubeadm_kubelet_config_file_path | dirname }}"
 | |
|     state: directory
 | |
| 
 | |
| - name: Deploy the config-file for kubeadm and kubelet
 | |
|   template:
 | |
|     src: "kubeadm-kubelet-config.j2"
 | |
|     dest: "{{ kubernetes_kubeadm_kubelet_config_file_path }}"
 | |
| 
 | |
| - name: Initialize Kubernetes control plane with kubeadm init
 | |
|   command: >
 | |
|     kubeadm init
 | |
|     --config {{ kubernetes_kubeadm_kubelet_config_file_path }}
 | |
|     {{ kubernetes_kubeadm_init_extra_opts }}    
 | |
|   register: kubeadmin_init
 | |
|   when: (not kubernetes_init_stat.stat.exists) and (kubernetes_ignore_preflight_errors is not defined)
 | |
| 
 | |
| - name: Initialize Kubernetes control plane with kubeadm init and ignore_preflight_errors
 | |
|   command: >
 | |
|     kubeadm init
 | |
|     --config {{ kubernetes_kubeadm_kubelet_config_file_path }}
 | |
|     --ignore-preflight-errors={{ kubernetes_ignore_preflight_errors }}
 | |
|     {{ kubernetes_kubeadm_init_extra_opts }}    
 | |
|   register: kubeadmin_init
 | |
|   when: (not kubernetes_init_stat.stat.exists) and (kubernetes_ignore_preflight_errors is defined)
 | |
| 
 | |
| - name: Print the init output to screen.
 | |
|   debug:
 | |
|     var: kubeadmin_init.stdout
 | |
|     verbosity: 2
 | |
|   when: not kubernetes_init_stat.stat.exists
 | |
| 
 | |
| - name: Ensure .kube directory exists.
 | |
|   file:
 | |
|     path: ~/.kube
 | |
|     state: directory
 | |
|     mode: 0755
 | |
| 
 | |
| - name: Symlink the kubectl admin.conf to ~/.kube/conf.
 | |
|   file:
 | |
|     src: /etc/kubernetes/admin.conf
 | |
|     dest: ~/.kube/config
 | |
|     state: link
 | |
|     mode: 0644
 | |
| 
 | |
| - name: Configure Flannel networking.
 | |
|   command: "kubectl apply -f {{ kubernetes_flannel_manifest_file }}"
 | |
|   register: flannel_result
 | |
|   changed_when: "'created' in flannel_result.stdout"
 | |
|   when: kubernetes_pod_network.cni == 'flannel'
 | |
|   until: flannel_result is not failed
 | |
|   retries: 12
 | |
|   delay: 5
 | |
| 
 | |
| - name: Configure Calico networking.
 | |
|   command: "kubectl apply -f {{ kubernetes_calico_manifest_file }}"
 | |
|   register: calico_result
 | |
|   changed_when: "'created' in calico_result.stdout"
 | |
|   when: kubernetes_pod_network.cni == 'calico'
 | |
|   until: calico_result is not failed
 | |
|   retries: 12
 | |
|   delay: 5
 | |
| 
 | |
| - name: Get Kubernetes version for Weave installation.
 | |
|   shell: kubectl version | base64 | tr -d '\n'
 | |
|   changed_when: false
 | |
|   register: kubectl_version
 | |
|   when: kubernetes_pod_network.cni == 'weave'
 | |
|   until: kubectl_version is not failed
 | |
|   retries: 12
 | |
|   delay: 5
 | |
| 
 | |
| - name: Configure Weave networking.
 | |
|   command: "{{ item }}"
 | |
|   with_items:
 | |
|     - "kubectl apply -f https://cloud.weave.works/k8s/net?k8s-version={{ kubectl_version.stdout_lines[0] }}"
 | |
|   register: weave_result
 | |
|   changed_when: "'created' in weave_result.stdout"
 | |
|   when: kubernetes_pod_network.cni == 'weave'
 | |
| 
 | |
| # TODO: Check if taint exists with something like `kubectl describe nodes`
 | |
| # instead of using kubernetes_init_stat.stat.exists check.
 | |
| - name: Allow pods on control plane (if configured).
 | |
|   command: "kubectl taint nodes --all node-role.kubernetes.io/control-plane-"
 | |
|   when:
 | |
|     - kubernetes_allow_pods_on_control_plane | bool
 | |
|     - not kubernetes_init_stat.stat.exists
 |