diff --git a/openshift/tests-extension/.openshift-tests-extension/openshift_payload_olmv1.json b/openshift/tests-extension/.openshift-tests-extension/openshift_payload_olmv1.json index 6229899069..1edaca4afe 100644 --- a/openshift/tests-extension/.openshift-tests-extension/openshift_payload_olmv1.json +++ b/openshift/tests-extension/.openshift-tests-extension/openshift_payload_olmv1.json @@ -1,599 +1,531 @@ [ { - "name": "[sig-olmv1][Jira:OLM] cluster-olm-operator PolarionID:80078-[OTP]Downstream feature gate promotion mechanics", - "originalName": "[sig-olmv1][Jira:OLM] cluster-olm-operator PolarionID:80078-Downstream feature gate promotion mechanics", - "labels": { - "Extended": {}, - "NonHyperShiftHOST": {}, - "original-name:[sig-olmv1][Jira:OLM] cluster-olm-operator PolarionID:80078-Downstream feature gate promotion mechanics": {} - }, + "name": "[sig-olmv1][OCPFeatureGate:NewOLMBoxCutterRuntime] OLMv1 Boxcutter runtime should install a cluster extension via the Boxcutter runtime", + "labels": {}, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] cluster-olm-operator PolarionID:78393-[OTP][Skipped:Disconnected]support metrics", - "labels": { - "Extended": {}, - "NonHyperShiftHOST": {} - }, + "name": "[sig-olmv1][OCPFeatureGate:NewOLMBoxCutterRuntime] OLMv1 Boxcutter runtime should report active revisions in the ClusterExtension status after installation", + "labels": {}, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] cluster-olm-operator PolarionID:79770-[OTP][Level0]metrics are collected by default", - "labels": { - "Extended": {}, - "NonHyperShiftHOST": {} - }, + "name": "[sig-olmv1][OCPFeatureGate:NewOLMBoxCutterRuntime] OLMv1 Boxcutter runtime should label managed resources with OLM ownership metadata", + "labels": {}, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] cluster-olm-operator PolarionID:75877-[OTP]Make sure that rukpak is removed from payload", - "labels": { - "Extended": {}, - "NonHyperShiftHOST": {} + "name": "[sig-olmv1][OCPFeatureGate:NewOLMBoxCutterRuntime] OLMv1 Boxcutter runtime should clean up managed resources when a cluster extension is deleted", + "labels": {}, + "resources": { + "isolation": {} }, + "source": "openshift:payload:olmv1", + "lifecycle": "blocking", + "environmentSelector": {} + }, + { + "name": "[sig-olmv1][OCPFeatureGate:NewOLMBoxCutterRuntime] OLMv1 Boxcutter runtime should successfully reinstall a cluster extension after deletion", + "labels": {}, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:69242-[OTP][Skipped:Disconnected]Catalogd deprecated package bundlemetadata catalogmetadata from clustercatalog CR", - "originalName": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:69242-[Skipped:Disconnected]Catalogd deprecated package bundlemetadata catalogmetadata from clustercatalog CR", - "labels": { - "ClusterCatalog": {}, - "Extended": {}, - "NonHyperShiftHOST": {}, - "original-name:[sig-olmv1][Jira:OLM] clustercatalog PolarionID:69242-[Skipped:Disconnected]Catalogd deprecated package bundlemetadata catalogmetadata from clustercatalog CR": {} + "name": "[sig-olmv1][OCPFeatureGate:NewOLM][Skipped:Disconnected] OLMv1 Catalogs should be installed", + "labels": {}, + "resources": { + "isolation": {} }, + "source": "openshift:payload:olmv1", + "lifecycle": "blocking", + "environmentSelector": {} + }, + { + "name": "[sig-olmv1][OCPFeatureGate:NewOLM][Skipped:Disconnected] OLMv1 openshift-community-operators Catalog should serve FBC via the /v1/api/all endpoint", + "labels": {}, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:80458-[OTP][Level0][Skipped:Disconnected]clustercatalog get x509 error since it cannot get the custom CA automatically [Serial]", - "originalName": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:80458-[Skipped:Disconnected]clustercatalog get x509 error since it cannot get the custom CA automatically [Serial]", - "labels": { - "ClusterCatalog": {}, - "Extended": {}, - "NonHyperShiftHOST": {}, - "original-name:[sig-olmv1][Jira:OLM] clustercatalog PolarionID:80458-[Skipped:Disconnected]clustercatalog get x509 error since it cannot get the custom CA automatically [Serial]": {} + "name": "[sig-olmv1][OCPFeatureGate:NewOLM][Skipped:Disconnected] OLMv1 openshift-certified-operators Catalog should serve FBC via the /v1/api/all endpoint", + "labels": {}, + "resources": { + "isolation": {} }, + "source": "openshift:payload:olmv1", + "lifecycle": "blocking", + "environmentSelector": {} + }, + { + "name": "[sig-olmv1][OCPFeatureGate:NewOLM][Skipped:Disconnected] OLMv1 openshift-redhat-operators Catalog should serve FBC via the /v1/api/all endpoint", + "labels": {}, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:77413-[OTP][Level0][Skipped:Disconnected]Check if ClusterCatalog is in Serving properly", - "labels": { - "ClusterCatalog": {}, - "Extended": {}, - "NonHyperShiftHOST": {} + "name": "[sig-olmv1][OCPFeatureGate:NewOLMCatalogdAPIV1Metas][Skipped:Disconnected] OLMv1 openshift-community-operators Catalog should serve FBC via the /v1/api/metas endpoint", + "labels": {}, + "resources": { + "isolation": {} }, + "source": "openshift:payload:olmv1", + "lifecycle": "blocking", + "environmentSelector": {} + }, + { + "name": "[sig-olmv1][OCPFeatureGate:NewOLMCatalogdAPIV1Metas][Skipped:Disconnected] OLMv1 openshift-certified-operators Catalog should serve FBC via the /v1/api/metas endpoint", + "labels": {}, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:69123-[OTP][Skipped:Disconnected]Catalogd clustercatalog offer the operator content through http server", - "labels": { - "ClusterCatalog": {}, - "Extended": {}, - "NonHyperShiftHOST": {} + "name": "[sig-olmv1][OCPFeatureGate:NewOLMCatalogdAPIV1Metas][Skipped:Disconnected] OLMv1 openshift-redhat-operators Catalog should serve FBC via the /v1/api/metas endpoint", + "labels": {}, + "resources": { + "isolation": {} }, + "source": "openshift:payload:olmv1", + "lifecycle": "blocking", + "environmentSelector": {} + }, + { + "name": "[sig-olmv1][OCPFeatureGate:NewOLM][Skipped:Disconnected] OLMv1 New Catalog Install should fail to install if it has an invalid reference", + "labels": {}, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:69069-[OTP][Skipped:Disconnected]Replace pod-based image unpacker with an image registry client", - "labels": { - "ClusterCatalog": {}, - "Extended": {}, - "NonHyperShiftHOST": {} + "name": "[sig-olmv1][OCPFeatureGate:NewOLM][Skipped:Disconnected][Serial] OLMv1 ClusterExtension behavior after selected catalog removal should keep Installed=True and report Progressing=True/Succeeded when the selected catalog is removed", + "labels": {}, + "resources": { + "isolation": {} }, + "source": "openshift:payload:olmv1", + "lifecycle": "blocking", + "environmentSelector": {} + }, + { + "name": "[sig-olmv1][OCPFeatureGate:NewOLM][Skipped:Disconnected][Serial] OLMv1 ClusterExtension behavior after selected catalog removal should keep Installed=True when package source is removed by deleting the selected catalog", + "labels": {}, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:69869-[OTP][Skipped:Disconnected]Catalogd Add metrics to the Storage implementation", + "name": "[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should apply environment variables from deploymentConfig to operator deployment containers", + "originalName": "[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should apply environment variables from deploymentConfig to operator deployment containers", "labels": { - "ClusterCatalog": {}, - "Extended": {}, - "NonHyperShiftHOST": {} + "original-name:[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should apply environment variables from deploymentConfig to operator deployment containers": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:69202-[OTP][Skipped:Disconnected][Skipped:Proxy]Catalogd clustercatalog offer the operator content through http server off cluster", + "name": "[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should apply resource requirements from deploymentConfig to operator deployment containers", + "originalName": "[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should apply resource requirements from deploymentConfig to operator deployment containers", "labels": { - "ClusterCatalog": {}, - "Extended": {}, - "NonHyperShiftHOST": {} + "original-name:[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should apply resource requirements from deploymentConfig to operator deployment containers": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:85889-[OTP][Skipped:Disconnected]Validate catalogd content via port-forward [Serial]", + "name": "[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should apply tolerations from deploymentConfig to operator deployment pods", + "originalName": "[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should apply tolerations from deploymentConfig to operator deployment pods", "labels": { - "ClusterCatalog": {}, - "Extended": {}, - "NonHyperShiftHOST": {} + "original-name:[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should apply tolerations from deploymentConfig to operator deployment pods": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:73219-[OTP][Skipped:Disconnected]Fetch deprecation data from the catalogd http server", + "name": "[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should apply node selector from deploymentConfig to operator deployment pods", + "originalName": "[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should apply node selector from deploymentConfig to operator deployment pods", "labels": { - "ClusterCatalog": {}, - "Extended": {}, - "NonHyperShiftHOST": {} + "original-name:[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should apply node selector from deploymentConfig to operator deployment pods": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:75441-[OTP][Skipped:Disconnected]Catalogd supports compression and jsonlines format", + "name": "[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should reach a terminal blocked state when deploymentConfig.env has an invalid type", + "originalName": "[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should reach a terminal blocked state when deploymentConfig.env has an invalid type", "labels": { - "ClusterCatalog": {}, - "Extended": {}, - "NonHyperShiftHOST": {} + "original-name:[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should reach a terminal blocked state when deploymentConfig.env has an invalid type": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:73289-[OTP][Skipped:Disconnected]Check the deprecation conditions and messages", + "name": "[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should reach a terminal blocked state when deploymentConfig contains an unknown field", + "originalName": "[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should reach a terminal blocked state when deploymentConfig contains an unknown field", "labels": { - "ClusterCatalog": {}, - "Extended": {}, - "NonHyperShiftHOST": {} + "original-name:[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should reach a terminal blocked state when deploymentConfig contains an unknown field": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:74948-[OTP][Skipped:Disconnected]catalog offer the operator content through https server", + "name": "[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should apply annotations from deploymentConfig to operator deployment and its pod template", + "originalName": "[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should apply annotations from deploymentConfig to operator deployment and its pod template", "labels": { - "ClusterCatalog": {}, - "Extended": {}, - "NonHyperShiftHOST": {} + "original-name:[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should apply annotations from deploymentConfig to operator deployment and its pod template": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:74978-[OTP][Level0][Skipped:Disconnected]CRD upgrade will be prevented if the Scope is switched between Namespaced and Cluster", + "name": "[sig-olmv1][OCPFeatureGate:NewOLM] OLMv1 operator installation should block cluster upgrades if an incompatible operator is installed", + "originalName": "[sig-olmv1][OCPFeatureGate:NewOLM][Skipped:Disconnected] OLMv1 operator installation should block cluster upgrades if an incompatible operator is installed", "labels": { - "ClusterCatalog": {}, - "Extended": {}, - "NonHyperShiftHOST": {} + "original-name:[sig-olmv1][OCPFeatureGate:NewOLM][Skipped:Disconnected] OLMv1 operator installation should block cluster upgrades if an incompatible operator is installed": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:75218-[OTP][Skipped:Disconnected]Disabling the CRD Upgrade Safety preflight checks", - "labels": { - "ClusterCatalog": {}, - "Extended": {}, - "NonHyperShiftHOST": {} - }, + "name": "[sig-olmv1][OCPFeatureGate:NewOLMPreflightPermissionChecks][Skipped:Disconnected] OLMv1 operator preflight checks should report error when {services} are not specified", + "labels": {}, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:75122-[OTP][Skipped:Disconnected]CRD upgrade check Removing an existing stored version and add a new CRD with no modifications to existing versions", - "labels": { - "ClusterCatalog": {}, - "Extended": {}, - "NonHyperShiftHOST": {} + "name": "[sig-olmv1][OCPFeatureGate:NewOLMPreflightPermissionChecks][Skipped:Disconnected] OLMv1 operator preflight checks should report error when {create} verb is not specified", + "labels": {}, + "resources": { + "isolation": {} }, + "source": "openshift:payload:olmv1", + "lifecycle": "blocking", + "environmentSelector": {} + }, + { + "name": "[sig-olmv1][OCPFeatureGate:NewOLMPreflightPermissionChecks][Skipped:Disconnected] OLMv1 operator preflight checks should report error when {ClusterRoleBindings} are not specified", + "labels": {}, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:75123-[OTP][Skipped:Disconnected]CRD upgrade checks for changes in required field and field type", - "labels": { - "ClusterCatalog": {}, - "Extended": {}, - "NonHyperShiftHOST": {} + "name": "[sig-olmv1][OCPFeatureGate:NewOLMPreflightPermissionChecks][Skipped:Disconnected] OLMv1 operator preflight checks should report error when {ConfigMap:resourceNames} are not all specified", + "labels": {}, + "resources": { + "isolation": {} }, + "source": "openshift:payload:olmv1", + "lifecycle": "blocking", + "environmentSelector": {} + }, + { + "name": "[sig-olmv1][OCPFeatureGate:NewOLMPreflightPermissionChecks][Skipped:Disconnected] OLMv1 operator preflight checks should report error when {clusterextension/finalizer} is not specified", + "labels": {}, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:75124-[OTP][Skipped:Disconnected]CRD upgrade checks for changes in default values", - "labels": { - "ClusterCatalog": {}, - "Extended": {}, - "NonHyperShiftHOST": {} + "name": "[sig-olmv1][OCPFeatureGate:NewOLMPreflightPermissionChecks][Skipped:Disconnected] OLMv1 operator preflight checks should report error when {clusterobjectsets/finalizer} is not specified", + "labels": {}, + "resources": { + "isolation": {} }, + "source": "openshift:payload:olmv1", + "lifecycle": "blocking", + "environmentSelector": {} + }, + { + "name": "[sig-olmv1][OCPFeatureGate:NewOLMPreflightPermissionChecks][Skipped:Disconnected] OLMv1 operator preflight checks should report error when {escalate, bind} is not specified", + "labels": {}, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:75515-[OTP][Skipped:Disconnected]CRD upgrade checks for changes in enumeration values", + "name": "[sig-olmv1][OCPFeatureGate:NewOLMOwnSingleNamespace] OLMv1 operator installation support for singleNamespace watch mode with operator should install a cluster extension successfully", + "originalName": "[sig-olmv1][OCPFeatureGate:NewOLMOwnSingleNamespace][Skipped:Disconnected] OLMv1 operator installation support for singleNamespace watch mode with quay-operator should install a cluster extension successfully", "labels": { - "ClusterCatalog": {}, - "Extended": {}, - "NonHyperShiftHOST": {} + "original-name:[sig-olmv1][OCPFeatureGate:NewOLMOwnSingleNamespace][Skipped:Disconnected] OLMv1 operator installation support for singleNamespace watch mode with quay-operator should install a cluster extension successfully": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:75516-[OTP][Skipped:Disconnected]CRD upgrade checks for the field maximum minimum changes", + "name": "[sig-olmv1][OCPFeatureGate:NewOLMOwnSingleNamespace] OLMv1 operator installation support for ownNamespace watch mode with operator should install a cluster extension successfully", + "originalName": "[sig-olmv1][OCPFeatureGate:NewOLMOwnSingleNamespace][Skipped:Disconnected] OLMv1 operator installation support for ownNamespace watch mode with quay-operator should install a cluster extension successfully", "labels": { - "ClusterCatalog": {}, - "Extended": {}, - "NonHyperShiftHOST": {} + "original-name:[sig-olmv1][OCPFeatureGate:NewOLMOwnSingleNamespace][Skipped:Disconnected] OLMv1 operator installation support for ownNamespace watch mode with quay-operator should install a cluster extension successfully": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:83069-[OTP]olmv1 static networkpolicy.", - "originalName": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:83069-olmv1 static networkpolicy.", + "name": "[sig-olmv1][OCPFeatureGate:NewOLMOwnSingleNamespace] OLMv1 operator installation support for ownNamespace and single namespace watch mode with operator should install cluster extensions successfully in both watch modes", + "originalName": "[sig-olmv1][OCPFeatureGate:NewOLMOwnSingleNamespace][Skipped:Disconnected][Serial] OLMv1 operator installation support for ownNamespace and single namespace watch mode with quay-operator should install cluster extensions successfully in both watch modes", "labels": { - "Extended": {}, - "NonHyperShiftHOST": {}, - "ReleaseGate": {}, - "original-name:[sig-olmv1][Jira:OLM] clusterextension PolarionID:83069-olmv1 static networkpolicy.": {} + "original-name:[sig-olmv1][OCPFeatureGate:NewOLMOwnSingleNamespace][Skipped:Disconnected][Serial] OLMv1 operator installation support for ownNamespace and single namespace watch mode with quay-operator should install cluster extensions successfully in both watch modes": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:68936-[OTP]cluster extension can not be installed with insufficient permission sa for operand", - "originalName": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:68936-[Skipped:Disconnected]cluster extension can not be installed with insufficient permission sa for operand", + "name": "[sig-olmv1][OCPFeatureGate:NewOLMOwnSingleNamespace][Serial] OLMv1 operator installation support for ownNamespace watch mode with an operator that does not support ownNamespace installation mode should fail to install a cluster extension successfully", + "originalName": "[sig-olmv1][OCPFeatureGate:NewOLMOwnSingleNamespace][Skipped:Disconnected] OLMv1 operator installation support for ownNamespace watch mode with an operator that does not support ownNamespace installation mode should fail to install a cluster extension successfully", "labels": { - "Extended": {}, - "NonHyperShiftHOST": {}, - "original-name:[sig-olmv1][Jira:OLM] clusterextension PolarionID:68936-[Skipped:Disconnected]cluster extension can not be installed with insufficient permission sa for operand": {} + "original-name:[sig-olmv1][OCPFeatureGate:NewOLMOwnSingleNamespace][Skipped:Disconnected] OLMv1 operator installation support for ownNamespace watch mode with an operator that does not support ownNamespace installation mode should fail to install a cluster extension successfully": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:68937-[OTP]cluster extension can not be installed with insufficient permission sa for operand rbac object", - "originalName": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:68937-[Skipped:Disconnected]cluster extension can not be installed with insufficient permission sa for operand rbac object", + "name": "[sig-olmv1][OCPFeatureGate:NewOLMOwnSingleNamespace] OLMv1 operator installation should reject invalid watch namespace configuration and update the status conditions accordingly should fail to install the ClusterExtension when watch namespace is invalid", + "originalName": "[sig-olmv1][OCPFeatureGate:NewOLMOwnSingleNamespace][Skipped:Disconnected][Serial] OLMv1 operator installation should reject invalid watch namespace configuration and update the status conditions accordingly should fail to install the ClusterExtension when watch namespace is invalid", "labels": { - "Extended": {}, - "NonHyperShiftHOST": {}, - "original-name:[sig-olmv1][Jira:OLM] clusterextension PolarionID:68937-[Skipped:Disconnected]cluster extension can not be installed with insufficient permission sa for operand rbac object": {} + "original-name:[sig-olmv1][OCPFeatureGate:NewOLMOwnSingleNamespace][Skipped:Disconnected][Serial] OLMv1 operator installation should reject invalid watch namespace configuration and update the status conditions accordingly should fail to install the ClusterExtension when watch namespace is invalid": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:70723-[OTP][Skipped:Disconnected]olmv1 downgrade version", - "labels": { - "Extended": {}, - "NonHyperShiftHOST": {} + "name": "[sig-olmv1][OCPFeatureGate:NewOLM] OLMv1 topology-based deployment scaling should configure replicas and PodDisruptionBudgets to match the cluster control plane topology", + "labels": {}, + "resources": { + "isolation": {} }, + "source": "openshift:payload:olmv1", + "lifecycle": "blocking", + "environmentSelector": {} + }, + { + "name": "[sig-olmv1] OLMv1 should pass a trivial sanity check", + "labels": {}, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:75492-[OTP][Level0]cluster extension can not be installed with wrong sa or insufficient permission sa", - "originalName": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:75492-[Skipped:Disconnected]cluster extension can not be installed with wrong sa or insufficient permission sa", - "labels": { - "Extended": {}, - "NonHyperShiftHOST": {}, - "original-name:[sig-olmv1][Jira:OLM] clusterextension PolarionID:75492-[Skipped:Disconnected]cluster extension can not be installed with wrong sa or insufficient permission sa": {} - }, + "name": "[sig-olmv1][OCPFeatureGate:NewOLM] OLMv1 CRDs should be installed", + "labels": {}, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:75493-[OTP][Level0]cluster extension can be installed with enough permission sa", - "originalName": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:75493-[Skipped:Disconnected]cluster extension can be installed with enough permission sa", + "name": "[sig-olmv1][OCPFeatureGate:NewOLM][Skipped:Disconnected] OLMv1 operator installation should install an openshift catalog cluster extension", + "originalName": "[sig-olmv1][OCPFeatureGate:NewOLM][Skipped:Disconnected] OLMv1 operator installation should install an openshift catalog cluster extension", "labels": { - "Extended": {}, - "NonHyperShiftHOST": {}, - "original-name:[sig-olmv1][Jira:OLM] clusterextension PolarionID:75493-[Skipped:Disconnected]cluster extension can be installed with enough permission sa": {} + "original-name:[sig-olmv1][OCPFeatureGate:NewOLM][Skipped:Disconnected] OLMv1 operator installation should install an openshift catalog cluster extension": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:81538-[OTP]preflight check on permission on allns mode", - "originalName": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:81538-[Skipped:Disconnected]preflight check on permission on allns mode", + "name": "[sig-olmv1][OCPFeatureGate:NewOLM] OLMv1 operator installation should install a cluster extension", + "originalName": "[sig-olmv1][OCPFeatureGate:NewOLM][Skipped:Disconnected] OLMv1 operator installation should install a cluster extension", "labels": { - "Extended": {}, - "NonHyperShiftHOST": {}, - "original-name:[sig-olmv1][Jira:OLM] clusterextension PolarionID:81538-[Skipped:Disconnected]preflight check on permission on allns mode": {} + "original-name:[sig-olmv1][OCPFeatureGate:NewOLM][Skipped:Disconnected] OLMv1 operator installation should install a cluster extension": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:81664-[OTP]preflight check on permission on own ns mode", - "originalName": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:81664-[Skipped:Disconnected]preflight check on permission on own ns mode", + "name": "[sig-olmv1][OCPFeatureGate:NewOLM] OLMv1 operator installation should fail to install a non-existing cluster extension", + "originalName": "[sig-olmv1][OCPFeatureGate:NewOLM][Skipped:Disconnected] OLMv1 operator installation should fail to install a non-existing cluster extension", "labels": { - "Extended": {}, - "NonHyperShiftHOST": {}, - "original-name:[sig-olmv1][Jira:OLM] clusterextension PolarionID:81664-[Skipped:Disconnected]preflight check on permission on own ns mode": {} + "original-name:[sig-olmv1][OCPFeatureGate:NewOLM][Skipped:Disconnected] OLMv1 operator installation should fail to install a non-existing cluster extension": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:81696-[OTP]preflight check on permission on single ns mode", - "originalName": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:81696-[Skipped:Disconnected]preflight check on permission on single ns mode", + "name": "[sig-olmv1][OCPFeatureGate:NewOLMWebhookProviderOpenshiftServiceCA] OLMv1 operator with webhooks should have a working validating webhook", + "originalName": "[sig-olmv1][OCPFeatureGate:NewOLMWebhookProviderOpenshiftServiceCA][Skipped:Disconnected][Serial] OLMv1 operator with webhooks should have a working validating webhook", "labels": { - "Extended": {}, - "NonHyperShiftHOST": {}, - "original-name:[sig-olmv1][Jira:OLM] clusterextension PolarionID:81696-[Skipped:Disconnected]preflight check on permission on single ns mode": {} + "original-name:[sig-olmv1][OCPFeatureGate:NewOLMWebhookProviderOpenshiftServiceCA][Skipped:Disconnected][Serial] OLMv1 operator with webhooks should have a working validating webhook": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:87224-[Skipped:Disconnected]Upgrade version support [Serial]", + "name": "[sig-olmv1][OCPFeatureGate:NewOLMWebhookProviderOpenshiftServiceCA] OLMv1 operator with webhooks should have a working mutating webhook [Serial]", + "originalName": "[sig-olmv1][OCPFeatureGate:NewOLMWebhookProviderOpenshiftServiceCA][Skipped:Disconnected][Serial] OLMv1 operator with webhooks should have a working mutating webhook", "labels": { - "Extended": {}, - "NonHyperShiftHOST": {} + "original-name:[sig-olmv1][OCPFeatureGate:NewOLMWebhookProviderOpenshiftServiceCA][Skipped:Disconnected][Serial] OLMv1 operator with webhooks should have a working mutating webhook": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:74618-[OTP]ClusterExtension supports simple registry vzero bundles only", - "originalName": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:74618-[Skipped:Disconnected]ClusterExtension supports simple registry vzero bundles only", + "name": "[sig-olmv1][OCPFeatureGate:NewOLMWebhookProviderOpenshiftServiceCA] OLMv1 operator with webhooks should have a working conversion webhook [Serial]", + "originalName": "[sig-olmv1][OCPFeatureGate:NewOLMWebhookProviderOpenshiftServiceCA][Skipped:Disconnected][Serial] OLMv1 operator with webhooks should have a working conversion webhook", "labels": { - "Extended": {}, - "NonHyperShiftHOST": {}, - "original-name:[sig-olmv1][Jira:OLM] clusterextension PolarionID:74618-[Skipped:Disconnected]ClusterExtension supports simple registry vzero bundles only": {} + "original-name:[sig-olmv1][OCPFeatureGate:NewOLMWebhookProviderOpenshiftServiceCA][Skipped:Disconnected][Serial] OLMv1 operator with webhooks should have a working conversion webhook": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:76843-[OTP][Skipped:Disconnected]support disc with icsp[Timeout:40m] [Serial][Disruptive][Slow]", - "originalName": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:76843-[Skipped:Disconnected]support disc with icsp[Timeout:30m] [Serial][Disruptive][Slow]", + "name": "[sig-olmv1][OCPFeatureGate:NewOLMWebhookProviderOpenshiftServiceCA] OLMv1 operator with webhooks should be tolerant to tls secret deletion [Serial]", + "originalName": "[sig-olmv1][OCPFeatureGate:NewOLMWebhookProviderOpenshiftServiceCA][Skipped:Disconnected][Serial] OLMv1 operator with webhooks should be tolerant to tls secret deletion", "labels": { - "Extended": {}, - "NonHyperShiftHOST": {}, - "original-name:[sig-olmv1][Jira:OLM] clusterextension PolarionID:76843-[Skipped:Disconnected]support disc with icsp[Timeout:30m] [Serial][Disruptive][Slow]": {} + "original-name:[sig-olmv1][OCPFeatureGate:NewOLMWebhookProviderOpenshiftServiceCA][Skipped:Disconnected][Serial] OLMv1 operator with webhooks should be tolerant to tls secret deletion": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:76844-[OTP][Skipped:Disconnected]support disc with itms and idms[Timeout:40m] [Serial][Disruptive][Slow]", - "originalName": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:76844-[Skipped:Disconnected]support disc with itms and idms[Timeout:30m] [Serial][Disruptive][Slow]", - "labels": { - "Extended": {}, - "NonHyperShiftHOST": {}, - "original-name:[sig-olmv1][Jira:OLM] clusterextension PolarionID:76844-[Skipped:Disconnected]support disc with itms and idms[Timeout:30m] [Serial][Disruptive][Slow]": {} - }, + "name": "[sig-olmv1][OCPFeatureGate:NewOLMWebhookProviderOpenshiftServiceCA] OLMv1 operator with webhooks should clean up webhooks when the extension is uninstalled [Serial]", + "labels": {}, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": { - "exclude": "topology==\"External\"" - } + "environmentSelector": {} }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:78193-[OTP][Skipped:Disconnected]Runtime validation of container images using sigstore signatures [Serial][Disruptive][Slow]", - "originalName": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:78193-[Skipped:Disconnected]Runtime validation of container images using sigstore signatures [Serial][Disruptive][Slow]", + "name": "[sig-olmv1][Jira:OLM] cluster-olm-operator PolarionID:80078-[OTP]Downstream feature gate promotion mechanics", + "originalName": "[sig-olmv1][Jira:OLM] cluster-olm-operator PolarionID:80078-Downstream feature gate promotion mechanics", "labels": { "Extended": {}, "NonHyperShiftHOST": {}, - "original-name:[sig-olmv1][Jira:OLM] clusterextension PolarionID:78193-[Skipped:Disconnected]Runtime validation of container images using sigstore signatures [Serial][Disruptive][Slow]": {} + "original-name:[sig-olmv1][Jira:OLM] cluster-olm-operator PolarionID:80078-Downstream feature gate promotion mechanics": {} }, "resources": { "isolation": {} @@ -605,12 +537,10 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:78300-[OTP][Skipped:Disconnected]validation of container images using sigstore signatures with different policy [Serial][Disruptive][Slow]", - "originalName": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:78300-[Skipped:Disconnected]validation of container images using sigstore signatures with different policy [Serial][Disruptive][Slow]", + "name": "[sig-olmv1][Jira:OLM] cluster-olm-operator PolarionID:78393-[OTP][Skipped:Disconnected]support metrics", "labels": { "Extended": {}, - "NonHyperShiftHOST": {}, - "original-name:[sig-olmv1][Jira:OLM] clusterextension PolarionID:78300-[Skipped:Disconnected]validation of container images using sigstore signatures with different policy [Serial][Disruptive][Slow]": {} + "NonHyperShiftHOST": {} }, "resources": { "isolation": {} @@ -622,12 +552,10 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:76983-[OTP][Skipped:Disconnected]install index and bundle from private image[Slow]", - "originalName": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:76983-[Skipped:Disconnected]install index and bundle from private image[Slow]", + "name": "[sig-olmv1][Jira:OLM] cluster-olm-operator PolarionID:79770-[OTP][Level0]metrics are collected by default", "labels": { "Extended": {}, - "NonHyperShiftHOST": {}, - "original-name:[sig-olmv1][Jira:OLM] clusterextension PolarionID:76983-[Skipped:Disconnected]install index and bundle from private image[Slow]": {} + "NonHyperShiftHOST": {} }, "resources": { "isolation": {} @@ -639,12 +567,10 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:76985-[OTP][Skipped:Disconnected]authfile is updated automatically[Timeout:40m] [Serial][Disruptive][Slow]", - "originalName": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:76985-[Skipped:Disconnected]authfile is updated automatically[Timeout:30m] [Serial][Disruptive][Slow]", + "name": "[sig-olmv1][Jira:OLM] cluster-olm-operator PolarionID:75877-[OTP]Make sure that rukpak is removed from payload", "labels": { "Extended": {}, - "NonHyperShiftHOST": {}, - "original-name:[sig-olmv1][Jira:OLM] clusterextension PolarionID:76985-[Skipped:Disconnected]authfile is updated automatically[Timeout:30m] [Serial][Disruptive][Slow]": {} + "NonHyperShiftHOST": {} }, "resources": { "isolation": {} @@ -656,12 +582,13 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:83026-[OTP][Skipped:Disconnected]clusterextension updates sometimes failed with the following error from the CRDUpgradeCheck resource unknown change and refusing to determine that change is safe", - "originalName": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:83026-[Skipped:Disconnected]clusterextension updates sometimes failed with the following error from the CRDUpgradeCheck resource unknown change and refusing to determine that change is safe", + "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:69242-[OTP][Skipped:Disconnected]Catalogd deprecated package bundlemetadata catalogmetadata from clustercatalog CR", + "originalName": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:69242-[Skipped:Disconnected]Catalogd deprecated package bundlemetadata catalogmetadata from clustercatalog CR", "labels": { + "ClusterCatalog": {}, "Extended": {}, "NonHyperShiftHOST": {}, - "original-name:[sig-olmv1][Jira:OLM] clusterextension PolarionID:83026-[Skipped:Disconnected]clusterextension updates sometimes failed with the following error from the CRDUpgradeCheck resource unknown change and refusing to determine that change is safe": {} + "original-name:[sig-olmv1][Jira:OLM] clustercatalog PolarionID:69242-[Skipped:Disconnected]Catalogd deprecated package bundlemetadata catalogmetadata from clustercatalog CR": {} }, "resources": { "isolation": {} @@ -673,10 +600,13 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:69196-[OTP][Level0][Skipped:Disconnected]Supports Version Ranges during clusterextension upgrade", + "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:80458-[OTP][Level0][Skipped:Disconnected]clustercatalog get x509 error since it cannot get the custom CA automatically [Serial]", + "originalName": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:80458-[Skipped:Disconnected]clustercatalog get x509 error since it cannot get the custom CA automatically [Serial]", "labels": { + "ClusterCatalog": {}, "Extended": {}, - "NonHyperShiftHOST": {} + "NonHyperShiftHOST": {}, + "original-name:[sig-olmv1][Jira:OLM] clustercatalog PolarionID:80458-[Skipped:Disconnected]clustercatalog get x509 error since it cannot get the custom CA automatically [Serial]": {} }, "resources": { "isolation": {} @@ -688,8 +618,9 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:68821-[OTP][Skipped:Disconnected]Supports Version Ranges during Installation", + "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:77413-[OTP][Level0][Skipped:Disconnected]Check if ClusterCatalog is in Serving properly", "labels": { + "ClusterCatalog": {}, "Extended": {}, "NonHyperShiftHOST": {} }, @@ -703,8 +634,9 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:74108-[OTP][Skipped:Disconnected][Slow]olm v1 supports legacy upgrade edges", + "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:69123-[OTP][Skipped:Disconnected]Catalogd clustercatalog offer the operator content through http server", "labels": { + "ClusterCatalog": {}, "Extended": {}, "NonHyperShiftHOST": {} }, @@ -718,8 +650,9 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:74923-[OTP][Skipped:Disconnected]no two ClusterExtensions can manage the same underlying object", + "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:69069-[OTP][Skipped:Disconnected]Replace pod-based image unpacker with an image registry client", "labels": { + "ClusterCatalog": {}, "Extended": {}, "NonHyperShiftHOST": {} }, @@ -733,8 +666,9 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:75501-[OTP][Skipped:Disconnected]the updates of various status fields is orthogonal", + "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:69869-[OTP][Skipped:Disconnected]Catalogd Add metrics to the Storage implementation", "labels": { + "ClusterCatalog": {}, "Extended": {}, "NonHyperShiftHOST": {} }, @@ -748,8 +682,9 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:76685-[OTP][Skipped:Disconnected]olm v1 supports selecting catalogs [Serial]", + "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:69202-[OTP][Skipped:Disconnected][Skipped:Proxy]Catalogd clustercatalog offer the operator content through http server off cluster", "labels": { + "ClusterCatalog": {}, "Extended": {}, "NonHyperShiftHOST": {} }, @@ -763,8 +698,9 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:77972-[OTP][Skipped:Disconnected]olm v1 Supports MaxOCPVersion in properties file", + "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:85889-[OTP][Skipped:Disconnected]Validate catalogd content via port-forward [Serial]", "labels": { + "ClusterCatalog": {}, "Extended": {}, "NonHyperShiftHOST": {} }, @@ -778,8 +714,9 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:82249-[OTP][Skipped:Disconnected]Verify olmv1 support for float type maxOCPVersion in properties file", + "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:73219-[OTP][Skipped:Disconnected]Fetch deprecation data from the catalogd http server", "labels": { + "ClusterCatalog": {}, "Extended": {}, "NonHyperShiftHOST": {} }, @@ -793,8 +730,9 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:80117-[OTP][Skipped:Disconnected] Single Namespace Install Mode should be supported", + "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:75441-[OTP][Skipped:Disconnected]Catalogd supports compression and jsonlines format", "labels": { + "ClusterCatalog": {}, "Extended": {}, "NonHyperShiftHOST": {} }, @@ -808,8 +746,9 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:80120-[OTP][Skipped:Disconnected] Own Namespace Install Mode should be supported", + "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:73289-[OTP][Skipped:Disconnected]Check the deprecation conditions and messages", "labels": { + "ClusterCatalog": {}, "Extended": {}, "NonHyperShiftHOST": {} }, @@ -823,8 +762,9 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:82136-[OTP][Skipped:Disconnected]olm v1 supports NetworkPolicy resources", + "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:74948-[OTP][Skipped:Disconnected]catalog offer the operator content through https server", "labels": { + "ClusterCatalog": {}, "Extended": {}, "NonHyperShiftHOST": {} }, @@ -838,8 +778,9 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:83979-[OTP][Skipped:Disconnected]ClusterExtension installs webhook-operator and webhooks work", + "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:74978-[OTP][Level0][Skipped:Disconnected]CRD upgrade will be prevented if the Scope is switched between Namespaced and Cluster", "labels": { + "ClusterCatalog": {}, "Extended": {}, "NonHyperShiftHOST": {} }, @@ -853,8 +794,9 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87536-deploymentConfig env vars are applied to operator deployment and available in pod", + "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:75218-[OTP][Skipped:Disconnected]Disabling the CRD Upgrade Safety preflight checks", "labels": { + "ClusterCatalog": {}, "Extended": {}, "NonHyperShiftHOST": {} }, @@ -868,8 +810,9 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87537-deploymentConfig env vars override existing bundle env vars with same name", + "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:75122-[OTP][Skipped:Disconnected]CRD upgrade check Removing an existing stored version and add a new CRD with no modifications to existing versions", "labels": { + "ClusterCatalog": {}, "Extended": {}, "NonHyperShiftHOST": {} }, @@ -883,8 +826,9 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87539-[Skipped:Disconnected]deploymentConfig envFrom sources are appended to operator deployment without duplicates", + "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:75123-[OTP][Skipped:Disconnected]CRD upgrade checks for changes in required field and field type", "labels": { + "ClusterCatalog": {}, "Extended": {}, "NonHyperShiftHOST": {} }, @@ -898,8 +842,9 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87541-[Skipped:Disconnected]deploymentConfig volumes are appended to operator deployment", + "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:75124-[OTP][Skipped:Disconnected]CRD upgrade checks for changes in default values", "labels": { + "ClusterCatalog": {}, "Extended": {}, "NonHyperShiftHOST": {} }, @@ -913,8 +858,9 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87542-[Skipped:Disconnected]deploymentConfig volumeMounts are appended to all operator containers", + "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:75515-[OTP][Skipped:Disconnected]CRD upgrade checks for changes in enumeration values", "labels": { + "ClusterCatalog": {}, "Extended": {}, "NonHyperShiftHOST": {} }, @@ -928,8 +874,9 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87543-[Skipped:Disconnected]deploymentConfig tolerations are appended to operator deployment without duplicates", + "name": "[sig-olmv1][Jira:OLM] clustercatalog PolarionID:75516-[OTP][Skipped:Disconnected]CRD upgrade checks for the field maximum minimum changes", "labels": { + "ClusterCatalog": {}, "Extended": {}, "NonHyperShiftHOST": {} }, @@ -943,10 +890,13 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87544-[Skipped:Disconnected]deploymentConfig resources completely replace existing resource requirements", + "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:83069-[OTP]olmv1 static networkpolicy.", + "originalName": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:83069-olmv1 static networkpolicy.", "labels": { "Extended": {}, - "NonHyperShiftHOST": {} + "NonHyperShiftHOST": {}, + "ReleaseGate": {}, + "original-name:[sig-olmv1][Jira:OLM] clusterextension PolarionID:83069-olmv1 static networkpolicy.": {} }, "resources": { "isolation": {} @@ -958,10 +908,12 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87545-[Skipped:Disconnected]deploymentConfig nodeSelector completely replaces existing node selector", + "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:68936-[OTP]cluster extension can not be installed with insufficient permission sa for operand", + "originalName": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:68936-[Skipped:Disconnected]cluster extension can not be installed with insufficient permission sa for operand", "labels": { "Extended": {}, - "NonHyperShiftHOST": {} + "NonHyperShiftHOST": {}, + "original-name:[sig-olmv1][Jira:OLM] clusterextension PolarionID:68936-[Skipped:Disconnected]cluster extension can not be installed with insufficient permission sa for operand": {} }, "resources": { "isolation": {} @@ -973,10 +925,12 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87546-[Skipped:Disconnected]deploymentConfig nodeAffinity overrides existing nodeAffinity", + "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:68937-[OTP]cluster extension can not be installed with insufficient permission sa for operand rbac object", + "originalName": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:68937-[Skipped:Disconnected]cluster extension can not be installed with insufficient permission sa for operand rbac object", "labels": { "Extended": {}, - "NonHyperShiftHOST": {} + "NonHyperShiftHOST": {}, + "original-name:[sig-olmv1][Jira:OLM] clusterextension PolarionID:68937-[Skipped:Disconnected]cluster extension can not be installed with insufficient permission sa for operand rbac object": {} }, "resources": { "isolation": {} @@ -988,7 +942,7 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87547-[Skipped:Disconnected]deploymentConfig podAffinity overrides existing podAffinity", + "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:70723-[OTP][Skipped:Disconnected]olmv1 downgrade version", "labels": { "Extended": {}, "NonHyperShiftHOST": {} @@ -1003,10 +957,12 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87548-[Skipped:Disconnected]deploymentConfig podAntiAffinity overrides existing podAntiAffinity", + "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:75492-[OTP][Level0]cluster extension can not be installed with wrong sa or insufficient permission sa", + "originalName": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:75492-[Skipped:Disconnected]cluster extension can not be installed with wrong sa or insufficient permission sa", "labels": { "Extended": {}, - "NonHyperShiftHOST": {} + "NonHyperShiftHOST": {}, + "original-name:[sig-olmv1][Jira:OLM] clusterextension PolarionID:75492-[Skipped:Disconnected]cluster extension can not be installed with wrong sa or insufficient permission sa": {} }, "resources": { "isolation": {} @@ -1018,10 +974,12 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87549-[Skipped:Disconnected]deploymentConfig annotations are merged with existing taking precedence", + "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:75493-[OTP][Level0]cluster extension can be installed with enough permission sa", + "originalName": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:75493-[Skipped:Disconnected]cluster extension can be installed with enough permission sa", "labels": { "Extended": {}, - "NonHyperShiftHOST": {} + "NonHyperShiftHOST": {}, + "original-name:[sig-olmv1][Jira:OLM] clusterextension PolarionID:75493-[Skipped:Disconnected]cluster extension can be installed with enough permission sa": {} }, "resources": { "isolation": {} @@ -1033,10 +991,12 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87550-[Skipped:Disconnected]deploymentConfig with resources and nodeSelector both work correctly", + "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:81538-[OTP]preflight check on permission on allns mode", + "originalName": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:81538-[Skipped:Disconnected]preflight check on permission on allns mode", "labels": { "Extended": {}, - "NonHyperShiftHOST": {} + "NonHyperShiftHOST": {}, + "original-name:[sig-olmv1][Jira:OLM] clusterextension PolarionID:81538-[Skipped:Disconnected]preflight check on permission on allns mode": {} }, "resources": { "isolation": {} @@ -1048,10 +1008,12 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87551-[Skipped:Disconnected]deploymentConfig with env tolerations and resources all work correctly", + "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:81664-[OTP]preflight check on permission on own ns mode", + "originalName": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:81664-[Skipped:Disconnected]preflight check on permission on own ns mode", "labels": { "Extended": {}, - "NonHyperShiftHOST": {} + "NonHyperShiftHOST": {}, + "original-name:[sig-olmv1][Jira:OLM] clusterextension PolarionID:81664-[Skipped:Disconnected]preflight check on permission on own ns mode": {} }, "resources": { "isolation": {} @@ -1063,10 +1025,12 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87552-[Skipped:Disconnected]deploymentConfig works correctly when combined with watchNamespace configuration", + "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:81696-[OTP]preflight check on permission on single ns mode", + "originalName": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:81696-[Skipped:Disconnected]preflight check on permission on single ns mode", "labels": { "Extended": {}, - "NonHyperShiftHOST": {} + "NonHyperShiftHOST": {}, + "original-name:[sig-olmv1][Jira:OLM] clusterextension PolarionID:81696-[Skipped:Disconnected]preflight check on permission on single ns mode": {} }, "resources": { "isolation": {} @@ -1078,7 +1042,7 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87553-[Skipped:Disconnected]adding deploymentConfig multiple fields to existing ClusterExtension works correctly", + "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:87224-[Skipped:Disconnected]Upgrade version support [Serial]", "labels": { "Extended": {}, "NonHyperShiftHOST": {} @@ -1093,10 +1057,12 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87554-[Skipped:Disconnected]modifying deploymentConfig multiple fields in existing ClusterExtension works correctly", + "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:74618-[OTP]ClusterExtension supports simple registry vzero bundles only", + "originalName": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:74618-[Skipped:Disconnected]ClusterExtension supports simple registry vzero bundles only", "labels": { "Extended": {}, - "NonHyperShiftHOST": {} + "NonHyperShiftHOST": {}, + "original-name:[sig-olmv1][Jira:OLM] clusterextension PolarionID:74618-[Skipped:Disconnected]ClusterExtension supports simple registry vzero bundles only": {} }, "resources": { "isolation": {} @@ -1108,10 +1074,12 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87555-[Skipped:Disconnected]removing entire deploymentConfig from ClusterExtension reverts all settings to bundle defaults", + "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:76843-[OTP][Skipped:Disconnected]support disc with icsp[Timeout:40m] [Serial][Disruptive][Slow]", + "originalName": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:76843-[Skipped:Disconnected]support disc with icsp[Timeout:30m] [Serial][Disruptive][Slow]", "labels": { "Extended": {}, - "NonHyperShiftHOST": {} + "NonHyperShiftHOST": {}, + "original-name:[sig-olmv1][Jira:OLM] clusterextension PolarionID:76843-[Skipped:Disconnected]support disc with icsp[Timeout:30m] [Serial][Disruptive][Slow]": {} }, "resources": { "isolation": {} @@ -1123,10 +1091,12 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87556-[Skipped:Disconnected]removing partial fields from deploymentConfig reverts those fields to bundle defaults while keeping others", + "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:76844-[OTP][Skipped:Disconnected]support disc with itms and idms[Timeout:40m] [Serial][Disruptive][Slow]", + "originalName": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:76844-[Skipped:Disconnected]support disc with itms and idms[Timeout:30m] [Serial][Disruptive][Slow]", "labels": { "Extended": {}, - "NonHyperShiftHOST": {} + "NonHyperShiftHOST": {}, + "original-name:[sig-olmv1][Jira:OLM] clusterextension PolarionID:76844-[Skipped:Disconnected]support disc with itms and idms[Timeout:30m] [Serial][Disruptive][Slow]": {} }, "resources": { "isolation": {} @@ -1138,10 +1108,12 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension watchNamespace configuration PolarionID:85510-watchNamespace configuration with AllNamespaces InstallMode", + "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:78193-[OTP][Skipped:Disconnected]Runtime validation of container images using sigstore signatures [Serial][Disruptive][Slow]", + "originalName": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:78193-[Skipped:Disconnected]Runtime validation of container images using sigstore signatures [Serial][Disruptive][Slow]", "labels": { "Extended": {}, - "NonHyperShiftHOST": {} + "NonHyperShiftHOST": {}, + "original-name:[sig-olmv1][Jira:OLM] clusterextension PolarionID:78193-[Skipped:Disconnected]Runtime validation of container images using sigstore signatures [Serial][Disruptive][Slow]": {} }, "resources": { "isolation": {} @@ -1153,10 +1125,12 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension watchNamespace configuration PolarionID:85543-watchNamespace configuration with AllNamespaces+OwnNamespace+SingleNamespace InstallModes", + "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:78300-[OTP][Skipped:Disconnected]validation of container images using sigstore signatures with different policy [Serial][Disruptive][Slow]", + "originalName": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:78300-[Skipped:Disconnected]validation of container images using sigstore signatures with different policy [Serial][Disruptive][Slow]", "labels": { "Extended": {}, - "NonHyperShiftHOST": {} + "NonHyperShiftHOST": {}, + "original-name:[sig-olmv1][Jira:OLM] clusterextension PolarionID:78300-[Skipped:Disconnected]validation of container images using sigstore signatures with different policy [Serial][Disruptive][Slow]": {} }, "resources": { "isolation": {} @@ -1168,10 +1142,12 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension watchNamespace configuration PolarionID:85546-watchNamespace configuration with OwnNamespace+SingleNamespace InstallModes", + "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:76983-[OTP][Skipped:Disconnected]install index and bundle from private image[Slow]", + "originalName": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:76983-[Skipped:Disconnected]install index and bundle from private image[Slow]", "labels": { "Extended": {}, - "NonHyperShiftHOST": {} + "NonHyperShiftHOST": {}, + "original-name:[sig-olmv1][Jira:OLM] clusterextension PolarionID:76983-[Skipped:Disconnected]install index and bundle from private image[Slow]": {} }, "resources": { "isolation": {} @@ -1183,10 +1159,12 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension watchNamespace configuration PolarionID:85547-watchNamespace configuration with SingleNamespace InstallMode", + "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:76985-[OTP][Skipped:Disconnected]authfile is updated automatically[Timeout:40m] [Serial][Disruptive][Slow]", + "originalName": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:76985-[Skipped:Disconnected]authfile is updated automatically[Timeout:30m] [Serial][Disruptive][Slow]", "labels": { "Extended": {}, - "NonHyperShiftHOST": {} + "NonHyperShiftHOST": {}, + "original-name:[sig-olmv1][Jira:OLM] clusterextension PolarionID:76985-[Skipped:Disconnected]authfile is updated automatically[Timeout:30m] [Serial][Disruptive][Slow]": {} }, "resources": { "isolation": {} @@ -1198,10 +1176,12 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension watchNamespace configuration PolarionID:85549-watchNamespace configuration with OwnNamespace InstallMode", + "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:83026-[OTP][Skipped:Disconnected]clusterextension updates sometimes failed with the following error from the CRDUpgradeCheck resource unknown change and refusing to determine that change is safe", + "originalName": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:83026-[Skipped:Disconnected]clusterextension updates sometimes failed with the following error from the CRDUpgradeCheck resource unknown change and refusing to determine that change is safe", "labels": { "Extended": {}, - "NonHyperShiftHOST": {} + "NonHyperShiftHOST": {}, + "original-name:[sig-olmv1][Jira:OLM] clusterextension PolarionID:83026-[Skipped:Disconnected]clusterextension updates sometimes failed with the following error from the CRDUpgradeCheck resource unknown change and refusing to determine that change is safe": {} }, "resources": { "isolation": {} @@ -1213,7 +1193,7 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] clusterextension watchNamespace configuration PolarionID:85650-[Skipped:Disconnected]API-level error validation for watchNamespace configuration", + "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:69196-[OTP][Level0][Skipped:Disconnected]Supports Version Ranges during clusterextension upgrade", "labels": { "Extended": {}, "NonHyperShiftHOST": {} @@ -1228,11 +1208,10 @@ } }, { - "name": "[sig-olmv1][Jira:OLM] OLM v1 for stress PolarionID:81509-[OTP][Skipped:Disconnected][OlmStress]olmv1 create mass operator to see if they all are installed successfully [Slow][Timeout:330m]", + "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:68821-[OTP][Skipped:Disconnected]Supports Version Ranges during Installation", "labels": { "Extended": {}, - "NonHyperShiftHOST": {}, - "StressTest": {} + "NonHyperShiftHOST": {} }, "resources": { "isolation": {} @@ -1244,523 +1223,574 @@ } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLMBoxCutterRuntime] OLMv1 Boxcutter runtime should install a cluster extension via the Boxcutter runtime", - "labels": {}, - "resources": { - "isolation": {} - }, - "source": "openshift:payload:olmv1", - "lifecycle": "blocking", - "environmentSelector": {} - }, - { - "name": "[sig-olmv1][OCPFeatureGate:NewOLMBoxCutterRuntime] OLMv1 Boxcutter runtime should report active revisions in the ClusterExtension status after installation", - "labels": {}, - "resources": { - "isolation": {} + "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:74108-[OTP][Skipped:Disconnected][Slow]olm v1 supports legacy upgrade edges", + "labels": { + "Extended": {}, + "NonHyperShiftHOST": {} }, - "source": "openshift:payload:olmv1", - "lifecycle": "blocking", - "environmentSelector": {} - }, - { - "name": "[sig-olmv1][OCPFeatureGate:NewOLMBoxCutterRuntime] OLMv1 Boxcutter runtime should label managed resources with OLM ownership metadata", - "labels": {}, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLMBoxCutterRuntime] OLMv1 Boxcutter runtime should clean up managed resources when a cluster extension is deleted", - "labels": {}, - "resources": { - "isolation": {} + "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:74923-[OTP][Skipped:Disconnected]no two ClusterExtensions can manage the same underlying object", + "labels": { + "Extended": {}, + "NonHyperShiftHOST": {} }, - "source": "openshift:payload:olmv1", - "lifecycle": "blocking", - "environmentSelector": {} - }, - { - "name": "[sig-olmv1][OCPFeatureGate:NewOLMBoxCutterRuntime] OLMv1 Boxcutter runtime should successfully reinstall a cluster extension after deletion", - "labels": {}, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLM][Skipped:Disconnected] OLMv1 Catalogs should be installed", - "labels": {}, - "resources": { - "isolation": {} + "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:75501-[OTP][Skipped:Disconnected]the updates of various status fields is orthogonal", + "labels": { + "Extended": {}, + "NonHyperShiftHOST": {} }, - "source": "openshift:payload:olmv1", - "lifecycle": "blocking", - "environmentSelector": {} - }, - { - "name": "[sig-olmv1][OCPFeatureGate:NewOLM][Skipped:Disconnected] OLMv1 openshift-community-operators Catalog should serve FBC via the /v1/api/all endpoint", - "labels": {}, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLM][Skipped:Disconnected] OLMv1 openshift-certified-operators Catalog should serve FBC via the /v1/api/all endpoint", - "labels": {}, - "resources": { - "isolation": {} + "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:76685-[OTP][Skipped:Disconnected]olm v1 supports selecting catalogs [Serial]", + "labels": { + "Extended": {}, + "NonHyperShiftHOST": {} }, - "source": "openshift:payload:olmv1", - "lifecycle": "blocking", - "environmentSelector": {} - }, - { - "name": "[sig-olmv1][OCPFeatureGate:NewOLM][Skipped:Disconnected] OLMv1 openshift-redhat-operators Catalog should serve FBC via the /v1/api/all endpoint", - "labels": {}, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLMCatalogdAPIV1Metas][Skipped:Disconnected] OLMv1 openshift-community-operators Catalog should serve FBC via the /v1/api/metas endpoint", - "labels": {}, - "resources": { - "isolation": {} + "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:77972-[OTP][Skipped:Disconnected]olm v1 Supports MaxOCPVersion in properties file", + "labels": { + "Extended": {}, + "NonHyperShiftHOST": {} }, - "source": "openshift:payload:olmv1", - "lifecycle": "blocking", - "environmentSelector": {} - }, - { - "name": "[sig-olmv1][OCPFeatureGate:NewOLMCatalogdAPIV1Metas][Skipped:Disconnected] OLMv1 openshift-certified-operators Catalog should serve FBC via the /v1/api/metas endpoint", - "labels": {}, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLMCatalogdAPIV1Metas][Skipped:Disconnected] OLMv1 openshift-redhat-operators Catalog should serve FBC via the /v1/api/metas endpoint", - "labels": {}, - "resources": { - "isolation": {} + "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:82249-[OTP][Skipped:Disconnected]Verify olmv1 support for float type maxOCPVersion in properties file", + "labels": { + "Extended": {}, + "NonHyperShiftHOST": {} }, - "source": "openshift:payload:olmv1", - "lifecycle": "blocking", - "environmentSelector": {} - }, - { - "name": "[sig-olmv1][OCPFeatureGate:NewOLM][Skipped:Disconnected] OLMv1 New Catalog Install should fail to install if it has an invalid reference", - "labels": {}, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLM][Skipped:Disconnected][Serial] OLMv1 ClusterExtension behavior after selected catalog removal should keep Installed=True and report Progressing=True/Succeeded when the selected catalog is removed", - "labels": {}, - "resources": { - "isolation": {} + "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:80117-[OTP][Skipped:Disconnected] Single Namespace Install Mode should be supported", + "labels": { + "Extended": {}, + "NonHyperShiftHOST": {} }, - "source": "openshift:payload:olmv1", - "lifecycle": "blocking", - "environmentSelector": {} - }, - { - "name": "[sig-olmv1][OCPFeatureGate:NewOLM][Skipped:Disconnected][Serial] OLMv1 ClusterExtension behavior after selected catalog removal should keep Installed=True when package source is removed by deleting the selected catalog", - "labels": {}, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should apply environment variables from deploymentConfig to operator deployment containers", - "originalName": "[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should apply environment variables from deploymentConfig to operator deployment containers", + "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:80120-[OTP][Skipped:Disconnected] Own Namespace Install Mode should be supported", "labels": { - "original-name:[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should apply environment variables from deploymentConfig to operator deployment containers": {} + "Extended": {}, + "NonHyperShiftHOST": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should apply resource requirements from deploymentConfig to operator deployment containers", - "originalName": "[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should apply resource requirements from deploymentConfig to operator deployment containers", + "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:82136-[OTP][Skipped:Disconnected]olm v1 supports NetworkPolicy resources", "labels": { - "original-name:[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should apply resource requirements from deploymentConfig to operator deployment containers": {} + "Extended": {}, + "NonHyperShiftHOST": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should apply tolerations from deploymentConfig to operator deployment pods", - "originalName": "[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should apply tolerations from deploymentConfig to operator deployment pods", + "name": "[sig-olmv1][Jira:OLM] clusterextension PolarionID:83979-[OTP][Skipped:Disconnected]ClusterExtension installs webhook-operator and webhooks work", "labels": { - "original-name:[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should apply tolerations from deploymentConfig to operator deployment pods": {} + "Extended": {}, + "NonHyperShiftHOST": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should apply node selector from deploymentConfig to operator deployment pods", - "originalName": "[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should apply node selector from deploymentConfig to operator deployment pods", + "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87536-deploymentConfig env vars are applied to operator deployment and available in pod", "labels": { - "original-name:[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should apply node selector from deploymentConfig to operator deployment pods": {} + "Extended": {}, + "NonHyperShiftHOST": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should reach a terminal blocked state when deploymentConfig.env has an invalid type", - "originalName": "[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should reach a terminal blocked state when deploymentConfig.env has an invalid type", + "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87537-deploymentConfig env vars override existing bundle env vars with same name", "labels": { - "original-name:[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should reach a terminal blocked state when deploymentConfig.env has an invalid type": {} + "Extended": {}, + "NonHyperShiftHOST": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should reach a terminal blocked state when deploymentConfig contains an unknown field", - "originalName": "[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should reach a terminal blocked state when deploymentConfig contains an unknown field", + "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87539-[Skipped:Disconnected]deploymentConfig envFrom sources are appended to operator deployment without duplicates", "labels": { - "original-name:[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should reach a terminal blocked state when deploymentConfig contains an unknown field": {} + "Extended": {}, + "NonHyperShiftHOST": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should apply annotations from deploymentConfig to operator deployment and its pod template", - "originalName": "[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should apply annotations from deploymentConfig to operator deployment and its pod template", + "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87541-[Skipped:Disconnected]deploymentConfig volumes are appended to operator deployment", "labels": { - "original-name:[sig-olmv1][OCPFeatureGate:NewOLMConfigAPI][Skipped:Disconnected] OLMv1 DeploymentConfig support should apply annotations from deploymentConfig to operator deployment and its pod template": {} + "Extended": {}, + "NonHyperShiftHOST": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLM] OLMv1 operator installation should block cluster upgrades if an incompatible operator is installed", - "originalName": "[sig-olmv1][OCPFeatureGate:NewOLM][Skipped:Disconnected] OLMv1 operator installation should block cluster upgrades if an incompatible operator is installed", + "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87542-[Skipped:Disconnected]deploymentConfig volumeMounts are appended to all operator containers", "labels": { - "original-name:[sig-olmv1][OCPFeatureGate:NewOLM][Skipped:Disconnected] OLMv1 operator installation should block cluster upgrades if an incompatible operator is installed": {} + "Extended": {}, + "NonHyperShiftHOST": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLMPreflightPermissionChecks][Skipped:Disconnected] OLMv1 operator preflight checks should report error when {services} are not specified", - "labels": {}, + "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87543-[Skipped:Disconnected]deploymentConfig tolerations are appended to operator deployment without duplicates", + "labels": { + "Extended": {}, + "NonHyperShiftHOST": {} + }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLMPreflightPermissionChecks][Skipped:Disconnected] OLMv1 operator preflight checks should report error when {create} verb is not specified", - "labels": {}, + "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87544-[Skipped:Disconnected]deploymentConfig resources completely replace existing resource requirements", + "labels": { + "Extended": {}, + "NonHyperShiftHOST": {} + }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLMPreflightPermissionChecks][Skipped:Disconnected] OLMv1 operator preflight checks should report error when {ClusterRoleBindings} are not specified", - "labels": {}, + "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87545-[Skipped:Disconnected]deploymentConfig nodeSelector completely replaces existing node selector", + "labels": { + "Extended": {}, + "NonHyperShiftHOST": {} + }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLMPreflightPermissionChecks][Skipped:Disconnected] OLMv1 operator preflight checks should report error when {ConfigMap:resourceNames} are not all specified", - "labels": {}, + "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87546-[Skipped:Disconnected]deploymentConfig nodeAffinity overrides existing nodeAffinity", + "labels": { + "Extended": {}, + "NonHyperShiftHOST": {} + }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLMPreflightPermissionChecks][Skipped:Disconnected] OLMv1 operator preflight checks should report error when {clusterextension/finalizer} is not specified", - "labels": {}, + "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87547-[Skipped:Disconnected]deploymentConfig podAffinity overrides existing podAffinity", + "labels": { + "Extended": {}, + "NonHyperShiftHOST": {} + }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLMPreflightPermissionChecks][Skipped:Disconnected] OLMv1 operator preflight checks should report error when {clusterobjectsets/finalizer} is not specified", - "labels": {}, + "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87548-[Skipped:Disconnected]deploymentConfig podAntiAffinity overrides existing podAntiAffinity", + "labels": { + "Extended": {}, + "NonHyperShiftHOST": {} + }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLMPreflightPermissionChecks][Skipped:Disconnected] OLMv1 operator preflight checks should report error when {escalate, bind} is not specified", - "labels": {}, + "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87549-[Skipped:Disconnected]deploymentConfig annotations are merged with existing taking precedence", + "labels": { + "Extended": {}, + "NonHyperShiftHOST": {} + }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLMOwnSingleNamespace] OLMv1 operator installation support for singleNamespace watch mode with operator should install a cluster extension successfully", - "originalName": "[sig-olmv1][OCPFeatureGate:NewOLMOwnSingleNamespace][Skipped:Disconnected] OLMv1 operator installation support for singleNamespace watch mode with quay-operator should install a cluster extension successfully", + "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87550-[Skipped:Disconnected]deploymentConfig with resources and nodeSelector both work correctly", "labels": { - "original-name:[sig-olmv1][OCPFeatureGate:NewOLMOwnSingleNamespace][Skipped:Disconnected] OLMv1 operator installation support for singleNamespace watch mode with quay-operator should install a cluster extension successfully": {} + "Extended": {}, + "NonHyperShiftHOST": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLMOwnSingleNamespace] OLMv1 operator installation support for ownNamespace watch mode with operator should install a cluster extension successfully", - "originalName": "[sig-olmv1][OCPFeatureGate:NewOLMOwnSingleNamespace][Skipped:Disconnected] OLMv1 operator installation support for ownNamespace watch mode with quay-operator should install a cluster extension successfully", + "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87551-[Skipped:Disconnected]deploymentConfig with env tolerations and resources all work correctly", "labels": { - "original-name:[sig-olmv1][OCPFeatureGate:NewOLMOwnSingleNamespace][Skipped:Disconnected] OLMv1 operator installation support for ownNamespace watch mode with quay-operator should install a cluster extension successfully": {} + "Extended": {}, + "NonHyperShiftHOST": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLMOwnSingleNamespace] OLMv1 operator installation support for ownNamespace and single namespace watch mode with operator should install cluster extensions successfully in both watch modes", - "originalName": "[sig-olmv1][OCPFeatureGate:NewOLMOwnSingleNamespace][Skipped:Disconnected][Serial] OLMv1 operator installation support for ownNamespace and single namespace watch mode with quay-operator should install cluster extensions successfully in both watch modes", + "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87552-[Skipped:Disconnected]deploymentConfig works correctly when combined with watchNamespace configuration", "labels": { - "original-name:[sig-olmv1][OCPFeatureGate:NewOLMOwnSingleNamespace][Skipped:Disconnected][Serial] OLMv1 operator installation support for ownNamespace and single namespace watch mode with quay-operator should install cluster extensions successfully in both watch modes": {} + "Extended": {}, + "NonHyperShiftHOST": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLMOwnSingleNamespace][Serial] OLMv1 operator installation support for ownNamespace watch mode with an operator that does not support ownNamespace installation mode should fail to install a cluster extension successfully", - "originalName": "[sig-olmv1][OCPFeatureGate:NewOLMOwnSingleNamespace][Skipped:Disconnected] OLMv1 operator installation support for ownNamespace watch mode with an operator that does not support ownNamespace installation mode should fail to install a cluster extension successfully", + "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87553-[Skipped:Disconnected]adding deploymentConfig multiple fields to existing ClusterExtension works correctly", "labels": { - "original-name:[sig-olmv1][OCPFeatureGate:NewOLMOwnSingleNamespace][Skipped:Disconnected] OLMv1 operator installation support for ownNamespace watch mode with an operator that does not support ownNamespace installation mode should fail to install a cluster extension successfully": {} + "Extended": {}, + "NonHyperShiftHOST": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLMOwnSingleNamespace] OLMv1 operator installation should reject invalid watch namespace configuration and update the status conditions accordingly should fail to install the ClusterExtension when watch namespace is invalid", - "originalName": "[sig-olmv1][OCPFeatureGate:NewOLMOwnSingleNamespace][Skipped:Disconnected][Serial] OLMv1 operator installation should reject invalid watch namespace configuration and update the status conditions accordingly should fail to install the ClusterExtension when watch namespace is invalid", + "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87554-[Skipped:Disconnected]modifying deploymentConfig multiple fields in existing ClusterExtension works correctly", "labels": { - "original-name:[sig-olmv1][OCPFeatureGate:NewOLMOwnSingleNamespace][Skipped:Disconnected][Serial] OLMv1 operator installation should reject invalid watch namespace configuration and update the status conditions accordingly should fail to install the ClusterExtension when watch namespace is invalid": {} + "Extended": {}, + "NonHyperShiftHOST": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLM] OLMv1 topology-based deployment scaling should configure replicas and PodDisruptionBudgets to match the cluster control plane topology", - "labels": {}, + "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87555-[Skipped:Disconnected]removing entire deploymentConfig from ClusterExtension reverts all settings to bundle defaults", + "labels": { + "Extended": {}, + "NonHyperShiftHOST": {} + }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1] OLMv1 should pass a trivial sanity check", - "labels": {}, + "name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87556-[Skipped:Disconnected]removing partial fields from deploymentConfig reverts those fields to bundle defaults while keeping others", + "labels": { + "Extended": {}, + "NonHyperShiftHOST": {} + }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLM] OLMv1 CRDs should be installed", - "labels": {}, + "name": "[sig-olmv1][Jira:OLM][OCPFeatureGate:NewOLMBoxCutterRuntime] clusterextension progress deadline PolarionID:88331-[OTP]A ClusterExtension is created and a persistent error prevents it from being fully rolled out", + "labels": { + "Extended": {}, + "NonHyperShiftHOST": {} + }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLM][Skipped:Disconnected] OLMv1 operator installation should install an openshift catalog cluster extension", - "originalName": "[sig-olmv1][OCPFeatureGate:NewOLM][Skipped:Disconnected] OLMv1 operator installation should install an openshift catalog cluster extension", + "name": "[sig-olmv1][Jira:OLM][OCPFeatureGate:NewOLMBoxCutterRuntime] clusterextension progress deadline PolarionID:88332-[OTP]A ClusterExtension is being upgraded and a persistent error prevents it from being fully rolled out", "labels": { - "original-name:[sig-olmv1][OCPFeatureGate:NewOLM][Skipped:Disconnected] OLMv1 operator installation should install an openshift catalog cluster extension": {} + "Extended": {}, + "NonHyperShiftHOST": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLM] OLMv1 operator installation should install a cluster extension", - "originalName": "[sig-olmv1][OCPFeatureGate:NewOLM][Skipped:Disconnected] OLMv1 operator installation should install a cluster extension", + "name": "[sig-olmv1][Jira:OLM] clusterextension watchNamespace configuration PolarionID:85510-watchNamespace configuration with AllNamespaces InstallMode", "labels": { - "original-name:[sig-olmv1][OCPFeatureGate:NewOLM][Skipped:Disconnected] OLMv1 operator installation should install a cluster extension": {} + "Extended": {}, + "NonHyperShiftHOST": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLM] OLMv1 operator installation should fail to install a non-existing cluster extension", - "originalName": "[sig-olmv1][OCPFeatureGate:NewOLM][Skipped:Disconnected] OLMv1 operator installation should fail to install a non-existing cluster extension", + "name": "[sig-olmv1][Jira:OLM] clusterextension watchNamespace configuration PolarionID:85543-watchNamespace configuration with AllNamespaces+OwnNamespace+SingleNamespace InstallModes", "labels": { - "original-name:[sig-olmv1][OCPFeatureGate:NewOLM][Skipped:Disconnected] OLMv1 operator installation should fail to install a non-existing cluster extension": {} + "Extended": {}, + "NonHyperShiftHOST": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLMWebhookProviderOpenshiftServiceCA] OLMv1 operator with webhooks should have a working validating webhook", - "originalName": "[sig-olmv1][OCPFeatureGate:NewOLMWebhookProviderOpenshiftServiceCA][Skipped:Disconnected][Serial] OLMv1 operator with webhooks should have a working validating webhook", + "name": "[sig-olmv1][Jira:OLM] clusterextension watchNamespace configuration PolarionID:85546-watchNamespace configuration with OwnNamespace+SingleNamespace InstallModes", "labels": { - "original-name:[sig-olmv1][OCPFeatureGate:NewOLMWebhookProviderOpenshiftServiceCA][Skipped:Disconnected][Serial] OLMv1 operator with webhooks should have a working validating webhook": {} + "Extended": {}, + "NonHyperShiftHOST": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLMWebhookProviderOpenshiftServiceCA] OLMv1 operator with webhooks should have a working mutating webhook [Serial]", - "originalName": "[sig-olmv1][OCPFeatureGate:NewOLMWebhookProviderOpenshiftServiceCA][Skipped:Disconnected][Serial] OLMv1 operator with webhooks should have a working mutating webhook", + "name": "[sig-olmv1][Jira:OLM] clusterextension watchNamespace configuration PolarionID:85547-watchNamespace configuration with SingleNamespace InstallMode", "labels": { - "original-name:[sig-olmv1][OCPFeatureGate:NewOLMWebhookProviderOpenshiftServiceCA][Skipped:Disconnected][Serial] OLMv1 operator with webhooks should have a working mutating webhook": {} + "Extended": {}, + "NonHyperShiftHOST": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLMWebhookProviderOpenshiftServiceCA] OLMv1 operator with webhooks should have a working conversion webhook [Serial]", - "originalName": "[sig-olmv1][OCPFeatureGate:NewOLMWebhookProviderOpenshiftServiceCA][Skipped:Disconnected][Serial] OLMv1 operator with webhooks should have a working conversion webhook", + "name": "[sig-olmv1][Jira:OLM] clusterextension watchNamespace configuration PolarionID:85549-watchNamespace configuration with OwnNamespace InstallMode", "labels": { - "original-name:[sig-olmv1][OCPFeatureGate:NewOLMWebhookProviderOpenshiftServiceCA][Skipped:Disconnected][Serial] OLMv1 operator with webhooks should have a working conversion webhook": {} + "Extended": {}, + "NonHyperShiftHOST": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLMWebhookProviderOpenshiftServiceCA] OLMv1 operator with webhooks should be tolerant to tls secret deletion [Serial]", - "originalName": "[sig-olmv1][OCPFeatureGate:NewOLMWebhookProviderOpenshiftServiceCA][Skipped:Disconnected][Serial] OLMv1 operator with webhooks should be tolerant to tls secret deletion", + "name": "[sig-olmv1][Jira:OLM] clusterextension watchNamespace configuration PolarionID:85650-[Skipped:Disconnected]API-level error validation for watchNamespace configuration", "labels": { - "original-name:[sig-olmv1][OCPFeatureGate:NewOLMWebhookProviderOpenshiftServiceCA][Skipped:Disconnected][Serial] OLMv1 operator with webhooks should be tolerant to tls secret deletion": {} + "Extended": {}, + "NonHyperShiftHOST": {} }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } }, { - "name": "[sig-olmv1][OCPFeatureGate:NewOLMWebhookProviderOpenshiftServiceCA] OLMv1 operator with webhooks should clean up webhooks when the extension is uninstalled [Serial]", - "labels": {}, + "name": "[sig-olmv1][Jira:OLM] OLM v1 for stress PolarionID:81509-[OTP][Skipped:Disconnected][OlmStress]olmv1 create mass operator to see if they all are installed successfully [Slow][Timeout:330m]", + "labels": { + "Extended": {}, + "NonHyperShiftHOST": {}, + "StressTest": {} + }, "resources": { "isolation": {} }, "source": "openshift:payload:olmv1", "lifecycle": "blocking", - "environmentSelector": {} + "environmentSelector": { + "exclude": "topology==\"External\"" + } } ] diff --git a/openshift/tests-extension/pkg/bindata/operator/operator.go b/openshift/tests-extension/pkg/bindata/operator/operator.go index 0178ed3aeb..a892313e2a 100644 --- a/openshift/tests-extension/pkg/bindata/operator/operator.go +++ b/openshift/tests-extension/pkg/bindata/operator/operator.go @@ -97,12 +97,12 @@ func dockerfile() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "Dockerfile", size: 888, mode: os.FileMode(420), modTime: time.Unix(1777315519, 0)} + info := bindataFileInfo{name: "Dockerfile", size: 888, mode: os.FileMode(420), modTime: time.Unix(1782265624, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _manifestsRegistryClusterserviceversionYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xd4\x58\x4b\x6f\xe3\x36\x10\xbe\xfb\x57\x0c\x74\xae\x14\x3b\x9b\xec\x06\x3c\x35\xbb\x1b\x04\x05\xf2\x42\x92\xf6\xd0\xc5\xa2\x18\x53\x13\x9b\x35\x45\xb2\x24\xe5\xac\x9a\xe6\xbf\x17\x94\x64\x5b\xb2\x68\xc7\x8b\xed\xa5\xbc\x58\x22\xe7\xf1\xcd\x93\x23\xa3\x11\xbf\x91\x75\x42\x2b\x06\xda\x90\x45\xaf\xad\xcb\xb8\xb6\xa4\xc3\x4f\x71\xb4\x9c\xa0\x34\x73\x9c\x8c\x16\x42\xe5\x0c\x3e\xc9\xd2\x79\xb2\x0f\x64\x97\x82\x53\xcb\x3a\x2a\xc8\x63\x8e\x1e\xd9\x08\x00\x95\xd2\x1e\xbd\xd0\xca\x85\x57\x00\x94\x45\x4a\xdf\xb0\x30\x92\x1c\x83\x7f\xd2\x7a\x13\xe0\x4b\xfb\x0b\xf0\xb2\x7e\x02\x48\x36\x80\x12\x06\x89\xe6\xa9\x36\x39\x2d\x53\x3a\xa6\x6c\x85\xef\xc9\x62\x41\xcf\xda\x2e\x32\xa1\xb3\x37\x29\xd6\x16\x24\x3f\x75\xf5\x04\x73\x82\x86\x7b\x9a\x09\xe7\x6d\xd5\x3f\x5d\x19\x94\xb0\x1e\x3a\x80\x44\xe2\x94\xa4\x1b\xec\xd7\xc8\x4d\xb6\x28\xa7\x64\x15\x79\x72\x41\x73\x81\x0a\x67\x94\xa7\xd3\x2a\x68\x5a\x94\xce\xeb\x42\xfc\x4d\x3d\x55\x3b\x58\x15\x16\x14\x98\x5e\x5e\xe0\xf1\xe2\xe1\x31\xfd\xf8\xeb\xcd\xe7\xab\x0b\x78\x7d\x4d\x7a\xbc\xaf\x7d\x51\xc9\x4e\xb6\xd4\xd5\x01\xe8\x72\xf7\x78\x13\x67\x88\x27\x0c\x54\x29\xe5\x7a\xfb\xb5\x7d\xfa\x5a\xff\x72\x34\x38\x15\x52\x78\x11\xe2\xf8\x11\x9d\xe0\xf0\x8b\x72\x1e\x5b\x0e\x6e\x09\x3d\xe5\xe7\x9e\x41\x72\x3c\x3e\x3e\x4d\xc7\x67\xe9\xf8\xfd\xe3\xe4\x03\x3b\x79\xc7\x4e\x26\xbf\x37\xba\x37\x49\x16\x0d\xd6\xb4\x14\x32\x27\xbb\x49\xc6\xd4\xe5\x8b\x74\x39\xc9\xde\x9d\x64\x93\x43\x04\x18\xab\xff\x24\xee\xff\x90\x58\xe9\xd2\x33\x98\xe9\xda\xb3\xad\xdc\x3a\x1f\x4e\x46\x00\xc1\x51\x0c\x06\x6e\xca\x96\xe3\x6c\x5c\x2b\x0a\x04\xce\x20\x27\x06\x46\x22\xa7\xb9\x0e\xfc\xa3\xe0\xa6\x3a\xcb\x8d\x70\x4d\x0d\xe4\xf4\x24\x94\x68\xf2\x1d\x5e\x82\xcb\x78\x1d\x68\x4b\x4e\x97\xb6\x7b\xde\x1e\xe7\xe4\xb8\x15\xa6\xdd\xd9\x46\xd0\x3d\xce\xe0\xf1\xf6\xf3\x6d\x16\x78\x84\x33\x12\xab\x9b\x38\xea\x11\x80\xe0\x5a\x05\x5c\x29\x4c\xd1\xd1\xfb\x93\xba\x1a\x21\x69\x7c\x5e\x50\x2e\xd0\x57\x86\xda\x1d\xd1\x44\xad\x29\xcf\x95\x45\x61\xe5\x64\xa4\xae\x0a\x52\xde\xad\xb6\x52\xa8\x33\x9e\x75\x72\x65\x5f\xa2\x33\x58\xa7\xf9\x5e\x8e\x1d\xfe\xef\xf0\x70\xad\xbc\xd5\x32\x35\x12\x15\xb1\xd5\xab\x24\x9b\x36\xda\xec\x9a\x76\x87\xac\x74\x0f\x4b\xd7\xe8\xb0\x2c\x19\x29\x38\x3a\x06\x93\xce\xae\x23\x49\xdc\x6b\xcb\x7a\x45\x56\xa0\xe7\xf3\xab\xba\x0d\xb0\xad\x42\x3e\x1c\x33\x80\xf3\x16\x3d\xcd\xaa\x36\x2b\x56\xcb\x53\x61\x24\x7a\xda\xd2\xd9\x69\xb0\xdd\x35\x68\xb6\xdd\x15\x3c\xce\xbd\xdc\xf2\x7c\x4e\x4f\x58\x4a\x5f\x7b\x07\x85\x0a\xb5\x36\x04\x17\x96\x8c\x9a\xf8\x7d\x46\x0e\x3d\x1d\xd6\x52\xcb\xb2\xa0\x81\xe8\xb4\x8d\x64\x93\xff\x2e\xa6\xf8\x49\xcc\xae\xd1\x0c\x31\xad\x92\x60\xee\xbd\xc9\xd3\x46\x40\x84\xa8\xb5\xfd\x5a\xe7\xc4\x60\xfc\xe1\xf4\x34\x12\xbf\xda\x27\x11\x6c\x68\x67\x51\x67\x14\x05\x86\x8b\xf1\x4b\x72\xd4\xe2\x3e\xaa\x41\x64\x6e\x9e\x7c\x1d\x90\x8b\x02\x67\xd4\xe9\xcf\x9f\x6e\x6f\x1e\xef\x6f\xaf\xae\x2e\xee\x07\xad\x3d\x2c\xa3\xad\x8f\x28\x0d\x70\xd6\x50\xef\xb4\xf5\x0c\xce\xc6\x67\x93\x01\x5d\xe3\xe7\x6b\x5d\xaa\x5d\x52\xf6\x3b\x3c\xac\x22\x70\xdf\xa1\x9f\x33\x38\xda\x47\x67\x09\xf3\x5b\x25\x2b\x06\xde\x96\x34\x20\x91\x62\x49\x8a\x9c\xbb\xb3\x7a\x4a\x31\x2c\xc1\x69\x97\xe4\x63\x47\x00\xa6\xd1\x1f\x84\xc4\xcf\x77\xfb\x20\x74\x3b\xe1\x05\xca\xcf\x24\xb1\x7a\x20\xae\x55\x1e\xca\x7c\x3b\xf4\xb5\x18\xb2\x42\xe7\x6b\x9a\xe3\xf1\x80\xa6\xf1\x57\xbc\x5e\x1a\x1f\x88\x1f\xb6\x32\x48\xa9\xfe\x23\x33\x0f\xb0\x72\x32\xb4\x72\x75\x75\x45\x93\x46\x8a\x42\xc4\xd3\x09\x80\x9b\x92\xc1\xe9\x78\x5c\xc4\x53\x89\x0a\x6d\x2b\x06\x93\xe3\xb3\x6b\x11\xa1\xb0\xf4\x57\x49\x6e\xaf\xec\xc9\x1b\xa2\xdf\x9f\x44\x24\x3b\xe2\xa5\x15\xbe\xfa\xa4\x95\xa7\x6f\x51\xe7\xa3\x94\xfa\xf9\xce\x8a\xa5\x90\x34\xa3\x0b\xc7\x51\x62\x73\x41\x3f\xa1\x74\xb1\xa4\xeb\x4d\x43\x51\x4c\xb9\xd5\xd1\x4e\x15\xea\xee\xfc\xea\x6a\x08\xd3\xa3\xf5\xa5\xf9\xa1\xdc\xa9\x65\x50\xfe\xfd\xd9\xf3\x84\x42\x96\x96\x1e\xe7\x96\x5c\x18\x75\x18\xbc\x1b\xe6\xc5\xdb\xb9\xf3\xa6\xab\x6d\xa9\xce\xdd\x8d\x56\xf7\x5a\xfb\x68\xab\x68\xa7\xaa\x73\xce\x43\xe3\x69\x06\x9e\xb6\x6d\x6f\x51\x7a\xb2\x85\x50\x75\x98\x2e\x2d\x72\xba\xdb\x81\xcd\x04\x3a\xe7\xba\x77\x64\x0a\xb6\x94\xdd\xb8\xa5\x61\xa0\xbb\xb4\xba\x34\xbd\x60\xa6\xab\x09\xaa\x05\x1f\xab\x8b\xb4\xbd\x97\x0a\x34\xdd\xce\xb8\x24\x3b\xdd\xa2\x9b\x91\xef\xbd\x4b\xe1\xfa\x1b\xcf\x61\xb2\xe8\x8b\xae\x67\xea\xde\x56\x69\xf2\xed\x2d\x33\xe0\xcb\x49\x52\x87\x68\xa7\x79\x5c\x6b\x9b\xb7\x4e\xcc\x16\x67\x61\x40\x78\xdb\x5e\x49\xe8\xe8\xff\x67\xeb\x21\xa1\xa4\x65\x98\x7d\xf7\x9b\x16\xc1\xd9\x07\x15\x4b\xe1\x83\xa7\xd3\xcd\x58\xb8\x19\xc6\x37\x23\x7b\x98\x5c\x5c\x33\xe7\xbb\xd2\x84\x8a\xa6\xbc\x53\x46\xcd\x8c\x7f\xfb\xac\x6e\x56\x5f\x2f\x6f\x90\x3e\x08\x35\x93\xb4\x93\x7a\xd3\xfc\x1a\xf2\xeb\x52\x7a\x71\xa8\xec\x73\x29\xd7\xa4\xc1\xa5\x0b\xaa\x9e\xb5\xcd\x5b\xf8\xb1\xd1\x5f\x0a\xb5\x68\x8f\xf7\x7d\x1f\x94\x56\x36\x93\x9e\x63\x47\x47\xc3\x4f\xb8\x5c\x17\x28\xd4\x28\x0c\xea\xa2\x3b\xce\xa5\x40\x05\x0a\xc9\xa0\xd2\xa5\xfd\xb9\x7e\xce\xb8\x6e\xee\x93\x46\xdd\xf5\x9a\x01\x02\xf2\x5a\x84\xaf\xfb\x19\x83\xfa\x3f\x84\x11\x80\xb1\x7a\x29\xc2\x17\x6a\x87\xef\xae\xdd\x5b\x71\x6d\x41\x0c\xfa\x36\xa8\x96\xab\xbf\x5b\x9a\x2f\xcd\x7f\x03\x00\x00\xff\xff\x9e\xfb\x1b\xfa\x81\x11\x00\x00") +var _manifestsRegistryClusterserviceversionYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xd4\x58\x4f\x6f\xdb\x36\x14\xbf\xfb\x53\x3c\xe8\x3c\x29\x76\x9a\xb4\x01\x4f\x4b\xdb\xa0\x28\x90\xc4\x41\x92\xf5\xb0\xa2\x18\x9e\xa9\x17\x9b\x33\x45\x72\x24\xe5\x54\xcb\xf2\xdd\x07\x4a\xb2\x2d\x59\xb4\x93\xa2\xbb\x8c\x17\x4b\xe4\xfb\xf3\x7b\x7f\xf9\x64\x34\xe2\x0b\x59\x27\xb4\x62\xa0\x0d\x59\xf4\xda\xba\x8c\x6b\x4b\x3a\xfc\x14\x47\xab\x09\x4a\xb3\xc0\xc9\x68\x29\x54\xce\xe0\x83\x2c\x9d\x27\x7b\x47\x76\x25\x38\xb5\xac\xa3\x82\x3c\xe6\xe8\x91\x8d\x00\x50\x29\xed\xd1\x0b\xad\x5c\x78\x05\x40\x59\xa4\xf4\x1d\x0b\x23\xc9\x31\xf8\x27\xad\x37\x01\xbe\xb6\xbf\x00\x4f\x9b\x27\x80\x64\x0b\x28\x61\x90\x68\x9e\x6a\x93\xd3\x2a\xa5\x63\xca\xd6\xf8\x1e\x2c\x16\xf4\xa8\xed\x32\x13\x3a\x7b\x91\x62\x63\x41\xf2\x4b\x57\x4f\x30\x27\x68\xb8\xa5\xb9\x70\xde\x56\xfd\xd3\xb5\x41\x09\xeb\xa1\x03\x48\x24\xce\x48\xba\xc1\x7e\x8d\xdc\x64\xcb\x72\x46\x56\x91\x27\x17\x34\x17\xa8\x70\x4e\x79\x3a\xab\x82\xa6\x65\xe9\xbc\x2e\xc4\xdf\xd4\x53\xb5\x87\x55\x61\x41\x81\xe9\xe9\x09\xee\x2f\xee\xee\xd3\xf7\xbf\x5d\x7f\xbc\xbc\x80\xe7\xe7\xa4\xc7\xfb\xdc\x17\x95\xec\x65\x4b\x5d\x1d\x80\x2e\x77\x8f\x37\x71\x86\x78\xc2\x40\x95\x52\x6e\xb6\x9f\xdb\xa7\x6f\xf5\x2f\x47\x83\x33\x21\x85\x17\x21\x8e\xef\xd1\x09\x0e\x9f\x95\xf3\xd8\x72\x70\x4b\xe8\x29\x3f\xf7\x0c\x92\xe3\xf1\xf1\x69\x3a\x3e\x4b\xc7\x6f\xef\x27\xef\xd8\xc9\x1b\x76\x32\xf9\xbd\xd1\xbd\x4d\xb2\x68\xb0\x66\xa5\x90\x39\xd9\x6d\x32\xa6\x2e\x5f\xa6\xab\x49\xf6\xe6\x24\x9b\xbc\x46\x80\xb1\xfa\x4f\xe2\xfe\x0f\x89\x95\x2e\x3d\x83\xb9\xae\x3d\xdb\xca\xad\xf3\xe1\x64\x04\x10\x1c\xc5\x60\xe0\xa6\x6c\xf5\xf4\x04\xcd\x5b\xfa\xe5\xe2\xf6\xee\xf3\xf4\x1a\x9e\x9f\x5b\x7a\x67\x90\x13\x03\x23\x91\xd3\x42\x07\x71\xa3\xe0\xb5\x3a\xe9\x8d\x70\x4d\x49\xe4\xf4\x20\x94\x68\xd2\x1f\x9e\x02\x2b\xaf\xe3\x6e\xc9\xe9\xd2\x76\xcf\xdb\xe3\x9c\x1c\xb7\xc2\xb4\x3b\xbb\x80\xba\xc7\x19\xdc\x4f\x3f\x4e\xb3\xc0\x23\x9c\x91\x58\x5d\xc7\x8d\x18\x01\x08\xae\x55\xc0\x95\xc2\x0c\x1d\xbd\x3d\xa9\x8b\x13\x92\x26\x04\x05\xe5\x02\x7d\x65\xa8\xdd\x11\x4d\x10\x9b\x6a\x5d\x5b\x14\x56\x4e\x46\xea\xaa\x20\xe5\xdd\x7a\x2b\x85\xba\x00\x58\x27\x75\x0e\xe5\x3d\x83\x4d\xd6\x1f\xe4\xd8\x13\x8e\x0e\x0f\xd7\xca\x5b\x2d\x53\x23\x51\x11\x5b\xbf\x4a\xb2\x69\xa3\xcd\x6e\x68\xf7\xc8\x4a\x0f\xb0\x74\x8d\x0e\xcb\x92\x91\x82\xa3\x63\x30\xe9\xec\x3a\x92\xc4\xbd\xb6\xac\x57\x73\x05\x7a\xbe\xb8\xac\xbb\x02\xdb\xa9\xeb\xd7\x63\x06\x70\xde\xa2\xa7\x79\xd5\x66\xc5\x7a\x79\x2a\x8c\x44\x4f\x3b\x3a\x3b\xfd\xb6\xbb\x06\xbd\xb7\xbb\x82\xc7\xb9\x97\x3b\x9e\xcf\xe9\x01\x4b\xe9\x6b\xef\xa0\x50\xa1\xf4\x86\xe0\xc2\x92\x51\x13\x7f\xcc\xc8\xa1\xa7\xc3\x5a\x69\x59\x16\x34\x10\x9d\xb6\x91\x6c\xf2\xdf\xc5\x14\x3f\x88\xf9\x15\x9a\x21\xa6\x75\x12\x2c\xbc\x37\x79\xda\x08\x88\x10\xb5\xb6\x5f\xe9\x9c\x18\x8c\xdf\x9d\x9e\x46\xe2\x57\xfb\x24\x82\x0d\xed\x3c\xea\x8c\xa2\xc0\x70\x4f\x7e\x4d\x8e\x5a\xdc\x47\x35\x88\xcc\x2d\x92\x6f\x03\x72\x51\xe0\x9c\x3a\xed\xfa\xc3\xf4\xfa\xfe\x76\x7a\x79\x79\x71\x3b\xe8\xf4\x61\x19\x6d\x7d\x44\x69\x80\xb3\x81\x7a\xa3\xad\x67\x70\x36\x3e\x9b\x0c\xe8\x1a\x3f\x5f\xe9\x52\xed\x93\x72\xd8\xe1\x61\x15\x81\xfb\x06\xfd\x82\xc1\xd1\x21\x3a\x4b\x98\x4f\x95\xac\x18\x78\x5b\xd2\x80\x44\x8a\x15\x29\x72\xee\xc6\xea\x19\xc5\xb0\x04\xa7\x7d\x22\x1f\x3b\x02\x30\x8d\xfe\x20\x24\x7e\xbe\xdf\x07\xa1\xdb\x09\x2f\x50\x7e\x24\x89\xd5\x1d\x71\xad\xf2\x50\xe6\xbb\xa1\xaf\xc5\x90\x15\x3a\xdf\xd0\x1c\x8f\x07\x34\x8d\xbf\xe2\xf5\xd2\xf8\x40\xfc\xb4\x95\x41\x4a\xf5\x1f\x99\xf9\x0a\x2b\x27\x43\x2b\xd7\x57\x57\x34\x69\xa4\x28\x44\x3c\x9d\x00\xb8\x29\x19\x9c\x8e\xc7\x45\x3c\x95\xa8\xd0\xb6\x62\x30\x39\x3e\xbb\x12\x11\x0a\x4b\x7f\x95\xe4\x0e\xca\x9e\xbc\x20\xfa\xed\x49\x44\xb2\x23\x5e\x5a\xe1\xab\x0f\x5a\x79\xfa\x1e\x75\x3e\x4a\xa9\x1f\x6f\xac\x58\x09\x49\x73\xba\x70\x1c\x25\x36\x17\xf4\x03\x4a\x17\x4b\xba\xde\x70\x14\xc5\x94\x5b\x1d\xed\x54\xa1\xee\xce\x2f\x2f\x87\x30\x3d\x5a\x5f\x9a\x9f\xca\x9d\x5a\x06\xe5\x3f\x9e\x3d\x0f\x28\x64\x69\xe9\x7e\x61\xc9\x85\x51\x87\xc1\x9b\x61\x5e\xbc\x9c\x3b\x2f\xba\xda\x96\xea\xdc\x5d\x6b\x75\xab\xb5\x8f\xb6\x8a\x76\xaa\x3a\xe7\x3c\x34\x9e\x66\xe0\x69\xdb\xf6\x0e\xa5\x27\x5b\x08\x55\x87\xe9\x93\x45\x4e\x37\x7b\xb0\x99\x40\xe7\x5c\xf7\x8e\x4c\xc1\x96\xb2\x1b\xb7\x34\x0c\x74\x9f\xac\x2e\x4d\x2f\x98\xe9\x7a\x82\x6a\xc1\xc7\xea\x22\x6d\xef\xa5\x02\x4d\xb7\x33\xae\xc8\xce\x76\xe8\xe6\xe4\x7b\xef\x52\xb8\xfe\xc6\x63\x98\x2c\xfa\xa2\xeb\x11\xbb\xb7\x55\x9a\x7c\x77\xcb\x0c\xf8\x72\x92\xd4\x21\xda\x6b\x1e\xd7\xda\xe6\xad\x13\xb3\xe5\x59\x18\x10\x5e\xb6\x57\x12\x3a\xfa\xff\xd9\xfa\x9a\x50\xd2\x2a\xcc\xbe\x87\x4d\x8b\xe0\xec\x83\x8a\xa5\xf0\xab\xa7\xd3\xed\x58\xb8\x1d\xc6\xb7\x23\x7b\x98\x5c\x5c\x33\xe7\xbb\xd2\x84\x8a\xa6\xbc\x53\x46\xcd\x8c\x3f\x7d\x54\xd7\xeb\xaf\x97\x17\x48\xef\x84\x9a\x4b\xda\x4b\xbd\x6d\x7e\x0d\xf9\x55\x29\xbd\x78\xad\xec\x73\x29\x37\xa4\xc1\xa5\x4b\xaa\x1e\xb5\xcd\x5b\xf8\xb1\xd1\x5f\x0a\xb5\x6c\x8f\x0f\x7d\x1f\x94\x56\x36\x93\x9e\x63\x47\x47\xc3\x2f\xba\x5c\x17\x28\xd4\x28\x0c\xea\xa2\x3b\xce\xa5\x40\x05\x0a\xc9\xa0\xd2\xa5\xfd\xb5\x7e\xce\xb8\x6e\xee\x93\x46\xdd\xd5\x86\x01\x02\xf2\x5a\x84\xaf\xfb\x19\x83\xfa\x2f\x85\x11\x80\xb1\x7a\x25\xc2\x07\x6b\x87\xef\xa6\xdd\x5b\x73\xed\x40\x0c\xfa\xb6\xa8\x56\xeb\x7f\x5f\xa2\x1f\x9e\xff\x06\x00\x00\xff\xff\x2e\xb6\xe9\x79\x9f\x11\x00\x00") func manifestsRegistryClusterserviceversionYamlBytes() ([]byte, error) { return bindataRead( @@ -117,7 +117,7 @@ func manifestsRegistryClusterserviceversionYaml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "manifests/registry.clusterserviceversion.yaml", size: 4481, mode: os.FileMode(420), modTime: time.Unix(1777315519, 0)} + info := bindataFileInfo{name: "manifests/registry.clusterserviceversion.yaml", size: 4511, mode: os.FileMode(420), modTime: time.Unix(1783323242, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -137,7 +137,7 @@ func manifestsScriptConfigmapYaml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "manifests/script.configmap.yaml", size: 300, mode: os.FileMode(420), modTime: time.Unix(1777315519, 0)} + info := bindataFileInfo{name: "manifests/script.configmap.yaml", size: 300, mode: os.FileMode(420), modTime: time.Unix(1782265624, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -157,7 +157,7 @@ func metadataAnnotationsYaml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "metadata/annotations.yaml", size: 732, mode: os.FileMode(420), modTime: time.Unix(1777315519, 0)} + info := bindataFileInfo{name: "metadata/annotations.yaml", size: 732, mode: os.FileMode(420), modTime: time.Unix(1782265624, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -177,7 +177,7 @@ func metadataPropertiesYaml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "metadata/properties.yaml", size: 73, mode: os.FileMode(420), modTime: time.Unix(1777315519, 0)} + info := bindataFileInfo{name: "metadata/properties.yaml", size: 73, mode: os.FileMode(420), modTime: time.Unix(1782265624, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -197,7 +197,7 @@ func testsScorecardConfigYaml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "tests/scorecard/config.yaml", size: 1614, mode: os.FileMode(420), modTime: time.Unix(1777315519, 0)} + info := bindataFileInfo{name: "tests/scorecard/config.yaml", size: 1614, mode: os.FileMode(420), modTime: time.Unix(1782265624, 0)} a := &asset{bytes: bytes, info: info} return a, nil } diff --git a/openshift/tests-extension/pkg/helpers/cluster_extension.go b/openshift/tests-extension/pkg/helpers/cluster_extension.go index 8441c485ce..ae193f9080 100644 --- a/openshift/tests-extension/pkg/helpers/cluster_extension.go +++ b/openshift/tests-extension/pkg/helpers/cluster_extension.go @@ -47,6 +47,15 @@ func WithCatalogNameSelector(catalogName string) ClusterExtensionOption { }) } +func WithProgressDeadlineMinutes(minutes int32) ClusterExtensionOption { + return func(ext *olmv1.ClusterExtension) { + if ext == nil { + return + } + ext.Spec.ProgressDeadlineMinutes = minutes + } +} + // CreateClusterExtension creates a ServiceAccount, ClusterRoleBinding, and ClusterExtension using typed APIs. // It returns the unique suffix and a cleanup function. func CreateClusterExtension(packageName, version, namespace, unique string, opts ...ClusterExtensionOption) (string, func()) { diff --git a/openshift/tests-extension/pkg/helpers/in_cluster_bundles.go b/openshift/tests-extension/pkg/helpers/in_cluster_bundles.go index 127078c4a4..68a7296bae 100644 --- a/openshift/tests-extension/pkg/helpers/in_cluster_bundles.go +++ b/openshift/tests-extension/pkg/helpers/in_cluster_bundles.go @@ -71,12 +71,15 @@ func NewCatalogAndClusterBundles(ctx SpecContext, replacements map[string]string if key == "{{ TEST-BUNDLE }}" { replacements[key] = opName } - // Future: could add more auto-fill patterns here } } + // Default the bundle version if the caller did not provide it. + if _, ok := replacements["{{ BUNDLE-VERSION }}"]; !ok { + replacements["{{ BUNDLE-VERSION }}"] = "0.0.1" + } By("creating a new Namespace") - createNamespace(nsName) + CreateNamespace(nsName) // The builder (and deployer) service accounts are created by OpenShift itself which injects them in the NS. By(fmt.Sprintf("waiting for builder serviceaccount in %s", nsName)) @@ -86,7 +89,7 @@ func NewCatalogAndClusterBundles(ctx SpecContext, replacements map[string]string ExpectServiceAccountExists(ctx, "deployer", nsName) By("applying image-puller RoleBinding") - createImagePullerRoleBinding(rbName, nsName) + CreateImagePullerRoleBinding(rbName, nsName) By("creating the operator BuildConfig") createBuildConfig(opName, nsName) @@ -167,8 +170,6 @@ func createClusterCatalog(name, namespace string) { }, }, } - - Expect(k8sClient.Create(ctx, cc)).To(Succeed(), "failed to create ClusterCatalog") DeferCleanup(func() { By(fmt.Sprintf("deleting ClusterCatalog %q", name)) err := k8sClient.Delete(context.Background(), cc) @@ -176,10 +177,14 @@ func createClusterCatalog(name, namespace string) { Expect(err).NotTo(HaveOccurred()) } }) + Expect(k8sClient.Create(ctx, cc)).To(Succeed(), "failed to create ClusterCatalog") + waitForClusterCatalogServing(ctx, cc.Name) } -func createImagePullerRoleBinding(name, namespace string) { +// CreateImagePullerRoleBinding creates a RoleBinding granting system:image-puller to +// the openshift-catalogd and openshift-operator-controller service account groups. +func CreateImagePullerRoleBinding(name, namespace string) { ctx := context.Background() k8sClient := env.Get().K8sClient @@ -206,14 +211,15 @@ func createImagePullerRoleBinding(name, namespace string) { }, }, } - Expect(k8sClient.Create(ctx, rb)).To(Succeed(), "failed to create image-puller RoleBinding") DeferCleanup(func() { By(fmt.Sprintf("deleting image-puller RoleBinding %q", name)) _ = k8sClient.Delete(ctx, rb) }) + Expect(k8sClient.Create(ctx, rb)).To(Succeed(), "failed to create image-puller RoleBinding") } -func createNamespace(namespace string) { +// CreateNamespace creates a namespace and registers a DeferCleanup to delete it. +func CreateNamespace(namespace string) { ctx := context.Background() k8sClient := env.Get().K8sClient @@ -222,12 +228,11 @@ func createNamespace(namespace string) { Name: namespace, }, } - - Expect(k8sClient.Create(ctx, ns)).To(Succeed(), "failed to create Namespace: %q", namespace) DeferCleanup(func() { By(fmt.Sprintf("deleting Namespace %q", namespace)) _ = k8sClient.Delete(context.Background(), ns) }) + Expect(k8sClient.Create(ctx, ns)).To(Succeed(), "failed to create Namespace: %q", namespace) } func createImageStream(name, namespace string) { @@ -243,12 +248,11 @@ func createImageStream(name, namespace string) { }, }, } - - Expect(k8sClient.Create(ctx, is)).To(Succeed(), "failed to create ImageStream: %q", name) DeferCleanup(func() { By(fmt.Sprintf("deleting ImageStream %q", name)) _ = k8sClient.Delete(context.Background(), is) }) + Expect(k8sClient.Create(ctx, is)).To(Succeed(), "failed to create ImageStream: %q", name) } func createBuildConfig(name, namespace string) { @@ -293,12 +297,11 @@ func createBuildConfig(name, namespace string) { }, }, } - - Expect(k8sClient.Create(ctx, bc)).To(Succeed(), "failed to create BuildConfig: %q", name) DeferCleanup(func() { By(fmt.Sprintf("deleting BuildConfig %q", name)) _ = k8sClient.Delete(context.Background(), bc) }) + Expect(k8sClient.Create(ctx, bc)).To(Succeed(), "failed to create BuildConfig: %q", name) } func waitForBuildToFinish(ctx SpecContext, name, namespace string) { @@ -365,30 +368,44 @@ func printExitError(err error) string { return err.Error() } -func createTempTarBall(replacements map[string]string, getAssetNames func() []string, getAsset func(string) ([]byte, error)) string { +// BuildImage builds an OCI image in-cluster from the given files map. +// It creates an ImageStream and BuildConfig in the given namespace, starts a build +// from a temporary tar archive of the files, and waits for completion. +func BuildImage(ctx SpecContext, namespace, name string, files map[string][]byte) { + createImageStream(name, namespace) + createBuildConfig(name, namespace) + tarFile := createTempTarBallFromFiles(files) + args := []string{ + "create", + "--raw", + fmt.Sprintf( + "/apis/build.openshift.io/v1/namespaces/%s/buildconfigs/%s/instantiatebinary?name=%s&namespace=%s", + namespace, name, name, namespace, + ), + "-f", + tarFile, + } + build := startBuild(args...) + waitForBuildToFinish(ctx, build.Name, namespace) +} + +func createTempTarBallFromFiles(files map[string][]byte) string { file, err := os.CreateTemp("", "bundle-*.tar") Expect(err).To(Succeed()) filename := file.Name() - namesCatalog := getAssetNames() - twCatalog := tar.NewWriter(file) - for _, name := range namesCatalog { - data, err := getAsset(name) - Expect(err).To(Succeed()) - for k, v := range replacements { - data = bytes.ReplaceAll(data, []byte(k), []byte(v)) - } + tw := tar.NewWriter(file) + for name, data := range files { hdr := &tar.Header{ Name: name, Size: int64(len(data)), Mode: 0o644, } - err = twCatalog.WriteHeader(hdr) - Expect(err).To(Succeed()) - _, err = twCatalog.Write(data) + Expect(tw.WriteHeader(hdr)).To(Succeed()) + _, err = tw.Write(data) Expect(err).To(Succeed()) } - Expect(twCatalog.Close()).To(Succeed(), "failed to close tar writer for file %q", filename) + Expect(tw.Close()).To(Succeed(), "failed to close tar writer for file %q", filename) Expect(file.Close()).To(Succeed(), "failed to close tar file %q", filename) DeferCleanup(func() { @@ -397,3 +414,17 @@ func createTempTarBall(replacements map[string]string, getAssetNames func() []st }) return filename } + +func createTempTarBall(replacements map[string]string, getAssetNames func() []string, getAsset func(string) ([]byte, error)) string { + names := getAssetNames() + files := make(map[string][]byte, len(names)) + for _, name := range names { + data, err := getAsset(name) + Expect(err).To(Succeed()) + for k, v := range replacements { + data = bytes.ReplaceAll(data, []byte(k), []byte(v)) + } + files[name] = data + } + return createTempTarBallFromFiles(files) +} diff --git a/openshift/tests-extension/test/qe/specs/olmv1_ce_progress_deadline.go b/openshift/tests-extension/test/qe/specs/olmv1_ce_progress_deadline.go new file mode 100644 index 0000000000..1491785182 --- /dev/null +++ b/openshift/tests-extension/test/qe/specs/olmv1_ce_progress_deadline.go @@ -0,0 +1,249 @@ +package specs + +import ( + "bytes" + "context" + "encoding/json" + "fmt" + "strings" + "time" + + g "github.com/onsi/ginkgo/v2" + o "github.com/onsi/gomega" + "github.com/openshift/api/features" + "github.com/openshift/origin/test/extended/util/image" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/types" + "sigs.k8s.io/controller-runtime/pkg/client" + + olmv1 "github.com/operator-framework/operator-controller/api/v1" + + catalogbindata "github.com/openshift/operator-framework-operator-controller/openshift/tests-extension/pkg/bindata/catalog" + operatorbindata "github.com/openshift/operator-framework-operator-controller/openshift/tests-extension/pkg/bindata/operator" + "github.com/openshift/operator-framework-operator-controller/openshift/tests-extension/pkg/env" + "github.com/openshift/operator-framework-operator-controller/openshift/tests-extension/pkg/helpers" + exutil "github.com/openshift/operator-framework-operator-controller/openshift/tests-extension/test/qe/util" +) + +var _ = g.Describe("[sig-olmv1][Jira:OLM][OCPFeatureGate:NewOLMBoxCutterRuntime] clusterextension progress deadline", g.Label("NonHyperShiftHOST"), func() { + var oc = exutil.NewCLIWithoutNamespace("default") + var fixture rolloutFailureFixture + + g.BeforeEach(func(ctx g.SpecContext) { + exutil.SkipMicroshift(oc) + exutil.SkipNoOLMv1Core(oc) + helpers.RequireFeatureGateEnabled(features.FeatureGateNewOLMBoxCutterRuntime) + helpers.RequireImageRegistry(ctx) + }) + + g.AfterEach(func() { + if g.CurrentSpecReport().Failed() { + helpers.DescribeAllClusterCatalogs(context.Background()) + helpers.DescribeAllClusterExtensions(context.Background(), fixture.Namespace) + } + }) + + g.It("PolarionID:88331-[OTP]A ClusterExtension is created and a persistent error prevents it from being fully rolled out", func(ctx g.SpecContext) { + const caseID = "88331" + fixture = newRolloutFailureFixture(ctx, caseID, []rolloutFailureBundle{ + {Version: "1.0.2", ControllerImage: "wrong/image"}, + }) + + g.By("creating a ClusterExtension with a 10-minute progress deadline for the failing bundle") + ceName, cleanup := helpers.CreateClusterExtension("test", "1.0.2", fixture.Namespace, caseID, + helpers.WithCatalogNameSelector(fixture.CatalogName), + helpers.WithProgressDeadlineMinutes(10), + ) + g.DeferCleanup(cleanup) + + g.By("waiting for the ClusterObjectSet to report ProgressDeadlineExceeded") + eventually(ctx, func(g o.Gomega) { + ce := &olmv1.ClusterExtension{} + err := env.Get().K8sClient.Get(ctx, client.ObjectKey{Name: ceName}, ce) + g.Expect(err).NotTo(o.HaveOccurred(), "failed to get ClusterExtension") + g.Expect(ce.Status.ActiveRevisions).NotTo(o.BeEmpty(), "expected at least one active revision") + + cos := &olmv1.ClusterObjectSet{} + err = env.Get().K8sClient.Get(ctx, client.ObjectKey{Name: ce.Status.ActiveRevisions[0].Name}, cos) + g.Expect(err).NotTo(o.HaveOccurred(), "failed to get ClusterObjectSet") + expectCondition(g, cos.Status.Conditions, olmv1.TypeProgressing, metav1.ConditionFalse, olmv1.ReasonProgressDeadlineExceeded) + }, 12*time.Minute) // 12 minutes for the minimum 10 minute timeout + padding + }) + + g.It("PolarionID:88332-[OTP]A ClusterExtension is being upgraded and a persistent error prevents it from being fully rolled out", func(ctx g.SpecContext) { + const caseID = "88332" + fixture = newRolloutFailureFixture(ctx, caseID, []rolloutFailureBundle{ + {Version: "1.0.0", ControllerImage: image.ShellImage()}, + {Version: "1.0.2", ControllerImage: "wrong/image", Replaces: "1.0.0"}, + }) + + g.By("creating a ClusterExtension on a healthy initial version") + ceName, cleanup := helpers.CreateClusterExtension("test", "1.0.0", fixture.Namespace, caseID, + helpers.WithCatalogNameSelector(fixture.CatalogName), + func(ce *olmv1.ClusterExtension) { + ce.Spec.Source.Catalog.UpgradeConstraintPolicy = olmv1.UpgradeConstraintPolicySelfCertified + }, + ) + g.DeferCleanup(cleanup) + + g.By("waiting for the initial installation to complete") + eventually(ctx, func(g o.Gomega) { + ce := &olmv1.ClusterExtension{} + err := env.Get().K8sClient.Get(ctx, client.ObjectKey{Name: ceName}, ce) + g.Expect(err).NotTo(o.HaveOccurred(), "failed to get ClusterExtension") + expectCondition(g, ce.Status.Conditions, olmv1.TypeInstalled, metav1.ConditionTrue, "") + expectCondition(g, ce.Status.Conditions, olmv1.TypeProgressing, metav1.ConditionTrue, olmv1.ReasonSucceeded) + }, 3*time.Minute) + + g.By("updating the ClusterExtension to a version with a persistent rollout error") + patchTarget := &olmv1.ClusterExtension{ObjectMeta: metav1.ObjectMeta{Name: ceName}} + patch := []byte(`{"spec":{"source":{"catalog":{"version":"1.0.2"}}}}`) + o.Expect(env.Get().K8sClient.Patch(ctx, patchTarget, client.RawPatch(types.MergePatchType, patch))).To(o.Succeed(), "failed to patch ClusterExtension") + + g.By("verifying both revisions remain active and the new revision reports a probe failure") + eventually(ctx, func(g o.Gomega) { + ce := &olmv1.ClusterExtension{} + err := env.Get().K8sClient.Get(ctx, client.ObjectKey{Name: ceName}, ce) + g.Expect(err).NotTo(o.HaveOccurred(), "failed to get ClusterExtension") + g.Expect(len(ce.Status.ActiveRevisions)).To(o.BeNumerically(">", 1)) + + cos := &olmv1.ClusterObjectSet{} + err = env.Get().K8sClient.Get(ctx, client.ObjectKey{Name: ce.Status.ActiveRevisions[1].Name}, cos) + g.Expect(err).NotTo(o.HaveOccurred(), "failed to get ClusterObjectSet") + expectCondition(g, cos.Status.Conditions, olmv1.TypeProgressing, metav1.ConditionTrue, olmv1.ReasonRollingOut) + expectCondition(g, cos.Status.Conditions, olmv1.ClusterObjectSetTypeAvailable, metav1.ConditionFalse, olmv1.ClusterObjectSetReasonProbeFailure) + }, 3*time.Minute) + }) +}) + +type rolloutFailureBundle struct { + Version string + ControllerImage string + Replaces string +} + +type rolloutFailureFixture struct { + Namespace string + CatalogName string +} + +func newRolloutFailureFixture(ctx g.SpecContext, caseID string, bundles []rolloutFailureBundle) rolloutFailureFixture { + namespace := "ns-" + caseID + catalogName := "test-catalog-" + caseID + + g.By("creating a test namespace") + helpers.CreateNamespace(namespace) + helpers.ExpectServiceAccountExists(ctx, "builder", namespace) + helpers.ExpectServiceAccountExists(ctx, "deployer", namespace) + + g.By("allowing catalogd and operator-controller to pull test images") + helpers.CreateImagePullerRoleBinding("image-puller-"+caseID, namespace) + + bundleRefs := make(map[string]string, len(bundles)) + for _, bundle := range bundles { + imageName := fmt.Sprintf("test-bundle-%s-%s", caseID, strings.ReplaceAll(bundle.Version, ".", "-")) + bundleRefs[bundle.Version] = fmt.Sprintf("image-registry.openshift-image-registry.svc:5000/%s/%s:latest", namespace, imageName) + g.By(fmt.Sprintf("building bundle image for version %s", bundle.Version)) + helpers.BuildImage(ctx, namespace, imageName, bundleImageFiles(bundle)) + } + + g.By("building the catalog image") + helpers.BuildImage(ctx, namespace, catalogName, catalogImageFiles(caseID, bundles, bundleRefs)) + + cleanup, err := helpers.CreateClusterCatalog(ctx, catalogName, fmt.Sprintf("image-registry.openshift-image-registry.svc:5000/%s/%s:latest", namespace, catalogName)) + g.DeferCleanup(cleanup) + o.Expect(err).NotTo(o.HaveOccurred(), "failed to create ClusterCatalog") + + helpers.ExpectCatalogToBeServing(ctx, catalogName) + + return rolloutFailureFixture{ + Namespace: namespace, + CatalogName: catalogName, + } +} + +func bundleImageFiles(bundle rolloutFailureBundle) map[string][]byte { + replacements := map[string]string{ + "{{ TEST-BUNDLE }}": "test", + "{{ TEST-CONTROLLER }}": bundle.ControllerImage, + "{{ BUNDLE-VERSION }}": bundle.Version, + } + names := operatorbindata.AssetNames() + out := make(map[string][]byte, len(names)) + for _, name := range names { + data := operatorbindata.MustAsset(name) + for k, v := range replacements { + data = bytes.ReplaceAll(data, []byte(k), []byte(v)) + } + out[name] = data + } + return out +} + +func catalogImageFiles(caseID string, bundles []rolloutFailureBundle, bundleRefs map[string]string) map[string][]byte { + var fbc strings.Builder + writeCatalogEntry := func(entry any) { + data, err := json.Marshal(entry) + o.Expect(err).NotTo(o.HaveOccurred(), "failed to marshal catalog metadata") + _, err = fbc.Write(data) + o.Expect(err).NotTo(o.HaveOccurred(), "failed to write catalog metadata") + o.Expect(fbc.WriteByte('\n')).To(o.Succeed(), "failed to terminate catalog metadata entry") + } + + writeCatalogEntry(map[string]any{ + "schema": "olm.package", + "name": "test", + "defaultChannel": "alpha", + }) + + for _, bundle := range bundles { + writeCatalogEntry(map[string]any{ + "schema": "olm.bundle", + "name": "test.v" + bundle.Version, + "package": "test", + "image": bundleRefs[bundle.Version], + "properties": []map[string]any{{ + "type": "olm.package", + "value": map[string]string{ + "packageName": "test", + "version": bundle.Version, + }, + }}, + }) + } + + entries := make([]map[string]string, 0, len(bundles)) + for _, bundle := range bundles { + entry := map[string]string{"name": "test.v" + bundle.Version} + if bundle.Replaces != "" { + entry["replaces"] = "test.v" + bundle.Replaces + } + entries = append(entries, entry) + } + writeCatalogEntry(map[string]any{ + "schema": "olm.channel", + "name": "alpha", + "package": "test", + "entries": entries, + }) + + return map[string][]byte{ + "Dockerfile": catalogbindata.MustAsset("Dockerfile"), + "configs/.indexignore": catalogbindata.MustAsset("configs/.indexignore"), + "configs/catalog-" + caseID + ".yaml": []byte(fbc.String()), + } +} + +func expectCondition(g o.Gomega, conditions []metav1.Condition, conditionType string, status metav1.ConditionStatus, reason string) { + condition := meta.FindStatusCondition(conditions, conditionType) + g.Expect(condition).NotTo(o.BeNil(), "%s condition not found", conditionType) + g.Expect(condition.Status).To(o.Equal(status), "%s status mismatch", conditionType) + if reason != "" { + g.Expect(condition.Reason).To(o.Equal(reason), "%s reason mismatch", conditionType) + } +} + +func eventually(ctx context.Context, callback func(o.Gomega), timeout time.Duration) { + o.Eventually(callback).WithContext(ctx).WithTimeout(timeout).WithPolling(helpers.DefaultPolling).Should(o.Succeed()) +} diff --git a/openshift/tests-extension/testdata/operator/manifests/registry.clusterserviceversion.yaml b/openshift/tests-extension/testdata/operator/manifests/registry.clusterserviceversion.yaml index b1090e321f..47fba8beca 100644 --- a/openshift/tests-extension/testdata/operator/manifests/registry.clusterserviceversion.yaml +++ b/openshift/tests-extension/testdata/operator/manifests/registry.clusterserviceversion.yaml @@ -21,7 +21,7 @@ metadata: createdAt: "2025-08-06T17:43:41Z" operators.operatorframework.io/builder: operator-sdk-v1.34.1 operators.operatorframework.io/project_layout: go.kubebuilder.io/v4 - name: {{ TEST-BUNDLE }}.v0.0.1 + name: {{ TEST-BUNDLE }}.v{{ BUNDLE-VERSION }} namespace: placeholder spec: apiservicedefinitions: {} @@ -158,4 +158,4 @@ spec: provider: name: Provider Name url: https://your.domain - version: 0.0.1 + version: {{ BUNDLE-VERSION }}