--- BVT pytest attempt 2026-06-12T10:03:57.636164+00:00 (/.local/bin/uv run pytest...) --- 2026-06-12T10:03:58.830570Z [info ] Writing tests log to /home/odh/opendatahub-tests/results/pytest-tests.log [conftest] 2026-06-12T10:03:58.842326Z [info ] BEGIN (implicit)  [sqlalchemy.engine.Engine] 2026-06-12T10:03:58.842776Z [info ] BEGIN (implicit)  [sqlalchemy.engine.Engine] 2026-06-12T10:03:58.842927Z [info ] PRAGMA main.table_info("OpenDataHubTestTable") [sqlalchemy.engine.Engine] 2026-06-12T10:03:58.843557Z [info ] PRAGMA main.table_info("OpenDataHubTestTable") [sqlalchemy.engine.Engine] 2026-06-12T10:03:58.843764Z [info ] [raw sql] ()  [sqlalchemy.engine.Engine] 2026-06-12T10:03:58.843933Z [info ] [raw sql] ()  [sqlalchemy.engine.Engine] 2026-06-12T10:03:58.844085Z [info ] PRAGMA temp.table_info("OpenDataHubTestTable") [sqlalchemy.engine.Engine] 2026-06-12T10:03:58.844390Z [info ] PRAGMA temp.table_info("OpenDataHubTestTable") [sqlalchemy.engine.Engine] 2026-06-12T10:03:58.844568Z [info ] [raw sql] ()  [sqlalchemy.engine.Engine] 2026-06-12T10:03:58.844728Z [info ] [raw sql] ()  [sqlalchemy.engine.Engine] 2026-06-12T10:03:58.844854Z [info ]  CREATE TABLE "OpenDataHubTestTable" ( id INTEGER NOT NULL, test_name VARCHAR(500) NOT NULL, start_time INTEGER NOT NULL, PRIMARY KEY (id) )  [sqlalchemy.engine.Engine] 2026-06-12T10:03:58.844975Z [info ]  CREATE TABLE "OpenDataHubTestTable" ( id INTEGER NOT NULL, test_name VARCHAR(500) NOT NULL, start_time INTEGER NOT NULL, PRIMARY KEY (id) )  [sqlalchemy.engine.Engine] 2026-06-12T10:03:58.845109Z [info ] [no key 0.00005s] ()  [sqlalchemy.engine.Engine] 2026-06-12T10:03:58.845238Z [info ] [no key 0.00005s] ()  [sqlalchemy.engine.Engine] 2026-06-12T10:03:58.845360Z [info ] COMMIT  [sqlalchemy.engine.Engine] 2026-06-12T10:03:58.845474Z [info ] COMMIT  [sqlalchemy.engine.Engine] 2026-06-12T10:03:58.845881Z [info ] Trying to get client via new_client_from_config [ocp_resources.resource] 2026-06-12T10:03:58.852647Z [info ] kind: DataScienceCluster api version: datasciencecluster.opendatahub.io/v2 [ocp_resources.resource] /home/odh/opendatahub-tests/.venv/lib64/python3.14/site-packages/urllib3/connectionpool.py:1097: InsecureRequestWarning: Unverified HTTPS request is being made to host 'api.ods-qe-psi-23.osp.rh-ods.com'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#tls-warnings warnings.warn( 2026-06-12T10:03:58.945290Z [info ] kind: DSCInitialization api version: dscinitialization.opendatahub.io/v2 [ocp_resources.resource] 2026-06-12T10:03:58.973135Z [info ] Running model registry tests against default namespace [conftest] 2026-06-12T10:03:58.973296Z [info ] kind: DataScienceCluster api version: datasciencecluster.opendatahub.io/v2 [ocp_resources.resource] ============================= test session starts ============================== platform linux -- Python 3.14.5, pytest-9.0.3, pluggy-1.6.0 -- /home/odh/opendatahub-tests/.venv/bin/python cachedir: .pytest_cache metadata: {'Python': '3.14.5', 'Platform': 'Linux-5.14.0-427.115.1.el9_4.x86_64-x86_64-with-glibc2.42', 'Packages': {'pytest': '9.0.3', 'pluggy': '1.6.0'}, 'Plugins': {'anyio': '4.13.0', 'asyncio': '1.3.0', 'dependency': '0.6.1', 'html': '4.2.0', 'metadata': '3.1.1', 'order': '1.3.0', 'progress': '1.4.0', 'testconfig': '0.2.0', 'xdist': '3.8.0', 'syrupy': '5.1.0'}} rootdir: /home/odh/opendatahub-tests configfile: pytest.ini plugins: anyio-4.13.0, asyncio-1.3.0, dependency-0.6.1, html-4.2.0, metadata-3.1.1, order-1.3.0, progress-1.4.0, testconfig-0.2.0, xdist-3.8.0, syrupy-5.1.0 asyncio: mode=Mode.STRICT, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function collecting ... collected 105 items / 94 deselected / 11 selected tests/model_serving/maas_billing/maas_api_key/test_api_key_auth_policy_validation.py::TestAuthPolicyApiKeyValidation::test_auth_policy_callback_url_uses_correct_namespace  --------------------------------- test_auth_policy_callback_url_uses_correct_namespace --------------------------------- -------------------------------------------------------- SETUP -------------------------------------------------------- 2026-06-12T10:03:59.252753Z [info ] (OpenDataHubTestTable|OpenDataHubTestTable) _post_configure_properties() started [sqlalchemy.orm.mapper.Mapper] 2026-06-12T10:03:59.253505Z [info ] (OpenDataHubTestTable|OpenDataHubTestTable) initialize prop id [sqlalchemy.orm.mapper.Mapper] 2026-06-12T10:03:59.254469Z [info ] (OpenDataHubTestTable|OpenDataHubTestTable) initialize prop test_name [sqlalchemy.orm.mapper.Mapper] 2026-06-12T10:03:59.254651Z [info ] (OpenDataHubTestTable|OpenDataHubTestTable) initialize prop start_time [sqlalchemy.orm.mapper.Mapper] 2026-06-12T10:03:59.254785Z [info ] (OpenDataHubTestTable|OpenDataHubTestTable) _post_configure_properties() complete [sqlalchemy.orm.mapper.Mapper] 2026-06-12T10:03:59.254917Z [info ] BEGIN (implicit)  [sqlalchemy.engine.Engine] 2026-06-12T10:03:59.255042Z [info ] BEGIN (implicit)  [sqlalchemy.engine.Engine] 2026-06-12T10:03:59.255169Z [info ] INSERT INTO "OpenDataHubTestTable" (test_name, start_time) VALUES (?, ?) [sqlalchemy.engine.Engine] 2026-06-12T10:03:59.255290Z [info ] INSERT INTO "OpenDataHubTestTable" (test_name, start_time) VALUES (?, ?) [sqlalchemy.engine.Engine] 2026-06-12T10:03:59.255449Z [info ] [generated in 0.00012s] ('/home/odh/opendatahub-tests/tests/model_serving/maas_billing/maas_api_key/test_api_key_auth_policy_validation.py::test_auth_policy_callback_url_uses_correct_namespace', 1781258639) [sqlalchemy.engine.Engine] 2026-06-12T10:03:59.255619Z [info ] [generated in 0.00012s] ('/home/odh/opendatahub-tests/tests/model_serving/maas_billing/maas_api_key/test_api_key_auth_policy_validation.py::test_auth_policy_callback_url_uses_correct_namespace', 1781258639) [sqlalchemy.engine.Engine] 2026-06-12T10:03:59.255764Z [info ] COMMIT  [sqlalchemy.engine.Engine] 2026-06-12T10:03:59.255909Z [info ] COMMIT  [sqlalchemy.engine.Engine] 2026-06-12T10:03:59.256921Z [info ] Executing session fixture: event_loop_policy [conftest] 2026-06-12T10:03:59.257059Z [info ] Executing session fixture: _syrupy_apply_ide_patches [conftest] 2026-06-12T10:03:59.257187Z [info ] Executing session fixture: admin_client [conftest] 2026-06-12T10:03:59.257312Z [info ] Trying to get client via new_client_from_config [ocp_resources.resource] 2026-06-12T10:03:59.263670Z [info ] Executing session fixture: dsc_resource [conftest] 2026-06-12T10:03:59.263973Z [info ] kind: DataScienceCluster api version: datasciencecluster.opendatahub.io/v2 [ocp_resources.resource] 2026-06-12T10:03:59.333981Z [info ] Executing session fixture: tmp_path_factory [conftest] 2026-06-12T10:03:59.334222Z [info ] Executing session fixture: tests_tmp_dir [conftest] 2026-06-12T10:03:59.335006Z [info ] Executing session fixture: os_path_environment [conftest] 2026-06-12T10:03:59.335205Z [info ] Executing session fixture: tmpdir_factory [conftest] 2026-06-12T10:03:59.335368Z [info ] Executing session fixture: bin_directory [conftest] 2026-06-12T10:03:59.336389Z [info ] Executing session fixture: oc_binary_path [conftest] 2026-06-12T10:03:59.336604Z [info ] kind: ConsoleCLIDownload api version: console.openshift.io/v1 [ocp_resources.resource] 2026-06-12T10:03:59.359510Z [info ] All oc console cli download links: ['https://downloads-openshift-console.apps.ods-qe-psi-23.osp.rh-ods.com/amd64/linux/oc.tar'] [utilities.infra] name=utilities.infra 2026-06-12T10:03:59.359602Z [info ] Downloading archive using: url=https://downloads-openshift-console.apps.ods-qe-psi-23.osp.rh-ods.com/amd64/linux/oc.tar [utilities.infra] name=utilities.infra 2026-06-12T10:04:20.231041Z [info ] Extract the downloaded archive. [utilities.infra] name=utilities.infra 2026-06-12T10:04:20.353823Z [info ] Downloaded file: ['oc']  [utilities.infra] name=utilities.infra 2026-06-12T10:04:20.379163Z [info ] Executing session fixture: bin_directory_to_os_path [conftest] 2026-06-12T10:04:20.377143Z [info ] OC binary path: /tmp/pytest-QssjRwnwa6vU5GKtWJWD3Y/bin0/oc [tests.conftest] name=tests.conftest 2026-06-12T10:04:20.377223Z [info ] Adding /tmp/pytest-QssjRwnwa6vU5GKtWJWD3Y/bin0 to $PATH [tests.conftest] name=tests.conftest 2026-06-12T10:04:20.379797Z [info ] Executing session fixture: nodes [conftest] 2026-06-12T10:04:20.437381Z [info ] Executing session fixture: dsci_resource [conftest] 2026-06-12T10:04:20.437605Z [info ] kind: DSCInitialization api version: dscinitialization.opendatahub.io/v2 [ocp_resources.resource] 2026-06-12T10:04:20.451330Z [info ] Executing session fixture: record_testsuite_property [conftest] 2026-06-12T10:04:20.451491Z [info ] Executing session fixture: junitxml_plugin [conftest] 2026-06-12T10:04:20.451668Z [info ] Executing session fixture: cluster_sanity_scope_session [conftest] 2026-06-12T10:04:20.450542Z [info ] Check cluster sanity.  [utilities.infra] name=utilities.infra 2026-06-12T10:04:20.451989Z [info ] Verify all nodes are in a healthy condition. [ocp_utilities.infra] 2026-06-12T10:04:20.544219Z [info ] Verify all nodes are schedulable. [ocp_utilities.infra] 2026-06-12T10:04:20.621626Z [info ] Waiting for 120 seconds [0:02:00], retry every 5 seconds. (Function: utilities.infra.wait_for_dsci_status_ready Kwargs: {'dsci_resource': }) [timeout_sampler] 2026-06-12T10:04:20.620986Z [info ] Wait for DSCI default-dsci to be in Ready status. [utilities.infra] name=utilities.infra 2026-06-12T10:04:20.621943Z [info ] Get DSCInitialization default-dsci status [ocp_resources DSCInitialization] 2026-06-12T10:04:20.633745Z [info ] Elapsed time: 0.00011205673217773438 [0:00:00.000112] [timeout_sampler] 2026-06-12T10:04:20.634117Z [info ] Waiting for 120 seconds [0:02:00], retry every 5 seconds. (Function: utilities.infra.wait_for_dsc_status_ready Kwargs: {'dsc_resource': }) [timeout_sampler] 2026-06-12T10:04:20.633217Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:04:20.634405Z [info ] Get DataScienceCluster default-dsc status [ocp_resources DataScienceCluster] 2026-06-12T10:04:25.668752Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:04:30.713404Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:04:35.756451Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:04:40.800960Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:04:45.843587Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:04:50.886467Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:04:55.928443Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:05:00.970400Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:05:06.013270Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:05:11.076756Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:05:16.118476Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:05:21.188919Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:05:26.233444Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:05:31.276207Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:05:36.320465Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:05:41.354208Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:05:46.401016Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:05:51.445866Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:05:56.495365Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:06:01.537585Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:06:06.572613Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:06:11.621611Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:06:16.662320Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:06:21.710577Z [error ] Cluster sanity check failed: Timed Out: 120 Function: utilities.infra.wait_for_dsc_status_ready Kwargs: {'dsc_resource': } Last exception: ResourceNotReadyError: DSC default-dsc is not ready. Current status: {'components': {'aipipelines': {'managementState': 'Removed'}, 'dashboard': {'managementState': 'Managed'}, 'feastoperator': {'managementState': 'Removed'}, 'kserve': {'managementState': 'Managed', 'releases': [{'name': 'KServe', 'repoUrl': 'https://github.com/kserve/kserve/', 'version': 'v0.17.0'}, {'name': 'vLLM', 'repoUrl': 'https://github.com/vllm-project/vllm', 'version': 'v0.18.0'}, {'name': 'llm-d-inference-scheduler', 'repoUrl': 'https://github.com/llm-d/llm-d-inference-scheduler', 'version': 'v0.7.1'}, {'name': 'llm-d-workload-variant-autoscaler', 'repoUrl': 'https://github.com/llm-d/llm-d-workload-variant-autoscaler', 'version': 'v0.6.0'}]}, 'kueue': {'managementState': 'Removed'}, 'llamastackoperator': {'managementState': 'Removed'}, 'mlflowoperator': {'managementState': 'Removed'}, 'modelregistry': {'managementState': 'Managed', 'registriesNamespace': 'rhoai-model-registries', 'releases': [{'name': 'Kubeflow Model Registry', 'repoUrl': 'https://github.com/kubeflow/model-registry', 'version': 'latest'}, {'name': 'Open Data Hub Model Registry Operator', 'repoUrl': 'https://github.com/opendatahub-io/model-registry-operator', 'version': 'latest'}]}, 'ray': {'managementState': 'Removed'}, 'sparkoperator': {'managementState': 'Removed'}, 'trainer': {'managementState': 'Removed'}, 'trainingoperator': {'managementState': 'Removed'}, 'trustyai': {'managementState': 'Managed', 'releases': [{'name': 'TrustyAI operator', 'repoUrl': 'https://github.com/trustyai-explainability/trustyai-service-operator', 'version': 'v1.37.0'}, {'name': 'TrustyAI service', 'repoUrl': 'https://github.com/trustyai-explainability/trustyai-explainability', 'version': 'v0.28.0'}, {'name': 'TrustyAI LMEval driver', 'repoUrl': 'https://github.com/trustyai-explainability/trustyai-service-operator', 'version': 'v1.37.0'}, {'name': 'TrustyAI LMEval job', 'repoUrl': 'https://github.com/EleutherAI/lm-evaluation-harness', 'version': 'v0.4.8'}, {'name': 'TrustyAI Guardrails orchestrator', 'repoUrl': 'https://github.com/foundation-model-stack/fms-guardrails-orchestrator', 'version': '0.9.4'}, {'name': 'TrustyAI builtin detectors', 'repoUrl': 'https://github.com/trustyai-explainability/guardrails-regex-detector', 'version': 'v0.2.0'}, {'name': 'TrustyAI sidecar gateway', 'repoUrl': 'https://github.com/trustyai-explainability/vllm-orchestrator-gateway', 'version': 'v0.2.1'}]}, 'workbenches': {'managementState': 'Managed', 'releases': [{'name': 'Kubeflow Notebook Controller', 'repoUrl': 'https://github.com/kubeflow/kubeflow', 'version': '1.10.0'}], 'workbenchNamespace': 'rhods-notebooks'}}, 'conditions': [{'lastTransitionTime': '2026-06-12T10:06:16Z', 'message': 'failure deploying resource /default-kserve: apply failed ' 'components.platform.opendatahub.io/v1alpha1, Kind=Kserve: unable ' 'to patch components.platform.opendatahub.io/v1alpha1, Kind=Kserve ' 'default-kserve: Kserve.components.platform.opendatahub.io ' '"default-kserve" is invalid: [spec.modelsAsService: Invalid ' 'value: "null": spec.modelsAsService in body must be of type ' 'object: "null", : Invalid value: "null": some validation ' 'rules were not checked because the object was invalid; correct ' 'the existing errors to complete validation]', 'reason': 'Error', 'status': 'False', 'type': 'Ready'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'message': 'failure deploying resource /default-kserve: apply failed ' 'components.platform.opendatahub.io/v1alpha1, Kind=Kserve: unable ' 'to patch components.platform.opendatahub.io/v1alpha1, Kind=Kserve ' 'default-kserve: Kserve.components.platform.opendatahub.io ' '"default-kserve" is invalid: [spec.modelsAsService: Invalid ' 'value: "null": spec.modelsAsService in body must be of type ' 'object: "null", : Invalid value: "null": some validation ' 'rules were not checked because the object was invalid; correct ' 'the existing errors to complete validation]', 'observedGeneration': 3, 'reason': 'Error', 'status': 'False', 'type': 'ProvisioningSucceeded'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'status': 'True', 'type': 'ComponentsReady'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'AIPipelinesReady'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'status': 'True', 'type': 'DashboardReady'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'FeastOperatorReady'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'status': 'True', 'type': 'KserveLLMInferenceServiceDependencies'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'status': 'True', 'type': 'KserveLLMInferenceServiceWideEPDependencies'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'status': 'True', 'type': 'KserveReady'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'KueueReady'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'LlamaStackOperatorReady'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'MLflowOperatorReady'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'status': 'True', 'type': 'ModelControllerReady'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'status': 'True', 'type': 'ModelRegistryReady'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'ModelsAsServiceReady'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'RayReady'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'SparkOperatorReady'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'TrainerReady'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'TrainingOperatorReady'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'status': 'True', 'type': 'TrustyAIReady'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'status': 'True', 'type': 'WorkbenchesReady'}], 'observedGeneration': 1, 'phase': 'Not Ready', 'release': {'name': 'OpenShift AI Self-Managed', 'version': '3.4.1'}}. [utilities.infra] name=utilities.infra ================ 94 deselected, 1 warning in 143.17s (0:02:23) ================= ================ 94 deselected, 1 warning in 143.18s (0:02:23) ================= ! _pytest.outcomes.Exit: Cluster sanity check failed: Timed Out: 120 Function: utilities.infra.wait_for_dsc_status_ready Kwargs: {'dsc_resource': } Last exception: ResourceNotReadyError: DSC default-dsc is not ready. Current status: {'components': {'aipipelines': {'managementState': 'Removed'}, 'dashboard': {'managementState': 'Managed'}, 'feastoperator': {'managementState': 'Removed'}, 'kserve': {'managementState': 'Managed', 'releases': [{'name': 'KServe', 'repoUrl': 'https://github.com/kserve/kserve/', 'version': 'v0.17.0'}, {'name': 'vLLM', 'repoUrl': 'https://github.com/vllm-project/vllm', 'version': 'v0.18.0'}, {'name': 'llm-d-inference-scheduler', 'repoUrl': 'https://github.com/llm-d/llm-d-inference-scheduler', 'version': 'v0.7.1'}, {'name': 'llm-d-workload-variant-autoscaler', 'repoUrl': 'https://github.com/llm-d/llm-d-workload-variant-autoscaler', 'version': 'v0.6.0'}]}, 'kueue': {'managementState': 'Removed'}, 'llamastackoperator': {'managementState': 'Removed'}, 'mlflowoperator': {'managementState': 'Removed'}, 'modelregistry': {'managementState': 'Managed', 'registriesNamespace': 'rhoai-model-registries', 'releases': [{'name': 'Kubeflow Model Registry', 'repoUrl': 'https://github.com/kubeflow/model-registry', 'version': 'latest'}, {'name': 'Open Data Hub Model Registry Operator', 'repoUrl': 'https://github.com/opendatahub-io/model-registry-operator', 'version': 'latest'}]}, 'ray': {'managementState': 'Removed'}, 'sparkoperator': {'managementState': 'Removed'}, 'trainer': {'managementState': 'Removed'}, 'trainingoperator': {'managementState': 'Removed'}, 'trustyai': {'managementState': 'Managed', 'releases': [{'name': 'TrustyAI operator', 'repoUrl': 'https://github.com/trustyai-explainability/trustyai-service-operator', 'version': 'v1.37.0'}, {'name': 'TrustyAI service', 'repoUrl': 'https://github.com/trustyai-explainability/trustyai-explainability', 'version': 'v0.28.0'}, {'name': 'TrustyAI LMEval driver', 'repoUrl': 'https://github.com/trustyai-explainability/trustyai-service-operator', 'version': 'v1.37.0'}, {'name': 'TrustyAI LMEval job', 'repoUrl': 'https://github.com/EleutherAI/lm-evaluation-harness', 'version': 'v0.4.8'}, {'name': 'TrustyAI Guardrails orchestrator', 'repoUrl': 'https://github.com/foundation-model-stack/fms-guardrails-orchestrator', 'version': '0.9.4'}, {'name': 'TrustyAI builtin detectors', 'repoUrl': 'https://github.com/trustyai-explainability/guardrails-regex-detector', 'version': 'v0.2.0'}, {'name': 'TrustyAI sidecar gateway', 'repoUrl': 'https://github.com/trustyai-explainability/vllm-orchestrator-gateway', 'version': 'v0.2.1'}]}, 'workbenches': {'managementState': 'Managed', 'releases': [{'name': 'Kubeflow Notebook Controller', 'repoUrl': 'https://github.com/kubeflow/kubeflow', 'version': '1.10.0'}], 'workbenchNamespace': 'rhods-notebooks'}}, 'conditions': [{'lastTransitionTime': '2026-06-12T10:06:16Z', 'message': 'failure deploying resource /default-kserve: apply failed ' 'components.platform.opendatahub.io/v1alpha1, Kind=Kserve: unable ' 'to patch components.platform.opendatahub.io/v1alpha1, Kind=Kserve ' 'default-kserve: Kserve.components.platform.opendatahub.io ' '"default-kserve" is invalid: [spec.modelsAsService: Invalid ' 'value: "null": spec.modelsAsService in body must be of type ' 'object: "null", : Invalid value: "null": some validation ' 'rules were not checked because the object was invalid; correct ' 'the existing errors to complete validation]', 'reason': 'Error', 'status': 'False', 'type': 'Ready'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'message': 'failure deploying resource /default-kserve: apply failed ' 'components.platform.opendatahub.io/v1alpha1, Kind=Kserve: unable ' 'to patch components.platform.opendatahub.io/v1alpha1, Kind=Kserve ' 'default-kserve: Kserve.components.platform.opendatahub.io ' '"default-kserve" is invalid: [spec.modelsAsService: Invalid ' 'value: "null": spec.modelsAsService in body must be of type ' 'object: "null", : Invalid value: "null": some validation ' 'rules were not checked because the object was invalid; correct ' 'the existing errors to complete validation]', 'observedGeneration': 3, 'reason': 'Error', 'status': 'False', 'type': 'ProvisioningSucceeded'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'status': 'True', 'type': 'ComponentsReady'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'AIPipelinesReady'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'status': 'True', 'type': 'DashboardReady'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'FeastOperatorReady'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'status': 'True', 'type': 'KserveLLMInferenceServiceDependencies'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'status': 'True', 'type': 'KserveLLMInferenceServiceWideEPDependencies'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'status': 'True', 'type': 'KserveReady'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'KueueReady'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'LlamaStackOperatorReady'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'MLflowOperatorReady'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'status': 'True', 'type': 'ModelControllerReady'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'status': 'True', 'type': 'ModelRegistryReady'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'ModelsAsServiceReady'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'RayReady'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'SparkOperatorReady'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'TrainerReady'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'TrainingOperatorReady'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'status': 'True', 'type': 'TrustyAIReady'}, {'lastTransitionTime': '2026-06-12T10:06:16Z', 'status': 'True', 'type': 'WorkbenchesReady'}], 'observedGeneration': 1, 'phase': 'Not Ready', 'release': {'name': 'OpenShift AI Self-Managed', 'version': '3.4.1'}}. ! --- BVT pytest attempt 2026-06-12T10:06:22.662120+00:00 (/.local/bin/uv run pytest...) --- Bytecode compiled 9467 files in 562ms 2026-06-12T10:06:24.455591Z [info ] Writing tests log to /home/odh/opendatahub-tests/results/pytest-tests.log [conftest] 2026-06-12T10:06:24.464959Z [info ] BEGIN (implicit)  [sqlalchemy.engine.Engine] 2026-06-12T10:06:24.466147Z [info ] BEGIN (implicit)  [sqlalchemy.engine.Engine] 2026-06-12T10:06:24.466291Z [info ] PRAGMA main.table_info("OpenDataHubTestTable") [sqlalchemy.engine.Engine] 2026-06-12T10:06:24.466429Z [info ] PRAGMA main.table_info("OpenDataHubTestTable") [sqlalchemy.engine.Engine] 2026-06-12T10:06:24.466655Z [info ] [raw sql] ()  [sqlalchemy.engine.Engine] 2026-06-12T10:06:24.466795Z [info ] [raw sql] ()  [sqlalchemy.engine.Engine] 2026-06-12T10:06:24.466929Z [info ] PRAGMA temp.table_info("OpenDataHubTestTable") [sqlalchemy.engine.Engine] 2026-06-12T10:06:24.467059Z [info ] PRAGMA temp.table_info("OpenDataHubTestTable") [sqlalchemy.engine.Engine] 2026-06-12T10:06:24.467213Z [info ] [raw sql] ()  [sqlalchemy.engine.Engine] 2026-06-12T10:06:24.467356Z [info ] [raw sql] ()  [sqlalchemy.engine.Engine] 2026-06-12T10:06:24.467483Z [info ]  CREATE TABLE "OpenDataHubTestTable" ( id INTEGER NOT NULL, test_name VARCHAR(500) NOT NULL, start_time INTEGER NOT NULL, PRIMARY KEY (id) )  [sqlalchemy.engine.Engine] 2026-06-12T10:06:24.467640Z [info ]  CREATE TABLE "OpenDataHubTestTable" ( id INTEGER NOT NULL, test_name VARCHAR(500) NOT NULL, start_time INTEGER NOT NULL, PRIMARY KEY (id) )  [sqlalchemy.engine.Engine] 2026-06-12T10:06:24.467784Z [info ] [no key 0.00005s] ()  [sqlalchemy.engine.Engine] 2026-06-12T10:06:24.468163Z [info ] [no key 0.00005s] ()  [sqlalchemy.engine.Engine] 2026-06-12T10:06:24.468294Z [info ] COMMIT  [sqlalchemy.engine.Engine] 2026-06-12T10:06:24.468423Z [info ] COMMIT  [sqlalchemy.engine.Engine] 2026-06-12T10:06:24.471087Z [info ] Trying to get client via new_client_from_config [ocp_resources.resource] 2026-06-12T10:06:24.477968Z [info ] kind: DataScienceCluster api version: datasciencecluster.opendatahub.io/v2 [ocp_resources.resource] /home/odh/opendatahub-tests/.venv/lib64/python3.14/site-packages/urllib3/connectionpool.py:1097: InsecureRequestWarning: Unverified HTTPS request is being made to host 'api.ods-qe-psi-23.osp.rh-ods.com'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#tls-warnings warnings.warn( 2026-06-12T10:06:24.573740Z [info ] kind: DSCInitialization api version: dscinitialization.opendatahub.io/v2 [ocp_resources.resource] 2026-06-12T10:06:24.607688Z [info ] Running model registry tests against default namespace [conftest] 2026-06-12T10:06:24.607873Z [info ] kind: DataScienceCluster api version: datasciencecluster.opendatahub.io/v2 [ocp_resources.resource] ============================= test session starts ============================== platform linux -- Python 3.14.5, pytest-9.0.3, pluggy-1.6.0 -- /home/odh/opendatahub-tests/.venv/bin/python cachedir: .pytest_cache metadata: {'Python': '3.14.5', 'Platform': 'Linux-5.14.0-427.115.1.el9_4.x86_64-x86_64-with-glibc2.42', 'Packages': {'pytest': '9.0.3', 'pluggy': '1.6.0'}, 'Plugins': {'anyio': '4.13.0', 'asyncio': '1.3.0', 'dependency': '0.6.1', 'html': '4.2.0', 'metadata': '3.1.1', 'order': '1.3.0', 'progress': '1.4.0', 'testconfig': '0.2.0', 'xdist': '3.8.0', 'syrupy': '5.1.0'}} rootdir: /home/odh/opendatahub-tests configfile: pytest.ini plugins: anyio-4.13.0, asyncio-1.3.0, dependency-0.6.1, html-4.2.0, metadata-3.1.1, order-1.3.0, progress-1.4.0, testconfig-0.2.0, xdist-3.8.0, syrupy-5.1.0 asyncio: mode=Mode.STRICT, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function collecting ... collected 105 items / 94 deselected / 11 selected tests/model_serving/maas_billing/maas_api_key/test_api_key_auth_policy_validation.py::TestAuthPolicyApiKeyValidation::test_auth_policy_callback_url_uses_correct_namespace  --------------------------------- test_auth_policy_callback_url_uses_correct_namespace --------------------------------- -------------------------------------------------------- SETUP -------------------------------------------------------- 2026-06-12T10:06:24.800715Z [info ] (OpenDataHubTestTable|OpenDataHubTestTable) _post_configure_properties() started [sqlalchemy.orm.mapper.Mapper] 2026-06-12T10:06:24.800895Z [info ] (OpenDataHubTestTable|OpenDataHubTestTable) initialize prop id [sqlalchemy.orm.mapper.Mapper] 2026-06-12T10:06:24.801410Z [info ] (OpenDataHubTestTable|OpenDataHubTestTable) initialize prop test_name [sqlalchemy.orm.mapper.Mapper] 2026-06-12T10:06:24.802067Z [info ] (OpenDataHubTestTable|OpenDataHubTestTable) initialize prop start_time [sqlalchemy.orm.mapper.Mapper] 2026-06-12T10:06:24.802203Z [info ] (OpenDataHubTestTable|OpenDataHubTestTable) _post_configure_properties() complete [sqlalchemy.orm.mapper.Mapper] 2026-06-12T10:06:24.802666Z [info ] BEGIN (implicit)  [sqlalchemy.engine.Engine] 2026-06-12T10:06:24.802799Z [info ] BEGIN (implicit)  [sqlalchemy.engine.Engine] 2026-06-12T10:06:24.802917Z [info ] INSERT INTO "OpenDataHubTestTable" (test_name, start_time) VALUES (?, ?) [sqlalchemy.engine.Engine] 2026-06-12T10:06:24.803030Z [info ] INSERT INTO "OpenDataHubTestTable" (test_name, start_time) VALUES (?, ?) [sqlalchemy.engine.Engine] 2026-06-12T10:06:24.803172Z [info ] [generated in 0.00013s] ('/home/odh/opendatahub-tests/tests/model_serving/maas_billing/maas_api_key/test_api_key_auth_policy_validation.py::test_auth_policy_callback_url_uses_correct_namespace', 1781258784) [sqlalchemy.engine.Engine] 2026-06-12T10:06:24.804057Z [info ] [generated in 0.00013s] ('/home/odh/opendatahub-tests/tests/model_serving/maas_billing/maas_api_key/test_api_key_auth_policy_validation.py::test_auth_policy_callback_url_uses_correct_namespace', 1781258784) [sqlalchemy.engine.Engine] 2026-06-12T10:06:24.804210Z [info ] COMMIT  [sqlalchemy.engine.Engine] 2026-06-12T10:06:24.804337Z [info ] COMMIT  [sqlalchemy.engine.Engine] 2026-06-12T10:06:24.804455Z [info ] Executing session fixture: event_loop_policy [conftest] 2026-06-12T10:06:24.804657Z [info ] Executing session fixture: _syrupy_apply_ide_patches [conftest] 2026-06-12T10:06:24.806589Z [info ] Executing session fixture: admin_client [conftest] 2026-06-12T10:06:24.806746Z [info ] Trying to get client via new_client_from_config [ocp_resources.resource] 2026-06-12T10:06:24.812354Z [info ] Executing session fixture: dsc_resource [conftest] 2026-06-12T10:06:24.812506Z [info ] kind: DataScienceCluster api version: datasciencecluster.opendatahub.io/v2 [ocp_resources.resource] 2026-06-12T10:06:24.882789Z [info ] Executing session fixture: tmp_path_factory [conftest] 2026-06-12T10:06:24.883046Z [info ] Executing session fixture: tests_tmp_dir [conftest] 2026-06-12T10:06:24.883934Z [info ] Executing session fixture: os_path_environment [conftest] 2026-06-12T10:06:24.884059Z [info ] Executing session fixture: tmpdir_factory [conftest] 2026-06-12T10:06:24.884172Z [info ] Executing session fixture: bin_directory [conftest] 2026-06-12T10:06:24.885371Z [info ] Executing session fixture: oc_binary_path [conftest] 2026-06-12T10:06:24.885552Z [info ] kind: ConsoleCLIDownload api version: console.openshift.io/v1 [ocp_resources.resource] 2026-06-12T10:06:24.910211Z [info ] All oc console cli download links: ['https://downloads-openshift-console.apps.ods-qe-psi-23.osp.rh-ods.com/amd64/linux/oc.tar'] [utilities.infra] name=utilities.infra 2026-06-12T10:06:24.910290Z [info ] Downloading archive using: url=https://downloads-openshift-console.apps.ods-qe-psi-23.osp.rh-ods.com/amd64/linux/oc.tar [utilities.infra] name=utilities.infra 2026-06-12T10:06:27.401974Z [info ] Extract the downloaded archive. [utilities.infra] name=utilities.infra 2026-06-12T10:06:28.448440Z [info ] Downloaded file: ['oc']  [utilities.infra] name=utilities.infra 2026-06-12T10:06:28.790926Z [info ] Executing session fixture: bin_directory_to_os_path [conftest] 2026-06-12T10:06:28.785995Z [info ] OC binary path: /tmp/pytest-39Hqr8yjypFqsW7KfjPG3f/bin0/oc [tests.conftest] name=tests.conftest 2026-06-12T10:06:28.786121Z [info ] Adding /tmp/pytest-39Hqr8yjypFqsW7KfjPG3f/bin0 to $PATH [tests.conftest] name=tests.conftest 2026-06-12T10:06:28.791380Z [info ] Executing session fixture: nodes [conftest] 2026-06-12T10:06:28.852433Z [info ] Executing session fixture: dsci_resource [conftest] 2026-06-12T10:06:28.852690Z [info ] kind: DSCInitialization api version: dscinitialization.opendatahub.io/v2 [ocp_resources.resource] 2026-06-12T10:06:28.869858Z [info ] Executing session fixture: record_testsuite_property [conftest] 2026-06-12T10:06:28.870010Z [info ] Executing session fixture: junitxml_plugin [conftest] 2026-06-12T10:06:28.870231Z [info ] Executing session fixture: cluster_sanity_scope_session [conftest] 2026-06-12T10:06:28.869118Z [info ] Check cluster sanity.  [utilities.infra] name=utilities.infra 2026-06-12T10:06:28.870504Z [info ] Verify all nodes are in a healthy condition. [ocp_utilities.infra] 2026-06-12T10:06:28.962463Z [info ] Verify all nodes are schedulable. [ocp_utilities.infra] 2026-06-12T10:06:29.043461Z [info ] Waiting for 120 seconds [0:02:00], retry every 5 seconds. (Function: utilities.infra.wait_for_dsci_status_ready Kwargs: {'dsci_resource': }) [timeout_sampler] 2026-06-12T10:06:29.042888Z [info ] Wait for DSCI default-dsci to be in Ready status. [utilities.infra] name=utilities.infra 2026-06-12T10:06:29.043800Z [info ] Get DSCInitialization default-dsci status [ocp_resources DSCInitialization] 2026-06-12T10:06:29.055618Z [info ] Elapsed time: 0.00015592575073242188 [0:00:00.000156] [timeout_sampler] 2026-06-12T10:06:29.055769Z [info ] Waiting for 120 seconds [0:02:00], retry every 5 seconds. (Function: utilities.infra.wait_for_dsc_status_ready Kwargs: {'dsc_resource': }) [timeout_sampler] 2026-06-12T10:06:29.055058Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:06:29.056121Z [info ] Get DataScienceCluster default-dsc status [ocp_resources DataScienceCluster] 2026-06-12T10:06:34.088856Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:06:39.132025Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:06:44.176442Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:06:49.211806Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:06:54.251734Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:06:59.286098Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:07:04.334161Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:07:09.376206Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:07:14.413267Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:07:19.457627Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:07:24.500175Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:07:29.546218Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:07:34.600641Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:07:39.638687Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:07:44.682913Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:07:49.717244Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:07:54.760272Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:07:59.816029Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:08:04.851129Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:08:10.054827Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:08:15.088971Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:08:20.131933Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:08:25.174703Z [info ] Wait for DSC default-dsc are Ready. [utilities.infra] name=utilities.infra 2026-06-12T10:08:30.220836Z [error ] Cluster sanity check failed: Timed Out: 120 Function: utilities.infra.wait_for_dsc_status_ready Kwargs: {'dsc_resource': } Last exception: ResourceNotReadyError: DSC default-dsc is not ready. Current status: {'components': {'aipipelines': {'managementState': 'Removed'}, 'dashboard': {'managementState': 'Managed'}, 'feastoperator': {'managementState': 'Removed'}, 'kserve': {'managementState': 'Managed', 'releases': [{'name': 'KServe', 'repoUrl': 'https://github.com/kserve/kserve/', 'version': 'v0.17.0'}, {'name': 'vLLM', 'repoUrl': 'https://github.com/vllm-project/vllm', 'version': 'v0.18.0'}, {'name': 'llm-d-inference-scheduler', 'repoUrl': 'https://github.com/llm-d/llm-d-inference-scheduler', 'version': 'v0.7.1'}, {'name': 'llm-d-workload-variant-autoscaler', 'repoUrl': 'https://github.com/llm-d/llm-d-workload-variant-autoscaler', 'version': 'v0.6.0'}]}, 'kueue': {'managementState': 'Removed'}, 'llamastackoperator': {'managementState': 'Removed'}, 'mlflowoperator': {'managementState': 'Removed'}, 'modelregistry': {'managementState': 'Managed', 'registriesNamespace': 'rhoai-model-registries', 'releases': [{'name': 'Kubeflow Model Registry', 'repoUrl': 'https://github.com/kubeflow/model-registry', 'version': 'latest'}, {'name': 'Open Data Hub Model Registry Operator', 'repoUrl': 'https://github.com/opendatahub-io/model-registry-operator', 'version': 'latest'}]}, 'ray': {'managementState': 'Removed'}, 'sparkoperator': {'managementState': 'Removed'}, 'trainer': {'managementState': 'Removed'}, 'trainingoperator': {'managementState': 'Removed'}, 'trustyai': {'managementState': 'Managed', 'releases': [{'name': 'TrustyAI operator', 'repoUrl': 'https://github.com/trustyai-explainability/trustyai-service-operator', 'version': 'v1.37.0'}, {'name': 'TrustyAI service', 'repoUrl': 'https://github.com/trustyai-explainability/trustyai-explainability', 'version': 'v0.28.0'}, {'name': 'TrustyAI LMEval driver', 'repoUrl': 'https://github.com/trustyai-explainability/trustyai-service-operator', 'version': 'v1.37.0'}, {'name': 'TrustyAI LMEval job', 'repoUrl': 'https://github.com/EleutherAI/lm-evaluation-harness', 'version': 'v0.4.8'}, {'name': 'TrustyAI Guardrails orchestrator', 'repoUrl': 'https://github.com/foundation-model-stack/fms-guardrails-orchestrator', 'version': '0.9.4'}, {'name': 'TrustyAI builtin detectors', 'repoUrl': 'https://github.com/trustyai-explainability/guardrails-regex-detector', 'version': 'v0.2.0'}, {'name': 'TrustyAI sidecar gateway', 'repoUrl': 'https://github.com/trustyai-explainability/vllm-orchestrator-gateway', 'version': 'v0.2.1'}]}, 'workbenches': {'managementState': 'Managed', 'releases': [{'name': 'Kubeflow Notebook Controller', 'repoUrl': 'https://github.com/kubeflow/kubeflow', 'version': '1.10.0'}], 'workbenchNamespace': 'rhods-notebooks'}}, 'conditions': [{'lastTransitionTime': '2026-06-12T10:08:24Z', 'message': 'failure deploying resource /default-kserve: apply failed ' 'components.platform.opendatahub.io/v1alpha1, Kind=Kserve: unable ' 'to patch components.platform.opendatahub.io/v1alpha1, Kind=Kserve ' 'default-kserve: Kserve.components.platform.opendatahub.io ' '"default-kserve" is invalid: [spec.modelsAsService: Invalid ' 'value: "null": spec.modelsAsService in body must be of type ' 'object: "null", : Invalid value: "null": some validation ' 'rules were not checked because the object was invalid; correct ' 'the existing errors to complete validation]', 'reason': 'Error', 'status': 'False', 'type': 'Ready'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'message': 'failure deploying resource /default-kserve: apply failed ' 'components.platform.opendatahub.io/v1alpha1, Kind=Kserve: unable ' 'to patch components.platform.opendatahub.io/v1alpha1, Kind=Kserve ' 'default-kserve: Kserve.components.platform.opendatahub.io ' '"default-kserve" is invalid: [spec.modelsAsService: Invalid ' 'value: "null": spec.modelsAsService in body must be of type ' 'object: "null", : Invalid value: "null": some validation ' 'rules were not checked because the object was invalid; correct ' 'the existing errors to complete validation]', 'observedGeneration': 3, 'reason': 'Error', 'status': 'False', 'type': 'ProvisioningSucceeded'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'status': 'True', 'type': 'ComponentsReady'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'AIPipelinesReady'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'status': 'True', 'type': 'DashboardReady'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'FeastOperatorReady'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'status': 'True', 'type': 'KserveLLMInferenceServiceDependencies'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'status': 'True', 'type': 'KserveLLMInferenceServiceWideEPDependencies'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'status': 'True', 'type': 'KserveReady'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'KueueReady'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'LlamaStackOperatorReady'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'MLflowOperatorReady'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'status': 'True', 'type': 'ModelControllerReady'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'status': 'True', 'type': 'ModelRegistryReady'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'ModelsAsServiceReady'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'RayReady'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'SparkOperatorReady'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'TrainerReady'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'TrainingOperatorReady'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'status': 'True', 'type': 'TrustyAIReady'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'status': 'True', 'type': 'WorkbenchesReady'}], 'observedGeneration': 1, 'phase': 'Not Ready', 'release': {'name': 'OpenShift AI Self-Managed', 'version': '3.4.1'}}. [utilities.infra] name=utilities.infra ================ 94 deselected, 1 warning in 126.04s (0:02:06) ================= ================ 94 deselected, 1 warning in 126.04s (0:02:06) ================= ! _pytest.outcomes.Exit: Cluster sanity check failed: Timed Out: 120 Function: utilities.infra.wait_for_dsc_status_ready Kwargs: {'dsc_resource': } Last exception: ResourceNotReadyError: DSC default-dsc is not ready. Current status: {'components': {'aipipelines': {'managementState': 'Removed'}, 'dashboard': {'managementState': 'Managed'}, 'feastoperator': {'managementState': 'Removed'}, 'kserve': {'managementState': 'Managed', 'releases': [{'name': 'KServe', 'repoUrl': 'https://github.com/kserve/kserve/', 'version': 'v0.17.0'}, {'name': 'vLLM', 'repoUrl': 'https://github.com/vllm-project/vllm', 'version': 'v0.18.0'}, {'name': 'llm-d-inference-scheduler', 'repoUrl': 'https://github.com/llm-d/llm-d-inference-scheduler', 'version': 'v0.7.1'}, {'name': 'llm-d-workload-variant-autoscaler', 'repoUrl': 'https://github.com/llm-d/llm-d-workload-variant-autoscaler', 'version': 'v0.6.0'}]}, 'kueue': {'managementState': 'Removed'}, 'llamastackoperator': {'managementState': 'Removed'}, 'mlflowoperator': {'managementState': 'Removed'}, 'modelregistry': {'managementState': 'Managed', 'registriesNamespace': 'rhoai-model-registries', 'releases': [{'name': 'Kubeflow Model Registry', 'repoUrl': 'https://github.com/kubeflow/model-registry', 'version': 'latest'}, {'name': 'Open Data Hub Model Registry Operator', 'repoUrl': 'https://github.com/opendatahub-io/model-registry-operator', 'version': 'latest'}]}, 'ray': {'managementState': 'Removed'}, 'sparkoperator': {'managementState': 'Removed'}, 'trainer': {'managementState': 'Removed'}, 'trainingoperator': {'managementState': 'Removed'}, 'trustyai': {'managementState': 'Managed', 'releases': [{'name': 'TrustyAI operator', 'repoUrl': 'https://github.com/trustyai-explainability/trustyai-service-operator', 'version': 'v1.37.0'}, {'name': 'TrustyAI service', 'repoUrl': 'https://github.com/trustyai-explainability/trustyai-explainability', 'version': 'v0.28.0'}, {'name': 'TrustyAI LMEval driver', 'repoUrl': 'https://github.com/trustyai-explainability/trustyai-service-operator', 'version': 'v1.37.0'}, {'name': 'TrustyAI LMEval job', 'repoUrl': 'https://github.com/EleutherAI/lm-evaluation-harness', 'version': 'v0.4.8'}, {'name': 'TrustyAI Guardrails orchestrator', 'repoUrl': 'https://github.com/foundation-model-stack/fms-guardrails-orchestrator', 'version': '0.9.4'}, {'name': 'TrustyAI builtin detectors', 'repoUrl': 'https://github.com/trustyai-explainability/guardrails-regex-detector', 'version': 'v0.2.0'}, {'name': 'TrustyAI sidecar gateway', 'repoUrl': 'https://github.com/trustyai-explainability/vllm-orchestrator-gateway', 'version': 'v0.2.1'}]}, 'workbenches': {'managementState': 'Managed', 'releases': [{'name': 'Kubeflow Notebook Controller', 'repoUrl': 'https://github.com/kubeflow/kubeflow', 'version': '1.10.0'}], 'workbenchNamespace': 'rhods-notebooks'}}, 'conditions': [{'lastTransitionTime': '2026-06-12T10:08:24Z', 'message': 'failure deploying resource /default-kserve: apply failed ' 'components.platform.opendatahub.io/v1alpha1, Kind=Kserve: unable ' 'to patch components.platform.opendatahub.io/v1alpha1, Kind=Kserve ' 'default-kserve: Kserve.components.platform.opendatahub.io ' '"default-kserve" is invalid: [spec.modelsAsService: Invalid ' 'value: "null": spec.modelsAsService in body must be of type ' 'object: "null", : Invalid value: "null": some validation ' 'rules were not checked because the object was invalid; correct ' 'the existing errors to complete validation]', 'reason': 'Error', 'status': 'False', 'type': 'Ready'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'message': 'failure deploying resource /default-kserve: apply failed ' 'components.platform.opendatahub.io/v1alpha1, Kind=Kserve: unable ' 'to patch components.platform.opendatahub.io/v1alpha1, Kind=Kserve ' 'default-kserve: Kserve.components.platform.opendatahub.io ' '"default-kserve" is invalid: [spec.modelsAsService: Invalid ' 'value: "null": spec.modelsAsService in body must be of type ' 'object: "null", : Invalid value: "null": some validation ' 'rules were not checked because the object was invalid; correct ' 'the existing errors to complete validation]', 'observedGeneration': 3, 'reason': 'Error', 'status': 'False', 'type': 'ProvisioningSucceeded'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'status': 'True', 'type': 'ComponentsReady'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'AIPipelinesReady'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'status': 'True', 'type': 'DashboardReady'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'FeastOperatorReady'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'status': 'True', 'type': 'KserveLLMInferenceServiceDependencies'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'status': 'True', 'type': 'KserveLLMInferenceServiceWideEPDependencies'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'status': 'True', 'type': 'KserveReady'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'KueueReady'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'LlamaStackOperatorReady'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'MLflowOperatorReady'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'status': 'True', 'type': 'ModelControllerReady'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'status': 'True', 'type': 'ModelRegistryReady'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'ModelsAsServiceReady'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'RayReady'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'SparkOperatorReady'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'TrainerReady'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'message': 'Component ManagementState is set to Removed', 'reason': 'Removed', 'severity': 'Info', 'status': 'False', 'type': 'TrainingOperatorReady'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'status': 'True', 'type': 'TrustyAIReady'}, {'lastTransitionTime': '2026-06-12T10:08:24Z', 'status': 'True', 'type': 'WorkbenchesReady'}], 'observedGeneration': 1, 'phase': 'Not Ready', 'release': {'name': 'OpenShift AI Self-Managed', 'version': '3.4.1'}}. ! --- BVT pytest attempt 2026-06-12T10:08:31.788968+00:00 (python3 -m pytest...) --- ImportError while loading conftest '/home/odh/opendatahub-tests/conftest.py'. conftest.py:16: in from ocp_resources.cluster_service_version import ClusterServiceVersion E ModuleNotFoundError: No module named 'ocp_resources'