diff --git a/roles/kubernetes/tasks/main.yml b/roles/kubernetes/tasks/main.yml index 83afd6a..884db1d 100644 --- a/roles/kubernetes/tasks/main.yml +++ b/roles/kubernetes/tasks/main.yml @@ -1,3 +1,16 @@ +- name: 1 Wait for Kubernetes API to be ready + shell: | + kubectl get --raw='/healthz' + environment: + KUBECONFIG: /home/fenix/.kube/config + register: api_health + until: api_health.rc == 0 + retries: 10 + delay: 6 + become: yes + + + - name: Install containerd apt: name: containerd @@ -26,6 +39,16 @@ content: | deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.29/deb/ / +- name: 2.2 Wait for Kubernetes API to be ready + shell: | + kubectl get --raw='/healthz' + environment: + KUBECONFIG: /home/fenix/.kube/config + register: api_health + until: api_health.rc == 0 + retries: 10 + delay: 6 + become: yes - name: Install Kubernetes components apt: @@ -40,6 +63,17 @@ ansible.builtin.shell: | apt-mark hold kubelet kubeadm kubectl +- name: 2.3 Wait for Kubernetes API to be ready + shell: | + kubectl get --raw='/healthz' + environment: + KUBECONFIG: /home/fenix/.kube/config + register: api_health + until: api_health.rc == 0 + retries: 10 + delay: 6 + become: yes + - name: Ativar ip_forward de forma idempotente ansible.builtin.sysctl: @@ -52,6 +86,18 @@ ansible.builtin.command: sysctl --system when: ansible_facts['os_family'] == 'Debian' changed_when: false + +- name: 2.4 Wait for Kubernetes API to be ready + shell: | + kubectl get --raw='/healthz' + environment: + KUBECONFIG: /home/fenix/.kube/config + register: api_health + until: api_health.rc == 0 + retries: 10 + delay: 6 + become: yes + - name: Criar arquivo de configuração sysctl para Kubernetes ansible.builtin.copy: @@ -69,6 +115,19 @@ name: br_netfilter state: present +- name: 2.5 Wait for Kubernetes API to be ready + shell: | + kubectl get --raw='/healthz' + environment: + KUBECONFIG: /home/fenix/.kube/config + register: api_health + until: api_health.rc == 0 + retries: 10 + delay: 6 + become: yes + + + - name: Garantir que o módulo br_netfilter seja carregado na inicialização ansible.builtin.copy: dest: /etc/modules-load.d/k8s.conf