fix: split the ext proc config to avoid k8s size limits - #1865
Conversation
13c7179 to
c501d69
Compare
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #1865 +/- ##
==========================================
- Coverage 84.91% 84.82% -0.10%
==========================================
Files 145 148 +3
Lines 21593 21838 +245
==========================================
+ Hits 18336 18524 +188
- Misses 2161 2194 +33
- Partials 1096 1120 +24 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
319dd49 to
fcf54fc
Compare
Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> refactor Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> polish code Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com>
04c3931 to
981d8cb
Compare
nacx
left a comment
There was a problem hiding this comment.
Overall, it looks good.
So the summary of the PR is that:
- It will split the secret if it exceeds the max object k8s size, and split to a max of 8 chunks (for now).
- If there is no size overflow, empty chunks up to the 8 max ones will be created to avoid having to remount and cycle the pod.
- The extproc receives a new parameter,
-configBundlePath, that if present will start the new watcher to watch for the new chunked config.
If this understanding is OK :) I have a few questions:
- Can we avoid creating the empty chunks? We could still add the volumes and secret projections to the pod, but mark those
optional? Would that work to avoid having to create the empty secrets? - The controller will pass the new arg
-configBundlePathto the extproc if it finds the "index" secret. That secret is always created now, correct?- Could we provide a way to opt-in to this new feature, so that the controller does not create this secret (and extproc does not instantiate the new watchers, etc, etc)? This is quite a sensitive feature, and it would be great to have an option to explicitly opt-in.
Thanks for this PR!
Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com>
Signed-off-by: Huabing Zhao <zhaohuabing@gmail.com>
|
/retest |
Fixed.
Both the chunked secrets are always created, and the legacy secret is kept for upgrade where both the old and new version of the AIGW could coexist. We can remove the legacy one in the next release. In theory, we could opt-in the chunked secrets, but I have a few concerns to this approach:
|
|
/retest |
|
/retest |
|
/retest |
) **Description** This PR splits the ext proc/mcpproxy config into multiple secrets, so it can bypass the k8s size limits. **Related Issues/PRs (if applicable)** Fixes envoyproxy#1613 cc @nacx --------- Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> Signed-off-by: Huabing Zhao <zhaohuabing@gmail.com> Co-authored-by: Ignasi Barrera <ignasi@tetrate.io> Signed-off-by: Daniel Chernovsky <daniel.chernovsky@doubleverify.com>
Description
This PR splits the ext proc/mcpproxy config into multiple secrets, so it can bypass the k8s size limits.
Related Issues/PRs (if applicable)
Fixes #1613
cc @nacx