Crossplane API
This document applies to Crossplane version v1.14 and not to the latest release v1.16.
kind
attribute in API calls."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.strategy
is set to "Webhook"
.Webhook
.service
.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.Background
Automatic
/apis/<group>/...
. Must match the name of the XRD (in the form <names.plural>.<group>
).CompositionResourceDefinition
metadata.labels
.kind
attribute in API calls./apis/<group>/<version>/...
if served
is true.spec.versions[*].storage
field.Required
The expected input format.
quantity
- parses the input as a K8sresource.Quantity
. Only used duringstring -> float64
conversions. *json
- parses the input as a JSON string. Only used duringstring -> object
orstring -> list
conversions. If this property is null, the default conversion is applied.
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.
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.Resources
The expected input format.
quantity
- parses the input as a K8sresource.Quantity
. Only used duringstring -> float64
conversions. *json
- parses the input as a JSON string. Only used duringstring -> object
orstring -> list
conversions. If this property is null, the default conversion is applied.
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.
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.map[name:default]
The expected input format.
quantity
- parses the input as a K8sresource.Quantity
. Only used duringstring -> float64
conversions. *json
- parses the input as a JSON string. Only used duringstring -> object
orstring -> list
conversions. If this property is null, the default conversion is applied.
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.
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.Required
The expected input format.
quantity
- parses the input as a K8sresource.Quantity
. Only used duringstring -> float64
conversions. *json
- parses the input as a JSON string. Only used duringstring -> object
orstring -> list
conversions. If this property is null, the default conversion is applied.
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.
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.Resources
The expected input format.
quantity
- parses the input as a K8sresource.Quantity
. Only used duringstring -> float64
conversions. *json
- parses the input as a JSON string. Only used duringstring -> object
orstring -> list
conversions. If this property is null, the default conversion is applied.
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.
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.map[name:default]
The expected input format.
quantity
- parses the input as a K8sresource.Quantity
. Only used duringstring -> float64
conversions. *json
- parses the input as a JSON string. Only used duringstring -> object
orstring -> list
conversions. If this property is null, the default conversion is applied.
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.
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.false
IfNotPresent
Automatic
false
IfNotPresent
metadata.labels['<KEY>']
, metadata.annotations['<KEY>']
, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:
- The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR’d with rw-rw—- If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.
<pod name>-<volume name>
where <volume name>
is the name from the PodSpec.Volumes
array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long).
An existing PVC with that name that is not owned by the pod will not be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster.
This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created.
Required, must not be nil.metadata.labels['<KEY>']
, metadata.annotations['<KEY>']
, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.metadata.labels['<KEY>']
, metadata.annotations['<KEY>']
, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.metadata.labels['<KEY>']
, metadata.annotations['<KEY>']
, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:
- The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR’d with rw-rw—- If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.
If specified, the fully qualified Pod hostname will be “
whenUnsatisfiable=DoNotSchedule
, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When whenUnsatisfiable=ScheduleAnyway
, it is used to give higher precedence to topologies that satisfy it. It’s a required field. Default value is 1 and 0 is not allowed.<pod name>-<volume name>
where <volume name>
is the name from the PodSpec.Volumes
array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long).
An existing PVC with that name that is not owned by the pod will not be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster.
This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created.
Required, must not be nil.false
IfNotPresent
Automatic
1
false
IfNotPresent
false
IfNotPresent
Automatic
1
false
IfNotPresent