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