k8s/roles/cert_manager/tasks/helm.yml
mrwho a33f75a7a2 ci(cert_manager): decouple helm repository management from idempotency checks
Remove custom changed/failed logic for helm repo add and separate repo update step, improving playbook reliability by relying on helm's built-in idempotency and reducing false positives during dry-run execution
2026-07-19 16:09:33 +03:00

53 lines
1.9 KiB
YAML

---
- name: Helm | Add Jetstack chart repository
ansible.builtin.command: helm repo add jetstack https://jetstack.io
environment:
KUBECONFIG: "{{ cert_manager_kubeconfig }}"
PATH: "/usr/local/bin:/usr/bin:/bin"
register: _helm_repo_add
changed_when: false
failed_when: _helm_repo_add.rc != 0 and 'already exists' not in _helm_repo_add.stderr
- name: Helm | Update chart repositories
ansible.builtin.command: helm repo update
environment:
KUBECONFIG: "{{ cert_manager_kubeconfig }}"
PATH: "/usr/local/bin:/usr/bin:/bin"
changed_when: false
- name: Helm | Install or upgrade cert-manager CRDs
ansible.builtin.command: >
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/{{ cert_manager_crds_version }}/cert-manager.crds.yaml
environment:
KUBECONFIG: "{{ cert_manager_kubeconfig }}"
PATH: "/usr/local/bin:/usr/bin:/bin"
register: _cert_manager_crds
changed_when: false
failed_when: _cert_manager_crds.rc != 0
- name: Helm | Update repositories
ansible.builtin.command: helm repo update
environment:
KUBECONFIG: "{{ cert_manager_kubeconfig }}"
PATH: "/usr/local/bin:/usr/bin:/bin"
changed_when: false
- name: Helm | Install or upgrade cert-manager
ansible.builtin.command: >
helm upgrade --install cert-manager jetstack/cert-manager
--namespace {{ cert_manager_namespace }}
--create-namespace
{% if cert_manager_chart_version is defined and cert_manager_chart_version | length > 0 %}
--version {{ cert_manager_chart_version }}
{% endif %}
{% if cert_manager_args is defined and cert_manager_args | length > 0 %}
--set args[0]={{ cert_manager_args[0] }}
{% endif %}
--timeout 10m0s
--wait
environment:
KUBECONFIG: "{{ cert_manager_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"