-
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
Consistent and Correct Conditions #5076
Comments
Thanks for the writeup @jonjohnsonjr. That makes a lot of sense to me! |
@JRBANCEL pointed out some more inconsistencies in our lifecycle Mark* methods:
The naming is inconsistent: NotReady means Unknown, other times NotReady means failed. It's not clear from the method name what state you're actually setting. For simple methods that just set the state I'd propose following this pattern, since it's most prevalent: MarkFooReady -> Ready=True There are a lot of convenience methods to make setting certain statuses more legible, we should probably leave those alone for now. |
We also need |
also this #5804 (comment) for cross referencing. |
As part of #4937 I took a look at our current reconciler loops and put together a few state machines to help visualize the potential condition sets you can end up with. A few thoughts about them:
I haven put together a Revision reconciler state machine yet, but here are the Service, Route, and Config ones. KService ReconcilerRoute ReconcilerConfiguration Reconciler |
Issues go stale after 90 days of inactivity. Send feedback to Knative Productivity Slack channel or file an issue in knative/test-infra. /lifecycle stale |
Stale issues rot after 30 days of inactivity. Send feedback to Knative Productivity Slack channel or file an issue in knative/test-infra. /lifecycle rotten |
Rotten issues close after 30 days of inactivity. Send feedback to Knative Productivity Slack channel or file an issue in knative/test-infra. /close |
@knative-housekeeping-robot: Closing this issue. In response to this:
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. |
/remove-lifecycle rotten |
This issue is stale because it has been open for 90 days with no |
/remove-lifecycle stale |
/lifecycle frozen |
Not all of our conditions follow our condition conventions.
We also don't propagate conditions in a consistent (or even correct) way: #4937
I'm opening this to track some work around wrangling our conditions.
In general, everything should look something like this:
Here's (a bit simplified) Service as an example. Service is pretty close to correct, but it's not unconditionally bumping ObservedGeneration or updating its status with reconciliation errors (bolded things aren't correct (yet)):
We'll also need to rework the Revision and KPA and SKS conditions to fit better into this world, since they're all over the place.
TODO
ObservedGeneration
/area API
The text was updated successfully, but these errors were encountered: