-
Notifications
You must be signed in to change notification settings - Fork 270
KREP-005: Level-based Topological Sorting for ResourceGraphDefinitions #859
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
base: main
Are you sure you want to change the base?
KREP-005: Level-based Topological Sorting for ResourceGraphDefinitions #859
Conversation
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: bschaatsbergen The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
Hi @bschaatsbergen. Thanks for your PR. I'm waiting for a github.com 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-sigs/prow repository. |
ad49290 to
69a3da4
Compare
69a3da4 to
5e0add3
Compare
Signed-off-by: Bruno Schaatsbergen <[email protected]>
5e0add3 to
e1843ad
Compare
|
Just as a heads up, KREP-003 and KREP-004 are already open, which makes this one 005. |
| - [Proposal](#proposal) | ||
| - [Design details](#design-details) | ||
| - [1. Level-based topological sorting using Kahn's algorithm](#1-level-based-topological-sorting-using-kahns-algorithm) | ||
| - [2. Parallelization within levels](#2-parallelization-within-levels) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Check out #861, which discusses a mechanism to mitigate the risks of making many changes in parallel.
| concurrently | ||
| 3. **Sequential level progression** — Only advance to the next level after all | ||
| resources in the current level are ready | ||
| 4. **State synchronization between levels** — Synchronize runtime state after |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm curious how this might interact with a ResourceGraphRevision concept: https://github.com/kubernetes-sigs/kro/pull/861/files#diff-611ece9592b9dacab4cf2ada06cd52cbc10e14435f4eef75851673ecd82d5266R187
| * Error handling uses WaitGroup instead of errgroup to avoid early | ||
| cancellation | ||
|
|
||
| ### 3. Reverse-order deletion |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does deletion happen after all of the creation has happened in the DAG?
Does the DAG ever pivot if the inputs to the graph change?
Relates #827
Relates #822