--- - name: Deploy 03-01 Traefik Dashboard (HelmChartConfig + IngressRoute) hosts: k3s_server become: true run_once: true vars: k3s_kubeconfig: /etc/rancher/k3s/k3s.yaml manifest_src: "{{ playbook_dir }}/../../files/03-01/traefik-dashboard.yaml" manifest_dest: /tmp/traefik-dashboard.yaml tasks: - name: Copy manifest ansible.builtin.copy: src: "{{ manifest_src }}" dest: "{{ manifest_dest }}" mode: "0644" - name: Apply manifest ansible.builtin.shell: | set -e KUBECONFIG={{ k3s_kubeconfig }} kubectl apply -f {{ manifest_dest }} args: executable: /bin/bash changed_when: true - name: Verify 03-01 Traefik Dashboard (resource existence + rollout) hosts: k3s_server become: true run_once: true vars: k3s_kubeconfig: /etc/rancher/k3s/k3s.yaml tasks: - name: Rollout status traefik (kube-system) ansible.builtin.shell: | set -e KUBECONFIG={{ k3s_kubeconfig }} kubectl rollout status deployment/traefik -n kube-system --timeout=240s args: executable: /bin/bash changed_when: false - name: Assert HelmChartConfig exists ansible.builtin.shell: | set -e KUBECONFIG={{ k3s_kubeconfig }} kubectl -n kube-system get helmchartconfig traefik args: executable: /bin/bash changed_when: false - name: Assert IngressRoute traefik-dashboard exists ansible.builtin.shell: | set -e KUBECONFIG={{ k3s_kubeconfig }} kubectl -n kube-system get ingressroute traefik-dashboard args: executable: /bin/bash changed_when: false - name: Teardown 03-01 Traefik Dashboard (optional) hosts: k3s_server become: true run_once: true vars: k3s_kubeconfig: /etc/rancher/k3s/k3s.yaml verify_teardown: "{{ (VERIFY_TEARDOWN | default('1')) | string }}" manifest_dest: /tmp/traefik-dashboard.yaml tasks: - name: Delete resources when VERIFY_TEARDOWN=1 when: verify_teardown == "1" ansible.builtin.shell: | set -e KUBECONFIG={{ k3s_kubeconfig }} kubectl delete -f {{ manifest_dest }} --ignore-not-found=true args: executable: /bin/bash changed_when: true