]> xn--ix-yja.es Git - alex.git/commitdiff
Improve Talos playbook
authoralex <alex@pdp7.net>
Sun, 27 Aug 2023 12:17:49 +0000 (12:17 +0000)
committeralex <alex@pdp7.net>
Sun, 27 Aug 2023 12:19:10 +0000 (12:19 +0000)
* Major reordering needed so kubeconfig can be fetched

personal_infra/playbooks/roles/talos/tasks/main.yaml

index f9bfa201e8d2ab62209df5aeab4dbd22685aaf97..441894841f6f9017620921085f20212d467db344 100644 (file)
@@ -1,20 +1,4 @@
 ---
-- name: check node ready
-  k8s_info:
-    context: "admin@{{ talos_host.talos_cluster }}"
-    kind: Node
-    wait: true
-    wait_condition:
-      status: True
-      type: Ready
-  delegate_to: 127.0.0.1
-  register: nodes
-  ignore_errors: true
-
-- name: setup proxmox hosts
-  import_tasks: proxmox.yml
-  when: "'k8s_proxmox' in group_names and not 'resources' in nodes or nodes.resources|length == 0"
-
 - name: generate controlplane patch
   copy:
     content: |
           role: ingress-controller
     dest: "{{ inventory_dir }}/talos/host-{{ inventory_hostname }}.patch"
   delegate_to: 127.0.0.1
-  when: "not 'resources' in nodes or nodes.resources|length == 0"
 
 - name: generate controlplane config
   shell:
     cmd: talosctl gen config -t controlplane -o talos/host-{{ inventory_hostname }}.yaml --with-secrets <(ansible-vault view talos/{{ talos_host.talos_cluster }}-secrets.yaml) --config-patch-control-plane @talos/host-{{ inventory_hostname }}.patch {{ talos_host.talos_cluster }} {{ talos_clusters[talos_host.talos_cluster].endpoint }} --force
     chdir: "{{ inventory_dir }}"
   delegate_to: 127.0.0.1
-  when: "not 'resources' in nodes or nodes.resources|length == 0"
-
-- name: apply config
-  command:
-    cmd: talosctl apply-config --insecure --nodes {{ ip.stdout  }} --file talos/host-{{ inventory_hostname }}.yaml
-    chdir: "{{ inventory_dir }}"
-  delegate_to: 127.0.0.1
-  when: "not 'resources' in nodes or nodes.resources|length == 0"
 
 - name: generate talosconfig
   shell:
     cmd: talosctl gen config -t talosconfig -o talos/talosconfig-{{ talos_host.talos_cluster }} --with-secrets <(ansible-vault view talos/{{ talos_host.talos_cluster }}-secrets.yaml) {{ talos_host.talos_cluster }} {{ talos_clusters[talos_host.talos_cluster].endpoint }} --force
     chdir: "{{ inventory_dir }}"
   delegate_to: 127.0.0.1
-  when: "not 'resources' in nodes or nodes.resources|length == 0"
 
 - name: set talosconfig endpoint
   shell:
     cmd: talosctl --talosconfig=talos/talosconfig-{{ talos_host.talos_cluster }} config endpoint {{ inventory_hostname }}
     chdir: "{{ inventory_dir }}"
   delegate_to: 127.0.0.1
+
+- name: get kubeconfig
+  command:
+    cmd: talosctl kubeconfig --talosconfig talos/talosconfig-{{ talos_host.talos_cluster }} --nodes {{ inventory_hostname }} -f
+    chdir: "{{ inventory_dir }}"
+  delegate_to: 127.0.0.1
+  throttle: 1
+
+- name: check node ready
+  k8s_info:
+    context: "admin@{{ talos_host.talos_cluster }}"
+    kind: Node
+    wait: true
+    wait_condition:
+      status: True
+      type: Ready
+  delegate_to: 127.0.0.1
+  register: nodes
+  ignore_errors: true
+
+- name: setup proxmox hosts
+  import_tasks: proxmox.yml
+  when: "'k8s_proxmox' in group_names and not 'resources' in nodes or nodes.resources|length == 0"
+
+- name: apply config
+  command:
+    cmd: talosctl apply-config --insecure --nodes {{ ip.stdout  }} --file talos/host-{{ inventory_hostname }}.yaml
+    chdir: "{{ inventory_dir }}"
+  delegate_to: 127.0.0.1
   when: "not 'resources' in nodes or nodes.resources|length == 0"
 
 - name: bootstrap cluster