Skip to content

Commit d93fec7

Browse files
committed
feat: introduce GatewayConfig CRD for gateway-scoped configuration
This commit adds the GatewayConfig custom resource definition (CRD) to manage configuration for the AI Gateway external processor. It allows users to define environment variables and resource requirements at the gateway level, enhancing flexibility and reusability across multiple gateways. The AIGatewayRoute's resource configuration is now deprecated in favor of this new approach. Additionally, the GatewayConfig controller is implemented to handle the lifecycle of GatewayConfig resources, including finalizer management to prevent accidental deletions while still referenced by Gateways. Documentation updates are included to reflect the new configuration options and migration guidance from the deprecated route-level settings. Signed-off-by: Shabab Qaisar <[email protected]> Signed-off-by: Shabab Qaisar <[email protected]>
1 parent 932c4e2 commit d93fec7

File tree

28 files changed

+2208
-9
lines changed

28 files changed

+2208
-9
lines changed

api/v1alpha1/ai_gateway_route.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -400,6 +400,11 @@ type AIGatewayFilterConfigExternalProcessor struct {
400400
// Resources required by the external processor container.
401401
// More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
402402
//
403+
// Deprecated: Use GatewayConfig for gateway-scoped resource configuration instead.
404+
// Configure resources using GatewayConfig.spec.extProc.resources and reference it
405+
// from the Gateway via the "aigateway.envoyproxy.io/gateway-config" annotation.
406+
// This field will be removed in a future version.
407+
//
403408
// Note: when multiple AIGatewayRoute resources are attached to the same Gateway, and each
404409
// AIGatewayRoute has a different resource configuration, the ai-gateway will pick one of them
405410
// to configure the resource requirements of the external processor container.

api/v1alpha1/client/clientset/versioned/typed/api/v1alpha1/api_client.go

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

api/v1alpha1/client/clientset/versioned/typed/api/v1alpha1/fake/fake_api_client.go

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

api/v1alpha1/client/clientset/versioned/typed/api/v1alpha1/fake/fake_gatewayconfig.go

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

api/v1alpha1/client/clientset/versioned/typed/api/v1alpha1/gatewayconfig.go

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

api/v1alpha1/client/clientset/versioned/typed/api/v1alpha1/generated_expansion.go

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

api/v1alpha1/client/informers/externalversions/api/v1alpha1/gatewayconfig.go

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

api/v1alpha1/client/informers/externalversions/api/v1alpha1/interface.go

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

api/v1alpha1/client/informers/externalversions/generic.go

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

api/v1alpha1/client/listers/api/v1alpha1/expansion_generated.go

Lines changed: 8 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)