Skip to content
Merged
Show file tree
Hide file tree
Changes from 70 commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
b362382
Create size-labeler.yml
rnetser Dec 18, 2024
3c6a875
Delete .github/workflows/size-labeler.yml
rnetser Dec 18, 2024
ccb63af
Merge branch 'main' of github.com:rnetser/opendatahub-tests
rnetser Dec 24, 2024
da0c898
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Dec 25, 2024
94a82ec
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Dec 26, 2024
c0c82dd
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Dec 27, 2024
5feb447
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Dec 30, 2024
19b9c56
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Dec 31, 2024
e22ac1a
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Dec 31, 2024
56ab9c5
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Dec 31, 2024
5a17f03
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Dec 31, 2024
ef5fe65
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Dec 31, 2024
1875a44
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Jan 1, 2025
840d442
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Jan 2, 2025
c0d4436
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Jan 2, 2025
ba7971a
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Jan 3, 2025
fd73a94
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Jan 7, 2025
bde0493
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Jan 8, 2025
d3cd799
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Jan 9, 2025
710befa
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Jan 12, 2025
a662364
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Jan 16, 2025
579c283
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Jan 16, 2025
927cbb0
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Jan 19, 2025
99e242e
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Jan 22, 2025
5b83bab
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Jan 24, 2025
4b5b007
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Jan 27, 2025
b8e5dee
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Jan 30, 2025
0039df0
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Jan 30, 2025
17938d6
model mesh - add auth tests
rnetser Feb 2, 2025
44a3120
xx
rnetser Feb 2, 2025
a418727
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Feb 3, 2025
d291c32
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Feb 4, 2025
b6650d8
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Feb 5, 2025
8b9f838
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Feb 7, 2025
d53a04c
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Feb 10, 2025
db89111
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Feb 10, 2025
773d81a
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Feb 12, 2025
01be6e9
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Feb 13, 2025
71df8d5
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Feb 16, 2025
8896bd7
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Feb 18, 2025
0eeb162
Merge branch 'main' of https://github.com/opendatahub-io/opendatahub-…
rnetser Feb 18, 2025
38e8a69
ci: on main upstream xxxxxxxxxxx
rnetser Feb 19, 2025
875f597
ci: reabsingxxxxxxxxxxxxxx
rnetser Feb 20, 2025
c90abf6
ci: reabsingxxxxxxxxxxxxxx
rnetser Feb 20, 2025
4a26346
ci: Merge branch 'main' of https://github.com/opendatahub-io/opendata…
rnetser Feb 24, 2025
8302ed1
ci: Merge branch 'main' of https://github.com/opendatahub-io/opendata…
rnetser Feb 25, 2025
ff1b155
ci: rebase on main
rnetser Mar 6, 2025
a04a3c4
ci: merge main branch
rnetser Mar 11, 2025
d1cb99b
ci: merge branch main
rnetser Mar 12, 2025
d09438d
feat: add env vars in isvc
rnetser Mar 13, 2025
e053e74
feat: add env vars in isvc
rnetser Mar 13, 2025
63ee2bd
feat: add env vars in isvc
rnetser Mar 14, 2025
69293a0
feat: add env vars in isvc
rnetser Mar 14, 2025
6d79d7b
feat: add env vars in isvc
rnetser Mar 16, 2025
525d0fa
fix: fix protocol
rnetser Mar 17, 2025
d55935f
ci: merge branch main
rnetser Mar 17, 2025
6a9e47c
fix: deployments
rnetser Mar 17, 2025
85b839e
ci: merge on main
rnetser Mar 17, 2025
4782efb
fix: update timeout
rnetser Mar 17, 2025
130b812
fix: update timeout
rnetser Mar 17, 2025
1e70937
feat: add replicas test
rnetser Mar 17, 2025
9a1bf57
feat: unity configs
rnetser Mar 17, 2025
0633347
ci: merge to main
rnetser Mar 17, 2025
05f275e
ci: merge main branch
rnetser Mar 18, 2025
b422c03
ci: fix conflicts
rnetser Mar 18, 2025
539dcd9
fix: rename fixtures and constants
rnetser Mar 18, 2025
a67eafb
ci: merge main branch
rnetser Mar 18, 2025
ecca748
ci: merge main branch
rnetser Mar 18, 2025
e044701
fix: address comment
rnetser Mar 18, 2025
fafba8a
ci: resolve conflicts
rnetser Mar 18, 2025
d154998
ci: merge main branch
rnetser Mar 20, 2025
40014e6
fix: extend onstants
rnetser Mar 20, 2025
3ee20cb
ci: resolve conflicts
rnetser Mar 24, 2025
70343bc
fix: fix strings
rnetser Mar 24, 2025
ae0755c
fix: update imports
rnetser Mar 24, 2025
db49aa7
ci: merge with main
rnetser Mar 24, 2025
d9d21b8
fix: timeout update
rnetser Mar 24, 2025
215898f
fix: fix annotation
rnetser Mar 25, 2025
a6320b7
fix: address comments
rnetser Mar 25, 2025
39bbc07
fix: address comment
rnetser Mar 25, 2025
b490348
ci: merge with main
rnetser Mar 26, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions tests/model_serving/model_server/components/constants.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
from utilities.constants import (
KServeDeploymentType,
ModelAndFormat,
ModelFormat,
ModelInferenceRuntime,
ModelStoragePath,
ModelVersion,
)

