Closed shiyan2016 closed 3 years ago
Hi @shiyan2016, the request seems reasonable, could you please describe your case more clearly?
Some controller which want to control the release, we need to mark the resource pasued to make the controller waiting paused to be false to work.
I guess the Some controller
you mean is running in federated clusters, they will modify resources propagated by kubefed
, have I understood correctly? does the resource is a custom resource defined by CRD?
@RainbowMango yes, it is. And the resource is a custom resource.
@shiyan2016 If i understand correctly you want kubefed to only reconcile the state of federated resources for certain fields while being able to ignore others.
Could you share a use case so we can get an idea of what you are trying to do ? Perhaps we could propose an alternative workaround.
We have a use case that would benefit from this feature.
We have Gloo CRDs which are federated (https://www.solo.io/products/gloo-edge/). Problem is that these resources are changed in member clusters, e.g. Gloo controller changes status field periodically.
So, we have a situation like this: kubefed sync resource (removes status) --> gloo adds status --> kubefed sync --> gloo status --> and so on...
Not sure if we can "ignore" status field change or do we need this feature for it. Thanks!
@shiyan2016 If i understand correctly you want kubefed to only reconcile the state of federated resources for certain fields while being able to ignore others.
Could you share a use case so we can get an idea of what you are trying to do ? Perhaps we could propose an alternative workaround.
Our user case is we have Rollout CRD which is federated, and there is a field spec.paused which used to control the rollout. This used for fort & canary pod release. after fort or canary pod release. we need to pause the release(make the paused to true) until user confirmed is ok to continue release (make the paused to false). Since the member cluster rolllout controlller has made the paused to true waiting for user confirm. But the fed controller sync and overwrite paused to false, which will make the it to contiune update other pods. This is not expected for us. So if the fed controller can ignore some fields changed by member cluster like replicas, it will solve our problem. Thanks. @hectorj2f @RainbowMango
What would you like to be added: I would like to have a way to define a list of fields for resource that if they're updated on some cluster won't trigger federation controller to sync and overwrite them.
Why is this needed: Some controller which want to control the release, we need to mark the resource pasued to make the controller waiting paused to be false to work. But If I mark the resource paused, the federation controller will overwrite it to false, which will make the release run again.
/kind feature