reconcilerio / runtime

Kubernetes reconciler framework building on controller-runtime
https://reconciler.io/runtime
Apache License 2.0
25 stars 5 forks source link

Pluggable strategies for ResourceManager #509

Open scothis opened 7 months ago

scothis commented 7 months ago

The ResourceManger manages the lifecycle of a resource by calling create/update/delete as needed to keep the actual and desired state in sync. Currently the update part is hard coded as a client.Update() call. There are other ways to manage "updating" a resource including various flavors of patching and most interestingly server-side apply. Using server-side apply with duck types should make update operations safe, negating the need for #506.

A user should be able to override the "update" strategy for the resource manager in a ChildReconciler/ChildSetReconciler/AggregateReconciler/anywhere else the ResourceManager is used today.