KSERVE_RUNTIME_PARAMS = {
"runtime-name": ModelInferenceRuntime.OPENVINO_KSERVE_RUNTIME,
"model-format": {ModelAndFormat.OPENVINO_IR: ModelVersion.OPSET1},
}
SERVERLESS_ISVC_PARAMS = {
"name": ModelFormat.OPENVINO,
"model-version": ModelVersion.OPSET1,
"model-dir": ModelStoragePath.KSERVE_OPENVINO_EXAMPLE_MODEL,
"deployment-mode": KServeDeploymentType.SERVERLESS,
}
Original file line number Diff line number Diff line change
@@ -1,62 +1,50 @@
import pytest

from tests.model_serving.model_server.components.constants import KSERVE_RUNTIME_PARAMS, SERVERLESS_ISVC_PARAMS
from tests.model_serving.model_server.utils import verify_inference_response
from utilities.constants import (
ModelAndFormat,
ModelFormat,
ModelInferenceRuntime,
ModelStoragePath,
ModelVersion,
Protocols,
)
from utilities.inference_utils import Inference
from utilities.manifests.openvino import OPENVINO_INFERENCE_CONFIG, OPENVINO_KSERVE_INFERENCE_CONFIG

pytestmark = [pytest.mark.serverless, pytest.mark.modelmesh, pytest.mark.sanity]

KSERVE_RUNTIME_PARAMS = {
"runtime-name": ModelInferenceRuntime.OPENVINO_KSERVE_RUNTIME,
"model-format": {ModelAndFormat.OPENVINO_IR: ModelVersion.OPSET1},
}
KSERVE_ISVC_PARAMS = {
"name": ModelFormat.OPENVINO,
"model-version": ModelVersion.OPSET1,
"model-dir": ModelStoragePath.KSERVE_OPENVINO_EXAMPLE_MODEL,
}
MODELMESH_ISVC_PARAMS = {
"model-path": ModelStoragePath.OPENVINO_EXAMPLE_MODEL,
"modelmesh-enabled": True,
}


@pytest.mark.parametrize(
"model_namespace, openvino_kserve_serving_runtime, ovms_serverless_inference_service, "
"model_namespace, openvino_kserve_serving_runtime, ovms_kserve_inference_service, "
"http_s3_openvino_model_mesh_inference_service",
[
pytest.param(
{"name": "serverless-model-mesh-openvino", "modelmesh-enabled": True},
KSERVE_RUNTIME_PARAMS,
KSERVE_ISVC_PARAMS,
SERVERLESS_ISVC_PARAMS,
MODELMESH_ISVC_PARAMS,
)
],
indirect=True,
)
class TestOpenVINOServerlessModelMesh:
def test_serverless_openvino_created_before_model_mesh_ns_rest_inference(
self, ovms_serverless_inference_service, http_s3_openvino_model_mesh_inference_service
self, ovms_kserve_inference_service, http_s3_openvino_model_mesh_inference_service
):
"""Verify that Serverless model can be queried when running with modelmesh inference service"""
verify_inference_response(
inference_service=ovms_serverless_inference_service,
inference_service=ovms_kserve_inference_service,
inference_config=OPENVINO_KSERVE_INFERENCE_CONFIG,
inference_type=Inference.INFER,
protocol=Protocols.HTTPS,
use_default_query=True,
)

