From cf5c37e9feaf1a1fc07feac49edc48efbaeeb8ef Mon Sep 17 00:00:00 2001 From: Andrew Scribner Date: Thu, 7 Mar 2024 03:46:12 -0500 Subject: [PATCH] KF 5328 integrate paddleserver rock (#219) * update README.md to reduce maintenance This edits README.md to point at the source of truth for default images rather than having it written a second time in the README.md, removing the need to keep the readme up to date as well as reducing the chance for error. * integrate paddleserver rock for 0.11.2 * fix: use correct paddle image, remove extra namespace --- .gitignore | 1 + README.md | 23 +------------------ .../src/default-custom-images.json | 2 +- .../integration/paddleserver-resnet.yaml | 17 ++++++++++++++ .../tests/integration/test_charm.py | 6 ++++- 5 files changed, 25 insertions(+), 24 deletions(-) create mode 100644 charms/kserve-controller/tests/integration/paddleserver-resnet.yaml diff --git a/.gitignore b/.gitignore index b343962c..f99df7cf 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ *.tox build/ .vscode +.python-version diff --git a/README.md b/README.md index d687e5d4..178d1c43 100644 --- a/README.md +++ b/README.md @@ -206,28 +206,7 @@ Please see the [official docs site](https://charmed-kubeflow.io/docs) for comple ## Setting Custom Images for Kserve controller -KServe controller comes with a set of preconfigured images that are used in Kserve workloads. This is the list of default images used in charm. - -```json -{ - "configmap__agent": "kserve/agent:v0.11.1", - "configmap__batcher": "kserve/agent:v0.11.1", - "configmap__explainers__alibi": "kserve/alibi-explainer:latest", - "configmap__explainers__art": "kserve/art-explainer:latest", - "configmap__logger": "kserve/agent:v0.11.1", - "configmap__router": "kserve/router:v0.11.1", - "configmap__storageInitializer": "kserve/storage-initializer:v0.11.1", - "serving_runtimes__lgbserver": "kserve/lgbserver:v0.11.1", - "serving_runtimes__kserve_mlserver": "docker.io/seldonio/mlserver:1.3.2", - "serving_runtimes__paddleserver": "kserve/paddleserver:v0.11.1", - "serving_runtimes__pmmlserver": "kserve/pmmlserver:v0.11.1", - "serving_runtimes__sklearnserver": "kserve/sklearnserver:v0.11.1", - "serving_runtimes__tensorflow_serving": "tensorflow/serving:2.6.2", - "serving_runtimes__torchserve": "pytorch/torchserve-kfs:0.8.2", - "serving_runtimes__tritonserver": "nvcr.io/nvidia/tritonserver:23.05-py3", - "serving_runtimes__xgbserver": "kserve/xgbserver:v0.11.1", -} -``` +KServe controller comes with a set of preconfigured images that are used in Kserve workloads. The default images are listed in [default-custom-images.json](https://github.com/canonical/kserve-operators/blob/main/charms/kserve-controller/src/default-custom-images.json) These images can be overridden in the charm configuration under custom_images in the charms/kserve-controller/config.yaml file. Whenever you leave the custom_images field empty in the config, the default images will be used (listed above). You can specify your own images with the config by filling one or multiple entries. The config accepts either YAML or JSON entries. For example. diff --git a/charms/kserve-controller/src/default-custom-images.json b/charms/kserve-controller/src/default-custom-images.json index d7dc47f5..fad2a784 100644 --- a/charms/kserve-controller/src/default-custom-images.json +++ b/charms/kserve-controller/src/default-custom-images.json @@ -8,7 +8,7 @@ "configmap__storageInitializer": "kserve/storage-initializer:v0.11.1", "serving_runtimes__lgbserver": "kserve/lgbserver:v0.11.1", "serving_runtimes__kserve_mlserver": "docker.io/seldonio/mlserver:1.3.2", - "serving_runtimes__paddleserver": "kserve/paddleserver:v0.11.1", + "serving_runtimes__paddleserver": "charmedkubeflow/paddleserver:0.11.2-ee9909a", "serving_runtimes__pmmlserver": "kserve/pmmlserver:v0.11.1", "serving_runtimes__sklearnserver": "kserve/sklearnserver:v0.11.1", "serving_runtimes__tensorflow_serving": "tensorflow/serving:2.6.2", diff --git a/charms/kserve-controller/tests/integration/paddleserver-resnet.yaml b/charms/kserve-controller/tests/integration/paddleserver-resnet.yaml new file mode 100644 index 00000000..16372176 --- /dev/null +++ b/charms/kserve-controller/tests/integration/paddleserver-resnet.yaml @@ -0,0 +1,17 @@ +apiVersion: "serving.kserve.io/v1beta1" +kind: "InferenceService" +metadata: + name: "paddle-resnet50" +spec: + predictor: + model: + modelFormat: + name: paddle + storageUri: "gs://kfserving-examples/models/paddle/resnet" + resources: + limits: + cpu: 1 + memory: 500Mi + requests: + cpu: 100m + memory: 250Mi diff --git a/charms/kserve-controller/tests/integration/test_charm.py b/charms/kserve-controller/tests/integration/test_charm.py index 18f4ae53..b852c533 100644 --- a/charms/kserve-controller/tests/integration/test_charm.py +++ b/charms/kserve-controller/tests/integration/test_charm.py @@ -197,7 +197,11 @@ def create_namespace(): @pytest.mark.parametrize( "inference_file", - ["./tests/integration/sklearn-iris.yaml", "./tests/integration/pmml-server.yaml"], + [ + "./tests/integration/sklearn-iris.yaml", + "./tests/integration/pmml-server.yaml", + "./tests/integration/paddleserver-resnet.yaml", + ], ) def test_inference_service_raw_deployment( test_namespace: None, lightkube_client: lightkube.Client, inference_file, ops_test: OpsTest