-
Notifications
You must be signed in to change notification settings - Fork 232
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
Porch: BaseRevision controller aka Fan Out controller - but more #3488
Comments
I have a draft of a design, with active discussion here: https://docs.google.com/document/d/1OxNon_1ri4YOqNtEQivBgeRzIPuX9sOyu-nYukjwN1Q/edit?usp=sharing&resourcekey=0-2nDYYH5Kw58IwCatA4uDQw Feedback is welcome. |
The concept behind the proposals sound good. In terms of functionality that is missing in kpt:
Directionally, I like the idea of storing some sort of metadata around when to propose updates in a CRD. I suggest we should start with the simple strategy ("propose asap") - there are still plenty of challenges here e.g. what happens when there's a second update before the first is approved. Then when we have this we can evaluate whether we want to delay proposing updates with a policy CRD. I could see an alternative world where we generate them all but somehow prioritize them / mark them as blocked (with conditions?). @natasha41575 if you want to do this, I think you're unblocked from doing this now - I think the klippy PR doesn't have anything left in it that can't be hacked around easily (and I'm whittling it down). But if there are any blockers, let me know! |
Taking a look at the nephio demo controller and comparing it to the DownstreamPackage discussed in my above doc, I think there are a number of similarities and perhaps functionality that we can borrow from the nephio controller and put it in the DownstreamPackage controller. What the two controllers should definitely have in common is:
We can put this functionality into a common library for both controllers to share. Beyond that, the nephio PackageDeployment controller has some other interesting ideas that we could borrow. Namely, the nephio PackageDeployment controller has this idea of "injection". For the nephio project, there are these "Cluster" objects in the cluster that provide a way to target a downstream repository. The nephio The nephio controller has logic to perform an "injection" if these conditions are met:
If these conditions are met, the injection occurs. In this case, injection means that the I found this idea of injection not only interesting but also useful (particularly in conjunction with the watches we added there), so I'd like to include some version of this in the DownstreamPackage controller that we will add to porch. But two things will have to be different:
For example, for the
and
This is just a rough idea to explain what I'm thinking at a high level; we could refine the syntax in the doc. @johnbelamaric WDYT? Does this make sense? |
Yes, that makes sense to me, looks very cool. A couple of thoughts:
With the defaults, your PD-like UpstreamPolicy would become really simple. |
I wonder if |
👍 I like this. I can change the name in a subsequent PR. |
@johnbelamaric The basic implementation is done, so wdyt about closing this issue? I think other enhancements are captured by #3827, and we can discuss release of these controllers separately |
Sounds good! Closing. |
Describe your problem
In the Nephio controller PoC I looked at a fan-out controller. We have also discussed this and related issues in #3455, #3387, #3347, #3348 and many other places.
I put together a proposal for a resource and controller that does basic management of the upstream/downstream relationship. Right now it is in gdoc form right now because it's easier to manage comments and collaborate. Please take a look, at some point we can move this to a design proposal.
https://docs.google.com/document/d/1EzUUDxLm5jlEG9d47AQOxA2W6HmSWVjL1zqyIFkqV1I/edit?usp=sharing
The text was updated successfully, but these errors were encountered: