- name: Grund-Manifeste anwenden ansible.builtin.command: kubectl apply -f {{ k3s_manifest_dir }}/{{ item }} loop: "{{ k3s_base_manifests }}" register: k3s_apply changed_when: "'configured' in k3s_apply.stdout or 'created' in k3s_apply.stdout" - name: Warten, bis jede GPU-VM ihre GPUs meldet (nvidia.com/gpu) ansible.builtin.command: > kubectl get node {{ item }} -o jsonpath='{.status.allocatable.nvidia\.com/gpu}' loop: "{{ groups['k3s_agents'] }}" register: k3s_gpus until: (k3s_gpus.stdout | default('0') | int) > 0 retries: 24 delay: 5 changed_when: false - name: Warten, bis der Portainer-Agent läuft ansible.builtin.command: kubectl -n portainer rollout status deployment/portainer-agent --timeout=180s changed_when: false - name: Übersicht ansible.builtin.command: kubectl get nodes -o custom-columns=NAME:.metadata.name,STATUS:.status.conditions[-1].type,GPU:.status.allocatable.nvidia\.com/gpu,VERSION:.status.nodeInfo.kubeletVersion register: k3s_nodes changed_when: false - name: Knoten ansible.builtin.debug: msg: "{{ k3s_nodes.stdout_lines }}"