def test_model_mesh_openvino_created_after_serverless_in_namespace_rest_inference(
self, ovms_serverless_inference_service, http_s3_openvino_model_mesh_inference_service
self, ovms_kserve_inference_service, http_s3_openvino_model_mesh_inference_service
):
"""Verify that modelmesh model can be queried when running with kserve inference service"""
verify_inference_response(
Expand All @@ -70,20 +58,20 @@ def test_model_mesh_openvino_created_after_serverless_in_namespace_rest_inferenc

@pytest.mark.parametrize(
"model_namespace, http_s3_openvino_model_mesh_inference_service, openvino_kserve_serving_runtime, "
"ovms_serverless_inference_service, ",
"ovms_kserve_inference_service, ",
[
pytest.param(
{"name": "model-mesh-serverless-openvino", "modelmesh-enabled": True},
MODELMESH_ISVC_PARAMS,
KSERVE_RUNTIME_PARAMS,
KSERVE_ISVC_PARAMS,
SERVERLESS_ISVC_PARAMS,
)
],
indirect=True,
)
class TestOpenVINOModelMeshServerless:
def test_model_mesh_openvino_created_before_serverless_in_namespace_rest_inference(
self, http_s3_openvino_model_mesh_inference_service, ovms_serverless_inference_service
self, http_s3_openvino_model_mesh_inference_service, ovms_kserve_inference_service
):
"""Verify that modelmesh model can be queried when running with kserve inference service"""
verify_inference_response(
Expand All @@ -95,11 +83,11 @@ def test_model_mesh_openvino_created_before_serverless_in_namespace_rest_inferen
)

def test_serverless_openvino_created_after_model_mesh_ns_rest_inference(
self, http_s3_openvino_model_mesh_inference_service, ovms_serverless_inference_service
self, http_s3_openvino_model_mesh_inference_service, ovms_kserve_inference_service
):
"""Verify that Serverless model can be queried when running with modelmesh inference service"""
verify_inference_response(
inference_service=ovms_serverless_inference_service,
inference_service=ovms_kserve_inference_service,
inference_config=OPENVINO_KSERVE_INFERENCE_CONFIG,
inference_type=Inference.INFER,
protocol=Protocols.HTTPS,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
import pytest

from tests.model_serving.model_server.components.constants import KSERVE_RUNTIME_PARAMS, SERVERLESS_ISVC_PARAMS
from tests.model_serving.model_server.utils import verify_inference_response
from utilities.constants import (
KServeDeploymentType,
ModelAndFormat,
ModelFormat,
ModelInferenceRuntime,
ModelName,
ModelStoragePath,
ModelVersion,
Protocols,
RuntimeTemplates,
)
Expand All @@ -20,16 +19,6 @@

pytestmark = [pytest.mark.serverless, pytest.mark.rawdeployment, pytest.mark.sanity]


SERVERLESS_RUNTIME_PARAMS = {
"runtime-name": ModelInferenceRuntime.OPENVINO_KSERVE_RUNTIME,
"model-format": {ModelAndFormat.OPENVINO_IR: ModelVersion.OPSET1},
}
SERVERLESS_ISVC_PARAMS = {
"name": ModelFormat.OPENVINO,
"model-version": ModelVersion.OPSET1,
"model-dir": ModelStoragePath.KSERVE_OPENVINO_EXAMPLE_MODEL,
}
RAW_RUNTIME_PARAMS = {
"name": f"{Protocols.HTTP}-{ModelInferenceRuntime.CAIKIT_STANDALONE_RUNTIME}".lower(),
"template-name": RuntimeTemplates.CAIKIT_STANDALONE_SERVING,
Expand All @@ -44,12 +33,12 @@


@pytest.mark.parametrize(
"model_namespace, openvino_kserve_serving_runtime, ovms_serverless_inference_service, "
"model_namespace, openvino_kserve_serving_runtime, ovms_kserve_inference_service, "
"serving_runtime_from_template, s3_models_inference_service",
[
pytest.param(
{"name": "serverless-raw-deployment"},
SERVERLESS_RUNTIME_PARAMS,
KSERVE_RUNTIME_PARAMS,
SERVERLESS_ISVC_PARAMS,
RAW_RUNTIME_PARAMS,
RAW_ISVC_PARAMS,
Expand All @@ -59,11 +48,11 @@
)
class TestServerlessRawInternalDeploymentInferenceCoExist:
def test_serverless_openvino_created_before_raw_internal_deployment_caikit_inference(
self, ovms_serverless_inference_service, s3_models_inference_service
self, ovms_kserve_inference_service, s3_models_inference_service
):
"""Verify that Serverless model can be queried when running with raw deployment inference service"""
verify_inference_response(
inference_service=ovms_serverless_inference_service,
inference_service=ovms_kserve_inference_service,
inference_config=OPENVINO_KSERVE_INFERENCE_CONFIG,
inference_type=Inference.INFER,
protocol=Protocols.HTTPS,
Expand All @@ -72,7 +61,7 @@ def test_serverless_openvino_created_before_raw_internal_deployment_caikit_infer

def test_raw_internal_deployment_caikit_created_after_serverless_in_namespace_rest_inference(
self,
ovms_serverless_inference_service,
ovms_kserve_inference_service,
s3_models_inference_service,
):
"""Verify that raw deployment model can be queried when running with kserve inference service"""
Expand All @@ -87,12 +76,12 @@ def test_raw_internal_deployment_caikit_created_after_serverless_in_namespace_re


@pytest.mark.parametrize(
"model_namespace, openvino_kserve_serving_runtime, ovms_serverless_inference_service, "
"model_namespace, openvino_kserve_serving_runtime, ovms_kserve_inference_service, "
"serving_runtime_from_template, s3_models_inference_service",
[
pytest.param(
{"name": "serverless-raw-ext-deployment"},
SERVERLESS_RUNTIME_PARAMS,
KSERVE_RUNTIME_PARAMS,
SERVERLESS_ISVC_PARAMS,
RAW_RUNTIME_PARAMS,
{**RAW_ISVC_PARAMS, "external-route": True},
Expand All @@ -102,11 +91,11 @@ def test_raw_internal_deployment_caikit_created_after_serverless_in_namespace_re
)
class TestServerlessRawExternalDeploymentInferenceCoExist:
def test_serverless_openvino_created_before_raw_external_deployment_caikit_inference(
self, ovms_serverless_inference_service, s3_models_inference_service
self, ovms_kserve_inference_service, s3_models_inference_service
):
"""Verify that Serverless model can be queried when running with raw deployment inference service"""
verify_inference_response(
inference_service=ovms_serverless_inference_service,
inference_service=ovms_kserve_inference_service,
inference_config=OPENVINO_KSERVE_INFERENCE_CONFIG,
inference_type=Inference.INFER,
protocol=Protocols.HTTPS,
Expand All @@ -115,7 +104,7 @@ def test_serverless_openvino_created_before_raw_external_deployment_caikit_infer

def test_raw_external_deployment_caikit_created_after_serverless_in_namespace_rest_inference(
self,
ovms_serverless_inference_service,
ovms_kserve_inference_service,
s3_models_inference_service,
):
"""Verify that raw deployment model can be queried when running with kserve inference service"""
Expand All @@ -131,13 +120,13 @@ def test_raw_external_deployment_caikit_created_after_serverless_in_namespace_re

@pytest.mark.parametrize(
"model_namespace, serving_runtime_from_template, s3_models_inference_service,"
"openvino_kserve_serving_runtime, ovms_serverless_inference_service",
"openvino_kserve_serving_runtime, ovms_kserve_inference_service",
[
pytest.param(
{"name": "raw-deployment-serverless"},
RAW_RUNTIME_PARAMS,
RAW_ISVC_PARAMS,
SERVERLESS_RUNTIME_PARAMS,
KSERVE_RUNTIME_PARAMS,
SERVERLESS_ISVC_PARAMS,
)
],
Expand All @@ -147,7 +136,7 @@ class TestRawInternalDeploymentServerlessInferenceCoExist:
def test_raw_internal_deployment_caikit_created_before_serverless_openvino_in_namespace_rest_inference(
self,
s3_models_inference_service,
ovms_serverless_inference_service,
ovms_kserve_inference_service,
):
"""Verify that raw deployment model can be queried when running with kserve inference service"""
verify_inference_response(
Expand All @@ -162,11 +151,11 @@ def test_raw_internal_deployment_caikit_created_before_serverless_openvino_in_na
def test_serverless_openvino_created_after_raw_internal_deployment_caikit_ns_rest_inference(
self,
s3_models_inference_service,
ovms_serverless_inference_service,
ovms_kserve_inference_service,
):
"""Verify that Serverless model can be queried when running with raw deployment exists"""
verify_inference_response(
inference_service=ovms_serverless_inference_service,
inference_service=ovms_kserve_inference_service,
inference_config=OPENVINO_KSERVE_INFERENCE_CONFIG,
inference_type=Inference.INFER,
protocol=Protocols.HTTPS,
Expand All @@ -176,13 +165,13 @@ def test_serverless_openvino_created_after_raw_internal_deployment_caikit_ns_res

@pytest.mark.parametrize(
"model_namespace, serving_runtime_from_template, s3_models_inference_service,"
"openvino_kserve_serving_runtime, ovms_serverless_inference_service",
"openvino_kserve_serving_runtime, ovms_kserve_inference_service",
[
pytest.param(
{"name": "raw-etx-deployment-serverless"},
RAW_RUNTIME_PARAMS,
{**RAW_ISVC_PARAMS, "external-route": True},
SERVERLESS_RUNTIME_PARAMS,
KSERVE_RUNTIME_PARAMS,
SERVERLESS_ISVC_PARAMS,
),
],
Expand All @@ -192,7 +181,7 @@ class TestRawExternalDeploymentServerlessInferenceCoExist:
def test_raw_external_deployment_caikit_created_before_serverless_openvino_in_namespace_rest_inference(
self,
s3_models_inference_service,
ovms_serverless_inference_service,
ovms_kserve_inference_service,
):
"""Verify that raw deployment model can be queried when running with kserve inference service"""
verify_inference_response(
Expand All @@ -205,11 +194,11 @@ def test_raw_external_deployment_caikit_created_before_serverless_openvino_in_na
)

def test_serverless_openvino_created_after_raw_external_deployment_caikit_ns_rest_inference(
self, s3_models_inference_service, ovms_serverless_inference_service
self, s3_models_inference_service, ovms_kserve_inference_service
):
"""Verify that Serverless model can be queried when running with raw deployment exists"""
verify_inference_response(
inference_service=ovms_serverless_inference_service,
inference_service=ovms_kserve_inference_service,
inference_config=OPENVINO_KSERVE_INFERENCE_CONFIG,
inference_type=Inference.INFER,
protocol=Protocols.HTTPS,
Expand Down
36 changes: 24 additions & 12 deletions tests/model_serving/model_server/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -342,24 +342,36 @@ def ci_service_account(


@pytest.fixture(scope="class")
def ovms_serverless_inference_service(
def ovms_kserve_inference_service(
request: FixtureRequest,
admin_client: DynamicClient,
model_namespace: Namespace,
openvino_kserve_serving_runtime: ServingRuntime,
ci_endpoint_s3_secret: Secret,
) -> Generator[InferenceService, Any, Any]:
with create_isvc(
client=admin_client,
name=f"{request.param['name']}-serverless",
namespace=model_namespace.name,
runtime=openvino_kserve_serving_runtime.name,
storage_path=request.param["model-dir"],
storage_key=ci_endpoint_s3_secret.name,
model_format=ModelAndFormat.OPENVINO_IR,
deployment_mode=KServeDeploymentType.SERVERLESS,
model_version=request.param["model-version"],
) as isvc:
deployment_mode = request.param["deployment-mode"]
isvc_kwargs = {
"client": admin_client,
"name": f"{request.param['name']}-{deployment_mode.lower()}",
"namespace": model_namespace.name,
"runtime": openvino_kserve_serving_runtime.name,
"storage_path": request.param["model-dir"],
"storage_key": ci_endpoint_s3_secret.name,
"model_format": ModelAndFormat.OPENVINO_IR,
"deployment_mode": deployment_mode,
"model_version": request.param["model-version"],
}

if env_vars := request.param.get("env-vars"):
isvc_kwargs["model_env_variables"] = env_vars

if min_replicas := request.param.get("min-replicas"):
isvc_kwargs["min_replicas"] = min_replicas

if max_replicas := request.param.get("max-replicas"):
isvc_kwargs["max_replicas"] = max_replicas

with create_isvc(**isvc_kwargs) as isvc:
yield isvc


Expand Down
Loading
Loading