Skip to content

test(kserve): add raw deployment test, trim authentication and authorization documentation, print prediction output#3354

Merged
google-oss-prow[bot] merged 22 commits into
kubeflow:masterfrom
Raakshass:followup/kserve-raw-deployment-test
Mar 12, 2026
Merged

test(kserve): add raw deployment test, trim authentication and authorization documentation, print prediction output#3354
google-oss-prow[bot] merged 22 commits into
kubeflow:masterfrom
Raakshass:followup/kserve-raw-deployment-test

Conversation

@Raakshass
Copy link
Copy Markdown
Contributor

@Raakshass Raakshass commented Feb 24, 2026

✏️ Summary of Changes

Addresses the three follow-up items from PR #3352 as requested by @juliusvonkohout in this comment:

1. Trim KServe authentication documentation (common/oauth2-proxy/README.md)

  • Remove verbose subsections: CI fallback YAML block, path-based/host-based routing table, Models Web App Authentication section, CI Test Coverage table (~70 lines removed)
  • Remove speculative Architecture Analysis section and orphaned [^6] footnote (review)
  • Add concise 4-line note about the CI rules: [{}] workaround
  • Add CI workflow and test script links to the KServe Authentication heading (review)
  • Add sentence about host-based and path-based routing support with kserve/kserve#5090 reference
  • Preserve core traffic flow diagram and AuthorizationPolicy configuration

2. Add test for raw deployment mode (tests/kserve_test.sh)

  • Test 7: Deploy an sklearn model with serving.kserve.io/deploymentMode: RawDeployment annotation
  • AuthorizationPolicy uses the universal serving.kserve.io/inferenceservice label (works for both serverless and raw deployment modes, unlike Knative-specific labels)
  • Host-based routing only — path-based routing for raw deployment requires ingressPathTemplate which is not yet merged upstream
  • Verifies authentication enforcement: unauthenticated requests are rejected (403/302), authenticated requests succeed
  • Reference: inferenceservice.yaml ingressClassName config

3. Improve test output and CI log readability

  • Added prediction result logging in kserve_sklearn_test.py before assertion (review)
  • Truncated response body to 200 characters in all echo statements to prevent HTML pages from flooding CI logs (review)
  • All 13 curl test outputs now show HTTP <code> | <truncated body> format

4. Security hardening and cleanup

📦 Dependencies / Related Issues

✅ Contributor Checklist

  • I have tested these changes with kustomize. See Installation Prerequisites.
  • All commits are signed-off to satisfy the DCO check.
  • I have considered adding my company to the adopters page to support Kubeflow and help the community, since I expect help from the community for my issue (see 1. and 2.).

@github-actions
Copy link
Copy Markdown

Welcome to the Kubeflow Manifests Repository

Thanks for opening your first PR. Your contribution means a lot to the Kubeflow community.

Before making more PRs:
Please ensure your PR follows our Contributing Guide.
Please also be aware that many components are synchronizes from upstream via the scripts in /scripts.
So in some cases you have to fix the problem in the upstream repositories first, but you can use a PR against kubeflow/manifests to test the platform integration.

Community Resources:

Thanks again for helping to improve Kubeflow.

@juliusvonkohout juliusvonkohout changed the title test(kserve): add raw deployment test, trim auth docs, print prediction output test(kserve): add raw deployment test, trim authentication and authorization documentation, print prediction output Feb 25, 2026
Comment thread common/oauth2-proxy/README.md Outdated
Comment thread common/oauth2-proxy/README.md
Comment thread common/oauth2-proxy/README.md
@juliusvonkohout
Copy link
Copy Markdown
Member

Also for pytest a bit more than

+ python -m pytest /home/runner/work/manifests/manifests/tests/kserve_sklearn_test.py -vs --log-level info
============================= test session starts ==============================
platform linux -- Python 3.12.12, pytest-9.0.2, pluggy-1.6.0 -- /opt/hostedtoolcache/Python/3.12.12/x64/bin/python
cachedir: .pytest_cache
rootdir: /home/runner/work/manifests/manifests
Notice:  A new release of pip is available: 26.0 -> 26.0.1
Notice:  To update, run: pip install --upgrade pip
collecting ... collected 1 item
tests/kserve_sklearn_test.py::test_sklearn_kserve PASSED
======================== 1 passed in 109.96s (0:01:49) =========================

could be useful. Can you log the prediction results ?

