Releases: crossplane/crossplane-runtime
v0.2.2
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
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
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 theresource.WithManagedBinder
argument toresource.NewClaimReconciler
are nowresource.Binder
, andresource.WithBinder
. The newBinder
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 nowresource.WithManagedFinalizer
, and accepts only a singleresource.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 theAssign
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. Passresource.WithBinder(resource.NewAPIBinder(...))
for managed resources that do not support the status subresource.resource.ClaimSchedulingReconciler
andresource.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
andresource.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
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:
- Embedded core API types that are used as common fields across the Crossplane CRD landscape. These include structs such as
ResourceClaimSpec
,ResourceSpec
, andClassSpecTemplate
. They can be found in theapis/core
packages. - 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
, andSecretPropagatingReconciler
. These can be found in thepkg/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.