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.
DefaultCompositionRevisionSelector refers to the CompositionRevision that will be used in case no compositionRevision selector is given.
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
key is the label key that the selector applies to.
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
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.
Default: LegacyCluster
Scope of the defined composite resource. Namespaced composite resources are scoped to a single namespace. Cluster scoped composite resource exist outside the scope of any namespace. Neither can be claimed. Legacy cluster scoped composite resources are cluster scoped resources that can be claimed.
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.
Subresources specifies what subresources this version of the defined Composite resource has. The composition authors have responsibility to implement the logic fulfilling the subresources.
Scale indicates the CRD should serve a /scale subresource that returns an autoscaling/v1 Scale object.
labelSelectorPath defines the JSON path inside of a custom resource that corresponds to Scale status.selector. Only JSON paths without the array notation are allowed. Must be a JSON Path under .status or .spec. Must be set to work with HorizontalPodAutoscaler. The field pointed by this JSON path must be a string field (not a complex selector struct) which contains a serialized label selector in string form. More info: https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions#scale-subresource If there is no value under the given path in the custom resource, the status.selector value in the /scale subresource will default to the empty string.
specReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale spec.replicas. Only JSON paths without the array notation are allowed. Must be a JSON Path under .spec. If there is no value under the given path in the custom resource, the /scale subresource will return an error on GET.
statusReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale status.replicas. Only JSON paths without the array notation are allowed. Must be a JSON Path under .status. If there is no value under the given path in the custom resource, the status.replicas value in the /scale subresource will default to 0.
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/v2
apiextensions.crossplane.io/v2

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.

Deprecated: Claims aren’t supported in apiextensions.crossplane.io/v2.

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.

DefaultCompositeDeletePolicy is the policy used when deleting the Composite that is associated with the Claim if no policy has been specified.

Deprecated: Claims aren’t supported in apiextensions.crossplane.io/v2.

DefaultCompositionRef refers to the Composition resource that will be used in case no composition selector is given.
Name of the Composition.
DefaultCompositionRevisionSelector refers to the CompositionRevision that will be used in case no compositionRevision selector is given.
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
key is the label key that the selector applies to.
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
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.
Default: Namespaced
Scope of the defined composite resource. Namespaced composite resources are scoped to a single namespace. Cluster scoped composite resource exist outside the scope of any namespace.
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.
Subresources specifies what subresources this version of the defined Composite resource has. The composition authors have responsibility to implement the logic fulfilling the subresources.
Scale indicates the CRD should serve a /scale subresource that returns an autoscaling/v1 Scale object.
labelSelectorPath defines the JSON path inside of a custom resource that corresponds to Scale status.selector. Only JSON paths without the array notation are allowed. Must be a JSON Path under .status or .spec. Must be set to work with HorizontalPodAutoscaler. The field pointed by this JSON path must be a string field (not a complex selector struct) which contains a serialized label selector in string form. More info: https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions#scale-subresource If there is no value under the given path in the custom resource, the status.selector value in the /scale subresource will default to the empty string.
specReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale spec.replicas. Only JSON paths without the array notation are allowed. Must be a JSON Path under .spec. If there is no value under the given path in the custom resource, the /scale subresource will return an error on GET.
statusReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale status.replicas. Only JSON paths without the array notation are allowed. Must be a JSON Path under .status. If there is no value under the given path in the custom resource, the status.replicas value in the /scale subresource will default to 0.
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.
Default: Pipeline

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

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

A PipelineStep in a function pipeline.
FunctionCredentials are optional credentials that a 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 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 function as the ‘input’ of its RunFunctionRequest.
Requirements are resource requirements that will be satisfied before this pipeline step is called for the first time. This allows pre-populating required resources without requiring a function to request them first.
RequiredResourceSelector selects a required resource.
APIVersion of the required resource.
Kind of the required resource.
MatchLabels specifies the set of labels to match for finding the required resource. When specified, Name is ignored.
Name of the required resource.
Namespace of the required resource if it is namespaced.
RequirementName is the unique name to identify this required resource in the Required Resources map in the function request.
RequiredSchemaSelector selects a required OpenAPI schema.
APIVersion of the resource kind whose schema is required, e.g. “example.org/v1”.
Kind of resource whose schema is required, e.g. “MyResource”.
RequirementName is the unique name to identify this required schema in the Required Schemas map in the function request.
Step name. Must be unique within its Pipeline.

