From 7ebad0a8164345ebf6b93b028ae7ef3b56ecabf4 Mon Sep 17 00:00:00 2001 From: Michal Jagiello Date: Wed, 2 Nov 2022 07:24:28 +0000 Subject: Release oom-automatic-installation Issue-ID: INT-2150 Signed-off-by: Michal Jagiello Change-Id: I8992f93e2b79f17c90d8f3c350891e8428ef3dcb --- roles/oom_clean/tasks/main.yaml | 151 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100644 roles/oom_clean/tasks/main.yaml (limited to 'roles/oom_clean/tasks/main.yaml') diff --git a/roles/oom_clean/tasks/main.yaml b/roles/oom_clean/tasks/main.yaml new file mode 100644 index 0000000..4f14200 --- /dev/null +++ b/roles/oom_clean/tasks/main.yaml @@ -0,0 +1,151 @@ +--- +- name: check helm version + command: "helm version --template {% raw %}'{{.Version}}'{% endraw %}" + register: helm_version + +# Return of previous command will be "v3.3.4" for v3 and up and "" +# for version 2. +- name: store helm version + ansible.builtin.set_fact: + helmv3: "{{ ('<' in helm_version.stdout) | ternary(false, true) }}" + +- name: "HELM 3 not installed - stop playbook" + ansible.builtin.fail: + msg: HELM 3 not installed + when: not helmv3 + +- name: "[HELM3] Remove previous installation" + include_tasks: helm3.yaml + when: helmv3 + +- name: get number of remaining pods + command: > + kubectl get pods --namespace {{ onap_namespace }} --no-headers + -o custom-columns=NAME:.metadata.name + changed_when: False + register: pods + +- name: delete remaining faulty pods + command: > + kubectl delete pods --namespace {{ onap_namespace }} --force + --grace-period 0 {{ item }} + loop: "{{ pods.stdout_lines }}" + when: (pods.stdout_lines | length) <= (faulty_pods | length) and + ((item | regex_replace('^[a-zA-Z0-9]+-') | + regex_replace('-[0-9a-z]+-[0-9a-z]+$')) in faulty_pods) + changed_when: True + +- name: get number of remaining jobs + command: > + kubectl get jobs --namespace {{ onap_namespace }} --no-headers + -o custom-columns=NAME:.metadata.name + changed_when: false + register: jobs + +- name: delete remaining faulty jobs + command: > + kubectl delete job --namespace {{ onap_namespace }} --force + --grace-period 0 {{ item }} + loop: "{{ jobs.stdout_lines }}" + +- name: get number of remaining pvcs + command: > + kubectl get pvc --namespace {{ onap_namespace }} --no-headers + -o custom-columns=NAME:.metadata.name + changed_when: false + register: pvcs + +- name: delete remaining faulty pvcs + command: > + kubectl delete pvc --namespace {{ onap_namespace }} --force + --grace-period 0 {{ item }} + loop: "{{ pvcs.stdout_lines }}" + +- name: check if namespace is for namespace full deletion + shell: | + set -o pipefail && kubectl get namespace {{ onap_namespace }} + -o jsonpath="{.status.phase}" || true + args: + executable: /bin/bash + register: ns_status + ignore_errors: yes + changed_when: False + +- name: delete onap namespace + community.kubernetes.k8s: + state: absent + definition: + apiVersion: v1 + kind: Namespace + metadata: + name: "{{ onap_namespace }}" + when: (not ns_status.failed) and ('Terminating' not in ns_status.stdout) + +- name: delete onap tests namespace + community.kubernetes.k8s: + state: absent + definition: + apiVersion: v1 + kind: Namespace + metadata: + name: "{{ onap_namespace }}-tests" + when: (not ns_status.failed) and ('Terminating' not in ns_status.stdout) + +- name: wait for namespace full deletion + shell: | + set -o pipefail && kubectl get namespace | + grep -c {{ onap_namespace }} || true + args: + executable: /bin/bash + register: kube + changed_when: + kube.stdout == '0' + until: + kube.stdout == '0' + retries: 600 + delay: 1 + +- name: list all remaining persistent volumes + shell: | + set -o pipefail && + kubectl get pv -o=jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' | + grep {{ chart_name }} || true + args: + executable: /bin/bash + register: persistent_volumes + changed_when: "false" + +- name: remove remaining persistent volumes + shell: | + set -o pipefail && kubectl delete pv {{ item }} || true + args: + executable: /bin/bash + changed_when: "true" + loop: "{{ persistent_volumes.stdout_lines }}" + +- name: "list all onap directories in {{ nfs_folder }}" + ansible.builtin.find: + paths: "{{ nfs_folder }}" + recurse: no + file_type: directory + register: onap_directories + +- name: "delete onap directory in {{ nfs_folder }}" + become: "yes" + ansible.builtin.file: + path: "{{ item.path }}" + state: absent + loop: "{{ onap_directories.files }}" + loop_control: + label: "{{ item.path }}" + +- name: delete component-gating-overrides.yaml if present + ansible.builtin.file: + path: "{{ override_gating_component }}" + state: absent + +- name: remove oom directory + become: "yes" + ansible.builtin.file: + path: "{{ oom_path }}" + state: absent -- cgit 1.2.3-korg