Skip to content

v0.2.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@negz negz released this 04 Nov 03:55
444e96a

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.ManagedBinder interface and the resource.WithManagedBinder argument to resource.NewClaimReconciler are now resource.Binder, and resource.WithBinder. The new Binder type handles both the binding and unbinding of resource claims to managed resources.
  • The resource.ClaimFinalizer interface now handles the addition and removal of resource claim finalizers. Previously it handled only removal.
  • The resource.ManagedFinalizer interface now handles the addition and removal of managed resource finalizers. Previously it handled only removal.
  • The resource.WithManagedFinalizers resource.ManagedReconcilerOption is now resource.WithManagedFinalizer, and accepts only a single resource.ManagedFinalizer.
  • The resource.WithManagedFinalizer resource.ClaimReconcilerOption has been removed.

Behaviour Changes

  • resource.ManagedReconciler now adds finalizers to managed resources immediately before creating the external resource. Previously they were added immediately after the managed resource was created.
  • resource.ManagedReconciler now resolves resource references on every reconcile. AttributeReferencer fields (particularly those that append to a slice during the Assign phase) must ensure they are idempotent.
  • resource.ClaimReconciler now adds a finalizers to resource claims immediately before binding and removes them after unbinding. Previously they were added only at dynamic provisioning time.
  • resource.NewClaimReconciler now defaults to assuming managed resources support the status subresource during claim binding. Pass resource.WithBinder(resource.NewAPIBinder(...)) for managed resources that do not support the status subresource.
  • resource.ClaimSchedulingReconciler and resource.ClaimDefaultingReconciler will now retry allocation of a resource claim to a resource class after a brief wait when no suitable classes are found.
  • The resource.ManagedReconciler and resource.ClaimReconciler no longer attempt to queue another reconciler or update the status of the resource under reconciliation after its finalizer has been removed.