Revision number. Newer revisions have larger numbers.

This number can change. When a Composition transitions from state A -> B -> A there will be only two CompositionRevisions. Crossplane will edit the original CompositionRevision to change its revision number from 0 to 2.

WriteConnectionSecretsToNamespace specifies the namespace in which the connection secrets of composite resource dynamically provisioned using this composition will be created.
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.
Default: Pipeline

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

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

A PipelineStep in a function pipeline.
FunctionCredentials are optional credentials that a 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 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 function as the ‘input’ of its RunFunctionRequest.
Requirements are resource requirements that will be satisfied before this pipeline step is called for the first time. This allows pre-populating required resources without requiring a function to request them first.
RequiredResourceSelector selects a required resource.
APIVersion of the required resource.
Kind of the required resource.
MatchLabels specifies the set of labels to match for finding the required resource. When specified, Name is ignored.
Name of the required resource.
Namespace of the required resource if it is namespaced.
RequirementName is the unique name to identify this required resource in the Required Resources map in the function request.
RequiredSchemaSelector selects a required OpenAPI schema.
APIVersion of the resource kind whose schema is required, e.g. “example.org/v1”.
Kind of resource whose schema is required, e.g. “MyResource”.
RequirementName is the unique name to identify this required schema in the Required Schemas map in the function request.
Step name. Must be unique within its Pipeline.
WriteConnectionSecretsToNamespace specifies the namespace in which the connection secrets of composite resource dynamically provisioned using this composition will be created.
apiextensions.crossplane.io/v1beta1
apiextensions.crossplane.io/v1beta1

An EnvironmentConfig contains user-defined unstructured values for use in a Composition.

Read the Crossplane documentation for more information about EnvironmentConfigs.


The data of this EnvironmentConfig. This may contain any kind of structure that can be serialized into JSON.
apiextensions.crossplane.io/v1alpha1
apiextensions.crossplane.io/v1alpha1
A ManagedResourceActivationPolicy defines the activation policy for ManagedResourceDefinitions.
ManagedResourceActivationPolicySpec specifies the desired activation state of ManagedResourceDefinitions.
ActivationPolicy matches on MRD names with wildcard prefix support.
ManagedResourceActivationPolicyStatus shows the observed state of the policy.
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/v1alpha1
apiextensions.crossplane.io/v1alpha1
A ManagedResourceDefinition defines the schema for a new custom Kubernetes API.
ManagedResourceDefinitionSpec specifies the desired state of the resource definition.
ConnectionDetail holds keys and descriptions of connection secrets.
Description of how the key is used.
Name of the key.
Conversion defines conversion settings for the CRD.

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.

Group is the API group of the defined custom resource. The custom resources are served under /apis/<group>/.... Must match the name of the CustomResourceDefinition (in the form <names.plural>.<group>).
Names specify the resource and kind names for the custom 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.
PreserveUnknownFields indicates that object fields which are not specified in the OpenAPI schema should be preserved when persisting to storage. apiVersion, kind, metadata and known fields inside metadata are always preserved. This field is deprecated in favor of setting x-preserve-unknown-fields to true in spec.versions[*].schema.openAPIV3Schema. See https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#field-pruning for details.
Default: Namespaced
Scope indicates whether the defined custom resource is cluster- or namespace-scoped. Allowed values are Cluster and Namespaced.
Default: Inactive
State toggles whether the underlying CRD is created or not.
CustomResourceDefinitionVersion describes a version for CRD.
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.
Deprecated indicates this version of the custom resource API is deprecated. When set to true, API requests to this version receive a warning header in the server response. Defaults to false.
DeprecationWarning overrides the default warning returned to API clients. May only be set when deprecated is true. The default warning indicates this version is deprecated and recommends use of the newest served version of equal or greater stability, if one exists.
Name is the version name, e.g. “v1”, “v2beta1”, etc. The custom resources are served under this version at /apis/<group>/<version>/... if served is true.
Schema describes the schema used for validation, pruning, and defaulting of this version of the custom resource.
OpenAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning.
SelectableField specifies the JSON path of a field that may be used with field selectors.
jsonPath is a simple JSON path which is evaluated against each custom resource to produce a field selector value. Only JSON paths without the array notation are allowed. Must point to a field of type string, boolean or integer. Types with enum values and strings with formats are allowed. If jsonPath refers to absent field in a resource, the jsonPath evaluates to an empty string. Must not point to metdata fields. Required.
Served is a flag enabling/disabling this version from being served via REST APIs
Storage indicates this version should be used when persisting custom resources to storage. There must be exactly one version with storage=true.
Subresources specify what subresources this version of the defined custom resource have.
scale indicates the custom resource should serve a /scale subresource that returns an autoscaling/v1 Scale object.
labelSelectorPath defines the JSON path inside of a custom resource that corresponds to Scale status.selector. Only JSON paths without the array notation are allowed. Must be a JSON Path under .status or .spec. Must be set to work with HorizontalPodAutoscaler. The field pointed by this JSON path must be a string field (not a complex selector struct) which contains a serialized label selector in string form. More info: https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions#scale-subresource If there is no value under the given path in the custom resource, the status.selector value in the /scale subresource will default to the empty string.
specReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale spec.replicas. Only JSON paths without the array notation are allowed. Must be a JSON Path under .spec. If there is no value under the given path in the custom resource, the /scale subresource will return an error on GET.
statusReplicasPath defines the JSON path inside of a custom resource that corresponds to Scale status.replicas. Only JSON paths without the array notation are allowed. Must be a JSON Path under .status. If there is no value under the given path in the custom resource, the status.replicas value in the /scale subresource will default to 0.

