58 lines
1.8 KiB
YAML
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]
|