@@ -10,6 +10,7 @@ TRUSTEE_URL="${TRUSTEE_URL:-"http://kbs-service.trustee-operator-system:8080"}"
10
10
CMD_TIMEOUT=" ${CMD_TIMEOUT:- 2700} "
11
11
TDX_NODE_LABEL=' intel.feature.node.kubernetes.io/tdx: "true"'
12
12
SNP_NODE_LABEL=' amd.feature.node.kubernetes.io/snp: "true"'
13
+ DEFAULT_OSC_OPERATOR_CSV=sandboxed-containers-operator.v1.8.1
13
14
14
15
export PCCS_API_KEY=" ${PCCS_API_KEY:- } "
15
16
export PCCS_DB_NAME=" ${PCCS_DB_NAME:- database} "
@@ -19,6 +20,8 @@ export PCCS_USER_TOKEN="${PCCS_USER_TOKEN:-}"
19
20
PCCS_ADMIN_TOKEN=" ${PCCS_ADMIN_TOKEN:- } "
20
21
PCCS_PEM_CERT_PATH=" ${PCCS_PEM_CERT_PATH:- } "
21
22
23
+ OSC_OPERATOR_CSV=${OSC_OPERATOR_CSV:- $DEFAULT_OSC_OPERATOR_CSV }
24
+
22
25
# Function to check if a command is available
23
26
function check_command() {
24
27
local cmd=" $1 "
@@ -183,13 +186,47 @@ function wait_for_runtimeclass() {
183
186
return 1
184
187
}
185
188
189
+ # Function to approve installPlan tied to specific CSV to be available in specific namespace
190
+ approve_installplan_for_target_csv () {
191
+ local ns=" $1 "
192
+ local target_csv=" $2 "
193
+ local timeout=300
194
+ local interval=5
195
+ local elapsed=0
196
+
197
+ echo " Waiting for InstallPlan with CSV '$target_csv ' in namespace '$ns '..."
198
+
199
+ while [ $elapsed -lt " $timeout " ]; do
200
+ installplans=$( oc get installplan -n " $ns " -o jsonpath=' {.items[*].metadata.name}' 2> /dev/null)
201
+ for ip in $installplans ; do
202
+ csvs=$( oc get installplan " $ip " -n " $ns " -o jsonpath=" {.spec.clusterServiceVersionNames[*]}" 2> /dev/null)
203
+ for csv in $csvs ; do
204
+ if [ " $csv " == " $target_csv " ]; then
205
+ echo " Found matching InstallPlan: $ip "
206
+ echo " Approving InstallPlan: $ip "
207
+ oc patch installplan " $ip " -n " $ns " -p ' {"spec":{"approved":true}}' --type merge || return 1
208
+ return 0
209
+ fi
210
+ done
211
+ done
212
+ sleep $interval
213
+ elapsed=$(( elapsed + interval))
214
+ done
215
+
216
+ echo " Timed out waiting for InstallPlan with CSV '$target_csv ' in namespace '$ns '"
217
+ return 1
218
+ }
219
+
186
220
# Function to apply the operator manifests
187
221
function apply_operator_manifests() {
222
+ local installplan=" "
223
+
188
224
# Apply the manifests
189
225
oc apply -f ns.yaml || return 1
190
226
oc apply -f og.yaml || return 1
191
227
if [[ " $GA_RELEASE " == " true" ]]; then
192
228
oc apply -f subs-ga.yaml || return 1
229
+ approve_installplan_for_target_csv openshift-sandboxed-containers-operator " $OSC_OPERATOR_CSV " || return 1
193
230
else
194
231
oc apply -f osc_catalog.yaml || return 1
195
232
oc apply -f subs-upstream.yaml || return 1
0 commit comments