status indicates the custom resource should serve a /status subresource. When enabled:

  1. requests to the custom resource primary endpoint ignore changes to the status stanza of the object.
  2. requests to the custom resource /status subresource ignore changes to anything other than the status stanza of the object.
ManagedResourceDefinitionStatus shows the observed state of the resource 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.
apiextensions.crossplane.io/v1alpha1
apiextensions.crossplane.io/v1alpha1

A Usage defines a deletion blocking relationship between two resources.

Usages prevent accidental deletion of a single resource or deletion of resources with dependent resources.

Read the Crossplane documentation for more information about Usages.

Deprecated: Use protection.crossplane.io Usage or ClusterUsage.


UsageSpec defines the desired state of Usage.
By is the resource that is “using the other resource”.
API version of the referent.
Reference to the resource.
Name of the referent.
Selector to the resource. This field will be ignored if ResourceRef is set.
MatchControllerRef ensures an object with the same controller reference as the selecting object is selected.
MatchLabels ensures an object with matching labels is selected.
Of is the resource that is “being used”.
API version of the referent.
Reference to the resource.
Name of the referent.
Selector to the resource. This field will be ignored if ResourceRef is set.
MatchControllerRef ensures an object with the same controller reference as the selecting object is selected.
MatchLabels ensures an object with matching labels is selected.
Reason is the reason for blocking deletion of the resource.
ReplayDeletion will trigger a deletion on the used resource during the deletion of the usage itself, if it was attempted to be deleted at least once.
UsageStatus defines the observed state of Usage.
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/v1beta1
apiextensions.crossplane.io/v1beta1

A Usage defines a deletion blocking relationship between two resources.

Usages prevent accidental deletion of a single resource or deletion of resources with dependent resources.

Read the Crossplane documentation for more information about Usages.

Deprecated: Use protection.crossplane.io Usage or ClusterUsage.


UsageSpec defines the desired state of Usage.
By is the resource that is “using the other resource”.
API version of the referent.
Reference to the resource.
Name of the referent.
Selector to the resource. This field will be ignored if ResourceRef is set.
MatchControllerRef ensures an object with the same controller reference as the selecting object is selected.
MatchLabels ensures an object with matching labels is selected.
Of is the resource that is “being used”.
API version of the referent.
Reference to the resource.
Name of the referent.
Selector to the resource. This field will be ignored if ResourceRef is set.
MatchControllerRef ensures an object with the same controller reference as the selecting object is selected.
MatchLabels ensures an object with matching labels is selected.
Reason is the reason for blocking deletion of the resource.
ReplayDeletion will trigger a deletion on the used resource during the deletion of the usage itself, if it was attempted to be deleted at least once.
UsageStatus defines the observed state of Usage.
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.
ops.crossplane.io/v1alpha1
ops.crossplane.io/v1alpha1
A CronOperation creates Operations on a cron schedule.
CronOperationSpec specifies the desired state of a CronOperation.
Default: Allow
ConcurrencyPolicy specifies how to treat concurrent executions of an operation.
Default: 1
FailedHistoryLimit is the number of failed Operations to retain.
OperationTemplate is the template for the Operation to be created.
Standard object metadata.
Spec is the specification of the Operation to be created.
Default: Pipeline

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

“Pipeline” indicates that an Operation specifies a pipeline of functions, each of which is responsible for implementing its logic.

A PipelineStep in an operation function pipeline.
FunctionCredentials are optional credentials that a 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 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 unction as the ‘input’ of its RunFunctionRequest.
Requirements are resource requirements that will be satisfied before this pipeline step is called for the first time. This allows pre-populating required resources without requiring a function to request them first.
RequiredResourceSelector selects resources that should be fetched before a pipeline step runs.
APIVersion of resources to select.
Kind of resources to select.
MatchLabels matches resources by label selector. Only one of Name or MatchLabels may be specified.
Name matches a single resource by name. Only one of Name or MatchLabels may be specified.
Namespace to search for resources. Optional for cluster-scoped resources.
RequirementName uniquely identifies this group of resources. This name will be used as the key in RunFunctionRequest.required_resources.
RequiredSchemaSelector selects an OpenAPI schema that should be fetched before a pipeline step runs.
APIVersion of the resource kind whose schema is required, e.g. “example.org/v1”.
Kind of resource whose schema is required, e.g. “MyResource”.
RequirementName uniquely identifies this schema. This name will be used as the key in RunFunctionRequest.required_schemas.
Step name. Must be unique within its Pipeline.
RetryLimit configures how many times the operation may fail. When the failure limit is exceeded, the operation will not be retried.
Schedule is the cron schedule for the operation.
StartingDeadlineSeconds is the deadline in seconds for starting the operation if it misses its scheduled time for any reason.
Default: 3
SuccessfulHistoryLimit is the number of successful Operations to retain.
CronOperationStatus represents the observed state of a CronOperation.
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.
LastScheduleTime is the last time the CronOperation was scheduled.
LastSuccessfulTime is the last time the CronOperation was successfully completed.
A RunningOperationRef is a reference to a running operation.
Name of the active operation.
ops.crossplane.io/v1alpha1
ops.crossplane.io/v1alpha1
An Operation defines a pipeline of functions that together constitute a day two operation.
OperationSpec specifies desired state of an operation.
Default: Pipeline

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

“Pipeline” indicates that an Operation specifies a pipeline of functions, each of which is responsible for implementing its logic.

A PipelineStep in an operation function pipeline.
FunctionCredentials are optional credentials that a 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 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 unction as the ‘input’ of its RunFunctionRequest.
Requirements are resource requirements that will be satisfied before this pipeline step is called for the first time. This allows pre-populating required resources without requiring a function to request them first.
RequiredResourceSelector selects resources that should be fetched before a pipeline step runs.
APIVersion of resources to select.
Kind of resources to select.
MatchLabels matches resources by label selector. Only one of Name or MatchLabels may be specified.
Name matches a single resource by name. Only one of Name or MatchLabels may be specified.
Namespace to search for resources. Optional for cluster-scoped resources.
RequirementName uniquely identifies this group of resources. This name will be used as the key in RunFunctionRequest.required_resources.
RequiredSchemaSelector selects an OpenAPI schema that should be fetched before a pipeline step runs.
APIVersion of the resource kind whose schema is required, e.g. “example.org/v1”.
Kind of resource whose schema is required, e.g. “MyResource”.
RequirementName uniquely identifies this schema. This name will be used as the key in RunFunctionRequest.required_schemas.
Step name. Must be unique within its Pipeline.
RetryLimit configures how many times the operation may fail. When the failure limit is exceeded, the operation will not be retried.
OperationStatus represents the observed state of an operation.
An AppliedResourceRef is a reference to a resource an Operation applied.
APIVersion of the applied resource.
Kind of the applied resource.
Name of the applied resource.
Namespace of the applied resource.
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.
Number of operation failures.
PipelineStepStatus represents the status of an individual pipeline step.
Output of this step.
Step name. Unique within its Pipeline.
ops.crossplane.io/v1alpha1
ops.crossplane.io/v1alpha1
A WatchOperation creates Operations when watched resources change.
WatchOperationSpec specifies the desired state of a WatchOperation.
Default: Allow
ConcurrencyPolicy specifies how to treat concurrent executions of an operation.
Default: 1
FailedHistoryLimit is the number of failed Operations to retain.
OperationTemplate is the template for the Operation to be created.
Standard object metadata.
Spec is the specification of the Operation to be created.
Default: Pipeline

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

