Skip to content

Commit 03b744a

Browse files
committed
Workaround for clusters hibernated more than 24 hours
1 parent 6f2eead commit 03b744a

File tree

1 file changed

+87
-0
lines changed

1 file changed

+87
-0
lines changed

integration-tests/pipelines/rhtap-cli-e2e_hive.yaml

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,93 @@ spec:
119119
admin_pass_secret=$(oc get clusterdeployment -n $cp_namespace $cp_namespace -o jsonpath={.spec.clusterMetadata.adminPasswordSecretRef.name})
120120
kubeadminpass=$(oc get secret $admin_pass_secret -n $cp_namespace -o jsonpath={.data.password} |base64 -d)
121121
echo "oc login --insecure-skip-tls-verify=true $api_url -u kubeadmin -p $kubeadminpass" > $(step.results.ocp-login-command.path)
122+
123+
export KUBECONFIG=/tmp/kube.config
124+
kubeconfig_secret=$(oc get clusterdeployment -n $cp_namespace $cp_namespace -o jsonpath={.spec.clusterMetadata.adminKubeconfigSecretRef.name})
125+
oc get secret -n $cp_namespace $kubeconfig_secret -o jsonpath={.data.kubeconfig} |base64 -d > $KUBECONFIG
126+
127+
csr_max_retries=5
128+
csr_sleep_duration=10
129+
approved_csrs=false
130+
131+
console_max_retries=30
132+
console_sleep_duration=10
133+
console_connect_timeout=10
134+
console_accessible=false
135+
136+
echo "--- Starting CSR Approval Process ---"
137+
for ((i=1; i<=csr_max_retries; i++)); do
138+
echo "CSR Attempt $i of $csr_max_retries: Checking for pending CSRs..."
139+
if ! oc get csr 2>/dev/null | grep -i Pending; then
140+
echo "No pending CSRs found. Continuing"
141+
approved_csrs=true
142+
break
143+
else
144+
echo "There are pending CSRs. That probably means cluster was hibernated for more than 24 hours. Need to approve them (until OCPBUGS-55339 is resolved)"
145+
if oc get csr -oname | xargs oc adm certificate approve; then
146+
echo "Successfully submitted approval for CSRs on attempt $i."
147+
sleep 2 # Small delay for changes to propagate
148+
if ! oc get csr 2>/dev/null | grep -i Pending; then
149+
echo "Confirmed no pending CSRs after approval."
150+
approved_csrs=true
151+
break
152+
else
153+
echo "Pending CSRs still exist after approval attempt $i."
154+
fi
155+
else
156+
echo "Failed to run approval command for CSRs on attempt $i."
157+
fi
158+
fi
159+
160+
if [[ "$i" -lt "$csr_max_retries" ]]; then
161+
echo "Sleeping for $csr_sleep_duration seconds before next CSR retry..."
162+
sleep "$csr_sleep_duration"
163+
fi
164+
done
165+
166+
if [[ "$approved_csrs" == "true" ]]; then
167+
echo "CSR check and approval process completed successfully."
168+
else
169+
echo "Failed to ensure all pending CSRs were approved after $csr_max_retries attempts."
170+
exit 1
171+
fi
172+
echo "--- CSR Approval Process Finished ---"
173+
174+
# --- Console URL Accessibility Check ---
175+
echo "--- Starting Console Accessibility Check ---"
176+
177+
console_url="https://$(oc get route console -n openshift-console -o jsonpath='{.spec.host}' 2>/dev/null)"
178+
179+
if [[ -z "$console_url" ]]; then
180+
echo "Error: Could not retrieve OpenShift console URL."
181+
exit 1
182+
else
183+
echo "Console URL found: $console_url"
184+
for ((j=1; j<=console_max_retries; j++)); do
185+
echo "Console Check Attempt $j of $console_max_retries: Checking console URL accessibility..."
186+
if curl -k --silent --output /dev/null --head --fail --connect-timeout "$console_connect_timeout" "$console_url"; then
187+
echo "Console URL $console_url is accessible (HTTP 2xx)."
188+
console_accessible=true
189+
break
190+
else
191+
curl_exit_code=$?
192+
echo "Console URL $console_url not accessible on attempt $j (curl exit code: $curl_exit_code)."
193+
fi
194+
195+
if [[ "$j" -lt "$console_max_retries" ]]; then
196+
echo "Sleeping for $console_sleep_duration seconds before next console check retry..."
197+
sleep "$console_sleep_duration"
198+
fi
199+
done
200+
201+
if [[ "$console_accessible" == "true" ]]; then
202+
echo "Console is ready. Continuing."
203+
else
204+
echo "Failed to access console URL $console_url after $console_max_retries attempts."
205+
exit 1
206+
fi
207+
fi
208+
echo "--- Console Accessibility Check Finished ---"
122209
- name: rhtap-install
123210
runAfter:
124211
- provision-cluster

0 commit comments

Comments
 (0)