-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Fix invalid helloworld example #4780
Conversation
This patch makes a tiny fix which removes invalid setting in configuration example. After knative#4731, `periodSeconds` needs to be set with `failureThreshold` and `timeoutSeconds`. This patch simply removes `periodSeconds` from the config.
Hi @nak3. Thanks for your PR. I'm waiting for a knative member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
/ok-to-test That sounds like a breaking change though! Should we revisit that logic and make sure we apply defaulting instead of potentially breaking users? |
I think it makes sense to apply k8s's probe defaults for TimeoutSeconds and FailureThreshold in the cases where PeriodSeconds != 0. |
Please allow me to confirm. Not only
(Below may not need defaulting, but I think there are many users had
Should we apply defaulting to cover all of them? |
In the cases where I guess we'd then reserve our aggressive probe for when Thoughts? @mattmoor @dgerd @markusthoemmes Also, did the 3rd example work before? I thought we always disallowed port. |
I think my concern is that specifying these are a subtle way of degrading your cold start time. I feel like erroring our and simply requiring a value for periodSeconds seemed reasonable. Happy to discuss more, but that's my $0.02 |
So K8s defaulting behavior is:
In #4731 we allow Given where we are in the stage of our project, I would like to make sure that our top goal here is to select behavior that is unsurprising to customers specifying probes. Secondary to this goal we should minimize impact to users today. |
I see. I have opened for the PR here #4864
Sorry, it was my mistake! |
To facilitate a better discussion today at the API WG adding a few options here to this issue with an attempt to lay out the pros/cons. Option 1 - Dynamic defaultsThis is the change in #4864. If we set fields that are incompatible with our default probe then assume a user wants a regular probe and adjust. Pros:
Cons:
Option 2 - Bimodal defaults (What we do in HEAD)If Pros:
Cons:
Option 3 - Unspecified is special (not defaulted)This option is to take a step back on our defaulting behavior. Instead of Pros:
Cons:
Option 4 - Introduce new fieldsSee kubernetes/kubernetes#76951 I would not recommend this unless we can eventually get the behavior in upstream K8s, but we could add Pros:
Cons:
|
@joshrider @nak3 @shashwathi @markusthoemmes Wanted to get your thoughts on taking a step back in functionality and proceeding with the following:
I believe that takes us a step back in:
It moves us forward in that:
This keeps the value of:
Anything else missing here? |
I think that covers most of it. One thing I'd add to the "takes us a step back" pile is that we lose the option of using an httpGet instead of tcpSocket in the sub-second probe. I'm not sure how important being able to customise successThreshold on a sub-second probe will be, but maybe having the option to pick between TCP/HTTP is more relevant? Overall, I don't have much of a lean either way. With regard to rolling back some of the functionality, I can see value in not breaking anyone's existing stuff. If minimising surprises for users is a top priority, having a user's probe simulate K8S's semantics seems desirable. There didn't seem to be much enthusiasm for kubernetes/kubernetes#76951, so I'm unsure of how much value we get out of smoothing the way for an eventual adoption of a sub-second K8S probe. On the side of leaving things mostly intact, I can appreciate wanting to trim down startup time wherever possible. In summation, 🤷♂️ |
/cc @mattmoor |
This means we can't support aggressively probing with |
@dgerd did we have any closure on the decisionmaking above? Might've fallen through the cracks or I've just forgotten the resolution. |
I vaguely recall something like: Well it's a very small break and we'd rather take this breaking change than trying to work around it at this point? Seems like we should get a closure on this pre v1. |
@dgerd Pingeroo. |
We decided to take Option #2 with improved error messages. That said this change looks good. /approve |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: dgerd, nak3 The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
The following jobs failed:
Automatically retrying due to test flakiness... |
/test pull-knative-serving-unit-tests |
This patch makes a tiny fix which removes invalid setting in
configuration example.
After #4731,
periodSeconds
needs to be set with
failureThreshold
andtimeoutSeconds
. Thispatch simply removes
periodSeconds
from the config.Current error:
Proposed Changes
periodSeconds
from config.Release Note