“Pipeline” indicates that an Operation specifies a pipeline of functions, each of which is responsible for implementing its logic.

A PipelineStep in an operation function pipeline.
FunctionCredentials are optional credentials that a 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 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 unction as the ‘input’ of its RunFunctionRequest.
Requirements are resource requirements that will be satisfied before this pipeline step is called for the first time. This allows pre-populating required resources without requiring a function to request them first.
RequiredResourceSelector selects resources that should be fetched before a pipeline step runs.
APIVersion of resources to select.
Kind of resources to select.
MatchLabels matches resources by label selector. Only one of Name or MatchLabels may be specified.
Name matches a single resource by name. Only one of Name or MatchLabels may be specified.
Namespace to search for resources. Optional for cluster-scoped resources.
RequirementName uniquely identifies this group of resources. This name will be used as the key in RunFunctionRequest.required_resources.
RequiredSchemaSelector selects an OpenAPI schema that should be fetched before a pipeline step runs.
APIVersion of the resource kind whose schema is required, e.g. “example.org/v1”.
Kind of resource whose schema is required, e.g. “MyResource”.
RequirementName uniquely identifies this schema. This name will be used as the key in RunFunctionRequest.required_schemas.
Step name. Must be unique within its Pipeline.
RetryLimit configures how many times the operation may fail. When the failure limit is exceeded, the operation will not be retried.
Default: 3
SuccessfulHistoryLimit is the number of successful Operations to retain.
Watch specifies the resource to watch.
APIVersion of the resource to watch.
Kind of the resource to watch.
MatchLabels selects resources by label. If empty, all resources of the specified kind are watched.
Namespace selects resources in a specific namespace. If empty, all namespaces are watched. Only applicable for namespaced resources.
WatchOperationStatus represents the observed state of a WatchOperation.
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.
LastScheduleTime is the last time the WatchOperation created an Operation.
LastSuccessfulTime is the last time the WatchOperation successfully completed an Operation.
A RunningOperationRef is a reference to a running operation.
Name of the active operation.
WatchingResources is the number of resources this WatchOperation is currently watching.
pkg.crossplane.io/v1
pkg.crossplane.io/v1

A ConfigurationRevision represents a revision of a Configuration. Crossplane creates new revisions when there are changes to a Configuration.

Crossplane creates and manages ConfigurationRevision. Don’t directly edit ConfigurationRevisions.


PackageRevisionSpec specifies the desired state of a PackageRevision.
Map of string keys and values that can be used to annotate 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 and services. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
DesiredState of the PackageRevision. Can be either Active or Inactive.
Default: false
IgnoreCrossplaneConstraints indicates to the package manager whether to honor Crossplane version constrains specified by the package. Default is false.
Package image used by install Pod to extract package contents.
Default: IfNotPresent
PackagePullPolicy defines the pull policy for the package. It is also applied to any images pulled for the package, such as a provider’s controller image. Default is IfNotPresent.
LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.
Default:
Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
Revision number. Indicates when the revision will be garbage collected based on the parent’s RevisionHistoryLimit.
Default: false
SkipDependencyResolution indicates to the package manager whether to skip resolving dependencies for a package. Setting this value to true may have unintended consequences. Default is false.
PackageRevisionStatus represents the observed state of a PackageRevision.
ImageConfigRef is a reference to an image config that indicates how the referenced image config was used by the package manager.
Name is the name of the image config.
Reason indicates what the image config was used for.
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.
Dependency information.
A TypedReference refers to an object by Name, Kind, and APIVersion. It is commonly used to reference cluster-scoped objects or objects where the namespace is already known.
APIVersion of the referenced object.
Kind of the referenced object.
Name of the referenced object.
UID of the referenced object.
ResolvedPackage is the name of the package that was installed. It may be different from spec.image if the package path was rewritten using an image config.
pkg.crossplane.io/v1
pkg.crossplane.io/v1

