# This state file contains configurations specific to a Kubernetes control plane node. include: - common.init # Initialize the Kubernetes control plane using kubeadm. # --pod-network-cidr is required for CNI, but we stop before installing CNI. # --ignore-preflight-errors=NumCPU is added as per original request. kubeadm_init: cmd.run: - name: 'kubeadm init --pod-network-cidr={{ pillar["pod_cidr"] }} --ignore-preflight-errors=NumCPU' - unless: 'test -f /etc/kubernetes/admin.conf' - require: - service: kubelet_service - service: crio_service kubeconfig_dir: file.directory: - name: /root/.kube - mode: "0755" - makedirs: True - require: - cmd: kubeadm_init kubeconfig_file: file.managed: - name: /root/.kube/config - source: file:///etc/kubernetes/admin.conf - user: root - group: root - mode: "0600" - require: - cmd: kubeadm_init - file: kubeconfig_dir