This document is for an older version of Crossplane.

This document applies to Crossplane version v1.17 and not to the latest release v1.18.

Kind
Group/Version
apiextensions.crossplane.io/v1
apiextensions.crossplane.io/v1

A CompositeResourceDefinition defines the schema for a new custom Kubernetes API.

Read the Crossplane documentation for more information about CustomResourceDefinitions.


CompositeResourceDefinitionSpec specifies the desired state of the definition.
ClaimNames specifies the names of an optional composite resource claim. When claim names are specified Crossplane will create a namespaced ‘composite resource claim’ CRD that corresponds to the defined composite resource. This composite resource claim acts as a namespaced proxy for the composite resource; creating, updating, or deleting the claim will create, update, or delete a corresponding composite resource. You may add claim names to an existing CompositeResourceDefinition, but they cannot be changed or removed once they have been set.
kind is the serialized kind of the resource. It is normally CamelCase and singular. Custom resource instances will use this value as the kind attribute in API calls.
listKind is the serialized kind of the list for this resource. Defaults to “kindList”.
plural is the plural name of the resource to serve. The custom resources are served under /apis/<group>/<version>/.../<plural>. Must match the name of the CustomResourceDefinition (in the form <names.plural>.<group>). Must be all lowercase.
singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased kind.
Conversion defines all conversion settings for the defined Composite resource.

strategy specifies how custom resources are converted between versions. Allowed values are:

  • "None": The converter only change the apiVersion and would not touch any other field in the custom resource.
  • "Webhook": API Server will call to an external webhook to do the conversion. Additional information is needed for this option. This requires spec.preserveUnknownFields to be false, and spec.conversion.webhook to be set.
webhook describes how to call the conversion webhook. Required when strategy is set to "Webhook".
clientConfig is the instructions for how to call the webhook if strategy is Webhook.
caBundle is a PEM encoded CA bundle which will be used to validate the webhook’s server certificate. If unspecified, system trust roots on the apiserver are used.

service is a reference to the service for this webhook. Either service or url must be specified.

If the webhook is running within the cluster, then you should use service.

name is the name of the service. Required
namespace is the namespace of the service. Required
path is an optional URL path at which the webhook will be contacted.
port is an optional service port at which the webhook will be contacted. port should be a valid port number (1-65535, inclusive). Defaults to 443 for backward compatibility.

