Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
166 commits
Select commit Hold shift + click to select a range
5c6b34f
(llmisvc): migrate to v1 InferencePool with v1alpha2 failover
KillianGolds Oct 2, 2025
c9df501
Resolve pre-commit linting errors
KillianGolds Oct 2, 2025
444671a
Downgrade gateway-api-inference-extension to v1.0.0
KillianGolds Oct 2, 2025
70cc0cb
upgrade controller-gen to v0.17.2
KillianGolds Oct 2, 2025
cc7f4b1
Apply fork workaround for GIE v1.0.0 validation bug and regenerate ma…
KillianGolds Oct 6, 2025
0429ef2
Add GIE v1 InferencePool CRD for integration tests
KillianGolds Oct 7, 2025
b861c9b
Fix openapi_generated.go formatting
KillianGolds Oct 7, 2025
483a080
Add GIE v1alpha2 InferencePool CRD for integration tests
KillianGolds Oct 7, 2025
29aec70
fix(llmisvc): add required matchLabels to scheduler config
KillianGolds Oct 7, 2025
886d72b
fix(llmisvc): add required port field to endpointPickerRef
KillianGolds Oct 7, 2025
059202b
fix(llmisvc): fix integration tests for GIE v1 migration
KillianGolds Oct 7, 2025
308fba0
chore: regenerate openapi_generated.go
KillianGolds Oct 7, 2025
6ea6db2
fix(llmisvc): fix GIE v1 InferencePool test helpers
KillianGolds Oct 7, 2025
91623f8
fix(llmisvc): use int64 for unstructured port numbers
KillianGolds Oct 7, 2025
aa093ae
fix(llmisvc): restore config merge logic and update tests for GIE v1
KillianGolds Oct 8, 2025
acfd40c
fix(llmisvc): add GIE v1 scheme registration and InferencePool watch
KillianGolds Oct 9, 2025
e491892
fix(llmisvc): add watches for v1alpha2 InferencePool and InferenceModel
KillianGolds Oct 14, 2025
2dfbf5b
chore: upgrade to Kubernetes v0.34, Gateway API v1.4, and KEDA v2.18
KillianGolds Oct 15, 2025
a83d643
fix: update Dockerfiles to use Go 1.24.7
KillianGolds Oct 15, 2025
22e7100
fix: allow Go 1.24.6 to build code requiring 1.24.7
KillianGolds Oct 15, 2025
9b8f9d1
fix: use GOTOOLCHAIN=auto to handle Go version mismatch
KillianGolds Oct 15, 2025
d220b1e
add GOTOOLCHAIN=auto to all Dockerfiles for Go version compatibility
KillianGolds Oct 15, 2025
dc9d572
fix(build): disable go-licenses checks in localmodel Dockerfiles
KillianGolds Oct 15, 2025
156dfaa
fix(rbac): add GIE v1 inferencemodels and inferenceobjectives permiss…
KillianGolds Oct 15, 2025
659b827
fix(e2e): upgrade Gateway API Inference Extension to v1.0.0
KillianGolds Oct 15, 2025
4c85a7b
fix(llmisvc): implement dual-pool fallback in InferencePool readiness…
KillianGolds Oct 16, 2025
987c43c
fix(llmisvc): auto-inject dual InferencePool backend refs for schedul…
KillianGolds Oct 16, 2025
6aa70d2
Make Precommit failure
KillianGolds Oct 16, 2025
b1f5abc
fix(llmisvc): use separate pool names for v1 and v1alpha2 backend refs
KillianGolds Oct 16, 2025
798c993
fix(llmisvc): check Gateway Controller support before migrating to v1
KillianGolds Oct 16, 2025
cc7d54c
fix(llmisvc): check ResolvedRefs condition in InferencePool readiness…
KillianGolds Oct 16, 2025
141ed63
fix(llmisvc): defer InferencePool readiness evaluation until after HT…
KillianGolds Oct 17, 2025
08dc6e6
fix(ci): install GIE controller in OpenShift E2E for InferencePool su…
KillianGolds Oct 17, 2025
8a0fc38
fix(ci): enable InferencePool support in Istio
KillianGolds Oct 17, 2025
016a8dd
fix(llmisvc): add retry logic for HTTPRoute update conflicts
KillianGolds Oct 17, 2025
012676a
fix(ci): use openshift-default GatewayClass name for E2E tests
KillianGolds Oct 17, 2025
ffff4ba
chore(deps): switch to upstream gateway-api with merged validation fix
KillianGolds Oct 17, 2025
b79845e
fix(llmisvc): add retry logic for finalizer operations and fix async …
KillianGolds Oct 17, 2025
2be3766
chore: update generated files from precommit hook
KillianGolds Oct 17, 2025
07a191b
Alternative
pierDipi Oct 17, 2025
717575c
(llmisvc): migrate to v1 InferencePool with v1alpha2 failover
KillianGolds Oct 2, 2025
7b048d8
Resolve pre-commit linting errors
KillianGolds Oct 2, 2025
a47c80f
Downgrade gateway-api-inference-extension to v1.0.0
KillianGolds Oct 2, 2025
79e6c27
upgrade controller-gen to v0.17.2
KillianGolds Oct 2, 2025
8c16e7c
Apply fork workaround for GIE v1.0.0 validation bug and regenerate ma…
KillianGolds Oct 6, 2025
86aeed4
Add GIE v1 InferencePool CRD for integration tests
KillianGolds Oct 7, 2025
4b4844b
Fix openapi_generated.go formatting
KillianGolds Oct 7, 2025
02b0abe
Add GIE v1alpha2 InferencePool CRD for integration tests
KillianGolds Oct 7, 2025
06565e5
fix(llmisvc): add required matchLabels to scheduler config
KillianGolds Oct 7, 2025
a1d8e51
fix(llmisvc): add required port field to endpointPickerRef
KillianGolds Oct 7, 2025
68c55f0
fix(llmisvc): fix integration tests for GIE v1 migration
KillianGolds Oct 7, 2025
c8353e1
chore: regenerate openapi_generated.go
KillianGolds Oct 7, 2025
7f0bebf
fix(llmisvc): fix GIE v1 InferencePool test helpers
KillianGolds Oct 7, 2025
3eb5d45
fix(llmisvc): use int64 for unstructured port numbers
KillianGolds Oct 7, 2025
4ffa44a
fix(llmisvc): restore config merge logic and update tests for GIE v1
KillianGolds Oct 8, 2025
b382549
fix(llmisvc): add GIE v1 scheme registration and InferencePool watch
KillianGolds Oct 9, 2025
920b8eb
fix(llmisvc): add watches for v1alpha2 InferencePool and InferenceModel
KillianGolds Oct 14, 2025
3bed0b4
chore: upgrade to Kubernetes v0.34, Gateway API v1.4, and KEDA v2.18
KillianGolds Oct 15, 2025
3581f80
fix: update Dockerfiles to use Go 1.24.7
KillianGolds Oct 15, 2025
60b5a4f
fix: allow Go 1.24.6 to build code requiring 1.24.7
KillianGolds Oct 15, 2025
7e2f7c8
fix: use GOTOOLCHAIN=auto to handle Go version mismatch
KillianGolds Oct 15, 2025
65536cd
add GOTOOLCHAIN=auto to all Dockerfiles for Go version compatibility
KillianGolds Oct 15, 2025
73ce255
fix(build): disable go-licenses checks in localmodel Dockerfiles
KillianGolds Oct 15, 2025
ff187b6
fix(rbac): add GIE v1 inferencemodels and inferenceobjectives permiss…
KillianGolds Oct 15, 2025
e416655
fix(e2e): upgrade Gateway API Inference Extension to v1.0.0
KillianGolds Oct 15, 2025
3e2bbcd
fix(llmisvc): implement dual-pool fallback in InferencePool readiness…
KillianGolds Oct 16, 2025
ef835ac
fix(llmisvc): auto-inject dual InferencePool backend refs for schedul…
KillianGolds Oct 16, 2025
9d04f60
Make Precommit failure
KillianGolds Oct 16, 2025
8f5a127
fix(llmisvc): use separate pool names for v1 and v1alpha2 backend refs
KillianGolds Oct 16, 2025
b63f4ec
fix(llmisvc): check Gateway Controller support before migrating to v1
KillianGolds Oct 16, 2025
f41abf5
fix(llmisvc): check ResolvedRefs condition in InferencePool readiness…
KillianGolds Oct 16, 2025
5786f15
fix(llmisvc): defer InferencePool readiness evaluation until after HT…
KillianGolds Oct 17, 2025
97449c2
fix(ci): install GIE controller in OpenShift E2E for InferencePool su…
KillianGolds Oct 17, 2025
2a8caa2
fix(ci): enable InferencePool support in Istio
KillianGolds Oct 17, 2025
bd989f7
fix(llmisvc): add retry logic for HTTPRoute update conflicts
KillianGolds Oct 17, 2025
4108db0
fix(ci): use openshift-default GatewayClass name for E2E tests
KillianGolds Oct 17, 2025
38bd1a9
chore(deps): switch to upstream gateway-api with merged validation fix
KillianGolds Oct 17, 2025
254ea6c
fix(llmisvc): add retry logic for finalizer operations and fix async …
KillianGolds Oct 17, 2025
7567270
chore: update generated files from precommit hook
KillianGolds Oct 17, 2025
ecb1a22
fix(llmisvc): trim HTTPRoute to single rule for GIE v1 migration
KillianGolds Oct 17, 2025
abb40d0
fix(typo)
KillianGolds Oct 17, 2025
b7caa8f
fix(llmisvc): initialize Config field in test reconciler
KillianGolds Oct 17, 2025
8ca895c
fix(typo): Update other typo
KillianGolds Oct 17, 2025
3b4c9ad
fix(llmisvc): add required fields to InferencePool status for GIE v1 …
KillianGolds Oct 17, 2025
f673d7b
fix(llmisvc): correct Service backend detection in extractRoutePath
KillianGolds Oct 18, 2025
2baf173
test(llmisvc): make auth tests conditional on RHCL availability
KillianGolds Oct 18, 2025
dc6c47c
fix(llmisvc): make InferencePool config compatible across KServe vers…
KillianGolds Oct 19, 2025
bb9a3aa
chore: run precommit fixes and codegen
KillianGolds Oct 19, 2025
578871d
fix(llmisvc): enable v1alpha2 fallback in dual-pool strategy
KillianGolds Oct 19, 2025
6e09281
fix(test): correct rhcl_available fixture usage in auth tests
KillianGolds Oct 19, 2025
2e0f069
refactor(test): remove duplicate backend ref builder functions
KillianGolds Oct 19, 2025
2f227a8
chore: run precommit
KillianGolds Oct 20, 2025
b68114a
fix(llmisvc): watch v1 InferencePool status changes for migration
KillianGolds Oct 20, 2025
d358c02
Merge branch 'RHOAIENG-34472-dev' into maybe-simpler
pierDipi Oct 20, 2025
68731fa
v1alpha2
pierDipi Oct 20, 2025
ef7e713
chore(clean): commit go.sum go mod tidy cleanup
KillianGolds Oct 20, 2025
6edd063
Fix envtests
pierDipi Oct 20, 2025
d8d4978
v1alpha2 llmisvcconfig conversion
pierDipi Oct 20, 2025
b3945dc
Out of band migration
pierDipi Oct 20, 2025
61fc2ed
Use v1alpha1 for EndpointPickerConfig
pierDipi Oct 20, 2025
ea80b64
Revert config/default/manager_image_patch.yaml
pierDipi Oct 20, 2025
ed30c9c
Revert config/overlays/odh/params.env
pierDipi Oct 20, 2025
dcdeee7
Revert test/scripts/gh-actions/run-e2e-tests.sh
pierDipi Oct 20, 2025
9943c6c
EndpointPickerConfig v1alpha1
pierDipi Oct 20, 2025
8281a3b
Merge branch 'release-v0.15' into RHOAIENG-34472-refactor
KillianGolds Oct 21, 2025
bd28818
Test e2e both v1alpha1 and v1alpha2 versions
pierDipi Oct 21, 2025
a7b9c01
Add version marker
pierDipi Oct 21, 2025
c8cde0d
Merge branch 'release-v0.15' into RHOAIENG-34472-refactor
KillianGolds Oct 22, 2025
b2f6aa7
Address PR feedback: revert DEV.md and add v1 InferencePool RBAC
KillianGolds Oct 23, 2025
04ce251
fix(test): hardcode v1alpha1 objects to fix validation tests
KillianGolds Oct 24, 2025
a24cf66
chore: regenerate code from make precommit
KillianGolds Oct 24, 2025
37879e3
fix: disambiguate v1alpha1 and v1alpha2 webhook names
KillianGolds Oct 24, 2025
291d381
fix: separate webhook configurations for v1alpha1 and v1alpha2
KillianGolds Oct 24, 2025
ab27617
fix: register v1alpha1 validators in test environment
KillianGolds Oct 24, 2025
2459fc3
test: remove redundant TestODHModelControllerCompatibility
KillianGolds Oct 25, 2025
abb5b14
fix: repair malformed Python SDK tests for v1alpha1 and v1alpha2
KillianGolds Oct 25, 2025
ea877bc
fix: add valid URIs to LLMModelSpec tests
KillianGolds Oct 25, 2025
f3f4560
test: reduce CPU workload requests in e2e tests
KillianGolds Oct 25, 2025
f6239e5
fix: reduce e2e test parallelism to prevent HTTP 409 errors
KillianGolds Oct 28, 2025
67fb13a
fix: wait for LLMInferenceService deletion to complete
KillianGolds Oct 28, 2025
1a697b3
RHOAIENG-34916: CA Cert signing and validation (#957)
pierDipi Oct 28, 2025
f28fa4a
chore: add Python SDK for KServe types and fix v1alpha2 test reference
KillianGolds Oct 28, 2025
d126e8d
Merge upstream release-v0.15 into RHOAIENG-34472-refactor
KillianGolds Oct 28, 2025
b86d230
fix: add KServe v1alpha1 model imports to Python SDK
KillianGolds Oct 28, 2025
a1705b3
fix: remove orphaned Python SDK files and fix Makefile URL quoting
KillianGolds Oct 28, 2025
13cbaa0
Merge remote-tracking branch 'upstream/release-v0.15' into RHOAIENG-3…
KillianGolds Oct 29, 2025
89009cf
fix: address PR feedback on webhook names and comments
KillianGolds Oct 31, 2025
250bea9
Merge latest changes from upstream/release-v0.15
KillianGolds Oct 31, 2025
96236bd
fix: remove risky RetryOnConflict wrapper from updateIfNeeded
KillianGolds Oct 31, 2025
6e36ead
chore: remove unnecessary comment about Gateway API v1.4 port assignment
KillianGolds Oct 31, 2025
82a4b5a
fix: remove pytest.skip for missing RHCL - tests should fail not skip
KillianGolds Oct 31, 2025
6ddc957
test: use API version in service names to avoid conflicts
KillianGolds Oct 31, 2025
9729850
fix: deploy Kuadrant before KServe in setup script
KillianGolds Oct 31, 2025
2e99def
deps: upgrade GIE to v1.1.0 and remove replace directive
KillianGolds Oct 31, 2025
0045ec7
docs: add comments explaining go-licenses incompatibility
KillianGolds Oct 31, 2025
0907702
chore: regenerate CRDs with GIE v1.1.0 validation updates
KillianGolds Oct 31, 2025
e4fb2da
fix: preserve resourceVersion when updating resources
KillianGolds Nov 2, 2025
6398aa3
fix: use template variables for test resource names to support API ve…
KillianGolds Nov 3, 2025
7b079ca
fix: include API version in LLMInferenceServiceConfig names to preven…
KillianGolds Nov 3, 2025
24f21be
fix: use api_version fixture parameter in test_case fixture
KillianGolds Nov 3, 2025
be67414
fix: use base service name for InferencePool references
KillianGolds Nov 3, 2025
d955510
test: make HTTPRoutes dynamic with API version isolation
KillianGolds Nov 3, 2025
9915747
fix: disable authentication on test Gateway resources
KillianGolds Nov 4, 2025
30065f5
fix: delete Kuadrant AuthPolicies for Gateways with auth disabled
KillianGolds Nov 4, 2025
3d096da
fix(e2e): disable auth on LLMInferenceService resources for router tests
KillianGolds Nov 4, 2025
a3adfa1
fix: default endpointPickerRef.port for GIE v1 compatibility
KillianGolds Nov 5, 2025
3c8060b
Merge upstream/release-v0.15 into RHOAIENG-34472-refactor
KillianGolds Nov 6, 2025
85e05dc
chore: update go.sum after upstream merge
KillianGolds Nov 6, 2025
1fa6228
fix: set conversion webhook namespace to opendatahub in ODH overlay
KillianGolds Nov 12, 2025
17caef9
Merge remote-tracking branch 'upstream/release-v0.15' into RHOAIENG-3…
KillianGolds Nov 12, 2025
7605cc7
chore: precommit
KillianGolds Nov 12, 2025
201cf88
fix(ci): use apply instead of create for Istio deployment
KillianGolds Nov 13, 2025
7e2b68d
fix: update MinIO image to resolve CI test failures
KillianGolds Nov 13, 2025
0458d29
perf: reduce webhook load during dual InferencePool creation
KillianGolds Nov 14, 2025
8de247f
fix: increase liveness probe timeouts for CPU workloads in e2e tests
KillianGolds Nov 15, 2025
00397a2
fix: resolve nil pointer errors in Go template configurations
KillianGolds Nov 16, 2025
3fdfc9a
fix: prevent Kubernetes 63-character naming violations with SafeChild…
KillianGolds Nov 16, 2025
b01c995
fix: improve HTTPRoute lifecycle management for controller-managed an…
KillianGolds Nov 17, 2025
7f38b4b
fix: correct conversion webhook namespace and service name
KillianGolds Nov 18, 2025
51811ef
fix: load kube config in rhcl_available fixture
KillianGolds Nov 18, 2025
4a18f10
fix: only disable auth for non-auth tests in fixture
KillianGolds Nov 19, 2025
e3899d6
Merge remote-tracking branch 'upstream/release-v0.15' into RHOAIENG-3…
KillianGolds Nov 19, 2025
6f9d72c
chore: regenerate consolidated CRD with updated webhook service name
KillianGolds Nov 19, 2025
46b7d63
fix: increase SafeChildName suffix reservation to 20 chars for multi-…
KillianGolds Nov 20, 2025
c6e240a
test: update test resource lookups to use SafeChildName
KillianGolds Nov 21, 2025
eabd009
Merge remote-tracking branch 'upstream/release-v0.15' into RHOAIENG-3…
KillianGolds Nov 21, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 2 additions & 1 deletion .github/workflows/e2e-test-llmisvc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,8 @@ jobs:
run: |
# Run only CPU tests for now using pytest markers (cluster_)
# Available GPU vendors: amd, nvidia, intel
./test/scripts/gh-actions/run-e2e-tests.sh "llminferenceservice and cluster_cpu" 2 "istio-gatewayapi-ext"
# Use parallelism=1 to eliminate HTTP 409 cleanup race conditions
./test/scripts/gh-actions/run-e2e-tests.sh "llminferenceservice and cluster_cpu" 1 "istio-gatewayapi-ext"
Comment on lines +102 to +103

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Maybe this can go as separate PR, but I also wonder if we can fix it differently and leverage faster test cycles?


- name: Check system status
if: always()
Expand Down
7 changes: 7 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ WORKDIR /go/src/github.com/kserve/kserve
COPY go.mod go.mod
COPY go.sum go.sum

# Allow Go to automatically download the required toolchain version
ENV GOTOOLCHAIN=auto
RUN go mod download

COPY cmd/ cmd/
Expand All @@ -17,6 +19,11 @@ RUN CGO_ENABLED=0 GOOS=linux GOFLAGS=-mod=mod go build -a -o manager ./cmd/manag

# Generate third-party licenses
COPY LICENSE LICENSE
# go-licenses is temporarily disabled due to incompatibility with Go 1.24+
# go-licenses v1.6.0 has a compilation error with Go 1.24 due to github.com/otiai10/copy dependency
# go-licenses v2 is available as pre-release but not yet stable
# See: https://github.com/google/go-licenses/issues/312
# Uncomment these lines once go-licenses v2 is stable or v1.x adds Go 1.24+ support
# RUN go install github.com/google/go-licenses@latest
# Forbidden Licenses: https://github.com/google/licenseclassifier/blob/e6a9bb99b5a6f71d5a34336b8245e305f5430f99/license_type.go#L341
# RUN go-licenses check ./cmd/... ./pkg/... --disallowed_types="forbidden,unknown"
Expand Down
23 changes: 21 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -99,24 +99,40 @@ manifests: controller-gen yq
echo '{{- end }}' >> charts/kserve-resources/templates/localmodelnode/role.yaml

@$(CONTROLLER_GEN) object:headerFile="hack/boilerplate.go.txt" paths=./pkg/apis/serving/v1alpha1
@$(CONTROLLER_GEN) object:headerFile="hack/boilerplate.go.txt" paths=./pkg/apis/serving/v1alpha2
@$(CONTROLLER_GEN) object:headerFile="hack/boilerplate.go.txt" paths=./pkg/apis/serving/v1beta1

# Remove validation for the LLMInferenceServiceConfig API so that we can use Go templates to inject values at runtime.
@$(YQ) 'del(.spec.versions[0].schema.openAPIV3Schema.properties.spec.properties.router.properties.route.properties.http.properties.spec.properties.rules.items.properties.matches.items.properties.path.x-kubernetes-validations)' -i config/crd/full/serving.kserve.io_llminferenceserviceconfigs.yaml
@$(YQ) 'del(.spec.versions[1].schema.openAPIV3Schema.properties.spec.properties.router.properties.route.properties.http.properties.spec.properties.rules.items.properties.matches.items.properties.path.x-kubernetes-validations)' -i config/crd/full/serving.kserve.io_llminferenceserviceconfigs.yaml
@$(YQ) 'del(.spec.versions[0].schema.openAPIV3Schema.properties.spec.properties.router.properties.route.properties.http.properties.spec.properties.rules.items.properties.filters.items.properties.urlRewrite.properties.path.x-kubernetes-validations)' -i config/crd/full/serving.kserve.io_llminferenceserviceconfigs.yaml
@$(YQ) 'del(.spec.versions[1].schema.openAPIV3Schema.properties.spec.properties.router.properties.route.properties.http.properties.spec.properties.rules.items.properties.filters.items.properties.urlRewrite.properties.path.x-kubernetes-validations)' -i config/crd/full/serving.kserve.io_llminferenceserviceconfigs.yaml
@$(YQ) 'del(.spec.versions[0].schema.openAPIV3Schema.properties.spec.properties.router.properties.route.properties.http.properties.spec.properties.parentRefs.items.properties.namespace.pattern)' -i config/crd/full/serving.kserve.io_llminferenceserviceconfigs.yaml
@$(YQ) 'del(.spec.versions[1].schema.openAPIV3Schema.properties.spec.properties.router.properties.route.properties.http.properties.spec.properties.parentRefs.items.properties.namespace.pattern)' -i config/crd/full/serving.kserve.io_llminferenceserviceconfigs.yaml
# Remove validation for the LLMInferenceServiceConfig API so that we can override only specific values.
@$(YQ) 'del(.spec.versions[0].schema.openAPIV3Schema.properties.spec.properties.worker.required)' -i config/crd/full/serving.kserve.io_llminferenceserviceconfigs.yaml
@$(YQ) 'del(.spec.versions[1].schema.openAPIV3Schema.properties.spec.properties.worker.required)' -i config/crd/full/serving.kserve.io_llminferenceserviceconfigs.yaml
@$(YQ) 'del(.spec.versions[0].schema.openAPIV3Schema.properties.spec.properties.template.required)' -i config/crd/full/serving.kserve.io_llminferenceserviceconfigs.yaml
@$(YQ) 'del(.spec.versions[1].schema.openAPIV3Schema.properties.spec.properties.template.required)' -i config/crd/full/serving.kserve.io_llminferenceserviceconfigs.yaml
@$(YQ) 'del(.spec.versions[0].schema.openAPIV3Schema.properties.spec.properties.prefill.properties.template.required)' -i config/crd/full/serving.kserve.io_llminferenceserviceconfigs.yaml
@$(YQ) 'del(.spec.versions[1].schema.openAPIV3Schema.properties.spec.properties.prefill.properties.template.required)' -i config/crd/full/serving.kserve.io_llminferenceserviceconfigs.yaml
@$(YQ) 'del(.spec.versions[0].schema.openAPIV3Schema.properties.spec.properties.prefill.properties.worker.required)' -i config/crd/full/serving.kserve.io_llminferenceserviceconfigs.yaml
@$(YQ) 'del(.spec.versions[1].schema.openAPIV3Schema.properties.spec.properties.prefill.properties.worker.required)' -i config/crd/full/serving.kserve.io_llminferenceserviceconfigs.yaml
@$(YQ) 'del(.spec.versions[0].schema.openAPIV3Schema.properties.spec.properties.router.properties.scheduler.properties.template.required)' -i config/crd/full/serving.kserve.io_llminferenceserviceconfigs.yaml
@$(YQ) 'del(.spec.versions[1].schema.openAPIV3Schema.properties.spec.properties.router.properties.scheduler.properties.template.required)' -i config/crd/full/serving.kserve.io_llminferenceserviceconfigs.yaml
@$(YQ) 'del(.spec.versions[0].schema.openAPIV3Schema.properties.spec.properties.router.properties.scheduler.properties.pool.properties.spec.required)' -i config/crd/full/serving.kserve.io_llminferenceserviceconfigs.yaml
@$(YQ) 'del(.spec.versions[1].schema.openAPIV3Schema.properties.spec.properties.router.properties.scheduler.properties.pool.properties.spec.required)' -i config/crd/full/serving.kserve.io_llminferenceserviceconfigs.yaml
# Remove validation for the LLMInferenceService API so that we can override only specific values.
@$(YQ) 'del(.spec.versions[0].schema.openAPIV3Schema.properties.spec.properties.worker.required)' -i config/crd/full/serving.kserve.io_llminferenceservices.yaml
@$(YQ) 'del(.spec.versions[1].schema.openAPIV3Schema.properties.spec.properties.worker.required)' -i config/crd/full/serving.kserve.io_llminferenceservices.yaml
@$(YQ) 'del(.spec.versions[0].schema.openAPIV3Schema.properties.spec.properties.template.required)' -i config/crd/full/serving.kserve.io_llminferenceservices.yaml
@$(YQ) 'del(.spec.versions[1].schema.openAPIV3Schema.properties.spec.properties.template.required)' -i config/crd/full/serving.kserve.io_llminferenceservices.yaml
@$(YQ) 'del(.spec.versions[0].schema.openAPIV3Schema.properties.spec.properties.prefill.properties.template.required)' -i config/crd/full/serving.kserve.io_llminferenceservices.yaml
@$(YQ) 'del(.spec.versions[1].schema.openAPIV3Schema.properties.spec.properties.prefill.properties.template.required)' -i config/crd/full/serving.kserve.io_llminferenceservices.yaml
@$(YQ) 'del(.spec.versions[0].schema.openAPIV3Schema.properties.spec.properties.prefill.properties.worker.required)' -i config/crd/full/serving.kserve.io_llminferenceservices.yaml
@$(YQ) 'del(.spec.versions[1].schema.openAPIV3Schema.properties.spec.properties.prefill.properties.worker.required)' -i config/crd/full/serving.kserve.io_llminferenceservices.yaml
@$(YQ) 'del(.spec.versions[0].schema.openAPIV3Schema.properties.spec.properties.router.properties.scheduler.properties.template.required)' -i config/crd/full/serving.kserve.io_llminferenceservices.yaml
@$(YQ) 'del(.spec.versions[1].schema.openAPIV3Schema.properties.spec.properties.router.properties.scheduler.properties.template.required)' -i config/crd/full/serving.kserve.io_llminferenceservices.yaml

#remove the required property on framework as name field needs to be optional
@$(YQ) 'del(.spec.versions[0].schema.openAPIV3Schema.properties.spec.properties.*.properties.*.required)' -i config/crd/full/serving.kserve.io_inferenceservices.yaml
Expand Down Expand Up @@ -145,7 +161,7 @@ manifests: controller-gen yq
cp config/crd/minimal/* charts/kserve-crd-minimal/templates/
rm charts/kserve-crd-minimal/templates/kustomization.yaml

kubectl kustomize https://github.com/kubernetes-sigs/gateway-api-inference-extension/config/crd?ref=$(GIE_VERSION) > config/crd/external/gateway-inference-extension/gateway-inference-extension.yaml
kubectl kustomize "https://github.com/kubernetes-sigs/gateway-api-inference-extension/config/crd?ref=$(GIE_VERSION)" > config/crd/external/gateway-inference-extension/gateway-inference-extension.yaml

# InferenceModels is needed for now but after we start to use inferenceObjectives, we can remove this.
curl https://raw.githubusercontent.com/kubernetes-sigs/gateway-api-inference-extension/refs/tags/v0.5.1/config/crd/bases/inference.networking.x-k8s.io_inferencemodels.yaml >> config/crd/external/gateway-inference-extension/gateway-inference-extension.yaml
Expand Down Expand Up @@ -198,6 +214,9 @@ test: fmt vet manifests envtest test-qpext
test-qpext:
cd qpext && go test -v ./... -cover

test-llmisvc: fmt vet manifests envtest
KUBEBUILDER_ASSETS="$$($(ENVTEST) use $(ENVTEST_K8S_VERSION) -p path)" go test --timeout 20m ./pkg/controller/llmisvc/... -coverprofile coverage.out -coverpkg ./pkg/... ./cmd...

# Build manager binary
manager: generate fmt vet go-lint
go build -o bin/manager ./cmd/manager
Expand Down Expand Up @@ -305,7 +324,7 @@ docker-build:

# Push the docker image
docker-push:
docker push ${IMG}
${ENGINE} push ${IMG}

docker-build-agent:
${ENGINE} buildx build ${ARCH} -f agent.Dockerfile . -t ${KO_DOCKER_REPO}/${AGENT_IMG}
Expand Down
2 changes: 1 addition & 1 deletion Makefile.tools.mk
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ POETRY = $(PYTHON_BIN)/poetry

## Tool versions.
GOLANGCI_LINT_VERSION ?= v1.64.8
CONTROLLER_TOOLS_VERSION ?= v0.16.2
CONTROLLER_TOOLS_VERSION ?= v0.17.2
ENVTEST_VERSION ?= latest
YQ_VERSION ?= v4.28.1
HELM_DOCS_VERSION ?= v1.12.0
Expand Down
9 changes: 8 additions & 1 deletion agent.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ WORKDIR /go/src/github.com/kserve/kserve
COPY go.mod go.mod
COPY go.sum go.sum

# Allow Go to automatically download the required toolchain version
ENV GOTOOLCHAIN=auto
RUN go mod download

COPY cmd/ cmd/
Expand All @@ -17,10 +19,15 @@ RUN CGO_ENABLED=0 GOOS=linux GOFLAGS=-mod=mod go build -a -o agent ./cmd/agent

# Generate third-party licenses
COPY LICENSE LICENSE
# go-licenses is temporarily disabled due to incompatibility with Go 1.24+
# go-licenses v1.6.0 has a compilation error with Go 1.24 due to github.com/otiai10/copy dependency
# go-licenses v2 is available as pre-release but not yet stable
# See: https://github.com/google/go-licenses/issues/312
# Uncomment these lines once go-licenses v2 is stable or v1.x adds Go 1.24+ support
# RUN go install github.com/google/go-licenses@latest
# Forbidden Licenses: https://github.com/google/licenseclassifier/blob/e6a9bb99b5a6f71d5a34336b8245e305f5430f99/license_type.go#L341
# RUN go-licenses check ./cmd/... ./pkg/... --disallowed_types="forbidden,unknown"
#RUN go-licenses save --save_path third_party/library ./cmd/agent
# RUN go-licenses save --save_path third_party/library ./cmd/agent

# Copy the inference-agent into a thin image
FROM registry.access.redhat.com/ubi9/ubi-minimal:latest
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.2
controller-gen.kubebuilder.io/version: v0.17.2
name: clusterservingruntimes.serving.kserve.io
spec:
group: serving.kserve.io
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.2
controller-gen.kubebuilder.io/version: v0.17.2
name: clusterstoragecontainers.serving.kserve.io
spec:
group: serving.kserve.io
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.2
controller-gen.kubebuilder.io/version: v0.17.2
name: inferencegraphs.serving.kserve.io
spec:
group: serving.kserve.io
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.2
controller-gen.kubebuilder.io/version: v0.17.2
name: inferenceservices.serving.kserve.io
spec:
group: serving.kserve.io
Expand Down
Loading
Loading