feat: recursive expansion#2679
Conversation
Codecov ReportPatch coverage:
Additional details and impacted files@@ Coverage Diff @@
## master #2679 +/- ##
==========================================
+ Coverage 52.79% 53.07% +0.28%
==========================================
Files 123 124 +1
Lines 10941 11182 +241
==========================================
+ Hits 5776 5935 +159
- Misses 4710 4772 +62
- Partials 455 475 +20
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 1 file with indirect coverage changes Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report in Codecov by Sentry. |
maxsmythe
left a comment
There was a problem hiding this comment.
Nice job!
Biggest missing piece is the need to figure out conflicting templates.
acpana
left a comment
There was a problem hiding this comment.
this is looking great 🥇 ; main question about the graph impl
Signed-off-by: davis-haba <davishaba@google.com>
Signed-off-by: davis-haba <davishaba@google.com>
Signed-off-by: davis-haba <davishaba@google.com>
Signed-off-by: davis-haba <davishaba@google.com>
Signed-off-by: davis-haba <davishaba@google.com>
Signed-off-by: davis-haba <davishaba@google.com>
2357e4a to
3e80ff6
Compare
Signed-off-by: davis-haba <davishaba@google.com>
Signed-off-by: davis-haba <davishaba@google.com>
maxsmythe
left a comment
There was a problem hiding this comment.
Code LGTM, haven't looked at tests yet
|
LGTM with nits, I mean |
Signed-off-by: davis-haba <davishaba@google.com>
acpana
left a comment
There was a problem hiding this comment.
thanks for addressing comments made earlier 🥇 ; I don't have anything else blocking on my end
Signed-off-by: davis-haba <davishaba@google.com>
Implements recursive expansion Signed-off-by: Anlan Du <adu47249@gmail.com>
Implements recursive expansion.
Example use case: one could configure Cronjobs to expand into a Jobs, which then expands into Pods.
If a cycle is detected which would result in infinite expansion, every template that belongs to that cycle is disabled.
This is to prevent a "first past the post" race condition where different pods may have different templates enabled depending on the order their controllers reconciled the templates.
By disabling all templates belonging to a cycle, we can guarantee that every controller is enforcing the same templates in the steady state (after controllers have finished reconciling all updates).
Fixes: #2511