Skip to content

Releases: crossplane/crossplane-runtime

v0.2.2

14 Nov 20:30
30a2482
Compare
Choose a tag to compare
v0.2.2 Pre-release
Pre-release

This tiny release introduces a new constant that can be used by Kubernetes cluster managed resources to expose a rendered kubeconfig file in their connection secret. It does not contain any bug fixes, breaking changes, or behaviour changes.

v0.2.1

05 Nov 16:21
723f72b
Compare
Choose a tag to compare
v0.2.1 Pre-release
Pre-release

This is a patch release to address a specific bug in the managed reconciler.

Bug Fixes

  • #74 - References to deleting managed resources blocks deletion.

Breaking Changes

This release does not introduce any breaking changes to v0.2.0.

Behaviour Changes

  • resource.ManagedReconciler now does not check to make sure all references have been resolved when the resource is being deleted.

v0.2.0

04 Nov 03:55
444e96a
Compare
Choose a tag to compare
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.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.

v0.1.0

28 Oct 21:54
6916b94
Compare
Choose a tag to compare
v0.1.0 Pre-release
Pre-release

This is the initial release of crossplane-runtime and coincides with the v0.4.0 release of Crossplane. The library serves two major purposes in the Crossplane ecosystem:

  1. Embedded core API types that are used as common fields across the Crossplane CRD landscape. These include structs such as ResourceClaimSpec, ResourceSpec, and ClassSpecTemplate. They can be found in the apis/core packages.
  2. Shared reconciler functions that allow for resource controllers to implement common patterns for managing external resources. Currently, there are five reconciler implementations that are used across Crossplane stacks: ManagedReconciler, ClaimReconciler, ClaimSchedulingReconciler, ClaimDefaultingReconciler, and SecretPropagatingReconciler. These can be found in the pkg/resource package.

crossplane-runtime is meant to encompass any shared components or logic across the Crossplane ecosystem and will evolve with the project as design patterns further standardize.