Skip to content

Commit 27b8354

Browse files
authored
Merge branch 'main' into add-vectordb-tests
2 parents 03ab276 + 50e3681 commit 27b8354

14 files changed

Lines changed: 134 additions & 149 deletions

tests/conftest.py

Lines changed: 0 additions & 119 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
from ocp_resources.mariadb_operator import MariadbOperator
2020
from ocp_resources.node import Node
2121
from ocp_resources.pod import Pod
22-
from ocp_resources.route import Route
2322
from ocp_resources.secret import Secret
2423
from ocp_resources.service import Service
2524
from ocp_resources.subscription import Subscription
@@ -50,7 +49,6 @@
5049
DscComponents,
5150
Labels,
5251
MinIo,
53-
OCIRegistry,
5452
Protocols,
5553
Timeout,
5654
OPENSHIFT_OPERATORS,
@@ -567,123 +565,6 @@ def minio_data_connection(
567565
yield secret
568566

569567

570-
# OCI Registry
571-
@pytest.fixture(scope="class")
572-
def oci_namespace(admin_client: DynamicClient) -> Generator[Namespace, Any, Any]:
573-
with create_ns(
574-
name=f"{OCIRegistry.Metadata.NAME}-{shortuuid.uuid().lower()}",
575-
admin_client=admin_client,
576-
) as ns:
577-
yield ns
578-
579-
580-
@pytest.fixture(scope="class")
581-
def oci_registry_pod_with_minio(
582-
request: FixtureRequest,
583-
admin_client: DynamicClient,
584-
oci_namespace: Namespace,
585-
minio_service: Service,
586-
) -> Generator[Pod, Any, Any]:
587-
pod_labels = {Labels.Openshift.APP: OCIRegistry.Metadata.NAME}
588-
589-
if labels := request.param.get("labels"):
590-
pod_labels.update(labels)
591-
592-
minio_fqdn = f"{minio_service.name}.{minio_service.namespace}.svc.cluster.local"
593-
minio_endpoint = f"{minio_fqdn}:{MinIo.Metadata.DEFAULT_PORT}"
594-
595-
with Pod(
596-
client=admin_client,
597-
name=OCIRegistry.Metadata.NAME,
598-
namespace=oci_namespace.name,
599-
containers=[
600-
{
601-
"args": request.param.get("args"),
602-
"env": [
603-
{"name": "ZOT_STORAGE_STORAGEDRIVER_NAME", "value": OCIRegistry.Storage.STORAGE_DRIVER},
604-
{
605-
"name": "ZOT_STORAGE_STORAGEDRIVER_ROOTDIRECTORY",
606-
"value": OCIRegistry.Storage.STORAGE_DRIVER_ROOT_DIRECTORY,
607-
},
608-
{"name": "ZOT_STORAGE_STORAGEDRIVER_BUCKET", "value": MinIo.Buckets.MODELMESH_EXAMPLE_MODELS},
609-
{"name": "ZOT_STORAGE_STORAGEDRIVER_REGION", "value": OCIRegistry.Storage.STORAGE_DRIVER_REGION},
610-
{"name": "ZOT_STORAGE_STORAGEDRIVER_REGIONENDPOINT", "value": f"http://{minio_endpoint}"},
611-
{"name": "ZOT_STORAGE_STORAGEDRIVER_ACCESSKEY", "value": MinIo.Credentials.ACCESS_KEY_VALUE},
612-
{"name": "ZOT_STORAGE_STORAGEDRIVER_SECRETKEY", "value": MinIo.Credentials.SECRET_KEY_VALUE},
613-
{
614-
"name": "ZOT_STORAGE_STORAGEDRIVER_SECURE",
615-
"value": OCIRegistry.Storage.STORAGE_STORAGEDRIVER_SECURE,
616-
},
617-
{
618-
"name": "ZOT_STORAGE_STORAGEDRIVER_FORCEPATHSTYLE",
619-
"value": OCIRegistry.Storage.STORAGE_STORAGEDRIVER_FORCEPATHSTYLE,
620-
},
621-
{"name": "ZOT_HTTP_ADDRESS", "value": OCIRegistry.Metadata.DEFAULT_HTTP_ADDRESS},
622-
{"name": "ZOT_HTTP_PORT", "value": str(OCIRegistry.Metadata.DEFAULT_PORT)},
623-
{"name": "ZOT_LOG_LEVEL", "value": "info"},
624-
],
625-
"image": request.param.get("image", OCIRegistry.PodConfig.REGISTRY_IMAGE),
626-
"name": OCIRegistry.Metadata.NAME,
627-
"securityContext": {
628-
"allowPrivilegeEscalation": False,
629-
"capabilities": {"drop": ["ALL"]},
630-
"runAsNonRoot": True,
631-
"seccompProfile": {"type": "RuntimeDefault"},
632-
},
633-
"volumeMounts": [
634-
{
635-
"name": "zot-data",
636-
"mountPath": "/var/lib/registry",
637-
}
638-
],
639-
}
640-
],
641-
volumes=[
642-
{
643-
"name": "zot-data",
644-
"emptyDir": {},
645-
}
646-
],
647-
label=pod_labels,
648-
annotations=request.param.get("annotations"),
649-
) as oci_pod:
650-
oci_pod.wait_for_condition(condition="Ready", status="True")
651-
yield oci_pod
652-
653-
654-
@pytest.fixture(scope="class")
655-
def oci_registry_service(admin_client: DynamicClient, oci_namespace: Namespace) -> Generator[Service, Any, Any]:
656-
with Service(
657-
client=admin_client,
658-
name=OCIRegistry.Metadata.NAME,
659-
namespace=oci_namespace.name,
660-
ports=[
661-
{
662-
"name": f"{OCIRegistry.Metadata.NAME}-port",
663-
"port": OCIRegistry.Metadata.DEFAULT_PORT,
664-
"protocol": Protocols.TCP,
665-
"targetPort": OCIRegistry.Metadata.DEFAULT_PORT,
666-
}
667-
],
668-
selector={
669-
Labels.Openshift.APP: OCIRegistry.Metadata.NAME,
670-
},
671-
session_affinity="ClientIP",
672-
) as oci_service:
673-
yield oci_service
674-
675-
676-
@pytest.fixture(scope="class")
677-
def oci_registry_route(admin_client: DynamicClient, oci_registry_service: Service) -> Generator[Route, Any, Any]:
678-
with Route(
679-
client=admin_client,
680-
name=OCIRegistry.Metadata.NAME,
681-
namespace=oci_registry_service.namespace,
682-
service=oci_registry_service.name,
683-
) as oci_route:
684-
yield oci_route
685-
686-
687568
@pytest.fixture(scope="session")
688569
def nodes(admin_client: DynamicClient) -> Generator[list[Node], Any, Any]:
689570
yield list(Node.get(dyn_client=admin_client))
Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
import pytest
2+
from typing import Any, Generator
3+
import shortuuid
4+
from pytest import FixtureRequest
5+
6+
from ocp_resources.namespace import Namespace
7+
from ocp_resources.pod import Pod
8+
from ocp_resources.route import Route
9+
from ocp_resources.service import Service
10+
11+
from utilities.infra import create_ns
12+
from utilities.constants import OCIRegistry, MinIo, Protocols, Labels
13+
14+
from kubernetes.dynamic import DynamicClient
15+
16+
17+
# OCI Registry
18+
@pytest.fixture(scope="class")
19+
def oci_namespace(admin_client: DynamicClient) -> Generator[Namespace, Any, Any]:
20+
with create_ns(
21+
name=f"{OCIRegistry.Metadata.NAME}-{shortuuid.uuid().lower()}",
22+
admin_client=admin_client,
23+
) as ns:
24+
yield ns
25+
26+
27+
@pytest.fixture(scope="class")
28+
def oci_registry_pod_with_minio(
29+
request: FixtureRequest,
30+
admin_client: DynamicClient,
31+
oci_namespace: Namespace,
32+
minio_service: Service,
33+
) -> Generator[Pod, Any, Any]:
34+
pod_labels = {Labels.Openshift.APP: OCIRegistry.Metadata.NAME}
35+
36+
if labels := request.param.get("labels"):
37+
pod_labels.update(labels)
38+
39+
minio_fqdn = f"{minio_service.name}.{minio_service.namespace}.svc.cluster.local"
40+
minio_endpoint = f"{minio_fqdn}:{MinIo.Metadata.DEFAULT_PORT}"
41+
42+
with Pod(
43+
client=admin_client,
44+
name=OCIRegistry.Metadata.NAME,
45+
namespace=oci_namespace.name,
46+
containers=[
47+
{
48+
"args": request.param.get("args"),
49+
"env": [
50+
{"name": "ZOT_STORAGE_STORAGEDRIVER_NAME", "value": OCIRegistry.Storage.STORAGE_DRIVER},
51+
{
52+
"name": "ZOT_STORAGE_STORAGEDRIVER_ROOTDIRECTORY",
53+
"value": OCIRegistry.Storage.STORAGE_DRIVER_ROOT_DIRECTORY,
54+
},
55+
{"name": "ZOT_STORAGE_STORAGEDRIVER_BUCKET", "value": MinIo.Buckets.MODELMESH_EXAMPLE_MODELS},
56+
{"name": "ZOT_STORAGE_STORAGEDRIVER_REGION", "value": OCIRegistry.Storage.STORAGE_DRIVER_REGION},
57+
{"name": "ZOT_STORAGE_STORAGEDRIVER_REGIONENDPOINT", "value": f"http://{minio_endpoint}"},
58+
{"name": "ZOT_STORAGE_STORAGEDRIVER_ACCESSKEY", "value": MinIo.Credentials.ACCESS_KEY_VALUE},
59+
{"name": "ZOT_STORAGE_STORAGEDRIVER_SECRETKEY", "value": MinIo.Credentials.SECRET_KEY_VALUE},
60+
{
61+
"name": "ZOT_STORAGE_STORAGEDRIVER_SECURE",
62+
"value": OCIRegistry.Storage.STORAGE_STORAGEDRIVER_SECURE,
63+
},
64+
{
65+
"name": "ZOT_STORAGE_STORAGEDRIVER_FORCEPATHSTYLE",
66+
"value": OCIRegistry.Storage.STORAGE_STORAGEDRIVER_FORCEPATHSTYLE,
67+
},
68+
{"name": "ZOT_HTTP_ADDRESS", "value": OCIRegistry.Metadata.DEFAULT_HTTP_ADDRESS},
69+
{"name": "ZOT_HTTP_PORT", "value": str(OCIRegistry.Metadata.DEFAULT_PORT)},
70+
{"name": "ZOT_LOG_LEVEL", "value": "info"},
71+
],
72+
"image": request.param.get("image", OCIRegistry.PodConfig.REGISTRY_IMAGE),
73+
"name": OCIRegistry.Metadata.NAME,
74+
"securityContext": {
75+
"allowPrivilegeEscalation": False,
76+
"capabilities": {"drop": ["ALL"]},
77+
"runAsNonRoot": True,
78+
"seccompProfile": {"type": "RuntimeDefault"},
79+
},
80+
"volumeMounts": [
81+
{
82+
"name": "zot-data",
83+
"mountPath": "/var/lib/registry",
84+
}
85+
],
86+
}
87+
],
88+
volumes=[
89+
{
90+
"name": "zot-data",
91+
"emptyDir": {},
92+
}
93+
],
94+
label=pod_labels,
95+
annotations=request.param.get("annotations"),
96+
) as oci_pod:
97+
oci_pod.wait_for_condition(condition="Ready", status="True")
98+
yield oci_pod
99+
100+
101+
@pytest.fixture(scope="class")
102+
def oci_registry_service(admin_client: DynamicClient, oci_namespace: Namespace) -> Generator[Service, Any, Any]:
103+
with Service(
104+
client=admin_client,
105+
name=OCIRegistry.Metadata.NAME,
106+
namespace=oci_namespace.name,
107+
ports=[
108+
{
109+
"name": f"{OCIRegistry.Metadata.NAME}-port",
110+
"port": OCIRegistry.Metadata.DEFAULT_PORT,
111+
"protocol": Protocols.TCP,
112+
"targetPort": OCIRegistry.Metadata.DEFAULT_PORT,
113+
}
114+
],
115+
selector={
116+
Labels.Openshift.APP: OCIRegistry.Metadata.NAME,
117+
},
118+
session_affinity="ClientIP",
119+
) as oci_service:
120+
yield oci_service
121+
122+
123+
@pytest.fixture(scope="class")
124+
def oci_registry_route(admin_client: DynamicClient, oci_registry_service: Service) -> Generator[Route, Any, Any]:
125+
with Route(
126+
client=admin_client,
127+
name=OCIRegistry.Metadata.NAME,
128+
namespace=oci_registry_service.namespace,
129+
service=oci_registry_service.name,
130+
) as oci_route:
131+
yield oci_route

tests/model_registry/conftest.py

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@ def model_registry_db_service(
6262
admin_client: DynamicClient,
6363
teardown_resources: bool,
6464
model_registry_namespace: str,
65-
is_model_registry_oauth: bool,
6665
) -> Generator[list[Service], Any, Any]:
6766
num_resources = getattr(request, "param", {}).get("num_resources", 1)
6867
if pytestconfig.option.post_upgrade:
@@ -89,7 +88,6 @@ def model_registry_db_pvc(
8988
admin_client: DynamicClient,
9089
teardown_resources: bool,
9190
model_registry_namespace: str,
92-
is_model_registry_oauth: bool,
9391
) -> Generator[list[PersistentVolumeClaim], Any, Any]:
9492
num_resources = getattr(request, "param", {}).get("num_resources", 1)
9593
if pytestconfig.option.post_upgrade:
@@ -116,7 +114,6 @@ def model_registry_db_secret(
116114
admin_client: DynamicClient,
117115
teardown_resources: bool,
118116
model_registry_namespace: str,
119-
is_model_registry_oauth: bool,
120117
) -> Generator[list[Secret], Any, Any]:
121118
num_resources = getattr(request, "param", {}).get("num_resources", 1)
122119
if pytestconfig.option.post_upgrade:
@@ -143,7 +140,6 @@ def model_registry_db_deployment(
143140
admin_client: DynamicClient,
144141
teardown_resources: bool,
145142
model_registry_namespace: str,
146-
is_model_registry_oauth: bool,
147143
) -> Generator[list[Deployment], Any, Any]:
148144
num_resources = getattr(request, "param", {}).get("num_resources", 1)
149145
if pytestconfig.option.post_upgrade:
@@ -182,7 +178,6 @@ def model_registry_instance_mysql(
182178
admin_client: DynamicClient,
183179
teardown_resources: bool,
184180
model_registry_namespace: str,
185-
is_model_registry_oauth: bool,
186181
) -> Generator[list[Any], Any, Any]:
187182
"""Creates a model registry instance with oauth proxy configuration."""
188183
param = getattr(request, "param", {})
@@ -257,7 +252,7 @@ def updated_dsc_component_state_scope_class(
257252
dsc_resource.wait_for_condition(
258253
condition=DscComponents.COMPONENT_MAPPING[component_name], status="True"
259254
)
260-
namespace = Namespace(name=py_config["model_registry_namespace"], ensure_exists=True)
255+
namespace = Namespace(name=py_config["model_registry_namespace"], wait_for_resource=True)
261256
namespace.wait_for_status(status=Namespace.Status.ACTIVE)
262257
wait_for_pods_running(
263258
admin_client=admin_client,
@@ -455,11 +450,6 @@ def delete_mr_deployment() -> None:
455450
mr_deployment.delete(wait=True)
456451

457452

458-
@pytest.fixture(scope="class")
459-
def is_model_registry_oauth(request: FixtureRequest) -> bool:
460-
return getattr(request, "param", {}).get("use_oauth_proxy", True)
461-
462-
463453
@pytest.fixture(scope="session")
464454
def api_server_url(admin_client: DynamicClient) -> str:
465455
infrastructure = Infrastructure(client=admin_client, name="cluster", ensure_exists=True)

tests/model_registry/constants.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,6 @@ class ModelRegistryEndpoints:
2828
MR_INSTANCE_BASE_NAME: str = "model-registry"
2929
MR_INSTANCE_NAME: str = f"{MR_INSTANCE_BASE_NAME}0"
3030
SECURE_MR_NAME: str = "secure-db-mr"
31-
ISTIO_CONFIG_DICT: dict[str, Any] = {
32-
"gateway": {"grpc": {"tls": {}}, "rest": {"tls": {}}},
33-
}
3431
OAUTH_PROXY_CONFIG_DICT: dict[str, Any] = {
3532
"port": 8443,
3633
"routePort": 443,

tests/model_registry/image_validation/test_verify_rhoai_images.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313

1414
@pytest.mark.usefixtures(
1515
"updated_dsc_component_state_scope_class",
16-
"is_model_registry_oauth",
1716
"mysql_metadata_resources",
1817
"model_registry_instance_mysql",
1918
)

tests/model_registry/python_client/test_model_registry_creation.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
)
3232
@pytest.mark.usefixtures(
3333
"updated_dsc_component_state_scope_class",
34-
"is_model_registry_oauth",
3534
"model_registry_namespace",
3635
"model_registry_db_secret",
3736
"model_registry_db_pvc",

tests/model_registry/rbac/conftest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -451,7 +451,7 @@ def updated_dsc_component_state_parametrized(
451451
dsc_resource.wait_for_condition(
452452
condition=DscComponents.COMPONENT_MAPPING[DscComponents.MODELREGISTRY], status="True"
453453
)
454-
namespace = Namespace(name=namespace_name, ensure_exists=True)
454+
namespace = Namespace(name=namespace_name, wait_for_resource=True)
455455
namespace.wait_for_status(status=Namespace.Status.ACTIVE)
456456
wait_for_pods_running(
457457
admin_client=admin_client,

tests/model_registry/rbac/test_mr_rbac.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040

4141
@pytest.mark.usefixtures(
4242
"updated_dsc_component_state_scope_class",
43-
"is_model_registry_oauth",
4443
"mysql_metadata_resources",
4544
"model_registry_instance_mysql",
4645
)

tests/model_registry/rbac/test_mr_rbac_sa.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111

1212
@pytest.mark.usefixtures(
1313
"updated_dsc_component_state_scope_class",
14-
"is_model_registry_oauth",
1514
"mysql_metadata_resources",
1615
"model_registry_instance_mysql",
1716
)

tests/model_registry/rest_api/conftest.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@
4646
@pytest.fixture(scope="class")
4747
def registered_model_rest_api(
4848
request: pytest.FixtureRequest,
49-
is_model_registry_oauth: bool,
5049
model_registry_rest_url: list[str],
5150
model_registry_rest_headers: dict[str, str],
5251
) -> dict[str, Any]:

0 commit comments

Comments
 (0)