diff --git a/ods_ci/tasks/Resources/RHODS_OLM/install/oc_install.robot b/ods_ci/tasks/Resources/RHODS_OLM/install/oc_install.robot index da197c791..e20d35f0a 100644 --- a/ods_ci/tasks/Resources/RHODS_OLM/install/oc_install.robot +++ b/ods_ci/tasks/Resources/RHODS_OLM/install/oc_install.robot @@ -293,23 +293,33 @@ Install Kserve Dependencies Set Suite Variable ${FILES_RESOURCES_DIRPATH} tests/Resources/Files Set Suite Variable ${SUBSCRIPTION_YAML_TEMPLATE_FILEPATH} ${FILES_RESOURCES_DIRPATH}/isv-operator-subscription.yaml Set Suite Variable ${OPERATORGROUP_YAML_TEMPLATE_FILEPATH} ${FILES_RESOURCES_DIRPATH}/isv-operator-group.yaml - Install ISV Operator From OperatorHub Via CLI operator_name=${SERVICEMESH_OP_NAME} - ... subscription_name=${SERVICEMESH_SUB_NAME} - ... catalog_source_name=redhat-operators - Wait Until Operator Subscription Last Condition Is - ... type=CatalogSourcesUnhealthy status=False - ... reason=AllCatalogSourcesHealthy subcription_name=${SERVICEMESH_SUB_NAME} - ${rc} ${out}= Run And Return Rc And Output oc create namespace ${SERVERLESS_NS} - Install ISV Operator From OperatorHub Via CLI operator_name=${SERVERLESS_OP_NAME} - ... namespace=${SERVERLESS_NS} - ... subscription_name=${SERVERLESS_SUB_NAME} - ... catalog_source_name=redhat-operators - ... operator_group_name=serverless-operators - ... operator_group_ns=${SERVERLESS_NS} - ... operator_group_target_ns=${NONE} - Wait For Pods To Be Ready label_selector=name=knative-openshift - ... namespace=${SERVERLESS_NS} - Wait For Pods To Be Ready label_selector=name=knative-openshift-ingress - ... namespace=${SERVERLESS_NS} - Wait For Pods To Be Ready label_selector=name=knative-operator - ... namespace=${SERVERLESS_NS} + ${is_installed}= Check If Operator Is Installed Via CLI servicemeshoperators + IF not ${is_installed} + Install ISV Operator From OperatorHub Via CLI operator_name=${SERVICEMESH_OP_NAME} + ... subscription_name=${SERVICEMESH_SUB_NAME} + ... catalog_source_name=redhat-operators + Wait Until Operator Subscription Last Condition Is + ... type=CatalogSourcesUnhealthy status=False + ... reason=AllCatalogSourcesHealthy subcription_name=${SERVICEMESH_SUB_NAME} + ELSE + Log To Console message=ServiceMesh Operator is already installed + END + ${is_installed}= Check If Operator Is Installed Via CLI serverless-operators + IF not ${is_installed} + ${rc} ${out}= Run And Return Rc And Output oc create namespace ${SERVERLESS_NS} + Install ISV Operator From OperatorHub Via CLI operator_name=${SERVERLESS_OP_NAME} + ... namespace=${SERVERLESS_NS} + ... subscription_name=${SERVERLESS_SUB_NAME} + ... catalog_source_name=redhat-operators + ... operator_group_name=serverless-operators + ... operator_group_ns=${SERVERLESS_NS} + ... operator_group_target_ns=${NONE} + Wait For Pods To Be Ready label_selector=name=knative-openshift + ... namespace=${SERVERLESS_NS} + Wait For Pods To Be Ready label_selector=name=knative-openshift-ingress + ... namespace=${SERVERLESS_NS} + Wait For Pods To Be Ready label_selector=name=knative-operator + ... namespace=${SERVERLESS_NS} + ELSE + Log To Console message=Serverless Operator is already installed + END diff --git a/ods_ci/tests/Resources/Page/Operators/ISVs.resource b/ods_ci/tests/Resources/Page/Operators/ISVs.resource index e2adffc24..e4d76f7cd 100644 --- a/ods_ci/tests/Resources/Page/Operators/ISVs.resource +++ b/ods_ci/tests/Resources/Page/Operators/ISVs.resource @@ -128,3 +128,15 @@ Uninstall ISV Operator From OperatorHub Via CLI ... oc get subscription ${subscription_name} -n ${namespace} -ojson | jq '.status.currentCSV' | tr -d '"' # robocop: disable Oc Delete kind=Subscription name=${subscription_name} namespace=${namespace} Oc Delete kind=ClusterServiceVersion name=${current_csv_name} namespace=${namespace} + +Check If Operator Is Installed Via CLI + [Documentation] Check If Operator Is Installed Via CLI and Return the Status + [Arguments] ${operator_name} + ${rc} ${out}= Run And Return Rc And Output + ... oc get subscriptions.operators.coreos.com --all-namespaces -o custom-columns="PACKAGE:.spec.name" | awk '$1 == "${operator_name}"' # robocop: disable + ${status} Run Keyword And Return Status Should Not Be Empty ${out} + IF ${status} + RETURN True + ELSE + RETURN False + END