Skip to content

Commit dbd782c

Browse files
committed
Merge branch 'main' into report
2 parents 63c2829 + 7df5d3d commit dbd782c

File tree

98 files changed

+4373
-647
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

98 files changed

+4373
-647
lines changed

.github/ISSUE_TEMPLATE/new-release.md

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,14 @@ This document defines the process for releasing Gateway API Inference Extension.
3535
export RC=1
3636
```
3737

38-
4. The vLLM image tag defaults to `v0.7.2` for a release. Set the `VLLM` environment variable if a newer [tag][vllm-tag] has been published. For example:
38+
4. Refer to the [release-quickstart script][release-quickstart] for the default image tags used
39+
by the vLLM deployment manifests. If a newer [GPU][vllm-gpu-tag], [CPU][vllm-cpu-tag], or [Simulator][vllm-sim-tag]
40+
tag has been published, set the appropriate environment variable or update the script. For example:
3941

4042
```shell
41-
export VLLM=0.7.3
43+
export VLLM_GPU=0.9.2
44+
export VLLM_CPU=0.9.3
45+
export VLLM_SIM=0.1.2
4246
```
4347

4448
## Release Process
@@ -159,4 +163,7 @@ Use the following steps to announce the release.
159163
[k8s.io]: https://github.com/kubernetes/k8s.io
160164
[yaml]: https://github.com/kubernetes/k8s.io/blob/main/registry.k8s.io/images/k8s-staging-gateway-api-inference-extension/images.yaml
161165
[issue]: https://github.com/kubernetes-sigs/gateway-api-inference-extension/issues/new/choose
162-
[vllm-tag]: https://hub.docker.com/r/vllm/vllm-openai/tags
166+
[vllm-gpu-tag]: https://hub.docker.com/r/vllm/vllm-openai/tags
167+
[vllm-cpu-tag]: https://gallery.ecr.aws/q9t5s3a7/vllm-cpu-release-repo
168+
[vllm-sim-tag]: https://github.com/llm-d/llm-d-inference-sim/pkgs/container/llm-d-inference-sim
169+
[release-quickstart]: https://github.com/kubernetes-sigs/gateway-api-inference-extension/blob/main/hack/release-quickstart.sh

OWNERS_ALIASES

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,13 @@ aliases:
55
gateway-api-inference-extension-maintainers:
66
- ahg-g
77
- danehans
8-
- jeffwan
8+
- nirrozenbaum
99
- kfswain
1010

1111
gateway-api-inference-extension-reviewers:
1212
- liu-cong
1313
- robscott
1414
- shaneutt
15-
- nirrozenbaum
1615

1716

1817
wg-serving-leads:

PROJECT

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,12 @@ resources:
2424
kind: InferenceModel
2525
path: sigs.k8s.io/gateway-api-inference-extension/api/v1alpha1
2626
version: v1alpha1
27+
- api:
28+
crdVersion: v1
29+
namespaced: true
30+
domain: x-k8s.io
31+
group: inference
32+
kind: EndpointPickerConfig
33+
path: sigs.k8s.io/gateway-api-inference-extension/api/config/v1alpha1
34+
version: v1alpha1
2735
version: "3"

api/config/v1alpha1/defaults.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/*
2+
Copyright 2025 The Kubernetes Authors.
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
*/
16+
17+
package v1alpha1
18+
19+
// SetDefaults_EndpointPickerConfig sets default values in a
20+
// EndpointPickerConfig struct.
21+
//
22+
// This naming convension is required by the defalter-gen code.
23+
func SetDefaults_EndpointPickerConfig(cfg *EndpointPickerConfig) {
24+
for idx, pluginConfig := range cfg.Plugins {
25+
if pluginConfig.Name == "" {
26+
cfg.Plugins[idx].Name = pluginConfig.PluginName
27+
}
28+
}
29+
}

api/config/v1alpha1/doc.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/*
2+
Copyright 2025 The Kubernetes Authors.
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
*/
16+
17+
// Package v1alpha1 contains API Schema definitions for the
18+
// inference.networking.x-k8s.io API group.
19+
//
20+
// +kubebuilder:object:generate=true
21+
// +groupName=inference.networking.x-k8s.io
22+
package v1alpha1
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
/*
2+
Copyright 2025 The Kubernetes Authors.
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
*/
16+
17+
package v1alpha1
18+
19+
import (
20+
"encoding/json"
21+
22+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
23+
)
24+
25+
// +k8s:defaulter-gen=true
26+
// +kubebuilder:object:root=true
27+
28+
// EndpointPickerConfig is the Schema for the endpointpickerconfigs API
29+
type EndpointPickerConfig struct {
30+
metav1.TypeMeta `json:",inline"`
31+
32+
// +required
33+
// +kubebuilder:validation:Required
34+
// Plugins is the list of plugins that will be instantiated.
35+
Plugins []PluginSpec `json:"plugins"`
36+
37+
// +required
38+
// +kubebuilder:validation:Required
39+
// SchedulingProfiles is the list of named SchedulingProfiles
40+
// that will be created.
41+
SchedulingProfiles []SchedulingProfile `json:"schedulingProfiles"`
42+
}
43+
44+
// PluginSpec contains the information that describes a plugin that
45+
// will be instantiated.
46+
type PluginSpec struct {
47+
// +optional
48+
// Name provides a name for plugin entries to reference. If
49+
// omitted, the value of the PluginName field will be used.
50+
Name string `json:"name"`
51+
52+
// +required
53+
// +kubebuilder:validation:Required
54+
// PluginName specifies the plugin to be instantiated.
55+
PluginName string `json:"pluginName"`
56+
57+
// +optional
58+
// Parameters are the set of parameters to be passed to the plugin's
59+
// factory function. The factory function is responsible
60+
// to parse the parameters.
61+
Parameters json.RawMessage `json:"parameters"`
62+
}
63+
64+
// SchedulingProfile contains the information to create a SchedulingProfile
65+
// entry to be used by the scheduler.
66+
type SchedulingProfile struct {
67+
// +kubebuilder:validation:Required
68+
// Name specifies the name of this SchedulingProfile
69+
Name string `json:"name"`
70+
71+
// +required
72+
// +kubebuilder:validation:Required
73+
// Plugins is the list of plugins for this SchedulingProfile. They are assigned
74+
// to the appropriate "slots" based on their type.
75+
Plugins []SchedulingPlugin `json:"plugins"`
76+
}
77+
78+
// SchedulingPlugin describes a plugin that will be associated with a
79+
// SchedulingProfile entry.
80+
type SchedulingPlugin struct {
81+
// +required
82+
// +kubebuilder:validation:Required
83+
// PluginRef specifies a partiular Plugin instance to be associated with
84+
// this SchedulingProfile. The reference is to the name of an
85+
// entry of the Plugins defined in the configuration's Plugins
86+
// section
87+
PluginRef string `json:"pluginRef"`
88+
89+
// +optional
90+
// Weight is the weight fo be used if this plugin is a Scorer.
91+
Weight *int `json:"weight"`
92+
}

api/config/v1alpha1/zz_generated.deepcopy.go

Lines changed: 126 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/config/v1alpha1/zz_generated.defaults.go

Lines changed: 38 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)