Releases: crossplane/crossplane-runtime
v0.11.0
Enhancements
- #227 Allows XRs and XRCs to record when they last published their connection details.
- #216 Enhances the managed resource reconciler to make it easier to 'late initialize' observed managed resources.
Deprecations
- #227 Marks the connection secret propagation machinery as deprecated. This machinery pertained to
KubernetesApplication
, which has already been removed.
Breaking Changes
- #219 Removes several types that have been deprecated for some time, including utilities pertaining to
KubernetesApplication
, and reference resolution
v0.10.0
This release contains several deprecation notices and breaking changes that simplify the overall experience.
Enhancements
- #194 Package parser is introduced.
- #199
GetInteger
is added tofieldpath
package. - #200
ErrNotControllable
error type is introduced to be used byApplicator
s. - #202 New defaulter for managed resources to select the default
ProviderConfig
if none is specified. - #206 Add machinery to enable providers keep track of which
ProviderConfig
s are used by which managed resources. - #211 Linter for new packages.
- #213 Reference resolver errors include more information about the cause of the error.
- #212
ProviderConfigSpec
(formerlyProviderSpec
) now has static source types to choose as credential source.
Deprecations
- #185
ReclaimPolicy
is deprecated in favor of newDeletionPolicy
. - #189
ProviderSpec
is deprecated in favor ofProviderConfigSpec
. - #195
meta.ReferenceTo
function is deprecated in favor of strongly typedmeta.TypedReferenceTo
function. - #197
KubernetesTarget
reconciler is deprecated.
Breaking Changes
#201 is the biggest breaking change of this release where we removed support for claims & classes in favor of composition.
- #182 Use Reference type for provider references instead of corev1.ObjectReference.
- #187 Requirements are renamed to claims.
- #195
meta.AsOwner
andmeta.AsController
now acceptsTypedReference
instead ofcorev1.ObjectReference
as argument. - #196 Reason strings of conditions have been changed.
- #201 Remove support for claim and classes.
Behavior Changes
v0.9.0
This release is mainly focused on bug fixes and reliability improvements related to the recent Composition feature support that was included in v0.8.0.
Bug Fixes
- #176 Update with object that is gotten in APIUpdatingApplicator: Ensures the most recent object version is used to avoid stale resource versions during Update calls.
Breaking Changes
Behavior Changes
- #174 Don't wait for IsBindable before calling AddFinalizer: the finalizer for an object will be added without waiting for the object to get to a bindable state, ensuring that clean-up for objects that never make it to bindable will still occur.
- This means dynamically provisioned managed resources will be deleted along with their claim even if they never bound.
- #175 Bind and unbind managed resources conservatively: The behavior for binding/unbinding is now more cautious to prevent scenarios where managed resources will have double ownership or race conditions for ownership.
v0.8.0
The release primarily includes features to enable composition in Crossplane.
Bug Fixes
- #171 Deletes installed CRDs in foreground so that subsequent integration tests do not fail because old CRDs are still being deleted.
Breaking Changes
- #155 Removed all OAM reconcilers and interfaces as they now reside in oam-kubernetes-runtime.
In addition, the following introduced deprecations:
- #151 Deprecated the previous iteration of the reference resolving interface.
Behavior Changes
- #151 Added a new reference resolver interface and introduced reference selectors.
- #157 Added a client for unstructured Crossplane types.
- #159 Made
AddOwnerReference
always update the array of owner references. - #160 Added a "controller engine" that manages the lifecycles of controllers.
- #169 Distinguishes field path "field not found" errors from other errors.
v0.7.0
The release allows for resources to take control of existing orphaned connection secrets to enable back-up and restore. Previously, Crossplane used opaque Kubernetes secrets to store connection information, meaning that secrets created by Crossplane and those not created by Crossplane could not be distinguished. Crossplane now uses its own connection.crossplane.io/v1alpha1
secret type such that it can adopt orphaned secrets without risk of taking control of a secret created for other purposes.
Bug Fixes
No bug fixes were introduced as part of this release.
Breaking Changes
There are no breaking changes as part of this release, but #140 deprecated the ControllersMustMatch
ApplyOption
.
Behavior Changes
- #139 Introduces the
connection.crossplane.io/v1alpha1
secret type to distinguish connection secrets that Crossplane can adopt without risk of taking control of an existing secret that it did not create. - #140 Removes the requirement for connection secrets to have matching controller UIDs to be propagated. This allows for a lost resource to be recreated and assume control of its connection secret.
- #126 Causes
Not Found
errors to be skipped when cleaning up CRDs installed using the integration testing framework.
v0.6.0
The most significant change in this release was the org name update from crossplaneio
to crossplane
, which resulted in a breaking change to the Go module.
Bug Fixes
No bug fixes were introduced as part of this release.
Breaking Changes
The breaking org name change was executed in #117 and #118.
Behavior Changes
- #121 Adds a new package for getting and setting unstructured fields by path.
- #125 / #129 Makes it possible to pass custom checks and modifications to merge patches.
- #123 Adds a
GetExternalTags
function to consistently tag external resources across Crossplane providers. - #130 Adds new OAM
Trait
andWorkload
shared reconcilers that can be used across OAM controllers.
v0.5.0
This release includes adding logging and eventing to all reconcilers, as well as an update to the ProviderSpec
embedded API type.
Bug Fixes
No bug fixes were introduced as part of this release.
Breaking Changes
- #112 / #113 Removes
pkg/util
and all helper functions included within. They have been moved to either anotherpkg
incrossplane-runtime
, or are implemented in the stack for which they were originally created. - #115 Updates the
credentialsSecretRef
field onProviderSpec
to be optional, such that alternate authentication methods can be implemented. For an example of an alternative authentication method, see stack-aws. - #108 Primarily introduces new behavior, but could also require minor updates to consumers of
pkg/logging
.
Behavior Changes
- #108 Adds logging and eventing behavior to all reconcilers. For more information on observability in Crossplane, see the developer guide.
v0.4.0
This release includes a number of breaking changes related to package structure. There are also updates to the existing Secret
reconciler and the introduction of the new Target
reconciler.
Bug Fixes
No bug fixes were introduced as part of this release.
Breaking Changes
- #106 / #109 / #110 Broke existing reconcilers out of the
resource
package and into their own individual packages. No functionality was altered as part of this change, but updating tov0.4.0
will require significant changes to import paths.
Behavior Changes
- #92 Modifies the
Secret
reconciler such that secrets can be propagated one-to-many, as long as both sides consent. Existing implementations should update to enqueue requests for the propagatedSecret
instead of the propagator. - #103 Added a new
Target
reconciler and interface that allows controllers to propagate secrets from managed resources toKubernetesTarget
namespaces.
In addition to the changes listed above, crossplane-runtime
migrated to go 1.13
as part of #107.
v0.3.0
This release primarily introduces an update of the controller-runtime dependency to v0.4.0.
Bug Fixes
No bug fixes were introduced as part of this release.
Breaking Changes
- #94 The update of
controller-runtime
required a bump of all Kubernetes dependencies to v1.16.0, which included a small breaking change tometav1.ObjectMeta
.
Behavior Changes
No existing behavior is changed as part of this release. However, the following PR's included new functionality:
v0.2.3
This is a patch release to address a high impact bug in the claim binding process.
Bug Fixes
- #83 - Namespaced resource claims are no longer the controller reference of cluster scoped managed resources. Cluster scoped resources controlled by namespaces resources are not supported by Kubernetes, and are at high risk of being deleted when the Kubernetes controller manager restarts.
Breaking Changes
This release does not introduce any breaking changes to v0.2.0.
Behaviour Changes
- #87 - The reclaim policy field of all managed resources and resource classes now has identical semantics to that of the reclaim policy field of persistent volumes and storage classes. It controls whether the managed resource is deleted along with its claim, as well as whether the external resource is deleted along with its managed resource.
Deprecations
resource.ObjectMetaConfigurator
is deprecated. It has been replaced byresource.ConfigureNames
.