--- - name: Helm | Add Traefik chart repository ansible.builtin.command: helm repo add traefik https://traefik.github.io/charts environment: KUBECONFIG: "{{ traefik_kubeconfig }}" PATH: "/usr/local/bin:/usr/bin:/bin" register: _helm_repo_add changed_when: "'already exists' not in _helm_repo_add.stdout" failed_when: _helm_repo_add.rc != 0 and 'already exists' not in _helm_repo_add.stdout - name: Helm | Update chart repositories ansible.builtin.command: helm repo update environment: KUBECONFIG: "{{ traefik_kubeconfig }}" PATH: "/usr/local/bin:/usr/bin:/bin" changed_when: false when: never is true | default(false) - name: Helm | Render Traefik values ansible.builtin.template: src: traefik-values.yml.j2 dest: /tmp/traefik-values.yml mode: "0600" - name: Helm | Install or upgrade Traefik ansible.builtin.command: > helm upgrade --install traefik traefik/traefik --namespace {{ traefik_namespace }} --create-namespace --version {{ traefik_chart_version }} --values /tmp/traefik-values.yml environment: KUBECONFIG: "{{ traefik_kubeconfig }}" PATH: "/usr/local/bin:/usr/bin:/bin" register: _helm_install changed_when: "'STATUS: deployed' in _helm_install.stdout or 'has been upgraded' in _helm_install.stdout" - name: Helm | Force rollout restart to apply new hostPorts ansible.builtin.command: > kubectl rollout restart daemonset/traefik -n {{ traefik_namespace }} environment: KUBECONFIG: "{{ traefik_kubeconfig }}" PATH: "/usr/local/bin:/usr/bin:/bin" when: _helm_install.changed - name: Helm | Wait for Traefik rollout to complete ansible.builtin.command: > kubectl rollout status daemonset/traefik -n {{ traefik_namespace }} --timeout=120s environment: KUBECONFIG: "{{ traefik_kubeconfig }}" PATH: "/usr/local/bin:/usr/bin:/bin" when: _helm_install.changed