diff --git a/roles/advanced_cluster_management/defaults/main.yml b/roles/advanced_cluster_management/defaults/main.yml new file mode 100644 index 0000000..b5db985 --- /dev/null +++ b/roles/advanced_cluster_management/defaults/main.yml @@ -0,0 +1,2 @@ +--- +install_mode: '' diff --git a/roles/advanced_cluster_management/tasks/cleanup.yml b/roles/advanced_cluster_management/tasks/cleanup.yml new file mode 100644 index 0000000..98a9a0e --- /dev/null +++ b/roles/advanced_cluster_management/tasks/cleanup.yml @@ -0,0 +1,17 @@ +--- +- name: Clean up operand + kubernetes.core.k8s: + state: absent + api_version: operator.open-cluster-management.io/v1 + kind: MultiClusterHub + name: multiclusterhub + namespace: "open-cluster-management" + wait: true + wait_sleep: 30 + wait_timeout: 600 +- name: Delete open-cluster-management namespace + kubernetes.core.k8s: + name: open-cluster-management + api_version: v1 + kind: Namespace + state: absent diff --git a/roles/advanced_cluster_management/tasks/install.yml b/roles/advanced_cluster_management/tasks/install.yml new file mode 100644 index 0000000..2332b1b --- /dev/null +++ b/roles/advanced_cluster_management/tasks/install.yml @@ -0,0 +1,33 @@ +--- +- name: Install and report + block: + - name: Create open-cluster-management namespace + kubernetes.core.k8s: + name: open-cluster-management + api_version: v1 + kind: Namespace + state: present + - name: Create multiclusterhub CR in target_namespace and wait + kubernetes.core.k8s: + state: present + namespace: "open-cluster-management" + definition: + apiVersion: operator.open-cluster-management.io/v1 + kind: MultiClusterHub + metadata: + name: multiclusterhub + spec: + disableHubSelfManagement: true + availabilityConfig: Basic + wait: true + wait_condition: + reason: ComponentsAvailable + status: 'True' + type: Complete + wait_sleep: 30 + wait_timeout: 600 + register: acm_result + always: + - name: Report result + ansible.builtin.set_fact: + assessment_result: "{{ 'pass' if (acm_result.result.status.phase is defined and acm_result.result.status.phase == 'Running') else 'fail' }}" diff --git a/roles/advanced_cluster_management/tasks/main.yml b/roles/advanced_cluster_management/tasks/main.yml index f0ccf9d..e1a37cf 100644 --- a/roles/advanced_cluster_management/tasks/main.yml +++ b/roles/advanced_cluster_management/tasks/main.yml @@ -1,49 +1,12 @@ --- -- name: Install and report - block: - - name: Create open-cluster-management namespace - kubernetes.core.k8s: - name: open-cluster-management - api_version: v1 - kind: Namespace - state: present - - name: Create multiclusterhub CR in target_namespace and wait - kubernetes.core.k8s: - state: present - namespace: "open-cluster-management" - definition: - apiVersion: operator.open-cluster-management.io/v1 - kind: MultiClusterHub - metadata: - name: multiclusterhub - spec: - disableHubSelfManagement: true - availabilityConfig: Basic - wait: true - wait_condition: - reason: ComponentsAvailable - status: 'True' - type: Complete - wait_sleep: 30 - wait_timeout: 600 - register: acm_result - always: - - name: Report result - ansible.builtin.set_fact: - assessment_result: "{{ 'pass' if (acm_result.result.status.phase is defined and acm_result.result.status.phase == 'Running') else 'fail' }}" -- name: Clean up operand - kubernetes.core.k8s: - state: absent - api_version: operator.open-cluster-management.io/v1 - kind: MultiClusterHub - name: multiclusterhub - namespace: "open-cluster-management" - wait: true - wait_sleep: 30 - wait_timeout: 600 -- name: Delete open-cluster-management namespace - kubernetes.core.k8s: - name: open-cluster-management - api_version: v1 - kind: Namespace - state: absent +- name: Install and assess operand + ansible.builtin.include_tasks: install.yml + when: role_mode == 'install' or role_mode == '' + tags: + - install + +- name: Cleanup operator + ansible.builtin.include_tasks: cleanup.yml + when: role_mode == 'cleanup' or role_mode == '' + tags: + - cleanup