Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions api/v1/inferencepool_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,9 @@ type InferencePoolSpec struct {
// +required
TargetPorts []Port `json:"targetPorts,omitempty"`

// Extension configures an endpoint picker as an extension service.
// EndpointPickerRef configures an endpoint picker as an extension service.
// +required
ExtensionRef Extension `json:"extensionRef,omitempty,omitzero"`
EndpointPickerRef EndpointPickerRef `json:"endpointPickerRef,omitempty,omitzero"`
}

// Port defines the network port that will be exposed by this InferencePool.
Expand All @@ -90,7 +90,7 @@ type Port struct {
}

// Extension specifies how to configure an extension that runs the endpoint picker.
type Extension struct {
type EndpointPickerRef struct {
// Group is the group of the referent.
// The default value is "", representing the Core API group.
//
Expand Down
10 changes: 5 additions & 5 deletions api/v1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

61 changes: 40 additions & 21 deletions apix/v1alpha2/inferencepool_conversion.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ func (src *InferencePool) ConvertTo(dst *v1.InferencePool) error {
if dst == nil {
return errors.New("dst cannot be nil")
}
v1Extension, err := convertExtensionRefToV1(&src.Spec.ExtensionRef)
endpointPickRef, err := convertExtensionRefToV1(&src.Spec.ExtensionRef)
if err != nil {
return err
}
Expand All @@ -42,7 +42,7 @@ func (src *InferencePool) ConvertTo(dst *v1.InferencePool) error {
dst.TypeMeta = src.TypeMeta
dst.ObjectMeta = src.ObjectMeta
dst.Spec.TargetPorts = []v1.Port{{Number: v1.PortNumber(src.Spec.TargetPortNumber)}}
dst.Spec.ExtensionRef = v1Extension
dst.Spec.EndpointPickerRef = endpointPickRef
dst.Status = *v1Status
if src.Spec.Selector != nil {
dst.Spec.Selector.MatchLabels = make(map[v1.LabelKey]v1.LabelValue, len(src.Spec.Selector))
Expand All @@ -58,7 +58,7 @@ func (dst *InferencePool) ConvertFrom(src *v1.InferencePool) error {
if src == nil {
return errors.New("src cannot be nil")
}
extensionRef, err := convertExtensionRefFromV1(&src.Spec.ExtensionRef)
extensionRef, err := convertEndpointPickerRefFromV1(&src.Spec.EndpointPickerRef)
if err != nil {
return err
}
Expand Down Expand Up @@ -102,34 +102,53 @@ func convertStatusFromV1(src *v1.InferencePoolStatus) (*InferencePoolStatus, err
return convert[InferencePoolStatus](u)
}

func convertExtensionRefToV1(src *Extension) (v1.Extension, error) {
func convertExtensionRefToV1(src *Extension) (v1.EndpointPickerRef, error) {
endpointPickerRef := v1.EndpointPickerRef{}
if src == nil {
return v1.Extension{}, errors.New("src cannot be nil")
return endpointPickerRef, errors.New("src cannot be nil")
}
u, err := toUnstructured(src)
if err != nil {
return v1.Extension{}, err
if src.Group != nil {
v1Group := v1.Group(*src.Group)
endpointPickerRef.Group = &v1Group
}
out, err := convert[v1.Extension](u)
if err != nil {
return v1.Extension{}, err
if src.Kind != nil {
endpointPickerRef.Kind = v1.Kind(*src.Kind)
}
endpointPickerRef.Name = v1.ObjectName(src.Name)
if src.PortNumber != nil {
v1PortNumber := v1.PortNumber(*src.PortNumber)
endpointPickerRef.PortNumber = &v1PortNumber
}
if src.FailureMode != nil {
endpointPickerRef.FailureMode = v1.ExtensionFailureMode(*src.FailureMode)
}
return *out, nil

return endpointPickerRef, nil
}

func convertExtensionRefFromV1(src *v1.Extension) (Extension, error) {
func convertEndpointPickerRefFromV1(src *v1.EndpointPickerRef) (Extension, error) {
extension := Extension{}
if src == nil {
return Extension{}, errors.New("src cannot be nil")
return extension, errors.New("src cannot be nil")
}
u, err := toUnstructured(&src)
if err != nil {
return Extension{}, err
if src.Group != nil {
group := Group(*src.Group)
extension.Group = &group
}
extension, err := convert[Extension](u)
if err != nil {
return Extension{}, err
if src.Kind != "" {
kind := Kind(src.Kind)
extension.Kind = &kind
}
extension.Name = ObjectName(src.Name)
if src.PortNumber != nil {
portNumber := PortNumber(*src.PortNumber)
extension.PortNumber = &portNumber
}
if src.FailureMode != "" {
extensionFailureMode := ExtensionFailureMode(src.FailureMode)
extension.FailureMode = &extensionFailureMode
}
return *extension, nil
return extension, nil
}

func toUnstructured(obj any) (*unstructured.Unstructured, error) {
Expand Down
4 changes: 2 additions & 2 deletions apix/v1alpha2/inferencepool_conversion_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ func TestInferencePoolConvertTo(t *testing.T) {
},
},
TargetPorts: []v1.Port{{Number: v1.PortNumber(int32(8080))}},
ExtensionRef: v1.Extension{
EndpointPickerRef: v1.EndpointPickerRef{
Group: &v1Group,
Kind: v1Kind,
Name: "my-epp-service",
Expand Down Expand Up @@ -235,7 +235,7 @@ func TestInferencePoolConvertFrom(t *testing.T) {
},
},
TargetPorts: []v1.Port{{Number: v1.PortNumber(int32(8080))}},
ExtensionRef: v1.Extension{
EndpointPickerRef: v1.EndpointPickerRef{
Group: &v1Group,
Kind: v1Kind,
Name: "my-epp-service",
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 7 additions & 7 deletions client-go/applyconfiguration/api/v1/inferencepoolspec.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions client-go/applyconfiguration/utils.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion config/charts/inferencepool/templates/inferencepool.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,5 @@ spec:
{{ $key }}: {{ quote $value }}
{{- end }}
{{- end }}
extensionRef:
endpointPickerRef:
name: {{ include "gateway-api-inference-extension.name" . }}
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,9 @@ spec:
spec:
description: InferencePoolSpec defines the desired state of InferencePool
properties:
extensionRef:
description: Extension configures an endpoint picker as an extension
service.
endpointPickerRef:
description: EndpointPickerRef configures an endpoint picker as an
extension service.
properties:
failureMode:
default: FailClose
Expand Down Expand Up @@ -158,7 +158,7 @@ spec:
type: array
x-kubernetes-list-type: atomic
required:
- extensionRef
- endpointPickerRef
- selector
- targetPorts
type: object
Expand Down
2 changes: 1 addition & 1 deletion config/manifests/inferencepool-resources.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ spec:
selector:
matchLabels:
app: vllm-llama3-8b-instruct
extensionRef:
endpointPickerRef:
name: vllm-llama3-8b-instruct-epp
---
apiVersion: v1
Expand Down
4 changes: 2 additions & 2 deletions conformance/resources/base.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ spec:
app: primary-inference-model-server
targetPorts:
- number: 3000
extensionRef:
endpointPickerRef:
name: primary-endpoint-picker-svc
---
# --- Primary Conformance EPP service Definition ---
Expand Down Expand Up @@ -252,7 +252,7 @@ spec:
app: secondary-inference-model-server
targetPorts:
- number: 3000
extensionRef:
endpointPickerRef:
name: secondary-endpoint-picker-svc
failureMode: FailOpen
---
Expand Down
2 changes: 1 addition & 1 deletion conformance/tests/inferencepool_invalid_epp_service.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ spec:
app: primary-inference-model-server
targetPorts:
- number: 3000
extensionRef:
endpointPickerRef:
name: non-existent-epp-svc
---
apiVersion: gateway.networking.k8s.io/v1
Expand Down
4 changes: 2 additions & 2 deletions pkg/epp/controller/inferencepool_reconciler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,9 +81,9 @@ func TestInferencePoolReconciler(t *testing.T) {
Namespace("pool1-ns").
Selector(selector_v1).
TargetPorts(8080).
ExtensionRef("epp-service").ObjRef()
EndpointPickerRef("epp-service").ObjRef()
pool1.SetGroupVersionKind(gvk)
pool2 := utiltest.MakeInferencePool("pool2").Namespace("pool2-ns").ExtensionRef("epp-service").ObjRef()
pool2 := utiltest.MakeInferencePool("pool2").Namespace("pool2-ns").EndpointPickerRef("epp-service").ObjRef()
pool2.SetGroupVersionKind(gvk)

// Set up the scheme.
Expand Down
4 changes: 2 additions & 2 deletions pkg/epp/util/testing/wrappers.go
Original file line number Diff line number Diff line change
Expand Up @@ -205,8 +205,8 @@ func (m *InferencePoolWrapper) TargetPorts(p int32) *InferencePoolWrapper {
return m
}

func (m *InferencePoolWrapper) ExtensionRef(name string) *InferencePoolWrapper {
m.Spec.ExtensionRef = v1.Extension{Name: v1.ObjectName(name)}
func (m *InferencePoolWrapper) EndpointPickerRef(name string) *InferencePoolWrapper {
m.Spec.EndpointPickerRef = v1.EndpointPickerRef{Name: v1.ObjectName(name)}
return m
}

Expand Down
2 changes: 1 addition & 1 deletion test/testdata/inferencepool-e2e.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ spec:
selector:
matchLabels:
app: vllm-llama3-8b-instruct
extensionRef:
endpointPickerRef:
name: vllm-llama3-8b-instruct-epp
namespace: $E2E_NS
---
Expand Down
2 changes: 1 addition & 1 deletion test/testdata/inferencepool-leader-election-e2e.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ spec:
targetPortNumber: 8000
selector:
app: vllm-llama3-8b-instruct
extensionRef:
endpointPickerRef:
name: vllm-llama3-8b-instruct-epp
namespace: $E2E_NS
---
Expand Down
2 changes: 1 addition & 1 deletion test/testdata/inferencepool-with-model-hermetic.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ spec:
selector:
matchLabels:
app: vllm-llama3-8b-instruct-pool
extensionRef:
endpointPickerRef:
name: epp
---
apiVersion: inference.networking.x-k8s.io/v1alpha2
Expand Down