-
Notifications
You must be signed in to change notification settings - Fork 136
feat: introduce GatewayConfig CRD for gateway-scoped configuration #1623
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
d26095e to
8984f5b
Compare
mathetake
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for taking a shot at this!
nacx
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just reviewed the API for now and left one comment.
Apart from that, this GatewayConfig object is only relevant for Kubernets, but not in standalone modes (at least for now). Would it make sense to convey that in the API? For example, the Envoy Gateaay infrastructure resources have the "provider" concept and settings are under a kubernetes config know.
Something like:
apiVersion: aigateway.envoyproxy.io/v1alpha1
kind: GatewayConfig
metadata:
name: comprehensive-config
namespace: default
spec:
kubernetes:
extProc:
env:
(...)
or
apiVersion: aigateway.envoyproxy.io/v1alpha1
kind: GatewayConfig
metadata:
name: comprehensive-config
namespace: default
spec:
extProc:
kubernetes:
env:
(...)
WDYT?
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]>
This commit refactors the GatewayConfig controller to eliminate finalizer management, simplifying the lifecycle handling of GatewayConfig resources. The controller now focuses on notifying referencing Gateways of changes without blocking deletion based on references. Additionally, the documentation has been updated to reflect these changes, including the removal of finalizer behavior descriptions from the API and capability documentation. Signed-off-by: Shabab Qaisar <[email protected]> Signed-off-by: Shabab Qaisar <[email protected]>
This commit refactors the GatewayConfig controller to eliminate finalizer management, simplifying the lifecycle handling of GatewayConfig resources. The controller now focuses on notifying referencing Gateways of changes without blocking deletion based on references. Additionally, the documentation has been updated to reflect these changes, including the removal of finalizer behavior descriptions from the API and capability documentation. Signed-off-by: Shabab Qaisar <[email protected]> Signed-off-by: Shabab Qaisar <[email protected]>
Thankyou for quickly reviewing the changes. I've resolved all of them. Please take a look. |
…pec from the Envoy Gateway API Signed-off-by: Shabab Qaisar <[email protected]>
mathetake
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looking good so far!
…rSpec for defining the external processor's configuration. Signed-off-by: Shabab Qaisar <[email protected]>
Signed-off-by: Shabab Qaisar <[email protected]>
Signed-off-by: Shabab Qaisar <[email protected]>
|
@mathetake I've updated the type to |
mathetake
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me modulo a few comments. Thank you so much for working on this! I will defer to @nacx for the rest as i will not be available to review at least for the next 48 hours
… GatewayConfig resources over route-scoped values. Signed-off-by: Shabab Qaisar <[email protected]>
…urations and list errors Signed-off-by: Shabab Qaisar <[email protected]>
|
Added more tests to make up for coverage. |
Codecov Report❌ Patch coverage is ❌ Your patch status has failed because the patch coverage (52.11%) is below the target coverage (80.00%). You can increase the patch coverage or adjust the target coverage. Additional details and impacted files@@ Coverage Diff @@
## main #1623 +/- ##
==========================================
- Coverage 83.41% 82.81% -0.61%
==========================================
Files 138 143 +5
Lines 12447 12668 +221
==========================================
+ Hits 10383 10491 +108
- Misses 1431 1533 +102
- Partials 633 644 +11 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Description
Introduce GatewayConfig CRD for gateway-scoped configuration of the external processor. Adds controller lifecycle handling (including finalizer management), deprecates AIGatewayRoute-level resource configuration in favor of
GatewayConfig, and updates docs with migration guidance and new options.Example
Related Issues/PRs (if applicable)
Fixes [1]
Special notes for reviewers (if applicable)
Docs, controller, and CRD changes included; route-level resources are deprecated—see migration guidance in docs.
1: #1552