config: change default initial fetch timeout to 15s#7571
config: change default initial fetch timeout to 15s#7571mattklein123 merged 9 commits intoenvoyproxy:masterfrom
Conversation
Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
|
@mattklein123 @htuch as discussed changed this. PTAL. |
mattklein123
left a comment
There was a problem hiding this comment.
Thanks, at a high level I think this is a good change. I have some small comments. I would also like @htuch to take a look.
/wait
| // when the xDS API subscription starts, and is disarmed on first config update or on error. 0 | ||
| // means no timeout - Envoy will wait indefinitely for the first xDS config (unless another | ||
| // timeout applies). Default 0. | ||
| // timeout applies). If not specified the default is 15000ms (15 seconds). |
There was a problem hiding this comment.
nit: I think you could just say "the default is 15s."
| // means no timeout - Envoy will wait indefinitely for the first xDS config (unless another | ||
| // timeout applies). Default 0. | ||
| // timeout applies). If not specified the default is 15000ms (15 seconds). | ||
| google.protobuf.Duration initial_fetch_timeout = 4; |
There was a problem hiding this comment.
Should this have a constraint to make this non-zero if it is set?
There was a problem hiding this comment.
I was thinking about it, but decided against it because it may allow people get back old behaviour it they need. I was thinking of updating the doc with that info. WDYT?
There was a problem hiding this comment.
doc already exists
// 0 means no timeout - Envoy will wait indefinitely for the first xDS config (unless another
// timeout applies)
docs/root/intro/version_history.rst
Outdated
|
|
||
| 1.12.0 (pending) | ||
| ================ | ||
| * config: changed the default value of :ref:`initial_fetch_timeout <envoy_api_field_core.ConfigSource.initial_fetch_timeout>` from 0s to 15s. This is a change in behaviour in the sense that Envoy initialization always completes within 15s by default. Refer to :ref:`initialization process <arch_overview_initialization>` for more details. |
There was a problem hiding this comment.
I don't think it's true that Envoy will always complete init within 15s, given that other things have to happen like HC, etc. Can you rephrase?
Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
|
/retest |
|
🤷♀️ nothing to rebuild. |
|
/retest |
|
🤷♀️ nothing to rebuild. |
mattklein123
left a comment
There was a problem hiding this comment.
LGTM, thanks. I would still like to hear from @htuch on this one.
/azp run envoy-macos
|
/azp run envoy-macos |
|
Azure Pipelines successfully started running 1 pipeline(s). |
htuch
left a comment
There was a problem hiding this comment.
I think it's reasonable to set a default like this, but I wonder if this counts as a breaking API change; we're totally changing the behavior of Envoy initialization within a major API version?
I suppose it's a breaking change, but IMO it's for the better so FWIW I think it's OK. If we are concerned perhaps we should runtime guard it? |
I agree with you that it is better change. Since the old behaviour is still supported with the same config, do we still want to guard with runtime? I am assuming runtime enables this by default. |
|
My preference would be to enable this by default, the runtime would just store the default which would allow people to revert back to the previous behavior. Let's see what @htuch thinks. |
|
Probably worth runtime guarding, since it will allow Envoy global reversion to the old behavior. I'm thinking through how this relates to #6271. Reading through the document, I think we decided that it doesn't matter what we set or change defaults for wrapped types to, since a management server that actually cares should set fields rather than relying on defaults. So, I think we are safe from a stable versioning perspective here. |
If we are safe from stable versioning perspective - I prefer not to introduce the runtime guard as it introduces another level of config for this field. From operational perspective would runtime provide better way to revert - some how it needs to be set for all running envoys right? |
Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
|
We're good from an API stability perspective, so I'll leave this between you an @mattklein123 |
|
@htuch Thank you. @mattklein123 WDYT? should we runtime guard this given the default value we set here is more sensible? |
…al_fetch Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
|
/azp run envoy-macos |
|
Commenter does not have sufficient privileges for PR 7571 in repo envoyproxy/envoy |
mattklein123
left a comment
There was a problem hiding this comment.
I think we can do this without runtime guarding. I will send an email to envoy-announce@ about this though. Thanks @ramaraochavali!
Description: As discussed in PR #7427, changing the default initial fetch time out to 15s.
Risk Level: Low
Testing: Changed
Docs Changes: Updated
Release Notes: Added