Skip to content

InferencePool: Finalize ExtensionRef Type #1364

@danehans

Description

@danehans

#1324 simplified the InferencePool EPP config by removing the type inlining. Since ExtensionRef is required, it should not be a pointer or include the omitempty tag:

	// Extension configures an endpoint picker as an extension service.
	//
	// +kubebuilder:validation:Required
	ExtensionRef *Extension `json:"extensionRef,omitempty"`

When the API was first created, we discussed the idea of supporting the EPP extension as a sidecar container, e.g. UDS socket. If we still plan to support this use case, we should determine the configuration details. Here are a few initial thoughts:

  1. We can keep ExtensionRef optional, which would indicate using a UDS socket for the Gateway<>EPP connection. However, the socket path, e.g., /tmp/uds/my_socket.sock, between the two would not be configurable, and FailureMode would need to reside elsewhere.
  2. We make ExtensionRef required and make ExtensionRef.Name optional, which a "" value would indicate no Service reference and instead use a UDS socket for the Gateway<>EPP connection.
  3. Add a union type to ExtensionRef to indicate the connection/reference type and defaults to a GKN reference.

If we do not intend to support the sidecar use case, then update ExtensionRef as follows:

	// ExtensionRef is a reference to the Endpoint Picker (EPP) Extension.
	//
	// +kubebuilder:validation:Required
	ExtensionRef Extension `json:"extensionRef"`

Note that ExtensionRef implies the only extension supported by an InferencePool is a single EPP extension.

cc: @robscott @smarterclayton @ahg-g @nirrozenbaum @kfswain

Metadata

Metadata

Assignees

Labels

triage/acceptedIndicates an issue or PR is ready to be actively worked on.

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions