Crossplane Versions Save

The Cloud Native Control Plane

v1.15.2

1 month ago

Notable Changes

This is a patch release scoped to fixing issues reported by users of Crossplane v1.15. The issues of particular note that are resolved in this release are:

  • #5292 - Native patching behavior change - XR desired state dropped if a resource won't get all required schema values
    • Fixes a regression in the composition machinery that occurs when applying patches that fail.
    • After this fix, failures to apply patches to one resource in a composition will no longer block other resources within that composition from being applied.
    • This restores previous long standing behavior.
    • #5114 - Passing values in a composition to a required OpenAPI field causes an endless reconcile loop is also addressed by this fix.

What's Changed

Full Changelog: https://github.com/crossplane/crossplane/compare/v1.15.1...v1.15.2

v1.14.8

1 month ago

Notable Changes

This is a patch release scoped to fixing issues reported by users of Crossplane v1.14. The issues of particular note that are resolved in this release are:

  • #5292 - Native patching behavior change - XR desired state dropped if a resource won't get all required schema values
    • Fixes a regression in the composition machinery that occurs when applying patches that fail.
    • After this fix, failures to apply patches to one resource in a composition will no longer block other resources within that composition from being applied.
    • This restores previous long standing behavior.
    • #5114 - Passing values in a composition to a required OpenAPI field causes an endless reconcile loop is also addressed by this fix.

What's Changed

Full Changelog: https://github.com/crossplane/crossplane/compare/v1.14.7...v1.14.8

v1.15.1

2 months ago

What's Changed

Full Changelog: https://github.com/crossplane/crossplane/compare/v1.15.0...v1.15.1

v1.14.7

2 months ago

What's Changed

Full Changelog: https://github.com/crossplane/crossplane/compare/v1.14.6...v1.14.7

v1.14.6

2 months ago

Release v1.14.6 contains a few recent bug and security fixes.

What's Changed

Renovate

Full Changelog: https://github.com/crossplane/crossplane/compare/v1.14.5...v1.14.6

v1.15.0

3 months ago

The v1.15.0 release is a regular quarterly Crossplane release that is focused on expanding the capabilities of Crossplane's Composition features, enhancing the Crossplane CLI, and improving the developer experience. This release introduces key enhancements and new features that further empower platform engineers and developers to compose their infrastructure using Crossplane.

🎉 Highlights

  • Server-Side Apply for Claim Syncing: This alpha feature uses Kubernetes' Server-Side Apply to improve syncing between Composite Resources and their claims. This feature resolves several outstanding issues but should be enabled carefully after consideration of known behavior changes.
  • Expanding Composition Functions: Composition Functions now support requesting arbitrary cluster-scoped resources, enabling more complex compositions that can interact with a wider range of Kubernetes resources. Additionally, Crossplane introduces Python SDK and templates for Composition Functions, widening the community of potential function developers.
  • Enhancements to the Crossplane CLI:
    • New subcommands like crossplane beta validate for schema validation, crossplane beta top for resource utilization views similar to kubectl top pods, and crossplane beta convert for converting resources to newer formats or configurations.
    • Improved existing commands like crossplane xpkg init with support for specific git references and additional templates, and crossplane beta render with new flags for including full XR details and context.
    • crossplane beta trace now understands Crossplane packages and can display the entire dependency graph for a given package, along with status for each entry, vastly simplifying the troubleshooting of Crossplane package installations and upgrades.

🚨 Warnings and breaking changes

  • The default registry that Crossplane's package manager will install packages from has changed to xpkg.upbound.io from index.docker.io. After upgrading, Crossplane will start pulling packages from xpkg.upbound.io, unless a fully qualified name is specified for a package that includes the specific registry the package resides in, or you have overridden the default registry value with the --registry flag.
  • The RBAC manager's --manage flag was dropped, this flag allowed configuring the management policies between All and Basic.
    • In v1.13 we switched the default to Basic, and now we are removing the All option completely.
    • ⚠️ If needed, see the related issue to see how to restore the All behaviour.

💡 New features

What's new in v1.15.0?

Server-Side Apply based Claim syncing

Alpha support for Server-Side Apply (ssa) based syncing between Composite Resources and Claims was introduced in this release and can be enabled by passing the --enable-ssa-claims flag to Crossplane. This allows to solve a few syncing issues reported by users, but also implies some behaviour changes that users need to be aware of and provide feedback for before enabling it by default, see the related issue for more details.

Composition Functions

Extra Resources

Composition Functions can now request Crossplane to fetch any cluster-scoped resource Crossplane has access to for them, so before computing the "desired state", this opens up a lot of possibilities, such as reimplementing almost completely the in-tree environment support as a Function, see crossplane-contrib/function-environment-configs.

