---
- name: Cilium
  block:
    - name: Cilium | Check if Cilium HelmChart exists
      kubernetes.core.k8s_info:
        kubeconfig: /etc/rancher/k3s/k3s.yaml
        name: cilium
        kind: HelmChart
        namespace: kube-system
      register: cilium_helmchart

    - name: Cilium | Wait for Cilium to rollout
      when: cilium_helmchart.resources | count > 0
      kubernetes.core.k8s_info:
        kubeconfig: /etc/rancher/k3s/k3s.yaml
        name: helm-install-cilium
        kind: Job
        namespace: kube-system
        wait: true
        wait_condition:
          type: Complete
          status: true
        wait_timeout: 360

    - name: Cilium | Patch the Cilium HelmChart to unmanage it
      when: cilium_helmchart.resources | count > 0
      kubernetes.core.k8s_json_patch:
        kubeconfig: /etc/rancher/k3s/k3s.yaml
        name: cilium
        kind: HelmChart
        namespace: kube-system
        patch:
          - op: add
            path: /metadata/annotations/helmcharts.helm.cattle.io~1unmanaged
            value: "true"

    - name: Cilium | Delete the Cilium HelmChart CR
      when: cilium_helmchart.resources | count > 0
      kubernetes.core.k8s:
        kubeconfig: /etc/rancher/k3s/k3s.yaml
        name: cilium
        kind: HelmChart
        namespace: kube-system
        state: absent

    - name: Cilium | Force delete the Cilium HelmChart
      when: cilium_helmchart.resources | count > 0
      kubernetes.core.k8s:
        kubeconfig: /etc/rancher/k3s/k3s.yaml
        name: cilium
        kind: HelmChart
        namespace: kube-system
        state: patched
        definition:
          metadata:
            finalizers: []