Files
AItrackwalker/deploy/ansible/roles/postcheck/tasks/main.yml
T

58 lines
1.8 KiB
YAML

---
- name: Wait for all expected Kubernetes nodes
ansible.builtin.shell: |
set -e
expected={{ (groups.get('rke2_servers', []) + groups.get('rke2_agents', [])) | length }}
actual=$(/var/lib/rancher/rke2/bin/kubectl \
--kubeconfig /etc/rancher/rke2/rke2.yaml \
get nodes --no-headers | wc -l)
test "$actual" -eq "$expected"
args:
executable: /bin/bash
register: cluster_node_count
retries: 60
delay: 10
until: cluster_node_count.rc == 0
changed_when: false
when: inventory_hostname == groups["rke2_servers"][0]
- name: Read Kubernetes node readiness
ansible.builtin.command: >-
/var/lib/rancher/rke2/bin/kubectl
--kubeconfig /etc/rancher/rke2/rke2.yaml
get nodes -o wide
register: kubernetes_nodes
changed_when: false
when: inventory_hostname == groups["rke2_servers"][0]
- name: Print Kubernetes node readiness
ansible.builtin.debug:
var: kubernetes_nodes.stdout_lines
when: inventory_hostname == groups["rke2_servers"][0]
- name: Ensure local kubeconfig parent exists
ansible.builtin.file:
path: "{{ deployment_kubeconfig_path | dirname }}"
state: directory
mode: "0700"
delegate_to: localhost
become: false
when: inventory_hostname == groups["rke2_servers"][0]
- name: Export the cluster kubeconfig to the deployment controller
ansible.builtin.fetch:
src: /etc/rancher/rke2/rke2.yaml
dest: "{{ deployment_kubeconfig_path }}"
flat: true
when: inventory_hostname == groups["rke2_servers"][0]
- name: Replace loopback API address in exported kubeconfig
ansible.builtin.replace:
path: "{{ deployment_kubeconfig_path }}"
regexp: "https://127\\.0\\.0\\.1:6443"
replace: "https://{{ cluster.apiEndpoint }}:{{ cluster.apiPort }}"
mode: "0600"
delegate_to: localhost
become: false
when: inventory_hostname == groups["rke2_servers"][0]