v0.2.0
Pre-release
Pre-release
This is primarily a bug fix release, but includes several API and behaviour changes.
Bug Fixes
- #57 - Resource claim scheduling and defaulting controllers only try once to allocate a claim to a class.
- #62 - A managed resource with unresolved references cannot be deleted.
- #63 - Managed resources with incorrect or insufficient provider credentials cannot be deleted.
Breaking Changes
- The
resource.ManagedBinderinterface and theresource.WithManagedBinderargument toresource.NewClaimReconcilerare nowresource.Binder, andresource.WithBinder. The newBindertype handles both the binding and unbinding of resource claims to managed resources. - The
resource.ClaimFinalizerinterface now handles the addition and removal of resource claim finalizers. Previously it handled only removal. - The
resource.ManagedFinalizerinterface now handles the addition and removal of managed resource finalizers. Previously it handled only removal. - The
resource.WithManagedFinalizersresource.ManagedReconcilerOptionis nowresource.WithManagedFinalizer, and accepts only a singleresource.ManagedFinalizer. - The
resource.WithManagedFinalizerresource.ClaimReconcilerOptionhas been removed.
Behaviour Changes
resource.ManagedReconcilernow adds finalizers to managed resources immediately before creating the external resource. Previously they were added immediately after the managed resource was created.resource.ManagedReconcilernow resolves resource references on every reconcile.AttributeReferencerfields (particularly those that append to a slice during theAssignphase) must ensure they are idempotent.resource.ClaimReconcilernow adds a finalizers to resource claims immediately before binding and removes them after unbinding. Previously they were added only at dynamic provisioning time.resource.NewClaimReconcilernow defaults to assuming managed resources support the status subresource during claim binding. Passresource.WithBinder(resource.NewAPIBinder(...))for managed resources that do not support the status subresource.resource.ClaimSchedulingReconcilerandresource.ClaimDefaultingReconcilerwill now retry allocation of a resource claim to a resource class after a brief wait when no suitable classes are found.- The
resource.ManagedReconcilerandresource.ClaimReconcilerno longer attempt to queue another reconciler or update the status of the resource under reconciliation after its finalizer has been removed.