@juliusvonkohout
Copy link
Copy Markdown
Member

juliusvonkohout commented Feb 25, 2026

Also

Test 2a path-based (with token): HTTP 404 | 
+ '[' 404 '!=' 200 ']'
+ '[' 404 '!=' 404 ']'
+ HOST_HEADER='Host: isvc-sklearn.kubeflow-user-example-com.example.com'
++ curl -s -w '\n%{http_code}' -H 'Host: isvc-sklearn.kubeflow-user-example-com.example.com' -H 'Content-Type: application/json' http://localhost:8080/v1/models/isvc-sklearn:predict -d '{"instances": [[6.8, 2.8, 4.8, 1.4]]}'
+ RESPONSE='
<!DOCTYPE html>
<html lang="en" charset="utf-8">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
    <title>Sign In</title>
    <link rel="stylesheet" href="/oauth2/static/css/bulma.min.css">
    <style>
      body {
...

looks like its failing or outputting the oauth2-proxy login page for some reason.

@juliusvonkohout
Copy link
Copy Markdown
Member

And i see

Test 3 models web application (unauth): HTTP 403 | {"log":"User 'system:serviceaccount:default:default' is not authorized to list serving.kserve.io/v1beta1/inferenceservices in namespace 'kubeflow-user-example-com'","status":403,"success":false,"user":"system:serviceaccount:default:default"}
Models Web Application: Token from unauthorized ServiceAccount cannot list InferenceServices in kubeflow-user-example-com namespace.
+ kubectl apply -f -
Warning: Kubernetes default value is insecure, Knative may default this to secure in a future release: spec.template.spec.containers[0].securityContext.allowPrivilegeEscalation, spec.template.spec.containers[0].securityContext.capabilities, spec.template.spec.containers[0].securityContext.runAsNonRoot, spec.template.spec.containers[0].securityContext.seccompProfile
service.serving.knative.dev/secure-model-predictor created

so the inference service might be missing a proper security context.

Copy link
Copy Markdown
Member

@juliusvonkohout juliusvonkohout left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the PR, I added comments

@Raakshass
Copy link
Copy Markdown
Contributor Author

Raakshass commented Feb 25, 2026

Also

Test 2a path-based (with token): HTTP 404 | 
+ '[' 404 '!=' 200 ']'
+ '[' 404 '!=' 404 ']'
+ HOST_HEADER='Host: isvc-sklearn.kubeflow-user-example-com.example.com'
++ curl -s -w '\n%{http_code}' -H 'Host: isvc-sklearn.kubeflow-user-example-com.example.com' -H 'Content-Type: application/json' http://localhost:8080/v1/models/isvc-sklearn:predict -d '{"instances": [[6.8, 2.8, 4.8, 1.4]]}'
+ RESPONSE='
<!DOCTYPE html>
<html lang="en" charset="utf-8">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
    <title>Sign In</title>
    <link rel="stylesheet" href="/oauth2/static/css/bulma.min.css">
    <style>
      body {
...

looks like its failing or outputting the oauth2-proxy login page for some reason.

This is expected behavior. The Sign In HTML is the oauth2-proxy response for
unauthenticated requests -- oauth2-proxy intercepts at the ingress gateway
and returns a 302 redirect to its login page. The test checks the HTTP
status code (302 = blocked), not the response body, so the test passed
correctly.

The full HTML body in the logs can be reduced by truncating the response
body to the first 200 characters in the echo statements. I'll include this
in the next commit to keep the logs readable.

@Raakshass
Copy link
Copy Markdown
Contributor Author

Raakshass commented Feb 25, 2026

And i see

Test 3 models web application (unauth): HTTP 403 | {"log":"User 'system:serviceaccount:default:default' is not authorized to list serving.kserve.io/v1beta1/inferenceservices in namespace 'kubeflow-user-example-com'","status":403,"success":false,"user":"system:serviceaccount:default:default"}
Models Web Application: Token from unauthorized ServiceAccount cannot list InferenceServices in kubeflow-user-example-com namespace.
+ kubectl apply -f -
Warning: Kubernetes default value is insecure, Knative may default this to secure in a future release: spec.template.spec.containers[0].securityContext.allowPrivilegeEscalation, spec.template.spec.containers[0].securityContext.capabilities, spec.template.spec.containers[0].securityContext.runAsNonRoot, spec.template.spec.containers[0].securityContext.seccompProfile
service.serving.knative.dev/secure-model-predictor created

so the inference service might be missing a proper security context.

Yes. The secure-model-predictor is a test-only Knative Service
(using gcr.io/knative-samples/helloworld-go), not a real InferenceService,
but it should still follow security best practices.

I'll add the proper securityContext block in the next commit:

securityContext:
  allowPrivilegeEscalation: false
  runAsNonRoot: true
  seccompProfile:
    type: RuntimeDefault
  capabilities:
    drop: ["ALL"]

@Raakshass
Copy link
Copy Markdown
Contributor Author

Also for pytest a bit more than

+ python -m pytest /home/runner/work/manifests/manifests/tests/kserve_sklearn_test.py -vs --log-level info
============================= test session starts ==============================
platform linux -- Python 3.12.12, pytest-9.0.2, pluggy-1.6.0 -- /opt/hostedtoolcache/Python/3.12.12/x64/bin/python
cachedir: .pytest_cache
rootdir: /home/runner/work/manifests/manifests
Notice:  A new release of pip is available: 26.0 -> 26.0.1
Notice:  To update, run: pip install --upgrade pip
collecting ... collected 1 item
tests/kserve_sklearn_test.py::test_sklearn_kserve PASSED
======================== 1 passed in 109.96s (0:01:49) =========================

could be useful. Can you log the prediction results ?

Done -- added explicit prediction logging in kserve_sklearn_test.py
before the assertion. CI output will now show:

INFO Prediction result: [1, 1] (expected [1, 1])

Comment thread tests/kserve_test.sh Outdated
Comment thread tests/kserve_test.sh Outdated
Comment thread tests/kserve_sklearn_test.py
@Raakshass Raakshass marked this pull request as draft February 27, 2026 16:43
@Raakshass Raakshass marked this pull request as ready for review February 27, 2026 17:10
Copilot AI review requested due to automatic review settings February 27, 2026 17:10
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR addresses follow-up items from PR #3352, focusing on improving KServe test infrastructure, documentation, and security hardening. The changes include adding a raw deployment mode test, improving test output readability, trimming verbose documentation, and hardening security contexts.

Changes:

  • Added Test 7 to verify KServe raw deployment mode with host-based routing and authentication enforcement
  • Improved CI log readability by truncating curl response bodies to 200 characters and logging HTTP codes for all 13 test requests
  • Trimmed ~70 lines of verbose content from oauth2-proxy README while preserving essential information
  • Added security context to Knative Service test fixture and fixed cleanup gaps

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
tests/kserve_test.sh Added raw deployment test (Test 7), unified curl response handling with body truncation for all tests, added security context to Knative Service fixture, fixed missing cleanup commands
tests/kserve_sklearn_test.py Added prediction result logging before assertion for better debugging, fixed pytest log level flag
common/oauth2-proxy/README.md Trimmed verbose sections, added CI workflow links, added concise note about routing modes and CI workarounds

@Raakshass Raakshass marked this pull request as draft March 5, 2026 20:27
Comment thread tests/kserve_test.sh Outdated
Comment thread tests/kserve_test.sh Outdated
juliusvonkohout and others added 10 commits March 8, 2026 11:17
Signed-off-by: Julius von Kohout <45896133+juliusvonkohout@users.noreply.github.com>
- Rename UNAUTH_TOKEN to UNAUTHORIZED_TOKEN: this test validates
  authorization (RBAC), not authentication (JWT). The token is valid
  but the ServiceAccount lacks namespace-scoped permissions.

- Remove --wait=false from cleanup deletes: deletion is part of the
  test -- verifying that resources tear down cleanly matters.

Signed-off-by: Siddhant Jain <siddhantjainofficial26@gmail.com>
Julius: cleanup must succeed and should complete in <60s.
Sequential deletes took ~5 min (sum of finalizer waits).
Parallel deletes bring total to ~30-45s (max of individual).
All 6 resources are independent — no ordering dependencies.
Bump kserve_test.yaml timeout from 25m to 30m per Julius.

Signed-off-by: Siddhant Jain <siddhantjainofficial26@gmail.com>
… app timeout to 30m

Signed-off-by: Siddhant Jain <siddhantjainofficial26@gmail.com>
The sleep was reduced from 60s to 30s in d31918d, but Envoy in the KinD CI environment needs ~45-60s to pick up the new AuthorizationPolicy. With only 30s, Test 2b (host-based with token) fires before the ALLOW rule propagates, causing 403 RBAC: access denied. Restore 60s for both Test 2 and Test 7 (raw deployment).

Signed-off-by: Siddhant Jain <siddhantjainofficial26@gmail.com>
…nPolicy

The two sleep 60 calls add 2 minutes of dead time, causing the job to exceed the 30-minute timeout by ~15 seconds. Replace with polling loops that exit as soon as the AuthorizationPolicy propagates through Envoy (typically 10-30s). Each loop polls every 5 seconds for up to 120 seconds, providing both faster execution and more robust handling of slow environments.

Signed-off-by: Siddhant Jain <siddhantjainofficial26@gmail.com>
…h-based route

The previous polling loop used the path-based URL, which returns 404 immediately in CI before the route is configured. Since 404 != 403, the loop exited after 5 seconds thinking the AuthorizationPolicy had propagated — but it had not. Test 2b host-based then failed with 403. Fix: poll the host-based URL instead, which correctly returns 403 until the AuthorizationPolicy propagates through Envoy.

Signed-off-by: Siddhant Jain <siddhantjainofficial26@gmail.com>
The test suite grew with Test 7 (raw deployment) and active polling loops. Total runtime is ~30m18s with 30m timeout. Bump to 35m to validate all tests pass before finalizing the timeout value.

Signed-off-by: Siddhant Jain <siddhantjainofficial26@gmail.com>
Signed-off-by: Julius von Kohout <45896133+juliusvonkohout@users.noreply.github.com>
Signed-off-by: Julius von Kohout <45896133+juliusvonkohout@users.noreply.github.com>
Comment thread .github/workflows/kserve_models_web_application_test.yaml Outdated
Comment thread .github/workflows/kserve_test.yaml Outdated
Co-authored-by: Julius von Kohout <45896133+juliusvonkohout@users.noreply.github.com>
Signed-off-by: Julius von Kohout <45896133+juliusvonkohout@users.noreply.github.com>
Comment thread tests/kserve_test.sh Outdated
Signed-off-by: Julius von Kohout <45896133+juliusvonkohout@users.noreply.github.com>
Signed-off-by: Julius von Kohout <45896133+juliusvonkohout@users.noreply.github.com>
Comment thread tests/kserve_test.sh Outdated
juliusvonkohout and others added 2 commits March 11, 2026 18:23
Signed-off-by: Julius von Kohout <45896133+juliusvonkohout@users.noreply.github.com>
KServe v0.16 renamed RawDeployment to Standard (and Serverless to Knative). Using the legacy name causes the validation webhook to reject status updates during deletion, leaving the finalizer in place and the ISVC stuck in a terminating state indefinitely.

Update the kserve_test.sh annotation and comments to use Standard.

Ref: kserve/kserve#4710, kserve/kserve#4798
Signed-off-by: Siddhant Jain <siddhantjainofficial26@gmail.com>
@juliusvonkohout
Copy link
Copy Markdown
Member

Thank you
/lgtm
/approve

@google-oss-prow google-oss-prow Bot added the lgtm label Mar 12, 2026
@google-oss-prow
Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: juliusvonkohout

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@google-oss-prow google-oss-prow Bot merged commit 4ab1bef into kubeflow:master Mar 12, 2026
18 of 21 checks passed
Raakshass added a commit to Raakshass/manifests that referenced this pull request Mar 27, 2026
…ization documentation, print prediction output (kubeflow#3354)

* test(kserve): add raw deployment test, trim auth docs, print prediction output

Addresses follow-up items from PR kubeflow#3352 as requested by @juliusvonkohout:

1. Trim KServe authentication documentation (README.md):
   - Remove verbose subsections: CI fallback YAML, routing table,
     Models Web App section, CI Test Coverage table (~70 lines removed)
   - Add concise 4-line note about CI rules: [{}] workaround
   - Preserve core architecture and Architecture Analysis sections

2. Add Test 7 for raw deployment mode (kserve_test.sh):
   - Deploy sklearn model with RawDeployment annotation
   - AuthorizationPolicy uses serving.kserve.io/inferenceservice label
     (works for both serverless and raw modes, unlike Knative labels)
   - Host-based routing only (path-based requires kserve/kserve#5090,
     not yet merged upstream)
   - Verifies auth enforcement: rejects unauthenticated, accepts
     authenticated requests
   - Reference: inferenceservice.yaml ingressClassName config

3. Print prediction results to console (kserve_test.sh):
   - All 12 curl commands now capture and print response body + HTTP
     status code for easier debugging of test failures
   - Pattern: curl -s -w '\n%{http_code}' + head/tail split

4. Fix pre-existing cleanup gap:
   - Add missing kubectl delete for allow-isvc-sklearn
     AuthorizationPolicy (was created but never cleaned up)

References:
- Follow-up to: kubeflow#3352
- Raw deployment ref: kserve/kserve#5090
- Config ref: kserve/kserve@b8fa0fb/config/configmap/inferenceservice.yaml#L389
- Reviewer comment: kubeflow#3352 (comment)

Signed-off-by: Siddhant Jain <siddhantjainofficial26@gmail.com>

* address review: remove Architecture Analysis, add securityContext, truncate response body

Changes addressing juliusvonkohout review comments:

- Remove speculative Architecture Analysis section and orphaned [^6] footnote

- Add CI workflow and test script links to KServe Authentication heading

- Add host-based and path-based routing sentence with kserve#5090 reference

- Add securityContext to secure-model-predictor Knative Service fixture

- Truncate response body to 200 characters in echo statements for readable CI logs

- Log prediction results in kserve_sklearn_test.py before assertion

- Fix pre-existing em dashes in comments (Unicode to ASCII)

Signed-off-by: Siddhant Jain <siddhantjainofficial26@gmail.com>

* fix(test): add runAsUser to secure-model-predictor securityContext

The gcr.io/knative-samples/helloworld-go image runs as root UID 0 by default. Setting runAsNonRoot: true without runAsUser causes kubelet to reject the pod, leading to ksvc timeout in CI.

Fix: runAsUser 65534 forces non-root execution. Go binaries are statically linked and run at any UID.
Signed-off-by: Siddhant Jain <siddhantjainofficial26@gmail.com>

* fix(test): expand ksvc abbreviation, enable live pytest logging

Address review: replace ksvc with Knative Service in echo statements.

Switch --log-level info to --log-cli-level=INFO so prediction results

stream to console during CI runs instead of being captured by pytest.

Signed-off-by: Siddhant Jain <siddhantjainofficial26@gmail.com>

* fix(test): force-kill port-forward to prevent script hang

The kubectl port-forward background process ignores SIGTERM when
connections are active. Bash waits for all child processes before
exiting, causing the test step to hang indefinitely after all tests
pass. Fix by sending SIGTERM, waiting 2s for graceful shutdown, then
SIGKILL as fallback, and finally reaping with wait.

Signed-off-by: Siddhant Jain <siddhantjainofficial26@gmail.com>

* ci(kserve): add 60-min timeout and log collection on failure

Add timeout-minutes: 60 per maintainer guidance -- no test should run
longer than 60 minutes. Add 'Collect Logs on Failure' and 'Upload
Diagnostic Logs' steps modeled after full_kubeflow_integration_test.yaml
to capture pod descriptions, events, and container logs when the job
fails, enabling root-cause analysis instead of blind timeout bumps.

Signed-off-by: Siddhant Jain <siddhantjainofficial26@gmail.com>

* fix(ci): collect logs on timeout, skip cleanup waits

Two bugs found in run kubeflow#901 (cancelled at 60m, all tests passed):

1. Log collection used if: failure() but timeout triggers cancelled(),
   not failure(). Logs were never collected. Fix: failure() || cancelled().

2. Cleanup kubectl-delete commands waited for Kubernetes finalizer
   reconciliation (default --wait=true). Each InferenceService delete
   blocked 3-5 min for Knative revision teardown on the 2-vCPU runner,
   adding ~15 min to the test step. The runner is destroyed after the
   job, so waiting is pointless. Fix: --wait=false on all deletes.

Signed-off-by: Siddhant Jain <siddhantjainofficial26@gmail.com>

* Reduce timeout for kserve test job to 25 minutes

Signed-off-by: Julius von Kohout <45896133+juliusvonkohout@users.noreply.github.com>

* address review: rename UNAUTH_TOKEN, remove --wait=false

- Rename UNAUTH_TOKEN to UNAUTHORIZED_TOKEN: this test validates
  authorization (RBAC), not authentication (JWT). The token is valid
  but the ServiceAccount lacks namespace-scoped permissions.

- Remove --wait=false from cleanup deletes: deletion is part of the
  test -- verifying that resources tear down cleanly matters.

Signed-off-by: Siddhant Jain <siddhantjainofficial26@gmail.com>

* fix(ci): parallelize cleanup deletes, bump timeout to 30m

Julius: cleanup must succeed and should complete in <60s.
Sequential deletes took ~5 min (sum of finalizer waits).
Parallel deletes bring total to ~30-45s (max of individual).
All 6 resources are independent — no ordering dependencies.
Bump kserve_test.yaml timeout from 25m to 30m per Julius.

Signed-off-by: Siddhant Jain <siddhantjainofficial26@gmail.com>

* fix(ci): reduce AuthorizationPolicy sleep 60s to 30s, bump models web app timeout to 30m

Signed-off-by: Siddhant Jain <siddhantjainofficial26@gmail.com>

* fix(kserve): restore 60s sleep for AuthorizationPolicy propagation

The sleep was reduced from 60s to 30s in d31918d, but Envoy in the KinD CI environment needs ~45-60s to pick up the new AuthorizationPolicy. With only 30s, Test 2b (host-based with token) fires before the ALLOW rule propagates, causing 403 RBAC: access denied. Restore 60s for both Test 2 and Test 7 (raw deployment).

Signed-off-by: Siddhant Jain <siddhantjainofficial26@gmail.com>

* fix(kserve): replace blind sleep with active polling for AuthorizationPolicy

The two sleep 60 calls add 2 minutes of dead time, causing the job to exceed the 30-minute timeout by ~15 seconds. Replace with polling loops that exit as soon as the AuthorizationPolicy propagates through Envoy (typically 10-30s). Each loop polls every 5 seconds for up to 120 seconds, providing both faster execution and more robust handling of slow environments.

Signed-off-by: Siddhant Jain <siddhantjainofficial26@gmail.com>

* fix(kserve): poll host-based URL to avoid false-positive 404 from path-based route

The previous polling loop used the path-based URL, which returns 404 immediately in CI before the route is configured. Since 404 != 403, the loop exited after 5 seconds thinking the AuthorizationPolicy had propagated — but it had not. Test 2b host-based then failed with 403. Fix: poll the host-based URL instead, which correctly returns 403 until the AuthorizationPolicy propagates through Envoy.

Signed-off-by: Siddhant Jain <siddhantjainofficial26@gmail.com>

* ci(kserve): bump timeout to 35m for expanded test suite

The test suite grew with Test 7 (raw deployment) and active polling loops. Total runtime is ~30m18s with 30m timeout. Bump to 35m to validate all tests pass before finalizing the timeout value.

Signed-off-by: Siddhant Jain <siddhantjainofficial26@gmail.com>

* Update kserve_test.sh

Signed-off-by: Julius von Kohout <45896133+juliusvonkohout@users.noreply.github.com>

* Update kserve_test.sh

Signed-off-by: Julius von Kohout <45896133+juliusvonkohout@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Julius von Kohout <45896133+juliusvonkohout@users.noreply.github.com>
Signed-off-by: Julius von Kohout <45896133+juliusvonkohout@users.noreply.github.com>

* Apply suggestion from @juliusvonkohout

Signed-off-by: Julius von Kohout <45896133+juliusvonkohout@users.noreply.github.com>

* Update kserve_test.sh

Signed-off-by: Julius von Kohout <45896133+juliusvonkohout@users.noreply.github.com>

* Apply suggestion from @juliusvonkohout

Signed-off-by: Julius von Kohout <45896133+juliusvonkohout@users.noreply.github.com>

* fix(kserve): use Standard instead of deprecated RawDeployment annotation

KServe v0.16 renamed RawDeployment to Standard (and Serverless to Knative). Using the legacy name causes the validation webhook to reject status updates during deletion, leaving the finalizer in place and the ISVC stuck in a terminating state indefinitely.

Update the kserve_test.sh annotation and comments to use Standard.

Ref: kserve/kserve#4710, kserve/kserve#4798
Signed-off-by: Siddhant Jain <siddhantjainofficial26@gmail.com>

---------

Signed-off-by: Siddhant Jain <siddhantjainofficial26@gmail.com>
Signed-off-by: Julius von Kohout <45896133+juliusvonkohout@users.noreply.github.com>
Co-authored-by: Julius von Kohout <45896133+juliusvonkohout@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants