|
55 | 55 | ansible.builtin.command: |
56 | 56 | cmd: "oc apply -f {{ [ ansible_user_dir, 'ci-framework-data', 'tmp', 'rhsso-operator-olm.yaml' ] | path_join }}" |
57 | 57 |
|
58 | | -- name: Wait for the rhsso install plan to be present |
| 58 | +- name: Check rhsso operator CSV status |
59 | 59 | kubernetes.core.k8s_info: |
| 60 | + kubeconfig: "{{ cifmw_openshift_kubeconfig }}" |
60 | 61 | api_version: operators.coreos.com/v1alpha1 |
61 | | - kind: InstallPlan |
62 | | - namespace: "{{ cifmw_federation_operator_namespace }}" |
| 62 | + kind: ClusterServiceVersion |
| 63 | + namespace: "{{ item }}" |
63 | 64 | label_selectors: |
64 | | - - "operators.coreos.com/rhsso-operator.{{ cifmw_federation_operator_namespace }}" |
65 | | - register: ip_list |
66 | | - until: >- |
67 | | - ip_list.resources | |
68 | | - selectattr('metadata.labels', 'defined') | |
69 | | - map(attribute='metadata.labels') | |
70 | | - map('dict2items') | |
71 | | - flatten | |
72 | | - selectattr('key', 'match', '.*rhsso-operator.*') | |
73 | | - list | length > 0 |
74 | | - retries: 30 |
75 | | - delay: 40 |
76 | | - |
77 | | -- name: Get rhsso install plan name |
| 65 | + - operators.coreos.com/rhsso-operator.default=true |
| 66 | + register: _rhsso_csv_checks |
| 67 | + loop: |
| 68 | + - default |
| 69 | + - "{{ cifmw_federation_keycloak_namespace }}" |
| 70 | + failed_when: false |
| 71 | + |
| 72 | +- name: Set rhsso operator already installed fact |
78 | 73 | ansible.builtin.set_fact: |
79 | | - _rhsso_ip_name: "{{ item.metadata.name }}" |
80 | | - _rhsso_ip_namespace: "{{ item.metadata.namespace }}" |
81 | | - loop: >- |
82 | | - {{ |
83 | | - ip_list.resources | |
84 | | - selectattr('metadata.labels', 'defined') | |
85 | | - list |
86 | | - }} |
87 | | - when: >- |
88 | | - item.metadata.labels | dict2items | |
89 | | - selectattr('key', 'match', '.*rhsso-operator.*') | |
90 | | - list | length > 0 |
91 | | - loop_control: |
92 | | - label: "{{ item.metadata.name }}" |
93 | | - |
94 | | -- name: Approve rhsso operator install plan |
95 | | - kubernetes.core.k8s: |
96 | | - kubeconfig: "{{ cifmw_openshift_kubeconfig }}" |
97 | | - api_version: operators.coreos.com/v1alpha1 |
98 | | - kind: InstallPlan |
99 | | - name: "{{ _rhsso_ip_name }}" |
100 | | - namespace: "{{ _rhsso_ip_namespace }}" |
101 | | - definition: |
102 | | - spec: |
103 | | - approved: true |
| 74 | + _rhsso_operator_installed: >- |
| 75 | + {{ |
| 76 | + ( |
| 77 | + _rhsso_csv_checks.results | |
| 78 | + default([]) | |
| 79 | + map(attribute='resources') | |
| 80 | + flatten | |
| 81 | + selectattr('status.phase', 'defined') | |
| 82 | + selectattr('status.phase', 'equalto', 'Succeeded') | |
| 83 | + list | length |
| 84 | + ) > 0 |
| 85 | + }} |
| 86 | +
|
| 87 | +- name: Install and approve rhsso operator when not already installed |
| 88 | + when: not _rhsso_operator_installed |
| 89 | + block: |
| 90 | + - name: Wait for the rhsso install plan to be present |
| 91 | + kubernetes.core.k8s_info: |
| 92 | + kubeconfig: "{{ cifmw_openshift_kubeconfig }}" |
| 93 | + api_version: operators.coreos.com/v1alpha1 |
| 94 | + kind: InstallPlan |
| 95 | + namespace: default |
| 96 | + register: ip_list |
| 97 | + until: >- |
| 98 | + ip_list.resources | |
| 99 | + selectattr('metadata.labels', 'defined') | |
| 100 | + map(attribute='metadata.labels') | |
| 101 | + map('dict2items') | |
| 102 | + flatten | |
| 103 | + selectattr('key', 'match', '.*rhsso-operator.*') | |
| 104 | + list | length > 0 |
| 105 | + retries: 30 |
| 106 | + delay: 40 |
| 107 | + |
| 108 | + - name: Get unapproved rhsso install plan name |
| 109 | + ansible.builtin.set_fact: |
| 110 | + _rhsso_ip_name: "{{ item.metadata.name }}" |
| 111 | + _rhsso_ip_namespace: "{{ item.metadata.namespace }}" |
| 112 | + loop: >- |
| 113 | + {{ |
| 114 | + ip_list.resources | |
| 115 | + selectattr('metadata.labels', 'defined') | |
| 116 | + list |
| 117 | + }} |
| 118 | + when: |
| 119 | + - >- |
| 120 | + item.metadata.labels | dict2items | |
| 121 | + selectattr('key', 'match', '.*rhsso-operator.*') | |
| 122 | + list | length > 0 |
| 123 | + - not (item.spec.approved | default(false) | bool) |
| 124 | + loop_control: |
| 125 | + label: "{{ item.metadata.name }}" |
| 126 | + |
| 127 | + - name: Approve rhsso operator install plan |
| 128 | + when: _rhsso_ip_name is defined |
| 129 | + kubernetes.core.k8s: |
| 130 | + kubeconfig: "{{ cifmw_openshift_kubeconfig }}" |
| 131 | + api_version: operators.coreos.com/v1alpha1 |
| 132 | + kind: InstallPlan |
| 133 | + name: "{{ _rhsso_ip_name }}" |
| 134 | + namespace: "{{ _rhsso_ip_namespace }}" |
| 135 | + definition: |
| 136 | + spec: |
| 137 | + approved: true |
104 | 138 |
|
105 | 139 | - name: Add sso admin user secret |
106 | 140 | kubernetes.core.k8s: |
|
0 commit comments