-
Notifications
You must be signed in to change notification settings - Fork 56
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
feat(proxyBuffers): Add router-level and app-level proxy buffer config options #323
Conversation
Codecov Report
@@ Coverage Diff @@
## master #323 +/- ##
==========================================
+ Coverage 55.69% 56.47% +0.77%
==========================================
Files 6 6
Lines 386 425 +39
==========================================
+ Hits 215 240 +25
- Misses 151 159 +8
- Partials 20 26 +6
Continue to review full report at Codecov.
|
I've been trying to test this with the commented-out |
|
I set values via fetching down the latest dev workflow chart (resolved to
Chart installation was successful. Created and deployed a test app
Note how the values above don't match the customized values intended from
|
Current problem for me: using service_annotations:
router.deis.io/nginx.proxyBuffers.number: "10" This leads to an error: $ helm install --namespace=deis ./workflow/
Error: release eloping-molly failed: Service in version "v1" cannot be handled as a Service: [pos 107]: json: expect char '"' but got char '1' Seems ok when editing the router/values.yaml file. |
If I set all the values in the router/values.yaml, I can install the chart. But the nginx.conf doesn't reflect those values, even after I rebuilt from the updated commit. |
This appears to be because the root-level values.yaml in the Workflow "umbrella" chart has an empty If I comment out $ helm upgrade edgy-goat ./workflow/
Error: UPGRADE FAILED: [pos 196]: json: expect char '"' but got char '1' |
@mboersma @vdice let me clarify what's been going on in terms of why you guys have had some difficulty... Prior to this morning, this PR was titled "Add app-level proxy buffer config options." "app level" were the operative words. Adding annotations to the router's own deployment or service doesn't effect the addition of those annotations to the "routable services" (i.e. services for individual applications). An aside: Adding annotations to the router's deployment effects "global" / router-level configuration changes. Adding annotations to the router's service mainly effects whatever load balancer might have been provisioned for the router (depends on what cloud provider, if any, is in play). See #327 for an example of that being used to change an ELB setting if on AWS. Ok... back to the story at hand... this PR was aimed only at app-level configuration before this morning. Since the In a separate thread with @jdumars, I've learned that an important customer wants to set proxy number, size, etc. globally (i.e. at the router-level) and have that apply to all applications. That struck me as heavy-handed, because I think the conditions that trigger someone to tweak those settings probably don't occur often. So what I've done now is spent most of today updating this PR so that all of these settings can be managed globally, but also overridden on an app-by-app basis if so desired... hopefully that makes everyone happy. 😄 (I've changed the PR's name accordingly to reflect this, btw.) So... just to ensure we're all on the same page now. To set router-level configuration, add annotations to the router's deployment. This can allegedly be done by editing Slack me with any follow-up questions. |
And based on my previous comment, I'm wondering if #325 is perhaps not actually an issue, but rather a symptom of this misunderstanding. |
It is an issue, in that there doesn't appear to be a way to set PR #328 seems to fix it, but I'm not sure if it might cause other subtle issues by blindly quoting all annotation values. |
See my comment on that: #328 (comment) |
In conjunction with #328, I rebuilt and re-tested this and see the deployment annotations making it all the way through to the main nginx.conf section. I'll test with app service-specific annotations next. |
^^ double-confirming that deployment annotations work for me as well.
|
I made annotations to app services and they do appear to override the more global defaults correctly inside nginx.conf. |
Fixes #293
Alternative to #307
Some credit goes to @Anichale for getting the ball rolling on this. I'm just taking it over the finish line.
cc @jdumars you also have mentioned needing this feature somewhat urgently, so if I can ask you to verify this meets your needs, that would be great!