Crossplane logo
Crossplane logo
  • Why Control Planes?
  • Documentation
  • Community
  • Blog
  • Crossplane GitHub
  • Crossplane Slack
Crossplane Documentation - v2.0
Welcome
What's Crossplane?
What's New in v2?
Get Started
Install Crossplane
Get Started With Composition
Get Started With Managed Resources
Get Started With Operations
Composition
Composite Resources
Composite Resource Definitions
Compositions
Composition Revisions
Environment Configs
Managed Resources
Managed Resources
Managed Resource Definitions
Managed Resource Activation Policies
Usages
Operations
Operations
Cron Operations
Watch Operations
Packages
Providers
Functions
Configurations
Image Configs
Guides
Crossplane Pods
Metrics
Function Patch and Transform
Releasing Crossplane Extensions
Write a Composition Function in Go
Write a Composition Function in Python
Disabling Unused Managed Resources
Implementing safe-start in Providers
Troubleshoot Crossplane
Upgrade Crossplane
Upgrade to Crossplane v2
Uninstall Crossplane
CLI Reference
Command Reference
API Reference
Learn More
Release Cycle
Feature Lifecycle
Contributing Guide
Crossplane Roadmap
v2.0
Latest
master v2.0-preview v2.0
Latest
v1.20 v1.19

Functions

On this page
  • Install a function
Report a problem
View page source

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 
Crossplane logo
Twitter
Youtube
Podcast
Forum

© Crossplane Authors 2025. Documentation distributed under CC-BY-4.0.

© 2025 The Linux Foundation. All rights reserved. The Linux Foundation has registered trademarks and uses trademarks. For a list of trademarks of The Linux Foundation, please see our Trademark Usage page.

cncfLogo

We are a Cloud Native Computing Foundation incubating project.