Skip to content

Commit

Permalink
chore: Update MLServer to v1.3.2 (kserve#355)
Browse files Browse the repository at this point in the history
Update MLServer image for the default serving runtime from 0.5.2 to 1.3.2

Depends on kserve/modelmesh-runtime-adapter#45

Closes kserve#357

Signed-off-by: Rafael Vasquez <[email protected]>
Signed-off-by: Luis Delossantos <[email protected]>
  • Loading branch information
rafvasq authored and lgdeloss committed Jun 5, 2023
1 parent d26ca20 commit 5bf1ec2
Show file tree
Hide file tree
Showing 17 changed files with 54 additions and 54 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/fvt.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,11 +71,11 @@ jobs:
sed -i 's/newTag:.*$/newTag: '"${{ env.IMAGE_TAG }}"'/' config/manager/kustomization.yaml
sed -i '0,/cpu:.*$/s/cpu:.*$/cpu: 100m/' \
config/default/config-defaults.yaml \
config/runtimes/mlserver-0.x.yaml \
config/runtimes/mlserver-1.x.yaml \
config/runtimes/triton-2.x.yaml \
config/runtimes/ovms-1.x.yaml
sed -i 's/memory:.*$/memory: 512Mi/g' \
config/runtimes/mlserver-0.x.yaml \
config/runtimes/mlserver-1.x.yaml \
config/runtimes/triton-2.x.yaml \
config/runtimes/ovms-1.x.yaml
sed -i 's/maxSurge:.*$/maxSurge: 0/' config/internal/base/deployment.yaml.tmpl
Expand Down Expand Up @@ -109,7 +109,7 @@ jobs:
run: |
eval $(minikube -p minikube docker-env)
docker pull nvcr.io/nvidia/tritonserver:21.06.1-py3
docker pull seldonio/mlserver:0.5.2
docker pull seldonio/mlserver:1.3.2
docker pull openvino/model_server:2022.2
# docker pull pytorch/torchserve:0.7.1-cpu
docker pull kserve/modelmesh-runtime-adapter
Expand Down
6 changes: 3 additions & 3 deletions config/runtimes/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# limitations under the License.
resources:
- triton-2.x.yaml
- mlserver-0.x.yaml
- mlserver-1.x.yaml
- ovms-1.x.yaml
- torchserve-0.x.yaml

Expand All @@ -22,9 +22,9 @@ images:
newName: nvcr.io/nvidia/tritonserver
newTag: "21.06.1-py3"

- name: mlserver-0
- name: mlserver-1
newName: seldonio/mlserver
newTag: "0.5.2"
newTag: "1.3.2"

- name: ovms-1
newName: openvino/model_server
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@
apiVersion: serving.kserve.io/v1alpha1
kind: ClusterServingRuntime
metadata:
name: mlserver-0.x
name: mlserver-1.x
labels:
name: modelmesh-serving-mlserver-0.x-SR
name: modelmesh-serving-mlserver-1.x-SR
spec:
supportedModelFormats:
- name: sklearn
Expand All @@ -38,7 +38,7 @@ spec:

containers:
- name: mlserver
image: mlserver-0:replace
image: mlserver-1:replace
env:
- name: MLSERVER_MODELS_DIR
value: "/models/_mlserver_models/"
Expand Down
2 changes: 1 addition & 1 deletion config/samples/servingruntime_pullerless.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ spec:
resourceFieldRef:
containerName: modelserver
resource: requests.memory
image: seldonio/mlserver:0.3.2
image: seldonio/mlserver:1.3.2
name: modelserver
resources:
requests:
Expand Down
10 changes: 5 additions & 5 deletions controllers/servingruntime_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
Expand Down Expand Up @@ -53,7 +53,7 @@ func waitForAndGetRuntimeDeployment(runtimeName string) *appsv1.Deployment {

var _ = Describe("Sample Runtime", func() {
samplesToTest := []string{
"config/runtimes/mlserver-0.x.yaml",
"config/runtimes/mlserver-1.x.yaml",
"config/runtimes/triton-2.x.yaml",
"config/runtimes/ovms-1.x.yaml",
"config/runtimes/torchserve-0.x.yaml",
Expand Down Expand Up @@ -98,7 +98,7 @@ var _ = Describe("Prometheus metrics configuration", func() {
reconcilerConfig.Metrics.Enabled = true

By("create a sample runtime")
m, err = mf.ManifestFrom(mf.Path("../config/runtimes/mlserver-0.x.yaml"))
m, err = mf.ManifestFrom(mf.Path("../config/runtimes/mlserver-1.x.yaml"))
m.Client = mfc.NewClient(k8sClient)
Expect(err).ToNot(HaveOccurred())
m, err = m.Transform(convertToServingRuntime, mf.InjectNamespace(namespace))
Expand Down Expand Up @@ -177,7 +177,7 @@ var _ = Describe("REST Proxy configuration", func() {
reconcilerConfig.RESTProxy.Enabled = true

By("create a sample runtime")
m, err = mf.ManifestFrom(mf.Path("../config/runtimes/mlserver-0.x.yaml"))
m, err = mf.ManifestFrom(mf.Path("../config/runtimes/mlserver-1.x.yaml"))
m.Client = mfc.NewClient(k8sClient)
Expect(err).ToNot(HaveOccurred())
m, err = m.Transform(convertToServingRuntime, mf.InjectNamespace(namespace))
Expand All @@ -204,7 +204,7 @@ var _ = Describe("Add Payload Processor", func() {
resetToPayloadConfig(false)

By("create a sample runtime")
m, err = mf.ManifestFrom(mf.Path("../config/runtimes/mlserver-0.x.yaml"))
m, err = mf.ManifestFrom(mf.Path("../config/runtimes/mlserver-1.x.yaml"))
m.Client = mfc.NewClient(k8sClient)
Expect(err).ToNot(HaveOccurred())
m, err = m.Transform(convertToServingRuntime, mf.InjectNamespace(namespace))
Expand Down
36 changes: 18 additions & 18 deletions controllers/testdata/servingruntime_controller.golden
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ spec:
selector:
matchLabels:
modelmesh-service: modelmesh-serving
name: modelmesh-serving-mlserver-0.x
name: modelmesh-serving-mlserver-1.x
strategy:
rollingUpdate:
maxSurge: 75%
Expand All @@ -26,7 +26,7 @@ spec:
app.kubernetes.io/managed-by: modelmesh-controller
app.kubernetes.io/name: modelmesh-controller
modelmesh-service: modelmesh-serving
name: modelmesh-serving-mlserver-0.x
name: modelmesh-serving-mlserver-1.x
spec:
affinity:
nodeAffinity:
Expand Down Expand Up @@ -105,7 +105,7 @@ spec:
value: 127.0.0.1
- name: MLSERVER_GRPC_MAX_MESSAGE_LENGTH
value: "-1"
image: mlserver-0:replace
image: mlserver-1:replace
imagePullPolicy: IfNotPresent
lifecycle:
preStop:
Expand Down Expand Up @@ -169,7 +169,7 @@ spec:
- name: MM_PAYLOAD_PROCESSORS
value: example:8080/consumer/kserve/v2 example2:8080/consumer/kserve/v2
- name: MM_LABELS
value: mt:lightgbm,mt:lightgbm:3,mt:sklearn,mt:sklearn:0,mt:xgboost,mt:xgboost:1,pv:grpc-v2,rt:mlserver-0.x
value: mt:lightgbm,mt:lightgbm:3,mt:sklearn,mt:sklearn:0,mt:xgboost,mt:xgboost:1,pv:grpc-v2,rt:mlserver-1.x
- name: MM_TYPE_CONSTRAINTS_PATH
value: /etc/watson/mmesh/config/type_constraints
- name: MM_DATAPLANE_CONFIG_PATH
Expand Down Expand Up @@ -261,7 +261,7 @@ spec:
selector:
matchLabels:
modelmesh-service: modelmesh-serving
name: modelmesh-serving-mlserver-0.x
name: modelmesh-serving-mlserver-1.x
strategy:
rollingUpdate:
maxSurge: 75%
Expand All @@ -280,7 +280,7 @@ spec:
app.kubernetes.io/managed-by: modelmesh-controller
app.kubernetes.io/name: modelmesh-controller
modelmesh-service: modelmesh-serving
name: modelmesh-serving-mlserver-0.x
name: modelmesh-serving-mlserver-1.x
spec:
affinity:
nodeAffinity:
Expand Down Expand Up @@ -359,7 +359,7 @@ spec:
value: 127.0.0.1
- name: MLSERVER_GRPC_MAX_MESSAGE_LENGTH
value: "-1"
image: mlserver-0:replace
image: mlserver-1:replace
imagePullPolicy: IfNotPresent
lifecycle:
preStop:
Expand Down Expand Up @@ -421,7 +421,7 @@ spec:
- name: MM_DEFAULT_VMODEL_OWNER
value: ksp
- name: MM_LABELS
value: mt:lightgbm,mt:lightgbm:3,mt:sklearn,mt:sklearn:0,mt:xgboost,mt:xgboost:1,pv:grpc-v2,rt:mlserver-0.x
value: mt:lightgbm,mt:lightgbm:3,mt:sklearn,mt:sklearn:0,mt:xgboost,mt:xgboost:1,pv:grpc-v2,rt:mlserver-1.x
- name: MM_TYPE_CONSTRAINTS_PATH
value: /etc/watson/mmesh/config/type_constraints
- name: MM_DATAPLANE_CONFIG_PATH
Expand Down Expand Up @@ -516,7 +516,7 @@ spec:
selector:
matchLabels:
modelmesh-service: modelmesh-serving
name: modelmesh-serving-mlserver-0.x
name: modelmesh-serving-mlserver-1.x
strategy:
rollingUpdate:
maxSurge: 75%
Expand All @@ -530,7 +530,7 @@ spec:
app.kubernetes.io/managed-by: modelmesh-controller
app.kubernetes.io/name: modelmesh-controller
modelmesh-service: modelmesh-serving
name: modelmesh-serving-mlserver-0.x
name: modelmesh-serving-mlserver-1.x
spec:
affinity:
nodeAffinity:
Expand Down Expand Up @@ -583,7 +583,7 @@ spec:
value: 127.0.0.1
- name: MLSERVER_GRPC_MAX_MESSAGE_LENGTH
value: "-1"
image: mlserver-0:replace
image: mlserver-1:replace
imagePullPolicy: IfNotPresent
lifecycle:
preStop:
Expand Down Expand Up @@ -696,7 +696,7 @@ spec:
- name: MM_DEFAULT_VMODEL_OWNER
value: ksp
- name: MM_LABELS
value: mt:lightgbm,mt:lightgbm:3,mt:sklearn,mt:sklearn:0,mt:xgboost,mt:xgboost:1,pv:grpc-v2,pv:v2,rt:mlserver-0.x
value: mt:lightgbm,mt:lightgbm:3,mt:sklearn,mt:sklearn:0,mt:xgboost,mt:xgboost:1,pv:grpc-v2,pv:v2,rt:mlserver-1.x
- name: MM_TYPE_CONSTRAINTS_PATH
value: /etc/watson/mmesh/config/type_constraints
- name: MM_DATAPLANE_CONFIG_PATH
Expand Down Expand Up @@ -776,7 +776,7 @@ spec:
secretName: secret
status: {}
'''
"Sample Runtime config/runtimes/mlserver-0.x.yaml should be a valid runtime specification" = '''
"Sample Runtime config/runtimes/mlserver-1.x.yaml should be a valid runtime specification" = '''
apiVersion: apps/v1
kind: Deployment
metadata:
Expand All @@ -788,7 +788,7 @@ spec:
selector:
matchLabels:
modelmesh-service: modelmesh-serving
name: modelmesh-serving-mlserver-0.x
name: modelmesh-serving-mlserver-1.x
strategy:
rollingUpdate:
maxSurge: 75%
Expand All @@ -802,7 +802,7 @@ spec:
app.kubernetes.io/managed-by: modelmesh-controller
app.kubernetes.io/name: modelmesh-controller
modelmesh-service: modelmesh-serving
name: modelmesh-serving-mlserver-0.x
name: modelmesh-serving-mlserver-1.x
spec:
affinity:
nodeAffinity:
Expand Down Expand Up @@ -881,7 +881,7 @@ spec:
value: 127.0.0.1
- name: MLSERVER_GRPC_MAX_MESSAGE_LENGTH
value: "-1"
image: mlserver-0:replace
image: mlserver-1:replace
imagePullPolicy: IfNotPresent
lifecycle:
preStop:
Expand Down Expand Up @@ -943,7 +943,7 @@ spec:
- name: MM_DEFAULT_VMODEL_OWNER
value: ksp
- name: MM_LABELS
value: mt:lightgbm,mt:lightgbm:3,mt:sklearn,mt:sklearn:0,mt:xgboost,mt:xgboost:1,pv:grpc-v2,rt:mlserver-0.x
value: mt:lightgbm,mt:lightgbm:3,mt:sklearn,mt:sklearn:0,mt:xgboost,mt:xgboost:1,pv:grpc-v2,rt:mlserver-1.x
- name: MM_TYPE_CONSTRAINTS_PATH
value: /etc/watson/mmesh/config/type_constraints
- name: MM_DATAPLANE_CONFIG_PATH
Expand Down Expand Up @@ -1809,7 +1809,7 @@ spec:
containerName: modelserver
divisor: "0"
resource: requests.memory
image: seldonio/mlserver:0.3.2
image: seldonio/mlserver:1.3.2
imagePullPolicy: IfNotPresent
lifecycle:
preStop:
Expand Down
2 changes: 1 addition & 1 deletion docs/install/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ The deployed footprint can be significantly reduced in the following ways:

```shell
> kubectl edit servingruntime triton-2.x
> kubectl edit servingruntime mlserver-0.x
> kubectl edit servingruntime mlserver-1.x
> kubectl edit servingruntime ovms-1.x
```

Expand Down
4 changes: 2 additions & 2 deletions docs/model-formats/advanced-configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,8 @@ To pass runtime specific configuration through to MLServer, include a non-empty
└── <model-data>
```

For details on the specification of this configuration, refer to the definition of
[MLServer's ModelSettings class](https://github.com/SeldonIO/MLServer/blob/0.3.2/mlserver/settings.py#L49).
For details on the specification of this configuration, refer to
[MLServer's Model Settings documentation](https://github.com/SeldonIO/MLServer/blob/1.3.2/docs/reference/model-settings.md).

---

Expand Down
2 changes: 1 addition & 1 deletion docs/monitoring.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ If the ModelMesh Serving metric(s) are missing in the monitoring UIs:

- Check if the following annotations are configured in the Serving Runtime deployment:

kubectl describe deployment modelmesh-serving-mlserver-0.x -n $NAMESPACE | grep "prometheus.io"
kubectl describe deployment modelmesh-serving-mlserver-1.x -n $NAMESPACE | grep "prometheus.io"

Expected output:

Expand Down
4 changes: 2 additions & 2 deletions docs/predictors/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,8 @@ Once the `InferenceService` is created, mlserver runtime pods are automatically
$ kubectl get pods

NAME READY STATUS RESTARTS AGE
modelmesh-serving-mlserver-0.x-658b7dd689-46nwm 0/3 ContainerCreating 0 2s
modelmesh-serving-mlserver-0.x-658b7dd689-46nwm 0/3 ContainerCreating 0 2s
modelmesh-serving-mlserver-1.x-658b7dd689-46nwm 0/3 ContainerCreating 0 2s
modelmesh-serving-mlserver-1.x-658b7dd689-46nwm 0/3 ContainerCreating 0 2s
modelmesh-controller-568c45b959-nl88c 1/1 Running 0 11m
```

Expand Down
8 changes: 4 additions & 4 deletions docs/quickstart.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ Check that the `ServingRuntime`s are available:
kubectl get servingruntimes

NAME DISABLED MODELTYPE CONTAINERS AGE
mlserver-0.x sklearn mlserver 5m
mlserver-1.x sklearn mlserver 5m
ovms-1.x openvino_ir ovms 5m
torchserve-0.x pytorch-mar torchserve 5m
triton-2.x tensorflow triton 5m
Expand All @@ -63,7 +63,7 @@ are:

| ServingRuntime | Supported Frameworks |
| -------------- | ----------------------------------- |
| mlserver-0.x | sklearn, xgboost, lightgbm |
| mlserver-1.x | sklearn, xgboost, lightgbm |
| ovms-1.x | openvino_ir, onnx |
| torchserve-0.x | pytorch-mar |
| triton-2.x | tensorflow, pytorch, onnx, tensorrt |
Expand Down Expand Up @@ -134,8 +134,8 @@ Eventually, you should see the `ServingRuntime` pods that will hold the SKLearn
kubectl get pods

...
modelmesh-serving-mlserver-0.x-7db675f677-twrwd 3/3 Running 0 2m
modelmesh-serving-mlserver-0.x-7db675f677-xvd8q 3/3 Running 0 2m
modelmesh-serving-mlserver-1.x-7db675f677-twrwd 3/3 Running 0 2m
modelmesh-serving-mlserver-1.x-7db675f677-xvd8q 3/3 Running 0 2m
```

Then, checking on the `InferenceService` again, you should see that the one we deployed is now ready with a provided URL:
Expand Down
2 changes: 1 addition & 1 deletion fvt/fvtclient.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
Expand Down
4 changes: 2 additions & 2 deletions fvt/hpa/hpa_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
Expand All @@ -31,7 +31,7 @@ var _ = Describe("Scaling of runtime deployments with HPA Autoscaler", Ordered,
// constants
testPredictorObject := NewPredictorForFVT("mlserver-sklearn-predictor.yaml")
// runtime expected to serve the test predictor
expectedRuntimeName := "mlserver-0.x"
expectedRuntimeName := "mlserver-1.x"

// checkDeploymentState returns the replicas value for the expected runtime
// and expects others to be scaled to zero
Expand Down
Loading

0 comments on commit 5bf1ec2

Please sign in to comment.