A Configuration installs an OCI compatible Crossplane package, extending Crossplane with support for new kinds of CompositeResourceDefinitions and Compositions.

Read the Crossplane documentation for more information about Configuration packages.


ConfigurationSpec specifies details about a request to install a configuration to Crossplane.
Map of string keys and values that can be used to annotate 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 and services. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
Default: false
IgnoreCrossplaneConstraints indicates to the package manager whether to honor Crossplane version constrains specified by the package. Default is false.
Package is the name of the package that is being requested. must be a fully qualified image name, including the registry, repository, and tag. for example, “registry.example.com/repo/package:tag”.
Default: IfNotPresent
PackagePullPolicy defines the pull policy for the package. Default is IfNotPresent.
LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.
Default:
Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
Default: Automatic
RevisionActivationPolicy specifies how the package controller should update from one revision to the next. Options are Automatic or Manual. Default is Automatic.
Default: 1
RevisionHistoryLimit dictates how the package controller cleans up old inactive package revisions. Defaults to 1. Can be disabled by explicitly setting to 0.
Default: false
SkipDependencyResolution indicates to the package manager whether to skip resolving dependencies for a package. Setting this value to true may have unintended consequences. Default is false.
ConfigurationStatus represents the observed state of a Configuration.
ImageConfigRef is a reference to an image config that indicates how the referenced image config was used by the package manager.
Name is the name of the image config.
Reason indicates what the image config was used for.
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.
CurrentIdentifier is the most recent package source that was used to produce a revision. The package manager uses this field to determine whether to check for package updates for a given source when packagePullPolicy is set to IfNotPresent. Manually removing this field will cause the package manager to check that the current revision is correct for the given package source.
CurrentRevision is the name of the current package revision. It will reflect the most up to date revision, whether it has been activated or not.
ResolvedPackage is the name of the package that was used for version resolution. It may be different from spec.package if the package path was rewritten using an image config.
pkg.crossplane.io/v1beta1
pkg.crossplane.io/v1beta1

The DeploymentRuntimeConfig provides settings for the Kubernetes Deployment of a Provider or composition function package.

Read the Crossplane documentation for more information about DeploymentRuntimeConfigs.


DeploymentRuntimeConfigSpec specifies the configuration for a packaged controller. Values provided will override package manager defaults. Labels and annotations are passed to both the controller Deployment and ServiceAccount.
DeploymentTemplate is the template for the Deployment object.
Metadata contains the configurable metadata fields for the Deployment.
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: http: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. Labels will be merged with internal labels used by crossplane, and labels with a crossplane.io key might be overwritten. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
Name is the name of the object.
Spec contains the configurable spec fields for the Deployment object.
Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)
Indicates that the deployment is paused.
The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.
Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.
The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.
Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment. It must match the pod template’s labels.
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
key is the label key that the selector applies to.
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
The deployment strategy to use to replace existing pods with new ones.
Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.
The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new ReplicaSet can be scaled up further, ensuring that total number of pods running at any time during the update is at most 130% of desired pods.
The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old ReplicaSet can be scaled down further, followed by scaling up the new ReplicaSet, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.
Type of deployment. Can be “Recreate” or “RollingUpdate”. Default is RollingUpdate.
Template describes the pods that will be created. The only allowed template.spec.restartPolicy value is “Always”.
Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer.
If specified, the pod’s scheduling constraints
Describes node affinity scheduling rules for the pod.
An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it’s a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
A node selector term, associated with the corresponding weight.
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
The label key that the selector applies to.
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
The label key that the selector applies to.
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.
A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
The label key that the selector applies to.
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
The label key that the selector applies to.
Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
Required. A pod affinity term, associated with the corresponding weight.
A label query over a set of resources, in this case pods. If it’s null, this PodAffinityTerm matches with no Pods.
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
key is the label key that the selector applies to.
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means “this pod’s namespace”. An empty selector ({}) matches all namespaces.
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
key is the label key that the selector applies to.
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key matches that of any node on which a pod of the set of pods is running
A label query over a set of resources, in this case pods. If it’s null, this PodAffinityTerm matches with no Pods.
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
key is the label key that the selector applies to.
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means “this pod’s namespace”. An empty selector ({}) matches all namespaces.
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
key is the label key that the selector applies to.
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
Required. A pod affinity term, associated with the corresponding weight.
A label query over a set of resources, in this case pods. If it’s null, this PodAffinityTerm matches with no Pods.
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
key is the label key that the selector applies to.
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means “this pod’s namespace”. An empty selector ({}) matches all namespaces.
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
key is the label key that the selector applies to.
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key matches that of any node on which a pod of the set of pods is running
A label query over a set of resources, in this case pods. If it’s null, this PodAffinityTerm matches with no Pods.
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
key is the label key that the selector applies to.
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means “this pod’s namespace”. An empty selector ({}) matches all namespaces.
A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
key is the label key that the selector applies to.
operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is “key”, the operator is “In”, and the values array contains only “value”. The requirements are ANDed.
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.
A single application container that you want to run within a pod.
EnvVar represents an environment variable present in a Container.
Name of the environment variable. May consist of any printable ASCII characters except ‘=’.
Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. “$$(VAR_NAME)” will produce the string literal “$(VAR_NAME)”. Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to “”.
Source for the environment variable’s value. Cannot be used if value is not empty.
Selects a key of a ConfigMap.
The key to select.
Default:
Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
Specify whether the ConfigMap or its key must be defined
Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels['<KEY>'], metadata.annotations['<KEY>'], spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.
Version of the schema the FieldPath is written in terms of, defaults to “v1”.
Path of the field to select in the specified API version.
FileKeyRef selects a key of the env file. Requires the EnvFiles feature gate to be enabled.
The key within the env file. An invalid key will prevent the pod from starting. The keys defined within a source may consist of any printable ASCII characters except ‘=’. During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
Default: false