Metrics

Crossplane will now emit basic metrics related to Functions, e.g. number of requests sent, number of responses received and runs duration. See https://github.com/crossplane/crossplane/pull/5006 for example metrics.

Python Composition Functions

In addition to Go, Composition Functions can now easily be written in Python too, thanks to a new SDK and template. You can read more about it in the docs.

Crossplane CLI

Crossplane v1.15 introduces a few new subcommands:

  • crossplane beta validate: allowing to validate a set of resources against their schemas. Being built for Crossplane, the command can automatically download schemas for Crossplane Packages (xpkgs) and directly understands CompositeResourceDefinitions (XRDs).
  • crossplane beta top: providing quick resource utilization insight for Crossplane's pods, similar to kubectl top pods.
  • crossplane beta convert with two subcommands:
    • pipeline-composition: which allows to automatically convert Compositions to the Pipeline mode, using crossplane-contrib/function-patch-and-transform.
    • deployment-runtime: which allows to automatically convert a deprecated ControllerConfig resource to the new DeploymentRuntimeConfig.

Existing subcommands were also improved:

  • crossplane xpkg init now also supports printing helpful messages and init-scripts. It now support initialising from a specific git reference, --ref-name, and also two new templates: function-template-python and configuration-template.
  • crossplane beta render was enriched with a few new flags and capabilities:
    • --include-full-xr: to output the full Composite Resource (XR), copying the spec and metadata provided as input, so that can be easily validated using crossplane beta validate.
    • --include-context: to output the pipeline's Context, for better insight in the pipeline execution.
    • --extra-resources: to load extra resources so that a Function in the pipeline can access them
    • It will now set the XR's Ready condition according to the pipeline's output.
  • crossplane beta trace now can show the tree of resources also for Crossplane Packages (xpkgs: Providers/Functions/Configurations), to help debugging issues with those too. For Composite Resources instead it can now show also the resource name as defined by the Composition, using -o wide, to allow easily recognising resources with random names.

📖 Full Changelog

🆕 New Contributors

Full Changelog: https://github.com/crossplane/crossplane/compare/v1.15.0-rc.0...v1.15.0

v1.15.0-rc.1

3 months ago

Crossplane version v1.15.0-rc.1 is a release candidate intended to collect input from the community and offer users an opportunity to experiment with Crossplane in non-production environments before the official release of version v1.15.0.

[!WARNING]
This is a pre-release; do not use it in production environments!

To install Crossplane with this release:

helm repo add crossplane-stable https://charts.crossplane.io/stable --force-update
helm install crossplane --namespace crossplane-system --create-namespace crossplane-stable/crossplane --devel

To install Crossplane Cli with this release:

curl -sL https://raw.githubusercontent.com/crossplane/crossplane/v1.15.0-rc.1/install.sh | XP_VERSION=v1.15.0-rc.1 sh

What's changed

The detailed release notes will be provided with the official v1.15.0. In the meantime, you can review the commit changes made since version 1.14.0 here and see below for a short list of changes worth having a look at before upgrading/installing:

New Contributors

v1.14.5

4 months ago

This patch release includes two bug fixes:

  • Handle properly the case when EnvironmentConfig selector maxMatch is set, but the returned number of config is lower than the set value (#5127)
  • Crossplane CLI support correctly --runtime-config flag when installing providers/functions (#5164)

What's Changed

Full Changelog: https://github.com/crossplane/crossplane/compare/v1.14.4...v1.14.5

v1.14.4

5 months ago

This patch release includes bug fixes in various areas:

  • [ALPHA] BREAKING: If there are no matches for Single mode spec.environment.environmentConfigs[*].selector, an error will occur as per the original design. If you want it to be optional, switch to Multiple mode and set maxMatch accordingly (e.g., 1).
  • Added spec.environment.environmentConfigs[*].selector.minMatch which defaults to 0. It specifies the minimum number of EnvironmentConfigs to match for Multiple mode label selectors. If fewer matches are found than desired, an error will be produced.
  • Properly set up RBAC to grant Crossplane access to finalizers. This is necessary for clusters with the OwnerReferencePermissionEnforcement admission controller enabled.
  • Limit length of deprecation warnings to 256 characters for XRDs to avoid silently erroring out later at CRD creation time.

What's Changed

Full Changelog: https://github.com/crossplane/crossplane/compare/v1.14.3...v1.14.4

v1.14.3

5 months ago

This patch contains two bug fixes:

What's Changed

Full Changelog: https://github.com/crossplane/crossplane/compare/v1.14.2...v1.14.3