--- - name: initialize Kubernetes cluster block: - name: Intilizing Kubernetes Cluster #command: kubeadm init --pod-network-cidr "{{ KubernetesPodSubnet }}" --apiserver-advertise-address "{{ ansible_default_ipv4.address }}" --ignore-preflight-errors Mem --cri-socket=unix:///var/run/crio/crio.sock command: kubeadm init --pod-network-cidr "{{ KubernetesPodSubnet }}" --service-cidr "{{ KubernetesServiceSubnet }}" --apiserver-advertise-address "0.0.0.0" --ignore-preflight-errors Mem #--cri-socket=unix:///var/run/containerd/containerd.sock when: - not KubernetesInitialized.stat.exists rescue: - name: Reset Kubeadmn ansible.builtin.shell: "{{ item }}" #register: kube_reset failed_when: item.rc != 0 with_items: - kubeadm reset --force - rm -Rf /etc/cni/net.d - name: Check if kubernetes has been Initialized stat: path: /etc/kubernetes/admin.conf register: KubernetesInitialized tags: - always - name: fetch kubernetes health ansible.builtin.shell: " wget http://localhost:10248/healthz -q -O - || true" register: KubernetesHealth changed_when: true == false when: KubernetesInitialized.stat.exists tags: - always - name: set kubeernetes health fact set_fact: kube_health: "{{ KubernetesHealth.stdout | default(false) == 'ok' }}" changed_when: true == false tags: - always - name: Create directory for kube config. become_method: sudo become: yes file: #path: /home/{{ ansible_user }}/.kube path: ~/.kube state: directory owner: "{{ ansible_user }}" group: "{{ ansible_user }}" mode: 0700 # when: Kubernetes_Master tags: - always - name: Copy Kube config for local user copy: remote_src: yes src: /etc/kubernetes/admin.conf #dest: /home/{{ ansible_user }}/.kube/config dest: ~/.kube/config owner: "{{ ansible_user }}" group: "{{ ansible_user }}" mode: 0700 tags: - always - name: Add calico networking. template: src: "calico.yaml.j2" dest: /etc/kubernetes/manifests/calico.yaml owner: root mode: 0744 - name: apply calico manifest command: kubectl apply -f /etc/kubernetes/manifests/calico.yaml tags: - install - manifest - name: create remote workdir file: path: "{{ item }}" state: directory mode: 0700 with_items: - /tmp/ansible/ tags: - always - name: Create local workdir file: path: "{{ item }}" state: directory mode: 0700 delegate_to: localhost connection: local with_items: - /tmp/ansible/ tags: - always - name: get join command ansible.builtin.shell: kubeadm token create --print-join-command > /tmp/ansible/join_kubernetes.sh changed_when: true == false tags: - always - name: download join command fetch: src: /tmp/ansible/join_kubernetes.sh dest: /tmp/ansible/ flat: yes changed_when: true == false tags: - always # always: # - name: remove remote workdir # file: # path: "{{ item }}" # state: absent # with_items: # - /tmp/ansible/join_kubernetes.sh # changed_when: true == false # when: # #- Kubernetes_Prime # #- KubernetesInit.stat.exists # - kubernetes_config.cluster.prime.name == inventory_hostname