url gives the location of the webhook, in standard URL form (scheme://host:port/path). Exactly one of url or service must be specified.

The host should not refer to a service running in the cluster; use the service field instead. The host might be resolved via external DNS in some apiservers (e.g., kube-apiserver cannot resolve in-cluster DNS as that would be a layering violation). host may also be an IP address.

Please note that using localhost or 127.0.0.1 as a host is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.

The scheme must be “https”; the URL must begin with “https://”.

A path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.

Attempting to use a user or basic auth e.g. “user:password@” is not allowed. Fragments ("#…") and query parameters ("?…") are not allowed, either.

Default: Background
DefaultCompositeDeletePolicy is the policy used when deleting the Composite that is associated with the Claim if no policy has been specified.
DefaultCompositionRef refers to the Composition resource that will be used in case no composition selector is given.
Name of the Composition.
Default: Automatic
DefaultCompositionUpdatePolicy is the policy used when updating composites after a new Composition Revision has been created if no policy has been specified on the composite.
EnforcedCompositionRef refers to the Composition resource that will be used by all composite instances whose schema is defined by this definition.
Name of the Composition.
Group specifies the API group of the defined composite resource. Composite resources are served under /apis/<group>/.... Must match the name of the XRD (in the form <names.plural>.<group>).
Metadata specifies the desired metadata for the defined composite resource and claim CRD’s.
Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations
Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels and services. These labels are added to the composite resource and claim CRD’s in addition to any labels defined by CompositionResourceDefinition metadata.labels.
Names specifies the resource and kind names of the defined composite resource.
kind is the serialized kind of the resource. It is normally CamelCase and singular. Custom resource instances will use this value as the kind attribute in API calls.
listKind is the serialized kind of the list for this resource. Defaults to “kindList”.
plural is the plural name of the resource to serve. The custom resources are served under /apis/<group>/<version>/.../<plural>. Must match the name of the CustomResourceDefinition (in the form <names.plural>.<group>). Must be all lowercase.
singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased kind.
CompositeResourceDefinitionVersion describes a version of an XR.
CustomResourceColumnDefinition specifies a column for server side printing.
description is a human readable description of this column.
format is an optional OpenAPI type definition for this column. The ’name’ format is applied to the primary identifier column to assist in clients identifying column is the resource name. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.
jsonPath is a simple JSON path (i.e. with array notation) which is evaluated against each custom resource to produce the value for this column.
name is a human readable name for the column.
priority is an integer defining the relative importance of this column compared to others. Lower numbers are considered higher priority. Columns that may be omitted in limited space scenarios should be given a priority greater than 0.
type is an OpenAPI type definition for this column. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.
The deprecated field specifies that this version is deprecated and should not be used.
DeprecationWarning specifies the message that should be shown to the user when using this version.
Name of this version, e.g. “v1”, “v2beta1”, etc. Composite resources are served under this version at /apis/<group>/<version>/... if served is true.
Referenceable specifies that this version may be referenced by a Composition in order to configure which resources an XR may be composed of. Exactly one version must be marked as referenceable; all Compositions must target only the referenceable version. The referenceable version must be served. It’s mapped to the CRD’s spec.versions[*].storage field.
Schema describes the schema used for validation, pruning, and defaulting of this version of the defined composite resource. Fields required by all composite resources will be injected into this schema automatically, and will override equivalently named fields in this schema. Omitting this schema results in a schema that contains only the fields required by all composite resources.
OpenAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning.
Served specifies that this version should be served via REST APIs.
CompositeResourceDefinitionStatus shows the observed state of the definition.
A Condition that may apply to a resource.
LastTransitionTime is the last time this condition transitioned from one status to another.
A Message containing details about this condition’s last transition from one status to another, if any.
ObservedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.
A Reason for this condition’s last transition from one status to another.
Status of this condition; is it currently True, False, or Unknown?
Type of this condition. At most one of each condition type may apply to a resource at any point in time.
Controllers represents the status of the controllers that power this composite resource definition.
The CompositeResourceClaimTypeRef is the type of composite resource claim that Crossplane is currently reconciling for this definition. Its version will eventually become consistent with the definition’s referenceable version. Note that clients may interact with any served type; this is simply the type that Crossplane interacts with.
APIVersion of the type.
Kind of the type.
The CompositeResourceTypeRef is the type of composite resource that Crossplane is currently reconciling for this definition. Its version will eventually become consistent with the definition’s referenceable version. Note that clients may interact with any served type; this is simply the type that Crossplane interacts with.
APIVersion of the type.
Kind of the type.
apiextensions.crossplane.io/v1
apiextensions.crossplane.io/v1

A CompositionRevision represents a revision of a Composition. Crossplane creates new revisions when there are changes to the Composition.

Crossplane creates and manages CompositionRevisions. Don’t directly edit CompositionRevisions.


CompositionRevisionSpec specifies the desired state of the composition revision.
CompositeTypeRef specifies the type of composite resource that this composition is compatible with.
APIVersion of the type.
Kind of the type.

Environment configures the environment in which resources are rendered.

THIS IS AN ALPHA FIELD. Do not use it in production. It is not honored unless the relevant Crossplane feature flag is enabled, and may be changed or removed without notice.

DefaultData statically defines the initial state of the environment. It has the same schema-less structure as the data field in environment configs. It is overwritten by the selected environment configs.
EnvironmentSource selects a EnvironmentConfig resource.
Ref is a named reference to a single EnvironmentConfig. Either Ref or Selector is required.
The name of the object.
Selector selects EnvironmentConfig(s) via labels.
An EnvironmentSourceSelectorLabelMatcher acts like a k8s label selector but can draw the label value from a different path.
Default: Required
FromFieldPathPolicy specifies the policy for the valueFromFieldPath. The default is Required, meaning that an error will be returned if the field is not found in the composite resource. Optional means that if the field is not found in the composite resource, that label pair will just be skipped. N.B. other specified label matchers will still be used to retrieve the desired environment config, if any.
Key of the label to match.
Default: FromCompositeFieldPath
Type specifies where the value for a label comes from.
Value specifies a literal label value.
ValueFromFieldPath specifies the field path to look for the label value.
MaxMatch specifies the number of extracted EnvironmentConfigs in Multiple mode, extracts all if nil.
MinMatch specifies the required minimum of extracted EnvironmentConfigs in Multiple mode.
Default: Single
Mode specifies retrieval strategy: “Single” or “Multiple”.
Default: metadata.name
SortByFieldPath is the path to the field based on which list of EnvironmentConfigs is alphabetically sorted.
Default: Reference
Type specifies the way the EnvironmentConfig is selected. Default is Reference
EnvironmentPatch is a patch for a Composition environment.
Combine is the patch configuration for a CombineFromComposite or CombineToComposite patch.
Strategy defines the strategy to use to combine the input variable values. Currently only string is supported.
String declares that input variables should be combined into a single string, using the relevant settings for formatting purposes.
Format the input using a Go format string. See https://golang.org/pkg/fmt/ for details.
A CombineVariable defines the source of a value that is combined with others to form and patch an output value. Currently, this only supports retrieving values from a field path.
FromFieldPath is the path of the field on the source whose value is to be used as input.
FromFieldPath is the path of the field on the resource whose value is to be used as input. Required when type is FromCompositeFieldPath or ToCompositeFieldPath.
Policy configures the specifics of patching behaviour.
FromFieldPath specifies how to patch from a field path. The default is ‘Optional’, which means the patch will be a no-op if the specified fromFieldPath does not exist. Use ‘Required’ if the patch should fail if the specified path does not exist.
MergeOptions Specifies merge options on a field path.
Specifies that already existing elements in a merged slice should be preserved
Specifies that already existing values in a merged map should be preserved
ToFieldPath is the path of the field on the resource whose value will be changed with the result of transforms. Leave empty if you’d like to propagate to the same path as fromFieldPath.
Transform is a unit of process whose input is transformed into an output with the supplied configuration.
Convert is used to cast the input into the given output type.

The expected input format.

  • quantity - parses the input as a K8s resource.Quantity. Only used during string -> float64 conversions.
  • json - parses the input as a JSON string. Only used during string -> object or string -> list conversions.

If this property is null, the default conversion is applied.

ToType is the type of the output of this transform.
Map uses the input as a key in the given map and returns the value.
Match is a more complex version of Map that matches a list of patterns.
Default: Value
Determines to what value the transform should fallback if no pattern matches.
The fallback value that should be returned by the transform if now pattern matches.
MatchTransformPattern is a transform that returns the value that matches a pattern.
Literal exactly matches the input string (case sensitive). Is required if type is literal.
Regexp to match against the input string. Is required if type is regexp.
The value that is used as result of the transform if the pattern matches.
Default: literal

Type specifies how the pattern matches the input.

  • literal - the pattern value has to exactly match (case sensitive) the input string. This is the default.

  • regexp - the pattern treated as a regular expression against which the input string is tested. Crossplane will throw an error if the key is not a valid regexp.

Math is used to transform the input via mathematical operations such as multiplication.
ClampMax makes sure that the value is not bigger than the given value.
ClampMin makes sure that the value is not smaller than the given value.
Multiply the value.
Default: Multiply
Type of the math transform to be run.
String is used to transform the input into a string or a different kind of string. Note that the input does not necessarily need to be a string.
Optional conversion method to be specified. ToUpper and ToLower change the letter case of the input string. ToBase64 and FromBase64 perform a base64 conversion based on the input string. ToJson converts any input value into its raw JSON representation. ToSha1, ToSha256 and ToSha512 generate a hash value based on the input converted to JSON. ToAdler32 generate a addler32 hash based on the input string.
Format the input using a Go format string. See https://golang.org/pkg/fmt/ for details.
Join defines parameters to join a slice of values to a string.
Separator defines the character that should separate the values from each other in the joined string.
Extract a match from the input using a regular expression.
Group number to match. 0 (the default) matches the entire expression.
Match string. May optionally include submatches, aka capture groups. See https://pkg.go.dev/regexp/ for details.
Trim the prefix or suffix from the input
Default: Format
Type of the string transform to be run.
Type of the transform to be run.
Default: FromCompositeFieldPath
Type sets the patching behaviour to be used. Each patch type may require its own fields to be set on the Patch object.
Policy represents the Resolve and Resolution policies which apply to all EnvironmentSourceReferences in EnvironmentConfigs list.
Default: Required
Resolution specifies whether resolution of this reference is required. The default is ‘Required’, which means the reconcile will fail if the reference cannot be resolved. ‘Optional’ means this reference will be a no-op if it cannot be resolved.
Resolve specifies when this reference should be resolved. The default is ‘IfNotPresent’, which will attempt to resolve the reference only when the corresponding field is not present. Use ‘Always’ to resolve the reference on every reconcile.
Default: Resources

Mode controls what type or “mode” of Composition will be used.

“Pipeline” indicates that a Composition specifies a pipeline of Composition Functions, each of which is responsible for producing composed resources that Crossplane should create or update.

“Resources” indicates that a Composition uses what is commonly referred to as “Patch & Transform” or P&T composition. This mode of Composition uses an array of resources, each a template for a composed resource.

All Compositions should use Pipeline mode. Resources mode is deprecated. Resources mode won’t be removed in Crossplane 1.x, and will remain the default to avoid breaking legacy Compositions. However, it’s no longer accepting new features, and only accepting security related bug fixes.

A PatchSet is a set of patches that can be reused from all resources within a Composition.
Name of this PatchSet.
Patch objects are applied between composite and composed resources. Their behaviour depends on the Type selected. The default Type, FromCompositeFieldPath, copies a value from the composite resource to the composed resource, applying any defined transformers.
Combine is the patch configuration for a CombineFromComposite, CombineFromEnvironment, CombineToComposite or CombineToEnvironment patch.
Strategy defines the strategy to use to combine the input variable values. Currently only string is supported.
String declares that input variables should be combined into a single string, using the relevant settings for formatting purposes.
Format the input using a Go format string. See https://golang.org/pkg/fmt/ for details.
A CombineVariable defines the source of a value that is combined with others to form and patch an output value. Currently, this only supports retrieving values from a field path.
FromFieldPath is the path of the field on the source whose value is to be used as input.
FromFieldPath is the path of the field on the resource whose value is to be used as input. Required when type is FromCompositeFieldPath, FromEnvironmentFieldPath, ToCompositeFieldPath, ToEnvironmentFieldPath.
PatchSetName to include patches from. Required when type is PatchSet.
Policy configures the specifics of patching behaviour.
FromFieldPath specifies how to patch from a field path. The default is ‘Optional’, which means the patch will be a no-op if the specified fromFieldPath does not exist. Use ‘Required’ if the patch should fail if the specified path does not exist.
MergeOptions Specifies merge options on a field path.
Specifies that already existing elements in a merged slice should be preserved
Specifies that already existing values in a merged map should be preserved
ToFieldPath is the path of the field on the resource whose value will be changed with the result of transforms. Leave empty if you’d like to propagate to the same path as fromFieldPath.
Transform is a unit of process whose input is transformed into an output with the supplied configuration.
Convert is used to cast the input into the given output type.

The expected input format.

  • quantity - parses the input as a K8s resource.Quantity. Only used during string -> float64 conversions.
  • json - parses the input as a JSON string. Only used during string -> object or string -> list conversions.

If this property is null, the default conversion is applied.

ToType is the type of the output of this transform.
Map uses the input as a key in the given map and returns the value.
Match is a more complex version of Map that matches a list of patterns.
Default: Value
Determines to what value the transform should fallback if no pattern matches.
The fallback value that should be returned by the transform if now pattern matches.
MatchTransformPattern is a transform that returns the value that matches a pattern.
Literal exactly matches the input string (case sensitive). Is required if type is literal.
Regexp to match against the input string. Is required if type is regexp.
The value that is used as result of the transform if the pattern matches.
Default: literal

Type specifies how the pattern matches the input.

  • literal - the pattern value has to exactly match (case sensitive) the input string. This is the default.

  • regexp - the pattern treated as a regular expression against which the input string is tested. Crossplane will throw an error if the key is not a valid regexp.

Math is used to transform the input via mathematical operations such as multiplication.
ClampMax makes sure that the value is not bigger than the given value.
ClampMin makes sure that the value is not smaller than the given value.
Multiply the value.
Default: Multiply
Type of the math transform to be run.
String is used to transform the input into a string or a different kind of string. Note that the input does not necessarily need to be a string.
Optional conversion method to be specified. ToUpper and ToLower change the letter case of the input string. ToBase64 and FromBase64 perform a base64 conversion based on the input string. ToJson converts any input value into its raw JSON representation. ToSha1, ToSha256 and ToSha512 generate a hash value based on the input converted to JSON. ToAdler32 generate a addler32 hash based on the input string.
Format the input using a Go format string. See https://golang.org/pkg/fmt/ for details.
Join defines parameters to join a slice of values to a string.
Separator defines the character that should separate the values from each other in the joined string.
Extract a match from the input using a regular expression.
Group number to match. 0 (the default) matches the entire expression.
Match string. May optionally include submatches, aka capture groups. See https://pkg.go.dev/regexp/ for details.
Trim the prefix or suffix from the input
Default: Format
Type of the string transform to be run.
Type of the transform to be run.
Default: FromCompositeFieldPath
Type sets the patching behaviour to be used. Each patch type may require its own fields to be set on the Patch object.
A PipelineStep in a Composition Function pipeline.
FunctionCredentials are optional credentials that a Composition Function needs to run.
Name of this set of credentials.
A SecretRef is a reference to a secret containing credentials that should be supplied to the function.
Name of the secret.
Namespace of the secret.
Source of the function credentials.
FunctionRef is a reference to the Composition Function this step should execute.
Name of the referenced Function.
Input is an optional, arbitrary Kubernetes resource (i.e. a resource with an apiVersion and kind) that will be passed to the Composition Function as the ‘input’ of its RunFunctionRequest.
Step name. Must be unique within its Pipeline.
Default: map[name:default]

PublishConnectionDetailsWithStoreConfig specifies the secret store config with which the connection details of composite resources dynamically provisioned using this composition will be published.

THIS IS AN ALPHA FIELD. Do not use it in production. It is not honored unless the relevant Crossplane feature flag is enabled, and may be changed or removed without notice.

Name of the referenced StoreConfig.
ComposedTemplate is used to provide information about how the composed resource should be processed.
Base is the target resource that the patches will be applied on.
ConnectionDetail includes the information about the propagation of the connection information from one secret to another.
FromConnectionSecretKey is the key that will be used to fetch the value from the composed resource’s connection secret.
FromFieldPath is the path of the field on the composed resource whose value to be used as input. Name must be specified if the type is FromFieldPath.
Name of the connection secret key that will be propagated to the connection secret of the composition instance. Leave empty if you’d like to use the same key name.

Type sets the connection detail fetching behaviour to be used. Each connection detail type may require its own fields to be set on the ConnectionDetail object. If the type is omitted Crossplane will attempt to infer it based on which other fields were specified. If multiple fields are specified the order of precedence is:

  1. FromValue
  2. FromConnectionSecretKey
  3. FromFieldPath
Value that will be propagated to the connection secret of the composite resource. May be set to inject a fixed, non-sensitive connection secret value, for example a well-known port.
A Name uniquely identifies this entry within its Composition’s resources array. Names are optional but strongly recommended. When all entries in the resources array are named entries may added, deleted, and reordered as long as their names do not change. When entries are not named the length and order of the resources array should be treated as immutable. Either all or no entries must be named.
Patch objects are applied between composite and composed resources. Their behaviour depends on the Type selected. The default Type, FromCompositeFieldPath, copies a value from the composite resource to the composed resource, applying any defined transformers.
Combine is the patch configuration for a CombineFromComposite, CombineFromEnvironment, CombineToComposite or CombineToEnvironment patch.
Strategy defines the strategy to use to combine the input variable values. Currently only string is supported.
String declares that input variables should be combined into a single string, using the relevant settings for formatting purposes.
Format the input using a Go format string. See https://golang.org/pkg/fmt/ for details.
A CombineVariable defines the source of a value that is combined with others to form and patch an output value. Currently, this only supports retrieving values from a field path.
FromFieldPath is the path of the field on the source whose value is to be used as input.
FromFieldPath is the path of the field on the resource whose value is to be used as input. Required when type is FromCompositeFieldPath, FromEnvironmentFieldPath, ToCompositeFieldPath, ToEnvironmentFieldPath.
PatchSetName to include patches from. Required when type is PatchSet.
Policy configures the specifics of patching behaviour.
FromFieldPath specifies how to patch from a field path. The default is ‘Optional’, which means the patch will be a no-op if the specified fromFieldPath does not exist. Use ‘Required’ if the patch should fail if the specified path does not exist.
MergeOptions Specifies merge options on a field path.
Specifies that already existing elements in a merged slice should be preserved
Specifies that already existing values in a merged map should be preserved
ToFieldPath is the path of the field on the resource whose value will be changed with the result of transforms. Leave empty if you’d like to propagate to the same path as fromFieldPath.
Transform is a unit of process whose input is transformed into an output with the supplied configuration.
Convert is used to cast the input into the given output type.

The expected input format.

  • quantity - parses the input as a K8s resource.Quantity. Only used during string -> float64 conversions.
  • json - parses the input as a JSON string. Only used during string -> object or string -> list conversions.

If this property is null, the default conversion is applied.

ToType is the type of the output of this transform.
Map uses the input as a key in the given map and returns the value.
Match is a more complex version of Map that matches a list of patterns.
Default: Value
Determines to what value the transform should fallback if no pattern matches.
The fallback value that should be returned by the transform if now pattern matches.
MatchTransformPattern is a transform that returns the value that matches a pattern.
Literal exactly matches the input string (case sensitive). Is required if type is literal.
Regexp to match against the input string. Is required if type is regexp.
The value that is used as result of the transform if the pattern matches.
Default: literal

Type specifies how the pattern matches the input.

  • literal - the pattern value has to exactly match (case sensitive) the input string. This is the default.

  • regexp - the pattern treated as a regular expression against which the input string is tested. Crossplane will throw an error if the key is not a valid regexp.

Math is used to transform the input via mathematical operations such as multiplication.
ClampMax makes sure that the value is not bigger than the given value.
ClampMin makes sure that the value is not smaller than the given value.
Multiply the value.
Default: Multiply
Type of the math transform to be run.
String is used to transform the input into a string or a different kind of string. Note that the input does not necessarily need to be a string.
Optional conversion method to be specified. ToUpper and ToLower change the letter case of the input string. ToBase64 and FromBase64 perform a base64 conversion based on the input string. ToJson converts any input value into its raw JSON representation. ToSha1, ToSha256 and ToSha512 generate a hash value based on the input converted to JSON. ToAdler32 generate a addler32 hash based on the input string.
Format the input using a Go format string. See https://golang.org/pkg/fmt/ for details.
Join defines parameters to join a slice of values to a string.
Separator defines the character that should separate the values from each other in the joined string.
Extract a match from the input using a regular expression.
Group number to match. 0 (the default) matches the entire expression.
Match string. May optionally include submatches, aka capture groups. See https://pkg.go.dev/regexp/ for details.
Trim the prefix or suffix from the input
Default: Format
Type of the string transform to be run.
Type of the transform to be run.
Default: FromCompositeFieldPath
Type sets the patching behaviour to be used. Each patch type may require its own fields to be set on the Patch object.
Default: [map[matchCondition:map[status:True type:Ready] type:MatchCondition]]
ReadinessCheck is used to indicate how to tell whether a resource is ready for consumption.
FieldPath shows the path of the field whose value will be used.
MatchCondition specifies the condition you’d like to match if you’re using “MatchCondition” type.
Default: True
Status is the status of the condition you’d like to match.
Default: Ready
Type indicates the type of condition you’d like to use.
MatchInt is the value you’d like to match if you’re using “MatchInt” type.
MatchString is the value you’d like to match if you’re using “MatchString” type.
Type indicates the type of probe you’d like to use.
Revision number. Newer revisions have larger numbers.
WriteConnectionSecretsToNamespace specifies the namespace in which the connection secrets of composite resource dynamically provisioned using this composition will be created. This field is planned to be replaced in a future release in favor of PublishConnectionDetailsWithStoreConfigRef. Currently, both could be set independently and connection details would be published to both without affecting each other as long as related fields at MR level specified.
CompositionRevisionStatus shows the observed state of the composition revision.
A Condition that may apply to a resource.
LastTransitionTime is the last time this condition transitioned from one status to another.
A Message containing details about this condition’s last transition from one status to another, if any.
ObservedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.
A Reason for this condition’s last transition from one status to another.
Status of this condition; is it currently True, False, or Unknown?
Type of this condition. At most one of each condition type may apply to a resource at any point in time.
apiextensions.crossplane.io/v1
apiextensions.crossplane.io/v1

A Composition defines a collection of managed resources or functions that Crossplane uses to create and manage new composite resources.

Read the Crossplane documentation for more information about Compositions.


CompositionSpec specifies desired state of a composition.
CompositeTypeRef specifies the type of composite resource that this composition is compatible with.
APIVersion of the type.
Kind of the type.

Environment configures the environment in which resources are rendered.

THIS IS AN ALPHA FIELD. Do not use it in production. It is not honored unless the relevant Crossplane feature flag is enabled, and may be changed or removed without notice.

DefaultData statically defines the initial state of the environment. It has the same schema-less structure as the data field in environment configs. It is overwritten by the selected environment configs.
EnvironmentSource selects a EnvironmentConfig resource.
Ref is a named reference to a single EnvironmentConfig. Either Ref or Selector is required.
The name of the object.
Selector selects EnvironmentConfig(s) via labels.
An EnvironmentSourceSelectorLabelMatcher acts like a k8s label selector but can draw the label value from a different path.
Default: Required
FromFieldPathPolicy specifies the policy for the valueFromFieldPath. The default is Required, meaning that an error will be returned if the field is not found in the composite resource. Optional means that if the field is not found in the composite resource, that label pair will just be skipped. N.B. other specified label matchers will still be used to retrieve the desired environment config, if any.
Key of the label to match.
Default: FromCompositeFieldPath
Type specifies where the value for a label comes from.
Value specifies a literal label value.
ValueFromFieldPath specifies the field path to look for the label value.
MaxMatch specifies the number of extracted EnvironmentConfigs in Multiple mode, extracts all if nil.
MinMatch specifies the required minimum of extracted EnvironmentConfigs in Multiple mode.
Default: Single
Mode specifies retrieval strategy: “Single” or “Multiple”.
Default: metadata.name
SortByFieldPath is the path to the field based on which list of EnvironmentConfigs is alphabetically sorted.
Default: Reference
Type specifies the way the EnvironmentConfig is selected. Default is Reference
EnvironmentPatch is a patch for a Composition environment.
Combine is the patch configuration for a CombineFromComposite or CombineToComposite patch.
Strategy defines the strategy to use to combine the input variable values. Currently only string is supported.
String declares that input variables should be combined into a single string, using the relevant settings for formatting purposes.
Format the input using a Go format string. See https://golang.org/pkg/fmt/ for details.
A CombineVariable defines the source of a value that is combined with others to form and patch an output value. Currently, this only supports retrieving values from a field path.
FromFieldPath is the path of the field on the source whose value is to be used as input.
FromFieldPath is the path of the field on the resource whose value is to be used as input. Required when type is FromCompositeFieldPath or ToCompositeFieldPath.
Policy configures the specifics of patching behaviour.
FromFieldPath specifies how to patch from a field path. The default is ‘Optional’, which means the patch will be a no-op if the specified fromFieldPath does not exist. Use ‘Required’ if the patch should fail if the specified path does not exist.
MergeOptions Specifies merge options on a field path.
Specifies that already existing elements in a merged slice should be preserved
Specifies that already existing values in a merged map should be preserved
ToFieldPath is the path of the field on the resource whose value will be changed with the result of transforms. Leave empty if you’d like to propagate to the same path as fromFieldPath.
Transform is a unit of process whose input is transformed into an output with the supplied configuration.
Convert is used to cast the input into the given output type.

The expected input format.

  • quantity - parses the input as a K8s resource.Quantity. Only used during string -> float64 conversions.
  • json - parses the input as a JSON string. Only used during string -> object or string -> list conversions.

If this property is null, the default conversion is applied.

ToType is the type of the output of this transform.
Map uses the input as a key in the given map and returns the value.
Match is a more complex version of Map that matches a list of patterns.
Default: Value
Determines to what value the transform should fallback if no pattern matches.
The fallback value that should be returned by the transform if now pattern matches.
MatchTransformPattern is a transform that returns the value that matches a pattern.
Literal exactly matches the input string (case sensitive). Is required if type is literal.
Regexp to match against the input string. Is required if type is regexp.
The value that is used as result of the transform if the pattern matches.
Default: literal

Type specifies how the pattern matches the input.

  • literal - the pattern value has to exactly match (case sensitive) the input string. This is the default.

  • regexp - the pattern treated as a regular expression against which the input string is tested. Crossplane will throw an error if the key is not a valid regexp.

Math is used to transform the input via mathematical operations such as multiplication.
ClampMax makes sure that the value is not bigger than the given value.
ClampMin makes sure that the value is not smaller than the given value.
Multiply the value.
Default: Multiply
Type of the math transform to be run.
String is used to transform the input into a string or a different kind of string. Note that the input does not necessarily need to be a string.
Optional conversion method to be specified. ToUpper and ToLower change the letter case of the input string. ToBase64 and FromBase64 perform a base64 conversion based on the input string. ToJson converts any input value into its raw JSON representation. ToSha1, ToSha256 and ToSha512 generate a hash value based on the input converted to JSON. ToAdler32 generate a addler32 hash based on the input string.
Format the input using a Go format string. See https://golang.org/pkg/fmt/ for details.
Join defines parameters to join a slice of values to a string.
Separator defines the character that should separate the values from each other in the joined string.
Extract a match from the input using a regular expression.
Group number to match. 0 (the default) matches the entire expression.
Match string. May optionally include submatches, aka capture groups. See https://pkg.go.dev/regexp/ for details.
Trim the prefix or suffix from the input
Default: Format
Type of the string transform to be run.
Type of the transform to be run.
Default: FromCompositeFieldPath
Type sets the patching behaviour to be used. Each patch type may require its own fields to be set on the Patch object.
Policy represents the Resolve and Resolution policies which apply to all EnvironmentSourceReferences in EnvironmentConfigs list.
Default: Required
Resolution specifies whether resolution of this reference is required. The default is ‘Required’, which means the reconcile will fail if the reference cannot be resolved. ‘Optional’ means this reference will be a no-op if it cannot be resolved.
Resolve specifies when this reference should be resolved. The default is ‘IfNotPresent’, which will attempt to resolve the reference only when the corresponding field is not present. Use ‘Always’ to resolve the reference on every reconcile.
Default: Resources

Mode controls what type or “mode” of Composition will be used.

“Pipeline” indicates that a Composition specifies a pipeline of Composition Functions, each of which is responsible for producing composed resources that Crossplane should create or update.

“Resources” indicates that a Composition uses what is commonly referred to as “Patch & Transform” or P&T composition. This mode of Composition uses an array of resources, each a template for a composed resource.

All Compositions should use Pipeline mode. Resources mode is deprecated. Resources mode won’t be removed in Crossplane 1.x, and will remain the default to avoid breaking legacy Compositions. However, it’s no longer accepting new features, and only accepting security related bug fixes.

A PatchSet is a set of patches that can be reused from all resources within a Composition.
Name of this PatchSet.
Patch objects are applied between composite and composed resources. Their behaviour depends on the Type selected. The default Type, FromCompositeFieldPath, copies a value from the composite resource to the composed resource, applying any defined transformers.
Combine is the patch configuration for a CombineFromComposite, CombineFromEnvironment, CombineToComposite or CombineToEnvironment patch.
Strategy defines the strategy to use to combine the input variable values. Currently only string is supported.
String declares that input variables should be combined into a single string, using the relevant settings for formatting purposes.
Format the input using a Go format string. See https://golang.org/pkg/fmt/ for details.
A CombineVariable defines the source of a value that is combined with others to form and patch an output value. Currently, this only supports retrieving values from a field path.
FromFieldPath is the path of the field on the source whose value is to be used as input.
FromFieldPath is the path of the field on the resource whose value is to be used as input. Required when type is FromCompositeFieldPath, FromEnvironmentFieldPath, ToCompositeFieldPath, ToEnvironmentFieldPath.
PatchSetName to include patches from. Required when type is PatchSet.
Policy configures the specifics of patching behaviour.
FromFieldPath specifies how to patch from a field path. The default is ‘Optional’, which means the patch will be a no-op if the specified fromFieldPath does not exist. Use ‘Required’ if the patch should fail if the specified path does not exist.
MergeOptions Specifies merge options on a field path.
Specifies that already existing elements in a merged slice should be preserved
Specifies that already existing values in a merged map should be preserved
ToFieldPath is the path of the field on the resource whose value will be changed with the result of transforms. Leave empty if you’d like to propagate to the same path as fromFieldPath.
Transform is a unit of process whose input is transformed into an output with the supplied configuration.
Convert is used to cast the input into the given output type.

The expected input format.

  • quantity - parses the input as a K8s resource.Quantity. Only used during string -> float64 conversions.
  • json - parses the input as a JSON string. Only used during string -> object or string -> list conversions.

If this property is null, the default conversion is applied.

ToType is the type of the output of this transform.
Map uses the input as a key in the given map and returns the value.
Match is a more complex version of Map that matches a list of patterns.
Default: Value
Determines to what value the transform should fallback if no pattern matches.
The fallback value that should be returned by the transform if now pattern matches.
MatchTransformPattern is a transform that returns the value that matches a pattern.
Literal exactly matches the input string (case sensitive). Is required if type is literal.
Regexp to match against the input string. Is required if type is regexp.
The value that is used as result of the transform if the pattern matches.
Default: literal

Type specifies how the pattern matches the input.

  • literal - the pattern value has to exactly match (case sensitive) the input string. This is the default.

  • regexp - the pattern treated as a regular expression against which the input string is tested. Crossplane will throw an error if the key is not a valid regexp.

Math is used to transform the input via mathematical operations such as multiplication.
ClampMax makes sure that the value is not bigger than the given value.
ClampMin makes sure that the value is not smaller than the given value.
Multiply the value.
Default: Multiply
Type of the math transform to be run.
String is used to transform the input into a string or a different kind of string. Note that the input does not necessarily need to be a string.
Optional conversion method to be specified. ToUpper and ToLower change the letter case of the input string. ToBase64 and FromBase64 perform a base64 conversion based on the input string. ToJson converts any input value into its raw JSON representation. ToSha1, ToSha256 and ToSha512 generate a hash value based on the input converted to JSON. ToAdler32 generate a addler32 hash based on the input string.
Format the input using a Go format string. See https://golang.org/pkg/fmt/ for details.
Join defines parameters to join a slice of values to a string.
Separator defines the character that should separate the values from each other in the joined string.
Extract a match from the input using a regular expression.
Group number to match. 0 (the default) matches the entire expression.
Match string. May optionally include submatches, aka capture groups. See https://pkg.go.dev/regexp/ for details.
Trim the prefix or suffix from the input
Default: Format
Type of the string transform to be run.
Type of the transform to be run.
Default: FromCompositeFieldPath
Type sets the patching behaviour to be used. Each patch type may require its own fields to be set on the Patch object.
A PipelineStep in a Composition Function pipeline.
FunctionCredentials are optional credentials that a Composition Function needs to run.
Name of this set of credentials.
A SecretRef is a reference to a secret containing credentials that should be supplied to the function.
Name of the secret.
Namespace of the secret.
Source of the function credentials.
FunctionRef is a reference to the Composition Function this step should execute.
Name of the referenced Function.
Input is an optional, arbitrary Kubernetes resource (i.e. a resource with an apiVersion and kind) that will be passed to the Composition Function as the ‘input’ of its RunFunctionRequest.
Step name. Must be unique within its Pipeline.
Default: map[name:default]

PublishConnectionDetailsWithStoreConfig specifies the secret store config with which the connection details of composite resources dynamically provisioned using this composition will be published.

THIS IS AN ALPHA FIELD. Do not use it in production. It is not honored unless the relevant Crossplane feature flag is enabled, and may be changed or removed without notice.

Name of the referenced StoreConfig.
ComposedTemplate is used to provide information about how the composed resource should be processed.
Base is the target resource that the patches will be applied on.
ConnectionDetail includes the information about the propagation of the connection information from one secret to another.
FromConnectionSecretKey is the key that will be used to fetch the value from the composed resource’s connection secret.
FromFieldPath is the path of the field on the composed resource whose value to be used as input. Name must be specified if the type is FromFieldPath.
Name of the connection secret key that will be propagated to the connection secret of the composition instance. Leave empty if you’d like to use the same key name.

Type sets the connection detail fetching behaviour to be used. Each connection detail type may require its own fields to be set on the ConnectionDetail object. If the type is omitted Crossplane will attempt to infer it based on which other fields were specified. If multiple fields are specified the order of precedence is:

  1. FromValue
  2. FromConnectionSecretKey
  3. FromFieldPath
Value that will be propagated to the connection secret of the composite resource. May be set to inject a fixed, non-sensitive connection secret value, for example a well-known port.
A Name uniquely identifies this entry within its Composition’s resources array. Names are optional but strongly recommended. When all entries in the resources array are named entries may added, deleted, and reordered as long as their names do not change. When entries are not named the length and order of the resources array should be treated as immutable. Either all or no entries must be named.
Patch objects are applied between composite and composed resources. Their behaviour depends on the Type selected. The default Type, FromCompositeFieldPath, copies a value from the composite resource to the composed resource, applying any defined transformers.
Combine is the patch configuration for a CombineFromComposite, CombineFromEnvironment, CombineToComposite or CombineToEnvironment patch.
Strategy defines the strategy to use to combine the input variable values. Currently only string is supported.
String declares that input variables should be combined into a single string, using the relevant settings for formatting purposes.
Format the input using a Go format string. See https://golang.org/pkg/fmt/ for details.
A CombineVariable defines the source of a value that is combined with others to form and patch an output value. Currently, this only supports retrieving values from a field path.
FromFieldPath is the path of the field on the source whose value is to be used as input.
FromFieldPath is the path of the field on the resource whose value is to be used as input. Required when type is FromCompositeFieldPath, FromEnvironmentFieldPath, ToCompositeFieldPath, ToEnvironmentFieldPath.
PatchSetName to include patches from. Required when type is PatchSet.
Policy configures the specifics of patching behaviour.
FromFieldPath specifies how to patch from a field path. The default is ‘Optional’, which means the patch will be a no-op if the specified fromFieldPath does not exist. Use ‘Required’ if the patch should fail if the specified path does not exist.
MergeOptions Specifies merge options on a field path.
Specifies that already existing elements in a merged slice should be preserved
Specifies that already existing values in a merged map should be preserved
ToFieldPath is the path of the field on the resource whose value will be changed with the result of transforms. Leave empty if you’d like to propagate to the same path as fromFieldPath.
Transform is a unit of process whose input is transformed into an output with the supplied configuration.
Convert is used to cast the input into the given output type.

The expected input format.

  • quantity - parses the input as a K8s resource.Quantity. Only used during string -> float64 conversions.
  • json - parses the input as a JSON string. Only used during string -> object or string -> list conversions.

If this property is null, the default conversion is applied.

ToType is the type of the output of this transform.
Map uses the input as a key in the given map and returns the value.
Match is a more complex version of Map that matches a list of patterns.
Default: Value
Determines to what value the transform should fallback if no pattern matches.
The fallback value that should be returned by the transform if now pattern matches.
MatchTransformPattern is a transform that returns the value that matches a pattern.
Literal exactly matches the input string (case sensitive). Is required if type is literal.
Regexp to match against the input string. Is required if type is regexp.
The value that is used as result of the transform if the pattern matches.
Default: literal

Type specifies how the pattern matches the input.

  • literal - the pattern value has to exactly match (case sensitive) the input string. This is the default.

  • regexp - the pattern treated as a regular expression against which the input string is tested. Crossplane will throw an error if the key is not a valid regexp.

Math is used to transform the input via mathematical operations such as multiplication.
ClampMax makes sure that the value is not bigger than the given value.
ClampMin makes sure that the value is not smaller than the given value.
Multiply the value.
Default: Multiply
Type of the math transform to be run.
String is used to transform the input into a string or a different kind of string. Note that the input does not necessarily need to be a string.
Optional conversion method to be specified. ToUpper and ToLower change the letter case of the input string. ToBase64 and FromBase64 perform a base64 conversion based on the input string. ToJson converts any input value into its raw JSON representation. ToSha1, ToSha256 and ToSha512 generate a hash value based on the input converted to JSON. ToAdler32 generate a addler32 hash based on the input string.
Format the input using a Go format string. See https://golang.org/pkg/fmt/ for details.
Join defines parameters to join a slice of values to a string.
Separator defines the character that should separate the values from each other in the joined string.
Extract a match from the input using a regular expression.
Group number to match. 0 (the default) matches the entire expression.
Match string. May optionally include submatches, aka capture groups. See https://pkg.go.dev/regexp/ for details.
Trim the prefix or suffix from the input