|
14 | 14 | from ocp_resources.secret import Secret |
15 | 15 | from ocp_resources.subscription import Subscription |
16 | 16 | from ocp_resources.trustyai_service import TrustyAIService |
| 17 | +from ocp_resources.utils.constants import TIMEOUT_2MINUTES |
17 | 18 | from ocp_utilities.operators import install_operator, uninstall_operator |
| 19 | +from timeout_sampler import TimeoutExpiredError |
18 | 20 |
|
19 | 21 | from tests.model_explainability.trustyai_service.trustyai_service_utils import TRUSTYAI_SERVICE_NAME |
20 | 22 | from tests.model_explainability.trustyai_service.utils import ( |
|
35 | 37 | DB_NAME: str = "trustyai_db" |
36 | 38 | DB_USERNAME: str = "trustyai_user" |
37 | 39 | DB_PASSWORD: str = "trustyai_password" |
| 40 | +FAKE_TLS_CERTIFICATE: str = ( |
| 41 | + "LS0tLS1CRUdJTiBDRVJUSUZJQ0FUR" |
| 42 | + "S0tLS0tXG5kMzRkYjMzZlxuLS0tLS" |
| 43 | + "1FTkQgQ0VSVElGSUNBVEUtLS0tLQ==" |
| 44 | +) # pragma: allowlist secret |
38 | 45 |
|
39 | 46 |
|
40 | 47 | @pytest.fixture(scope="class") |
@@ -82,6 +89,29 @@ def trustyai_service_with_db_storage( |
82 | 89 | yield trustyai_service |
83 | 90 |
|
84 | 91 |
|
| 92 | +@pytest.fixture(scope="class") |
| 93 | +def trustyai_service_with_invalid_cert_db_storage( |
| 94 | + admin_client: DynamicClient, |
| 95 | + model_namespace: Namespace, |
| 96 | + cluster_monitoring_config: ConfigMap, |
| 97 | + user_workload_monitoring_config: ConfigMap, |
| 98 | + mariadb: MariaDB, |
| 99 | + trustyai_invalid_db_ca_secret: None, |
| 100 | +) -> None: |
| 101 | + with TrustyAIService( |
| 102 | + client=admin_client, |
| 103 | + name=TRUSTYAI_SERVICE_NAME, |
| 104 | + namespace=model_namespace.name, |
| 105 | + storage={"format": "DATABASE", "size": "1Gi", "databaseConfigurations": "db-credentials"}, |
| 106 | + metrics={"schedule": "5s"}, |
| 107 | + ): |
| 108 | + trustyai_deployment = Deployment( |
| 109 | + namespace=model_namespace.name, name=TRUSTYAI_SERVICE_NAME, wait_for_resource=True |
| 110 | + ) |
| 111 | + with pytest.raises(TimeoutExpiredError): |
| 112 | + trustyai_deployment.wait_for_replicas(timeout=TIMEOUT_2MINUTES) |
| 113 | + |
| 114 | + |
85 | 115 | @pytest.fixture(scope="session") |
86 | 116 | def user_workload_monitoring_config(admin_client: DynamicClient) -> Generator[ConfigMap, Any, Any]: |
87 | 117 | data = {"config.yaml": yaml.dump({"prometheus": {"logLevel": "debug", "retention": "15d"}})} |
@@ -238,17 +268,32 @@ def mariadb( |
238 | 268 | yield mariadb |
239 | 269 |
|
240 | 270 |
|
241 | | -@pytest.fixture(scope="class") |
242 | | -def trustyai_db_ca_secret( |
243 | | - admin_client: DynamicClient, model_namespace: Namespace, mariadb: MariaDB |
| 271 | +def set_trustyai_db_ca_secret( |
| 272 | + admin_client: DynamicClient, mariadb_ca_cert: str, model_namespace: Namespace |
244 | 273 | ) -> Generator[None, Any, None]: |
245 | | - mariadb_ca_secret = Secret( |
246 | | - client=admin_client, name=f"{mariadb.name}-ca", namespace=model_namespace.name, ensure_exists=True |
247 | | - ) |
248 | 274 | with Secret( |
249 | 275 | client=admin_client, |
250 | 276 | name=f"{TRUSTYAI_SERVICE_NAME}-db-ca", |
251 | 277 | namespace=model_namespace.name, |
252 | | - data_dict={"ca.crt": mariadb_ca_secret.instance.data["ca.crt"]}, |
| 278 | + data_dict={"ca.crt": mariadb_ca_cert}, |
253 | 279 | ): |
254 | 280 | yield |
| 281 | + |
| 282 | + |
| 283 | +@pytest.fixture(scope="class") |
| 284 | +def trustyai_db_ca_secret( |
| 285 | + admin_client: DynamicClient, model_namespace: Namespace, mariadb: MariaDB |
| 286 | +) -> Generator[None, Any, None]: |
| 287 | + mariadb_ca_secret = Secret( |
| 288 | + client=admin_client, name=f"{mariadb.name}-ca", namespace=model_namespace.name, ensure_exists=True |
| 289 | + ) |
| 290 | + mariadb_ca_cert = mariadb_ca_secret.instance.data["ca.crt"] |
| 291 | + yield from set_trustyai_db_ca_secret(admin_client, mariadb_ca_cert, model_namespace) |
| 292 | + |
| 293 | + |
| 294 | +@pytest.fixture(scope="class") |
| 295 | +def trustyai_invalid_db_ca_secret( |
| 296 | + admin_client: DynamicClient, model_namespace: Namespace, mariadb: MariaDB |
| 297 | +) -> Generator[None, Any, None]: |
| 298 | + mariadb_ca_cert = FAKE_TLS_CERTIFICATE |
| 299 | + yield from set_trustyai_db_ca_secret(admin_client, mariadb_ca_cert, model_namespace) |
0 commit comments