Page MenuHomePhabricator

Experiment with new kserve version on ml-staging-codfw
Closed, ResolvedPublic

Description

As per title, this will require staging env to be down for some time.

Event Timeline

Change #1253495 had a related patch set uploaded (by Dpogorzelski; author: Dpogorzelski):

[operations/docker-images/production-images@master] kserve: bump to upstream version 0.17

https://gerrit.wikimedia.org/r/1253495

Change #1253495 abandoned by Dpogorzelski:

[operations/docker-images/production-images@master] kserve: bump to upstream version 0.17

https://gerrit.wikimedia.org/r/1253495

Change #1253496 had a related patch set uploaded (by Dpogorzelski; author: Dpogorzelski):

[operations/docker-images/production-images@master] kserve: bump to upstream version 0.17

https://gerrit.wikimedia.org/r/1253496

Change #1253496 abandoned by Dpogorzelski:

[operations/docker-images/production-images@master] kserve: bump to upstream version 0.17

https://gerrit.wikimedia.org/r/1253496

Change #1253498 had a related patch set uploaded (by Dpogorzelski; author: Dpogorzelski):

[operations/docker-images/production-images@master] kserve: update to version 0.17

https://gerrit.wikimedia.org/r/1253498

Change #1253498 abandoned by Dpogorzelski:

[operations/docker-images/production-images@master] kserve: update to version 0.17

https://gerrit.wikimedia.org/r/1253498

Change #1253498 restored by Dpogorzelski:

[operations/docker-images/production-images@master] kserve: update to version 0.17

https://gerrit.wikimedia.org/r/1253498

Change #1253498 merged by Dpogorzelski:

[operations/docker-images/production-images@master] kserve: update to version 0.17

https://gerrit.wikimedia.org/r/1253498

Change #1260031 had a related patch set uploaded (by Dpogorzelski; author: Dpogorzelski):

[operations/docker-images/production-images@master] knative: update images to 1.21.1

https://gerrit.wikimedia.org/r/1260031

Change #1260031 merged by Dpogorzelski:

[operations/docker-images/production-images@master] knative: update images to 1.21.1

https://gerrit.wikimedia.org/r/1260031

Change #1260656 had a related patch set uploaded (by Dpogorzelski; author: Dpogorzelski):

[operations/docker-images/production-images@master] knative: update changelogs

https://gerrit.wikimedia.org/r/1260656

Change #1260656 merged by Dpogorzelski:

[operations/docker-images/production-images@master] knative: update changelogs

https://gerrit.wikimedia.org/r/1260656

Latest knative supported by kserve 0.17 seems to require a more recent kubernetes version:

{"severity":"EMERGENCY","timestamp":"2026-03-25T15:53:12.556721777Z","logger":"net-istio-controller","caller":"sharedmain/main.go:463","message":"Version check failed","commit":"1dc9b2d-dirty","knative.dev/pod":"net-istio-controller-6cc6d48947-v2t74","error":"kubernetes version \"1.31.4\" is not compatible, need at least \"1.33.0-0\" (this can be overridden with the env var \"KUBERNETES_MIN_VERSION\")","stacktrace":"knative.dev/pkg/injection/sharedmain.CheckK8sClientMinimumVersionOrDie\n\t/go/github.com/knative/net-istio/vendor/knative.dev/pkg/injection/sharedmain/main.go:463\nknative.dev/pkg/injection/sharedmain.MainWithConfig\n\t/go/github.com/knative/net-istio/vendor/knative.dev/pkg/injection/sharedmain/main.go:271\nknative.dev/pkg/injection/sharedmain.MainWithContext\n\t/go/github.com/knative/net-istio/vendor/knative.dev/pkg/injection/sharedmain/main.go:226\nmain.main\n\t/go/github.com/knative/net-istio/cmd/controller/main.go:31\nruntime.main\n\t/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.24.0.linux-amd64/src/runtime/proc.go:283"}