Specify whether the file or its key must be defined. If the file or key does not exist, then the env var is not published. If optional is set to true and the specified key does not exist, the environment variable will not be set in the Pod’s containers.

If optional is set to false and the specified key does not exist, an error will be returned during Pod creation.

The path within the volume from which to select the file. Must be relative and may not contain the ‘..’ path or start with ‘..’.
The name of the volume mount containing the env file.
Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
Container name: required for volumes, optional for env vars
Specifies the output format of the exposed resources, defaults to “1”
Required: resource to select
Selects a key of a secret in the pod’s namespace
The key of the secret to select from. Must be a valid secret key.
Default:
Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
Specify whether the Secret or its key must be defined
EnvFromSource represents the source of a set of ConfigMaps or Secrets
The ConfigMap to select from
Default:
Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
Specify whether the ConfigMap must be defined
Optional text to prepend to the name of each environment variable. May consist of any printable ASCII characters except ‘=’.
The Secret to select from
Default:
Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
Specify whether the Secret must be defined
Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.
Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
Actions that the management system should take in response to container lifecycle events. Cannot be updated.
PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
Exec specifies a command to execute in the container.
HTTPGet specifies an HTTP GET request to perform.
Host name to connect to, defaults to the pod IP. You probably want to set “Host” in httpHeaders instead.
HTTPHeader describes a custom header to be used in HTTP probes
The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.
The header field value
Path to access on the HTTP server.
Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
Scheme to use for connecting to the host. Defaults to HTTP.
Sleep represents a duration that the container should sleep.
Seconds is the number of seconds to sleep.
Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified.
Optional: Host name to connect to, defaults to the pod IP.
Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The Pod’s termination grace period countdown begins before the PreStop hook is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod’s termination grace period (unless delayed by finalizers). Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
Exec specifies a command to execute in the container.
HTTPGet specifies an HTTP GET request to perform.
Host name to connect to, defaults to the pod IP. You probably want to set “Host” in httpHeaders instead.
HTTPHeader describes a custom header to be used in HTTP probes
The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.
The header field value
Path to access on the HTTP server.
Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
Scheme to use for connecting to the host. Defaults to HTTP.
Sleep represents a duration that the container should sleep.
Seconds is the number of seconds to sleep.
Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified.
Optional: Host name to connect to, defaults to the pod IP.
Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
StopSignal defines which signal will be sent to a container when it is being stopped. If not specified, the default is defined by the container runtime in use. StopSignal can only be set for Pods with a non-empty .spec.os.name
Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
Exec specifies a command to execute in the container.
Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.
GRPC specifies a GRPC HealthCheckRequest.
Port number of the gRPC service. Number must be in the range 1 to 65535.