--- - name: Include vars for not taint Kubernetes masters ansible.builtin.include_vars: masters.yml when: - kubernetes_master|bool - not kubernetes_master_taint|bool - name: Add master to KubernetesMasters_ClusterName group ansible.builtin.group_by: key: KubernetesMasters_{{ kubernetes_cluster_name }} check_mode: false when: - "'KubernetesMasters' in group_names" - name: Add node to KubernetesNodes_ClusterName group ansible.builtin.group_by: key: KubernetesNodes_{{ kubernetes_cluster_name }} check_mode: false when: - "'KubernetesNodes' in group_names" - name: Disable SWAP since kubernetes can't work with swap enabled (1/2) ansible.builtin.command: swapoff -a changed_when: false - name: Remove swapfile from /etc/fstab (2/2) ansible.posix.mount: name: swap fstype: swap state: absent - name: Create a thin pool for kubernetes community.general.lvol: vg: vg_sys thinpool: kubernetes size: "{{ lv_kubernetes_size | default('20g') }}" ## Install API loadbalancer # - ansible.builtin.include_tasks: "load_balancer.yml" # when: # - kubernetes_master|bool # - groups['KubernetesMasters'] | length > 1 - name: Kubernetes cluster with kubeadm ansible.builtin.include_tasks: "cluster_kubeadm.yml" when: - kubernetes_cri != "k3s" - name: Kubernetes cluster with k3s ansible.builtin.include_tasks: "cluster_k3s.yml" when: - kubernetes_cri == "k3s" # # At this point, we have a kubernetes up and running, but ready for it # - name: Make /root/.kube directory ansible.builtin.file: path: "/root/.kube" owner: root group: root mode: 0700 state: directory when: - kubernetes_master|bool - name: Copy kubeconfig file from /etc/kubernetes/admin.conf ansible.builtin.copy: src: "/etc/kubernetes/admin.conf" dest: /root/.kube/config remote_src: true owner: root group: root mode: 0600 when: - kubernetes_master|bool - kubernetes_cri != "k3s" - name: Copy kubeconfig file from /etc/rancher/k3s/k3s.yaml ansible.builtin.copy: src: "/etc/rancher/k3s/k3s.yaml" dest: /root/.kube/config remote_src: true owner: root group: root mode: 0600 when: - kubernetes_master|bool - kubernetes_cri == "k3s" - name: Make link from /etc/rancher/k3s/k3s.yaml to /etc/kubernetes/admin.conf file: src: "/etc/rancher/k3s/k3s.yaml" state: link dest: "/etc/kubernetes/admin.conf" force: yes owner: root group: root when: - kubernetes_master|bool - kubernetes_cri == "k3s" # # Manque autoconfig de .kube/config local # # - name: Fetching CA certificat # ansible.builtin.copy: # src: /etc/kubernetes/pki/ca.crt # dest: /root/.kube/{{ kubernetes_cluster_name }}/ca.crt # when: # - kubernetes_master|bigip_pool # kubectl get nodes -o custom-columns=NAME:.metadata.name,TAINTS:.spec.taints --no-headers - name: Check if a node is still tainted ansible.builtin.command: kubectl --kubeconfig=/etc/kubernetes/admin.conf get nodes '{{ ansible_hostname | lower }}' -o jsonpath='{.spec.taints}' register: current_taint check_mode: false when: - kubernetes_master_taint|bool - name: Taint the machine if needed # ansible.builtin.command: kubectl --kubeconfig=/etc/kubernetes/admin.conf taint nodes --all node-role.kubernetes.io/master- ansible.builtin.command: kubectl --kubeconfig=/etc/kubernetes/admin.conf taint nodes '{{ ansible_hostname | lower }}' node-role.kubernetes.io/master- when: - kubernetes_master_taint|bool - current_taint.stdout