This document is for a preview version of Crossplane.

This document applies to Crossplane v2.0-preview and not to the latest release v1.19.

Don't use Crossplane v2.0-preview in production.

Functions extend Crossplane with new ways to configure composition.

You can use different composition functions to configure what Crossplane does when someone creates or updates a composite resource (XR).

Important

This page is a work in progress.

Functions are packages, like Providers and Configurations. Their APIs are similar. You install and configure them the same way as a provider.

Read the composition documentation to learn how to use functions in a composition.

Install a Function

Install a Function with a Crossplane Function object setting the spec.package value to the location of the function package.

Important

Beginning with Crossplane version 1.20.0 Crossplane uses the crossplane-contrib GitHub Container Registry at xpkg.crossplane.io by default for downloading and installing packages.

Specify the full domain name with the package or change the default Crossplane registry with the --registry flag on the Crossplane pod

For example, to install the patch and transform function,

1apiVersion: pkg.crossplane.io/v1
2kind: Function
3metadata:
4  name: crossplane-contrib-function-patch-and-transform
5spec:
6  package: xpkg.crossplane.io/crossplane-contrib/function-patch-and-transform:v0.8.2

By default, the Function pod installs in the same namespace as Crossplane (crossplane-system).

Note

Functions are part of the pkg.crossplane.io group.

The meta.pkg.crossplane.io group is for creating Function packages.

Instructions on building Functions are outside of the scope of this document.
Read the Crossplane contributing Function Development Guide for more information.

For information on the specification of Function packages read the Crossplane Function Package specification.

1apiVersion: meta.pkg.crossplane.io/v1
2kind: Function
3metadata:
4  name: provider-aws
5spec:
6# Removed for brevity