While forcing the run on an older k8s version might be possible I think I will stop here and keep the existing version of knative for now to unblock staging.
Currently it's hard to strike a balance between:

  • enforced k8s version
  • up to date external components
  • requirements for internal customizations

@DPogorzelski-WMF my understanding from reading upstream's commits is that they bump the k8s version every now and then and they set it to the version that it was tested in their testing env:

https://github.com/knative-extensions/net-istio/commit/9af3f67f778c430e8b2f20a602a910c45f99c05c

It is probably very tough to keep up with their pace, and I doubt they are using anything that our current kube api can't support (new features etc..). I would personally try to force the KUBERNETES_MIN_VERSION for the net-istio plugin, they added it for this specific use case imho (namely folks with a slightly older kube environment).

I will skip that for now as it's getting more complex than i initially anticipated. all services on staging work in the current setup and i'll ship kserve first and then circle back to this part

Change #1261460 had a related patch set uploaded (by Dpogorzelski; author: Dpogorzelski):

[operations/deployment-charts@master] ml-serve: add modified kserve 0.17 chart

https://gerrit.wikimedia.org/r/1261460

@DPogorzelski-WMF as you prefer, but the difference between istio/kserve and knative is not really huge and I would personally upgrade first rather than keeping the old version. Also remember to check the new version of the knative chart too.

elukey renamed this task from Experiment with new kserve version on stagin to Experiment with new kserve version on ml-staging-codfw.Mar 27 2026, 8:51 AM

Change #1261460 merged by jenkins-bot:

[operations/deployment-charts@master] ml-serve: add modified kserve 0.17 chart

https://gerrit.wikimedia.org/r/1261460

elukey reopened this task as Open.EditedApr 8 2026, 9:06 AM

@DPogorzelski-WMF there is another thing to test imho before proceeding with prod, namely https://github.com/kserve/kserve/pull/3316

We currently need to add the following bits to the kserve pods to allow the storage initializer to skip the istio's sidecar traffic policies when running:

traffic.sidecar.istio.io/excludeOutboundIPRanges: 10.2.2.54/32,10.2.1.54/32

The above are the hardcoded IPs of thanos-swift.discovery.wmnet. IIUC with the aforementioned patch we don't need them anymore, since the storage initializer's uid is automatically set. In theory, the change should just be removing:

custom_deploy.d/istio/ml-serve/config_1.24.2.yaml:        excludeIPRanges: "10.2.2.54/32,10.2.1.54/32"

Then deploy it via istioctl and restart pods in the various namespaces to see if it works.

tested on edit-check, seems to be working fine

Change #1275354 had a related patch set uploaded (by Dpogorzelski; author: Dpogorzelski):

[operations/deployment-charts@master] ml-serve: remove excludeIPRanges from cni config

https://gerrit.wikimedia.org/r/1275354

Change #1275354 merged by jenkins-bot:

[operations/deployment-charts@master] ml-serve: remove excludeIPRanges from cni config

https://gerrit.wikimedia.org/r/1275354

everything in staging seems to be going fine and no issue has been reported. We have decided to move forward and roll these changes to production next week Monday 18/5
Staging versions:
kserve: 0.17
knative: v1.21.1

JMeybohm subscribed.

@DPogorzelski-WMF all these[1] changelog entries have wrongly formatted footers (maintainer name and email, see https://manpages.debian.org/testing/dpkg-dev/deb-changelog.5.en.html) which leads to multiple warnings from docker-pkg. Would you mind fixing please?

[1] https://gerrit.wikimedia.org/r/c/operations/docker-images/production-images/+/1260656

Change #1294268 had a related patch set uploaded (by Dpogorzelski; author: Dpogorzelski):

[operations/docker-images/production-images@master] fix: ml changelogs

https://gerrit.wikimedia.org/r/1294268

Change #1294268 merged by Dpogorzelski:

[operations/docker-images/production-images@master] fix: ml changelogs

https://gerrit.wikimedia.org/r/1294268