This repository has been archived by the owner on Aug 28, 2024. It is now read-only.
Release v0.2.0
Changelog:
- Compatibility for k8s 1.18 and 1.19 apis and controller-runtime 0.6 (#14)
- Cast parent resource type (#51)
- Define reconciler Sequence as a SubReconciler (#50)
- Status only child reconciliation (#49)
- Add NewConfig helper to streamline manager mains (#43)
- Validate sub reconcilers on setup (#42)
- Gracefully handle child resources mutated by admission controllers
- Adopt Contributor Covenant version 2.0 (#46)
Breaking changes:
While these changes look like a lot, they are each relatively straight forward to adopt. In many cases, the go compiler will provide meaningful error messages. In other cases, the new runtime type validation will provide a meaningful error message. Many of these breakages were necessitated by upstream breaking changes in Kubernetes 1.18 and controller-runtime 0.6.
reconcilers.ParentReconciler#SetupWithManager(mgr ctrl.Manager) error
->reconcilers.ParentReconciler#SetupWithManager(ctx context.Context, mgr ctrl.Manager) error
(#14)reconcilers.SubReconciler#SetupWithManager(mgr ctrl.Manager, bldr *builder.Builder) error
->reconcilers.SubReconciler#SetupWithManager(ctx context.Context, mgr ctrl.Manager, bldr *builder.Builder) error
(#14)reconcilers.SyncReconciler#Setup
:func(mgr ctrl.Manager, bldr *builder.Builder) error
->func(ctx context.Context, mgr ctrl.Manager, bldr *builder.Builder) error
(#14)reconcilers.ChildReconciler#Setup
:func(mgr ctrl.Manager, bldr *builder.Builder) error
->func(ctx context.Context, mgr ctrl.Manager, bldr *builder.Builder) error
(#14)ParentReconciler#SubReconcilers []SubReconciler
is nowParentReconciler#Reconciler SubReconciler
. Usereconcilers.Sequence
for a slice of SubReconcilers. (#50)reconcilers.ChildReconciler#ParentType
is removed, the value is now passed from the the ParentReconciler. ChildReconciler and SyncReconcilers may use a struct or compatible interface to represent the parent resource. (#42)reconcilers.ChildReconciler#DesiredChild
must accept a context as it's first argument. The context is used to pass state between sub reconcilers, always including will make it easier to retrieve stashed state. (#42)reconcilers.IndexControllersOfType(mgr ctrl.Manager, field string, owner, ownee runtime.Object, scheme *runtime.Scheme) error
->reconcilers.IndexControllersOfType(ctx context.Context, mgr ctrl.Manager, field string, owner, ownee runtime.Object, scheme *runtime.Scheme) error
(#14)