123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- ---
- # Ensures all the operator artifacts are created and waits for CSV to succeed.
- #
- # The following variables must exist:
- #
- # removed_operators: a list of below dictionaries
- # - sub_nspc subscription namespace
- # sub_name subscription name
- # csv_name CSV name to check for
- # pre_cleanup pre-cleanup tasks, a list of rtypes to remove (ALL)
- # - apiv api version
- # kind resource kind
- # nspc namespace (required for namespaced resources)
- # wait_for_gone whether to wait for the resource to disappear
- # wait_for_sec how long (in seconds) to wait for gone
- # add_cleanup additional CRDs to remove post-uninstall, a list of
- # - name crd name, OR
- # label crd label, in case both are defined, both are used
- #
- # This role must then be applied as:
- #
- # - include_role:
- # name: remove-operators
- # loop: "{{ removed_operators }}"
- # loop_control:
- # loop_var: role
- #
- # What this means is that each item of removed_operators is expected to be
- # placed in the "role" variable prior to iterating over this role.
- #
- # Must include tasks because you can't loop over a block.
- - name: Remove any of the resources found from pre_cleanup
- include_tasks: tasks/pre-cleanup.yml
- loop: "{{ role.pre_cleanup }}"
- loop_control:
- label: "{{ item.kind }}.{{ item.apiv }}"
- - name: Remove the subscription
- k8s:
- kubeconfig: tmp/kubeconfig-ocp4
- validate_certs: no
- api_version: operators.coreos.com/v1alpha1
- kind: subscription
- name: "{{ role.sub_name }}"
- namespace: "{{ role.sub_nspc }}"
- state: absent
- ignore_errors: yes
- - name: Remove the CSV as well, if so required
- k8s:
- kubeconfig: tmp/kubeconfig-ocp4
- validate_certs: no
- api_version: operators.coreos.com/v1alpha1
- kind: clusterserviceversion
- name: "{{ role.csv_name }}"
- namespace: "{{ role.sub_nspc }}"
- state: absent
- ignore_errors: yes
- when: role.csv_kill
- - name: Do post-cleanup
- k8s:
- kubeconfig: tmp/kubeconfig-ocp4
- validate_certs: no
- api_version: apiextensions.k8s.io/v1
- kind: customresourcedefinition
- name: "{{ item.name | default(omit) }}"
- label_selectors:
- - "{{ item.label | default(omit) }}"
- state: absent
- ignore_errors: yes
- loop: "{{ role.add_cleanup }}"
- - name: Lastly, remove the namespace, if instructed
- k8s:
- kubeconfig: tmp/kubeconfig-ocp4
- validate_certs: no
- api_version: v1
- kind: namespace
- name: "{{ role.sub_nspc }}"
- state: absent
- ignore_errors: yes
- when: role.nsp_kill
- ...
|