API Reference
Packages
- addons.cluster.x-k8s.io/v1beta2
- bootstrap.cluster.x-k8s.io/v1beta2
- cluster.x-k8s.io/v1beta2
- controlplane.cluster.x-k8s.io/v1beta2
- ipam.cluster.x-k8s.io/v1alpha1
- ipam.cluster.x-k8s.io/v1beta2
- runtime.cluster.x-k8s.io/v1alpha1
- runtime.cluster.x-k8s.io/v1beta2
addons.cluster.x-k8s.io/v1beta2
Package v1beta2 contains API Schema definitions for the addons v1beta2 API group.
Resource Types
ClusterResourceSet
ClusterResourceSet is the Schema for the clusterresourcesets API. For advanced use cases an add-on provider should be used instead.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | addons.cluster.x-k8s.io/v1beta2 | ||
kind string | ClusterResourceSet | ||
metadata ObjectMeta | Refer to Kubernetes API documentation for fields of metadata. | MinProperties: 1 Optional: {} | |
spec ClusterResourceSetSpec | spec is the desired state of ClusterResourceSet. | Required: {} | |
status ClusterResourceSetStatus | status is the observed state of ClusterResourceSet. | MinProperties: 1 Optional: {} |
ClusterResourceSetBinding
ClusterResourceSetBinding lists all matching ClusterResourceSets with the cluster it belongs to.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | addons.cluster.x-k8s.io/v1beta2 | ||
kind string | ClusterResourceSetBinding | ||
metadata ObjectMeta | Refer to Kubernetes API documentation for fields of metadata. | MinProperties: 1 Optional: {} | |
spec ClusterResourceSetBindingSpec | spec is the desired state of ClusterResourceSetBinding. | Required: {} |
ClusterResourceSetBindingList
ClusterResourceSetBindingList contains a list of ClusterResourceSetBinding.
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | addons.cluster.x-k8s.io/v1beta2 | ||
kind string | ClusterResourceSetBindingList | ||
metadata ListMeta | Refer to Kubernetes API documentation for fields of metadata. | Optional: {} | |
items ClusterResourceSetBinding array | items is the list of ClusterResourceSetBindings. |
ClusterResourceSetBindingSpec
ClusterResourceSetBindingSpec defines the desired state of ClusterResourceSetBinding.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
bindings ResourceSetBinding array | bindings is a list of ClusterResourceSets and their resources. | MaxItems: 100 Optional: {} | |
clusterName string | clusterName is the name of the Cluster this binding applies to. | MaxLength: 63 MinLength: 1 Required: {} |
ClusterResourceSetDeprecatedStatus
ClusterResourceSetDeprecatedStatus groups all the status fields that are deprecated and will be removed in a future version. See https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more context.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
v1beta1 ClusterResourceSetV1Beta1DeprecatedStatus | v1beta1 groups all the status fields that are deprecated and will be removed when support for v1beta1 will be dropped. | Optional: {} |
ClusterResourceSetList
ClusterResourceSetList contains a list of ClusterResourceSet.
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | addons.cluster.x-k8s.io/v1beta2 | ||
kind string | ClusterResourceSetList | ||
metadata ListMeta | Refer to Kubernetes API documentation for fields of metadata. | Optional: {} | |
items ClusterResourceSet array | items is the list of ClusterResourceSets. |
ClusterResourceSetSpec
ClusterResourceSetSpec defines the desired state of ClusterResourceSet.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
clusterSelector LabelSelector | clusterSelector is the label selector for Clusters. The Clusters that are selected by this will be the ones affected by this ClusterResourceSet. It must match the Cluster labels. This field is immutable. Label selector cannot be empty. | Required: {} | |
resources ResourceRef array | resources is a list of Secrets/ConfigMaps where each contains 1 or more resources to be applied to remote clusters. | MaxItems: 100 MinItems: 1 Required: {} | |
strategy string | strategy is the strategy to be used during applying resources. Defaults to ApplyOnce. This field is immutable. | Enum: [ApplyOnce Reconcile] Optional: {} |
ClusterResourceSetStatus
ClusterResourceSetStatus defines the observed state of ClusterResourceSet.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
conditions Condition array | conditions represents the observations of a ClusterResourceSet’s current state. Known condition types are ResourcesApplied. | MaxItems: 32 Optional: {} | |
observedGeneration integer | observedGeneration reflects the generation of the most recently observed ClusterResourceSet. | Minimum: 1 Optional: {} | |
deprecated ClusterResourceSetDeprecatedStatus | deprecated groups all the status fields that are deprecated and will be removed when all the nested field are removed. | Optional: {} |
ClusterResourceSetV1Beta1DeprecatedStatus
ClusterResourceSetV1Beta1DeprecatedStatus groups all the status fields that are deprecated and will be removed when support for v1beta1 will be dropped. See https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more context.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
conditions Conditions | conditions defines current state of the ClusterResourceSet. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | Optional: {} |
ResourceBinding
ResourceBinding shows the status of a resource that belongs to a ClusterResourceSet matched by the owner cluster of the ClusterResourceSetBinding object.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string | name of the resource that is in the same namespace with ClusterResourceSet object. | MaxLength: 253 MinLength: 1 Required: {} | |
kind string | kind of the resource. Supported kinds are: Secrets and ConfigMaps. | Enum: [Secret ConfigMap] Required: {} | |
hash string | hash is the hash of a resource’s data. This can be used to decide if a resource is changed. For “ApplyOnce” ClusterResourceSet.spec.strategy, this is no-op as that strategy does not act on change. | MaxLength: 256 MinLength: 1 Optional: {} | |
applied boolean | applied is to track if a resource is applied to the cluster or not. | Required: {} |
ResourceRef
ResourceRef specifies a resource.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string | name of the resource that is in the same namespace with ClusterResourceSet object. | MaxLength: 253 MinLength: 1 Required: {} | |
kind string | kind of the resource. Supported kinds are: Secrets and ConfigMaps. | Enum: [Secret ConfigMap] Required: {} |
ResourceSetBinding
ResourceSetBinding keeps info on all of the resources in a ClusterResourceSet.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
clusterResourceSetName string | clusterResourceSetName is the name of the ClusterResourceSet that is applied to the owner cluster of the binding. | MaxLength: 253 MinLength: 1 Required: {} | |
resources ResourceBinding array | resources is a list of resources that the ClusterResourceSet has. | MaxItems: 100 Optional: {} |
bootstrap.cluster.x-k8s.io/v1beta2
Package v1beta2 contains API Schema definitions for the kubeadm v1beta2 API group.
Resource Types
APIEndpoint
APIEndpoint struct contains elements of API server instance deployed on a node.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
advertiseAddress string | advertiseAddress sets the IP address for the API server to advertise. | MaxLength: 39 MinLength: 1 Optional: {} | |
bindPort integer | bindPort sets the secure port for the API Server to bind to. Defaults to 6443. | Minimum: 1 Optional: {} |
APIServer
APIServer holds settings necessary for API server deployments in the cluster.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
extraArgs Arg array | extraArgs is a list of args to pass to the control plane component. The arg name must match the command line flag name except without leading dash(es). Extra arguments will override existing default arguments set by kubeadm. | MaxItems: 100 MinItems: 1 Optional: {} | |
extraVolumes HostPathMount array | extraVolumes is an extra set of host volumes, mounted to the control plane component. | MaxItems: 100 MinItems: 1 Optional: {} | |
extraEnvs EnvVar | extraEnvs is an extra set of environment variables to pass to the control plane component. Environment variables passed using ExtraEnvs will override any existing environment variables, or *_proxy environment variables that kubeadm adds by default. This option takes effect only on Kubernetes >=1.31.0. | MaxItems: 100 MinItems: 1 Optional: {} | |
certSANs string array | certSANs sets extra Subject Alternative Names for the API Server signing cert. | MaxItems: 100 MinItems: 1 items:MaxLength: 253 items:MinLength: 1 Optional: {} |
Arg
Arg represents an argument with a name and a value.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string | name is the Name of the extraArg. | MaxLength: 256 MinLength: 1 Required: {} | |
value string | value is the Value of the extraArg. | MaxLength: 1024 MinLength: 0 Required: {} |
BootstrapToken
BootstrapToken describes one bootstrap token, stored as a Secret in the cluster.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
token BootstrapTokenString | token is used for establishing bidirectional trust between nodes and control-planes. Used for joining nodes in the cluster. | MaxLength: 23 MinLength: 1 Type: string Required: {} | |
description string | description sets a human-friendly message why this token exists and what it’s used for, so other administrators can know its purpose. | MaxLength: 512 MinLength: 1 Optional: {} | |
ttlSeconds integer | ttlSeconds defines the time to live for this token. Defaults to 24h. Expires and ttlSeconds are mutually exclusive. | Minimum: 0 Optional: {} | |
usages string array | usages describes the ways in which this token can be used. Can by default be used for establishing bidirectional trust, but that can be changed here. | MaxItems: 100 MinItems: 1 items:MaxLength: 256 items:MinLength: 1 Optional: {} | |
groups string array | groups specifies the extra groups that this token will authenticate as when/if used for authentication | MaxItems: 100 MinItems: 1 items:MaxLength: 256 items:MinLength: 1 Optional: {} |
BootstrapTokenDiscovery
BootstrapTokenDiscovery is used to set the options for bootstrap token based discovery.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
token string | token is a token used to validate cluster information fetched from the control-plane. | MaxLength: 512 MinLength: 1 Optional: {} | |
apiServerEndpoint string | apiServerEndpoint is an IP or domain name to the API server from which info will be fetched. | MaxLength: 512 MinLength: 1 Optional: {} | |
caCertHashes string array | caCertHashes specifies a set of public key pins to verify when token-based discovery is used. The root CA found during discovery must match one of these values. Specifying an empty set disables root CA pinning, which can be unsafe. Each hash is specified as “ where the only currently supported type is “sha256”. This is a hex-encoded SHA-256 hash of the Subject Public Key Info (SPKI) object in DER-encoded ASN.1. These hashes can be calculated using, for example, OpenSSL: openssl x509 -pubkey -in ca.crt openssl rsa -pubin -outform der 2>&/dev/null | openssl dgst -sha256 -hex | MaxItems: 100 MinItems: 1 items:MaxLength: 512 items:MinLength: 1 Optional: {} | |
unsafeSkipCAVerification boolean | unsafeSkipCAVerification allows token-based discovery without CA verification via CACertHashes. This can weaken the security of kubeadm since other nodes can impersonate the control-plane. | Optional: {} |
BootstrapTokenString
BootstrapTokenString is a token of the format abcdef.abcdef0123456789 that is used for both validation of the practically of the API server from a joining node’s point of view and as an authentication method for the node in the bootstrap phase of “kubeadm join”. This token is and should be short-lived.
Validation:
- MaxLength: 23
- MinLength: 1
- Type: string
Appears in:
ClusterConfiguration
ClusterConfiguration contains cluster-wide configuration for a kubeadm cluster.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
etcd Etcd | etcd holds configuration for etcd. NB: This value defaults to a Local (stacked) etcd | MinProperties: 1 Optional: {} | |
controlPlaneEndpoint string | controlPlaneEndpoint sets a stable IP address or DNS name for the control plane; it can be a valid IP address or a RFC-1123 DNS subdomain, both with optional TCP port. In case the ControlPlaneEndpoint is not specified, the AdvertiseAddress + BindPort are used; in case the ControlPlaneEndpoint is specified but without a TCP port, the BindPort is used. Possible usages are: e.g. In a cluster with more than one control plane instances, this field should be assigned the address of the external load balancer in front of the control plane instances. e.g. in environments with enforced node recycling, the ControlPlaneEndpoint could be used for assigning a stable DNS to the control plane. NB: This value defaults to the first value in the Cluster object status.apiEndpoints array. | MaxLength: 512 MinLength: 1 Optional: {} | |
apiServer APIServer | apiServer contains extra settings for the API server control plane component | MinProperties: 1 Optional: {} | |
controllerManager ControllerManager | controllerManager contains extra settings for the controller manager control plane component | MinProperties: 1 Optional: {} | |
scheduler Scheduler | scheduler contains extra settings for the scheduler control plane component | MinProperties: 1 Optional: {} | |
dns DNS | dns defines the options for the DNS add-on installed in the cluster. | MinProperties: 1 Optional: {} | |
certificatesDir string | certificatesDir specifies where to store or look for all required certificates. NB: if not provided, this will default to /etc/kubernetes/pki | MaxLength: 512 MinLength: 1 Optional: {} | |
imageRepository string | imageRepository sets the container registry to pull images from. If not set, the default registry of kubeadm will be used (registry.k8s.io). | MaxLength: 512 MinLength: 1 Optional: {} | |
featureGates object (keys:string, values:boolean) | featureGates enabled by the user. | Optional: {} | |
certificateValidityPeriodDays integer | certificateValidityPeriodDays specifies the validity period for non-CA certificates generated by kubeadm. If not specified, kubeadm will use a default of 365 days (1 year). This field is only supported with Kubernetes v1.31 or above. | Maximum: 1095 Minimum: 1 Optional: {} | |
caCertificateValidityPeriodDays integer | caCertificateValidityPeriodDays specifies the validity period for CA certificates generated by Cluster API. If not specified, Cluster API will use a default of 3650 days (10 years). This field cannot be modified. | Maximum: 36500 Minimum: 1 Optional: {} | |
encryptionAlgorithm EncryptionAlgorithmType | encryptionAlgorithm holds the type of asymmetric encryption algorithm used for keys and certificates. Can be one of “RSA-2048”, “RSA-3072”, “RSA-4096”, “ECDSA-P256” or “ECDSA-P384”. For Kubernetes 1.34 or above, “ECDSA-P384” is supported. If not specified, Cluster API will use RSA-2048 as default. When this field is modified every certificate generated afterward will use the new encryptionAlgorithm. Existing CA certificates and service account keys are not rotated. This field is only supported with Kubernetes v1.31 or above. | Enum: [ECDSA-P256 ECDSA-P384 RSA-2048 RSA-3072 RSA-4096] Optional: {} |
ContainerLinuxConfig
ContainerLinuxConfig contains CLC-specific configuration.
We use a structured type here to allow adding additional fields, for example ‘version’.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
additionalConfig string | additionalConfig contains additional configuration to be merged with the Ignition configuration generated by the bootstrapper controller. More info: https://coreos.github.io/ignition/operator-notes/#config-merging The data format is documented here: https://kinvolk.io/docs/flatcar-container-linux/latest/provisioning/cl-config/ | MaxLength: 32768 MinLength: 1 Optional: {} | |
strict boolean | strict controls if AdditionalConfig should be strictly parsed. If so, warnings are treated as errors. | Optional: {} |
ControllerManager
ControllerManager holds settings necessary for controller-manager deployments in the cluster.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
extraArgs Arg array | extraArgs is a list of args to pass to the control plane component. The arg name must match the command line flag name except without leading dash(es). Extra arguments will override existing default arguments set by kubeadm. | MaxItems: 100 MinItems: 1 Optional: {} | |
extraVolumes HostPathMount array | extraVolumes is an extra set of host volumes, mounted to the control plane component. | MaxItems: 100 MinItems: 1 Optional: {} | |
extraEnvs EnvVar | extraEnvs is an extra set of environment variables to pass to the control plane component. Environment variables passed using ExtraEnvs will override any existing environment variables, or *_proxy environment variables that kubeadm adds by default. This option takes effect only on Kubernetes >=1.31.0. | MaxItems: 100 MinItems: 1 Optional: {} |
DNS
DNS defines the DNS addon that should be used in the cluster.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
imageRepository string | imageRepository sets the container registry to pull images from. if not set, the ImageRepository defined in ClusterConfiguration will be used instead. | MaxLength: 512 MinLength: 1 Optional: {} | |
imageTag string | imageTag allows to specify a tag for the image. In case this value is set, kubeadm does not change automatically the version of the above components during upgrades. | MaxLength: 256 MinLength: 1 Optional: {} |
Discovery
Discovery specifies the options for the kubelet to use during the TLS Bootstrap process.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
bootstrapToken BootstrapTokenDiscovery | bootstrapToken is used to set the options for bootstrap token based discovery BootstrapToken and File are mutually exclusive | MinProperties: 1 Optional: {} | |
file FileDiscovery | file is used to specify a file or URL to a kubeconfig file from which to load cluster information BootstrapToken and File are mutually exclusive | Optional: {} | |
tlsBootstrapToken string | tlsBootstrapToken is a token used for TLS bootstrapping. If .BootstrapToken is set, this field is defaulted to .BootstrapToken.Token, but can be overridden. If .File is set, this field must be set in case the KubeConfigFile does not contain any other authentication information | MaxLength: 512 MinLength: 1 Optional: {} |
DiskSetup
DiskSetup defines input for generated disk_setup and fs_setup in cloud-init.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
partitions Partition array | partitions specifies the list of the partitions to setup. | ExactlyOneOf: [layout diskLayout] MaxItems: 100 Optional: {} | |
filesystems Filesystem array | filesystems specifies the list of file systems to setup. | MaxItems: 100 Optional: {} |
Encoding
Underlying type: string
Encoding specifies the cloud-init file encoding.
Validation:
- Enum: [base64 gzip gzip+base64]
Appears in:
| Field | Description |
|---|---|
base64 | Base64 implies the contents of the file are encoded as base64. |
gzip | Gzip implies the contents of the file are encoded with gzip. |
gzip+base64 | GzipBase64 implies the contents of the file are first base64 encoded and then gzip encoded. |
EncryptionAlgorithmType
Underlying type: string
EncryptionAlgorithmType can define an asymmetric encryption algorithm type.
Validation:
- Enum: [ECDSA-P256 ECDSA-P384 RSA-2048 RSA-3072 RSA-4096]
Appears in:
| Field | Description |
|---|---|
ECDSA-P256 | EncryptionAlgorithmECDSAP256 defines the ECDSA encryption algorithm type with curve P256. |
ECDSA-P384 | EncryptionAlgorithmECDSAP384 defines the ECDSA encryption algorithm type with curve P384. |
RSA-2048 | EncryptionAlgorithmRSA2048 defines the RSA encryption algorithm type with key size 2048 bits. |
RSA-3072 | EncryptionAlgorithmRSA3072 defines the RSA encryption algorithm type with key size 3072 bits. |
RSA-4096 | EncryptionAlgorithmRSA4096 defines the RSA encryption algorithm type with key size 4096 bits. |
EnvVar
EnvVar represents an environment variable present in a Container.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string | Name of the environment variable. May consist of any printable ASCII characters except ‘=’. | ||
value string | 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 “”. | Optional: {} | |
valueFrom EnvVarSource | Source for the environment variable’s value. Cannot be used if value is not empty. | Optional: {} |
Etcd
Etcd contains elements describing Etcd configuration.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
local LocalEtcd | local provides configuration knobs for configuring the local etcd instance Local and External are mutually exclusive | MinProperties: 1 Optional: {} | |
external ExternalEtcd | external describes how to connect to an external etcd cluster Local and External are mutually exclusive | Optional: {} |
ExternalEtcd
ExternalEtcd describes an external etcd cluster. Kubeadm has no knowledge of where certificate files live and they must be supplied.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
endpoints string array | endpoints of etcd members. Required for ExternalEtcd. | MaxItems: 50 MinItems: 1 items:MaxLength: 512 items:MinLength: 1 Required: {} | |
caFile string | caFile is an SSL Certificate Authority file used to secure etcd communication. Required if using a TLS connection. | MaxLength: 512 MinLength: 1 Required: {} | |
certFile string | certFile is an SSL certification file used to secure etcd communication. Required if using a TLS connection. | MaxLength: 512 MinLength: 1 Required: {} | |
keyFile string | keyFile is an SSL key file used to secure etcd communication. Required if using a TLS connection. | MaxLength: 512 MinLength: 1 Required: {} |
File
File defines the input for generating write_files in cloud-init.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
path string | path specifies the full path on disk where to store the file. | MaxLength: 512 MinLength: 1 Required: {} | |
owner string | owner specifies the ownership of the file, e.g. “root:root”. | MaxLength: 256 MinLength: 1 Optional: {} | |
permissions string | permissions specifies the permissions to assign to the file, e.g. “0640”. | MaxLength: 16 MinLength: 1 Optional: {} | |
encoding Encoding | encoding specifies the encoding of the file contents. | Enum: [base64 gzip gzip+base64] Optional: {} | |
append boolean | append specifies whether to append Content to existing file if Path exists. | Optional: {} | |
content string | content is the actual content of the file. | MaxLength: 10240 MinLength: 1 Optional: {} | |
contentFrom FileSource | contentFrom is a referenced source of content to populate the file. | Optional: {} |
FileDiscovery
FileDiscovery is used to specify a file or URL to a kubeconfig file from which to load cluster information.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
kubeConfigPath string | kubeConfigPath is used to specify the actual file path or URL to the kubeconfig file from which to load cluster information | MaxLength: 512 MinLength: 1 Required: {} | |
kubeConfig FileDiscoveryKubeConfig | kubeConfig is used (optionally) to generate a KubeConfig based on the KubeadmConfig’s information. The file is generated at the path specified in KubeConfigPath. Host address (server field) information is automatically populated based on the Cluster’s ControlPlaneEndpoint. Certificate Authority (certificate-authority-data field) is gathered from the cluster’s CA secret. | Optional: {} |
FileDiscoveryKubeConfig
FileDiscoveryKubeConfig contains elements describing how to generate the kubeconfig for bootstrapping.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
cluster KubeConfigCluster | cluster contains information about how to communicate with the kubernetes cluster. By default the following fields are automatically populated: - Server with the Cluster’s ControlPlaneEndpoint. - CertificateAuthorityData with the Cluster’s CA certificate. | MinProperties: 1 Optional: {} | |
user KubeConfigUser | user contains information that describes identity information. This is used to tell the kubernetes cluster who you are. | MinProperties: 1 Required: {} |
FileSource
FileSource is a union of all possible external source types for file data. Only one field may be populated in any given instance. Developers adding new sources of data for target systems should add them here.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
secret SecretFileSource | secret represents a secret that should populate this file. | Required: {} |
Filesystem
Filesystem defines the file systems to be created.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
device string | device specifies the device name | MaxLength: 256 MinLength: 1 Required: {} | |
filesystem string | filesystem specifies the file system type. | MaxLength: 128 MinLength: 1 Required: {} | |
label string | label specifies the file system label to be used. If set to None, no label is used. | MaxLength: 512 MinLength: 1 Optional: {} | |
partition string | partition specifies the partition to use. The valid options are: “auto|any”, “auto”, “any”, “none”, and | MaxLength: 128 MinLength: 1 Optional: {} | |
overwrite boolean | overwrite defines whether or not to overwrite any existing filesystem. If true, any pre-existing file system will be destroyed. Use with Caution. | Optional: {} | |
replaceFS string | replaceFS is a special directive, used for Microsoft Azure that instructs cloud-init to replace a file system of <FS_TYPE>. NOTE: unless you define a label, this requires the use of the ‘any’ partition directive. | MaxLength: 128 MinLength: 1 Optional: {} | |
extraOpts string array | extraOpts defined extra options to add to the command for creating the file system. | MaxItems: 100 items:MaxLength: 256 items:MinLength: 1 Optional: {} |
Format
Underlying type: string
Format specifies the output format of the bootstrap data
Validation:
- Enum: [cloud-config ignition]
Appears in:
| Field | Description |
|---|---|
cloud-config | CloudConfig make the bootstrap data to be of cloud-config format. |
ignition | Ignition make the bootstrap data to be of Ignition format. |
HostPathMount
HostPathMount contains elements describing volumes that are mounted from the host.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string | name of the volume inside the pod template. | MaxLength: 512 MinLength: 1 Required: {} | |
hostPath string | hostPath is the path in the host that will be mounted inside the pod. | MaxLength: 512 MinLength: 1 Required: {} | |
mountPath string | mountPath is the path inside the pod where hostPath will be mounted. | MaxLength: 512 MinLength: 1 Required: {} | |
readOnly boolean | readOnly controls write access to the volume | Optional: {} | |
pathType HostPathType | pathType is the type of the HostPath. | Optional: {} |
IgnitionSpec
IgnitionSpec contains Ignition specific configuration.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
containerLinuxConfig ContainerLinuxConfig | containerLinuxConfig contains CLC specific configuration. | MinProperties: 1 Optional: {} |
InitConfiguration
InitConfiguration contains a list of elements that is specific “kubeadm init”-only runtime information.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
bootstrapTokens BootstrapToken array | bootstrapTokens is respected at kubeadm init time and describes a set of Bootstrap Tokens to create.This information IS NOT uploaded to the kubeadm cluster configmap, partly because of its sensitive nature | MaxItems: 100 MinItems: 1 Optional: {} | |
nodeRegistration NodeRegistrationOptions | nodeRegistration holds fields that relate to registering the new control-plane node to the cluster. When used in the context of control plane nodes, NodeRegistration should remain consistent across both InitConfiguration and JoinConfiguration | MinProperties: 1 Optional: {} | |
localAPIEndpoint APIEndpoint | localAPIEndpoint represents the endpoint of the API server instance that’s deployed on this control plane node In HA setups, this differs from ClusterConfiguration.ControlPlaneEndpoint in the sense that ControlPlaneEndpoint is the global endpoint for the cluster, which then loadbalances the requests to each individual API server. This configuration object lets you customize what IP/DNS name and port the local API server advertises it’s accessible on. By default, kubeadm tries to auto-detect the IP of the default interface and use that, but in case that process fails you may set the desired value here. | MinProperties: 1 Optional: {} | |
skipPhases string array | skipPhases is a list of phases to skip during command execution. The list of phases can be obtained with the “kubeadm init --help” command. This option takes effect only on Kubernetes >=1.22.0. | MaxItems: 50 MinItems: 1 items:MaxLength: 256 items:MinLength: 1 Optional: {} | |
patches Patches | patches contains options related to applying patches to components deployed by kubeadm during “kubeadm init”. The minimum kubernetes version needed to support Patches is v1.22 | MinProperties: 1 Optional: {} | |
timeouts Timeouts | timeouts holds various timeouts that apply to kubeadm commands. | MinProperties: 1 Optional: {} |
JoinConfiguration
JoinConfiguration contains elements describing a particular node.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
nodeRegistration NodeRegistrationOptions | nodeRegistration holds fields that relate to registering the new control-plane node to the cluster. When used in the context of control plane nodes, NodeRegistration should remain consistent across both InitConfiguration and JoinConfiguration | MinProperties: 1 Optional: {} | |
caCertPath string | caCertPath is the path to the SSL certificate authority used to secure communications between node and control-plane. Defaults to “/etc/kubernetes/pki/ca.crt”. | MaxLength: 512 MinLength: 1 Optional: {} | |
discovery Discovery | discovery specifies the options for the kubelet to use during the TLS Bootstrap process | MinProperties: 1 Optional: {} | |
controlPlane JoinControlPlane | controlPlane defines the additional control plane instance to be deployed on the joining node. If nil, no additional control plane instance will be deployed. | Optional: {} | |
skipPhases string array | skipPhases is a list of phases to skip during command execution. The list of phases can be obtained with the “kubeadm init --help” command. This option takes effect only on Kubernetes >=1.22.0. | MaxItems: 50 MinItems: 1 items:MaxLength: 256 items:MinLength: 1 Optional: {} | |
patches Patches | patches contains options related to applying patches to components deployed by kubeadm during “kubeadm join”. The minimum kubernetes version needed to support Patches is v1.22 | MinProperties: 1 Optional: {} | |
timeouts Timeouts | timeouts holds various timeouts that apply to kubeadm commands. | MinProperties: 1 Optional: {} |
JoinControlPlane
JoinControlPlane contains elements describing an additional control plane instance to be deployed on the joining node.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
localAPIEndpoint APIEndpoint | localAPIEndpoint represents the endpoint of the API server instance to be deployed on this node. | MinProperties: 1 Optional: {} |
KubeConfigAuthExec
KubeConfigAuthExec specifies a command to provide client credentials. The command is exec’d and outputs structured stdout holding credentials.
See the client.authentication.k8s.io API group for specifications of the exact input and output format.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
command string | command to execute. | MaxLength: 1024 MinLength: 1 Required: {} | |
args string array | args is the arguments to pass to the command when executing it. | MaxItems: 100 MinItems: 1 items:MaxLength: 512 items:MinLength: 1 Optional: {} | |
env KubeConfigAuthExecEnv array | env defines additional environment variables to expose to the process. These are unioned with the host’s environment, as well as variables client-go uses to pass argument to the plugin. | MaxItems: 100 MinItems: 1 Optional: {} | |
apiVersion string | apiVersion is preferred input version of the ExecInfo. The returned ExecCredentials MUST use the same encoding version as the input. Defaults to client.authentication.k8s.io/v1 if not set. | MaxLength: 512 MinLength: 1 Optional: {} | |
provideClusterInfo boolean | provideClusterInfo determines whether or not to provide cluster information, which could potentially contain very large CA data, to this exec plugin as a part of the KUBERNETES_EXEC_INFO environment variable. By default, it is set to false. Package k8s.io/client-go/tools/auth/exec provides helper methods for reading this environment variable. | Optional: {} |
KubeConfigAuthExecEnv
KubeConfigAuthExecEnv is used for setting environment variables when executing an exec-based credential plugin.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string | name of the environment variable | MaxLength: 512 MinLength: 1 Required: {} | |
value string | value of the environment variable | MaxLength: 512 MinLength: 1 Required: {} |
KubeConfigAuthProvider
KubeConfigAuthProvider holds the configuration for a specified auth provider.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string | name is the name of the authentication plugin. | MaxLength: 256 MinLength: 1 Required: {} | |
config object (keys:string, values:string) | config holds the parameters for the authentication plugin. | Optional: {} |
KubeConfigCluster
KubeConfigCluster contains information about how to communicate with a kubernetes cluster.
Adapted from clientcmdv1.Cluster.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
server string | server is the address of the kubernetes cluster (https://hostname:port). Defaults to https:// + Cluster.Spec.ControlPlaneEndpoint. | MaxLength: 512 MinLength: 1 Optional: {} | |
tlsServerName string | tlsServerName is used to check server certificate. If TLSServerName is empty, the hostname used to contact the server is used. | MaxLength: 512 MinLength: 1 Optional: {} | |
insecureSkipTLSVerify boolean | insecureSkipTLSVerify skips the validity check for the server’s certificate. This will make your HTTPS connections insecure. | Optional: {} | |
certificateAuthorityData integer array | certificateAuthorityData contains PEM-encoded certificate authority certificates. Defaults to the Cluster’s CA certificate if empty. | MaxLength: 51200 MinLength: 1 Optional: {} | |
proxyURL string | proxyURL is the URL to the proxy to be used for all requests made by this client. URLs with “http”, “https”, and “socks5” schemes are supported. If this configuration is not provided or the empty string, the client attempts to construct a proxy configuration from http_proxy and https_proxy environment variables. If these environment variables are not set, the client does not attempt to proxy requests. socks5 proxying does not currently support spdy streaming endpoints (exec, attach, port forward). | MaxLength: 512 MinLength: 1 Optional: {} |
KubeConfigUser
KubeConfigUser contains information that describes identity information. This is used to tell the kubernetes cluster who you are.
Either authProvider or exec must be filled.
Adapted from clientcmdv1.AuthInfo.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
authProvider KubeConfigAuthProvider | authProvider specifies a custom authentication plugin for the kubernetes cluster. | Optional: {} | |
exec KubeConfigAuthExec | exec specifies a custom exec-based authentication plugin for the kubernetes cluster. | Optional: {} |
KubeadmConfig
KubeadmConfig is the Schema for the kubeadmconfigs API.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | bootstrap.cluster.x-k8s.io/v1beta2 | ||
kind string | KubeadmConfig | ||
metadata ObjectMeta | Refer to Kubernetes API documentation for fields of metadata. | MinProperties: 1 Optional: {} | |
spec KubeadmConfigSpec | spec is the desired state of KubeadmConfig. | MinProperties: 1 Optional: {} | |
status KubeadmConfigStatus | status is the observed state of KubeadmConfig. | MinProperties: 1 Optional: {} |
KubeadmConfigDeprecatedStatus
KubeadmConfigDeprecatedStatus groups all the status fields that are deprecated and will be removed in a future version. See https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more context.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
v1beta1 KubeadmConfigV1Beta1DeprecatedStatus | v1beta1 groups all the status fields that are deprecated and will be removed when support for v1beta1 will be dropped. | Optional: {} |
KubeadmConfigInitializationStatus
KubeadmConfigInitializationStatus provides observations of the KubeadmConfig initialization process.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
dataSecretCreated boolean | dataSecretCreated is true when the Machine’s boostrap secret is created. NOTE: this field is part of the Cluster API contract, and it is used to orchestrate initial Machine provisioning. | Optional: {} |
KubeadmConfigList
KubeadmConfigList contains a list of KubeadmConfig.
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | bootstrap.cluster.x-k8s.io/v1beta2 | ||
kind string | KubeadmConfigList | ||
metadata ListMeta | Refer to Kubernetes API documentation for fields of metadata. | Optional: {} | |
items KubeadmConfig array | items is the list of KubeadmConfigs. |
KubeadmConfigSpec
KubeadmConfigSpec defines the desired state of KubeadmConfig. Either ClusterConfiguration and InitConfiguration should be defined or the JoinConfiguration should be defined.
Validation:
- MinProperties: 1
Appears in:
- KubeadmConfig
- KubeadmConfigTemplateResource
- KubeadmControlPlaneSpec
- KubeadmControlPlaneTemplateResourceSpec
| Field | Description | Default | Validation |
|---|---|---|---|
clusterConfiguration ClusterConfiguration | clusterConfiguration along with InitConfiguration are the configurations necessary for the init command | MinProperties: 1 Optional: {} | |
initConfiguration InitConfiguration | initConfiguration along with ClusterConfiguration are the configurations necessary for the init command | MinProperties: 1 Optional: {} | |
joinConfiguration JoinConfiguration | joinConfiguration is the kubeadm configuration for the join command | MinProperties: 1 Optional: {} | |
files File array | files specifies extra files to be passed to user_data upon creation. | MaxItems: 200 MinItems: 1 Optional: {} | |
diskSetup DiskSetup | diskSetup specifies options for the creation of partition tables and file systems on devices. | MinProperties: 1 Optional: {} | |
mounts MountPoints array | mounts specifies a list of mount points to be setup. | MaxItems: 100 MinItems: 1 items:MaxLength: 512 items:MinLength: 1 Optional: {} | |
bootCommands string array | bootCommands specifies extra commands to run very early in the boot process via the cloud-init bootcmd module. bootcmd will run on every boot, ‘cloud-init-per’ command can be used to make bootcmd run exactly once. This is typically run in the cloud-init.service systemd unit. This has no effect in Ignition. | MaxItems: 1000 MinItems: 1 items:MaxLength: 10240 items:MinLength: 1 Optional: {} | |
preKubeadmCommands string array | preKubeadmCommands specifies extra commands to run before kubeadm runs. With cloud-init, this is prepended to the runcmd module configuration, and is typically executed in the cloud-final.service systemd unit. In Ignition, this is prepended to /etc/kubeadm.sh. | MaxItems: 1000 MinItems: 1 items:MaxLength: 10240 items:MinLength: 1 Optional: {} | |
postKubeadmCommands string array | postKubeadmCommands specifies extra commands to run after kubeadm runs. With cloud-init, this is appended to the runcmd module configuration, and is typically executed in the cloud-final.service systemd unit. In Ignition, this is appended to /etc/kubeadm.sh. | MaxItems: 1000 MinItems: 1 items:MaxLength: 10240 items:MinLength: 1 Optional: {} | |
users User array | users specifies extra users to add | MaxItems: 100 MinItems: 1 Optional: {} | |
ntp NTP | ntp specifies NTP configuration | MinProperties: 1 Optional: {} | |
format Format | format specifies the output format of the bootstrap data. Defaults to cloud-config if not set. | Enum: [cloud-config ignition] Optional: {} | |
verbosity integer | verbosity is the number for the kubeadm log level verbosity. It overrides the --v flag in kubeadm commands. | Optional: {} | |
ignition IgnitionSpec | ignition contains Ignition specific configuration. | MinProperties: 1 Optional: {} |
KubeadmConfigStatus
KubeadmConfigStatus defines the observed state of KubeadmConfig.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
conditions Condition array | conditions represents the observations of a KubeadmConfig’s current state. Known condition types are Ready, DataSecretAvailable, CertificatesAvailable. | MaxItems: 32 Optional: {} | |
initialization KubeadmConfigInitializationStatus | initialization provides observations of the KubeadmConfig initialization process. NOTE: Fields in this struct are part of the Cluster API contract and are used to orchestrate initial Machine provisioning. | MinProperties: 1 Optional: {} | |
dataSecretName string | dataSecretName is the name of the secret that stores the bootstrap data script. | MaxLength: 253 MinLength: 1 Optional: {} | |
observedGeneration integer | observedGeneration is the latest generation observed by the controller. | Minimum: 1 Optional: {} | |
deprecated KubeadmConfigDeprecatedStatus | deprecated groups all the status fields that are deprecated and will be removed when all the nested field are removed. | Optional: {} |
KubeadmConfigTemplate
KubeadmConfigTemplate is the Schema for the kubeadmconfigtemplates API.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | bootstrap.cluster.x-k8s.io/v1beta2 | ||
kind string | KubeadmConfigTemplate | ||
metadata ObjectMeta | Refer to Kubernetes API documentation for fields of metadata. | MinProperties: 1 Optional: {} | |
spec KubeadmConfigTemplateSpec | spec is the desired state of KubeadmConfigTemplate. | Optional: {} |
KubeadmConfigTemplateList
KubeadmConfigTemplateList contains a list of KubeadmConfigTemplate.
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | bootstrap.cluster.x-k8s.io/v1beta2 | ||
kind string | KubeadmConfigTemplateList | ||
metadata ListMeta | Refer to Kubernetes API documentation for fields of metadata. | Optional: {} | |
items KubeadmConfigTemplate array | items is the list of KubeadmConfigTemplates. |
KubeadmConfigTemplateResource
KubeadmConfigTemplateResource defines the Template structure.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
metadata ObjectMeta | Refer to Kubernetes API documentation for fields of metadata. | MinProperties: 1 Optional: {} | |
spec KubeadmConfigSpec | spec is the desired state of KubeadmConfig. | MinProperties: 1 Optional: {} |
KubeadmConfigTemplateSpec
KubeadmConfigTemplateSpec defines the desired state of KubeadmConfigTemplate.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
template KubeadmConfigTemplateResource | template defines the desired state of KubeadmConfigTemplate. | MinProperties: 1 Required: {} |
KubeadmConfigV1Beta1DeprecatedStatus
KubeadmConfigV1Beta1DeprecatedStatus groups all the status fields that are deprecated and will be removed when support for v1beta1 will be dropped. See https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more context.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
conditions Conditions | conditions defines current service state of the KubeadmConfig. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | Optional: {} | |
failureReason string | failureReason will be set on non-retryable errors Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | MaxLength: 256 MinLength: 1 Optional: {} | |
failureMessage string | failureMessage will be set on non-retryable errors Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | MaxLength: 10240 MinLength: 1 Optional: {} |
LocalEtcd
LocalEtcd describes that kubeadm should run an etcd cluster locally.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
imageRepository string | imageRepository sets the container registry to pull images from. if not set, the ImageRepository defined in ClusterConfiguration will be used instead. | MaxLength: 512 MinLength: 1 Optional: {} | |
imageTag string | imageTag allows to specify a tag for the image. In case this value is set, kubeadm does not change automatically the version of the above components during upgrades. | MaxLength: 256 MinLength: 1 Optional: {} | |
dataDir string | dataDir is the directory etcd will place its data. Defaults to “/var/lib/etcd”. | MaxLength: 512 MinLength: 1 Optional: {} | |
extraArgs Arg array | extraArgs is a list of args to pass to etcd. The arg name must match the command line flag name except without leading dash(es). Extra arguments will override existing default arguments set by kubeadm. | MaxItems: 100 MinItems: 1 Optional: {} | |
extraEnvs EnvVar | extraEnvs is an extra set of environment variables to pass to etcd. Environment variables passed using ExtraEnvs will override any existing environment variables, or *_proxy environment variables that kubeadm adds by default. This option takes effect only on Kubernetes >=1.31.0. | MaxItems: 100 MinItems: 1 Optional: {} | |
serverCertSANs string array | serverCertSANs sets extra Subject Alternative Names for the etcd server signing cert. | MaxItems: 100 MinItems: 1 items:MaxLength: 253 items:MinLength: 1 Optional: {} | |
peerCertSANs string array | peerCertSANs sets extra Subject Alternative Names for the etcd peer signing cert. | MaxItems: 100 MinItems: 1 items:MaxLength: 253 items:MinLength: 1 Optional: {} |
MountPoints
Underlying type: string array
MountPoints defines input for generated mounts in cloud-init.
Validation:
- MaxItems: 100
- MinItems: 1
- items:MaxLength: 512
- items:MinLength: 1
Appears in:
NTP
NTP defines input for generated ntp in cloud-init.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
servers string array | servers specifies which NTP servers to use | MaxItems: 100 items:MaxLength: 512 items:MinLength: 1 Optional: {} | |
enabled boolean | enabled specifies whether NTP should be enabled | Optional: {} |
NodeRegistrationOptions
NodeRegistrationOptions holds fields that relate to registering a new control-plane or node to the cluster, either via “kubeadm init” or “kubeadm join”. Note: The NodeRegistrationOptions struct has to be kept in sync with the structs in MarshalJSON.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string | name is the .Metadata.Name field of the Node API object that will be created in this kubeadm init or kubeadm join operation.This field is also used in the CommonName field of the kubelet’s client certificate to the API server. Defaults to the hostname of the node if not provided. | MaxLength: 253 MinLength: 1 Optional: {} | |
criSocket string | criSocket is used to retrieve container runtime info. This information will be annotated to the Node API object, for later re-use | MaxLength: 512 MinLength: 1 Optional: {} | |
taints Taint | taints specifies the taints the Node API object should be registered with. If this field is unset, i.e. nil, in the kubeadm init processit will be defaulted to []v1.Taint{’node-role.kubernetes.io/master=””’}. If you don’t want to taint your control-plane node, set this field to an empty slice, i.e. taints: [] in the YAML file. This field is solely used for Node registration. | MaxItems: 100 MinItems: 0 Optional: {} | |
kubeletExtraArgs Arg array | kubeletExtraArgs is a list of args to pass to kubelet. The arg name must match the command line flag name except without leading dash(es). Extra arguments will override existing default arguments set by kubeadm. | MaxItems: 100 MinItems: 1 Optional: {} | |
ignorePreflightErrors string array | ignorePreflightErrors provides a slice of pre-flight errors to be ignored when the current node is registered, e.g. ‘IsPrivilegedUser,Swap’. Value ‘all’ ignores errors from all checks. | MaxItems: 50 MinItems: 1 items:MaxLength: 512 items:MinLength: 1 Optional: {} | |
imagePullPolicy PullPolicy | imagePullPolicy specifies the policy for image pulling during kubeadm “init” and “join” operations. The value of this field must be one of “Always”, “IfNotPresent” or “Never”. Defaults to “IfNotPresent” if not set. | Enum: [Always IfNotPresent Never] Optional: {} | |
imagePullSerial boolean | imagePullSerial specifies if image pulling performed by kubeadm must be done serially or in parallel. This option takes effect only on Kubernetes >=1.31.0. Default: true (defaulted in kubeadm) | Optional: {} |
Partition
Partition defines how to create and layout a partition.
Validation:
- ExactlyOneOf: [layout diskLayout]
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
device string | device is the name of the device. | MaxLength: 256 MinLength: 1 Required: {} | |
layout boolean | layout specifies the device layout. If it is true, a single partition will be created for the entire device. When layout is false, it means don’t partition or ignore existing partitioning. Mutually exclusive with diskLayout. | Optional: {} | |
overwrite boolean | overwrite describes whether to skip checks and create the partition if a partition or filesystem is found on the device. Use with caution. Default is ‘false’. | Optional: {} | |
tableType string | tableType specifies the tupe of partition table. The following are supported: ‘mbr’: default and setups a MS-DOS partition table ‘gpt’: setups a GPT partition table | Enum: [mbr gpt] Optional: {} | |
diskLayout PartitionSpec array | diskLayout specifies an ordered list of partitions, where each item defines the percentage of disk space and optional partition type for that partition. The sum of all partition percentages must not be greater than 100. Mutually exclusive with layout. | MaxItems: 100 MinItems: 1 Optional: {} |
PartitionSpec
PartitionSpec defines the size and optional type for a partition.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
percentage integer | percentage of disk that partition will take (1-100) | Maximum: 100 Minimum: 1 Required: {} | |
partitionType string | partitionType is the partition type (optional). Supported values are Linux, LinuxSwap, LinuxRAID, LVM, Fat32, NTFS, and LinuxExtended. These are translated to cloud-init partition type codes. A full GPT partition GUID is also supported as a passthrough value. | MaxLength: 36 MinLength: 1 Optional: {} |
PasswdSource
PasswdSource is a union of all possible external source types for passwd data. Only one field may be populated in any given instance. Developers adding new sources of data for target systems should add them here.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
secret SecretPasswdSource | secret represents a secret that should populate this password. | Required: {} |
Patches
Patches contains options related to applying patches to components deployed by kubeadm.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
directory string | directory is a path to a directory that contains files named “target[suffix][+patchtype].extension”. For example, “kube-apiserver0+merge.yaml” or just “etcd.json”. “target” can be one of “kube-apiserver”, “kube-controller-manager”, “kube-scheduler”, “etcd”. “patchtype” can be one of “strategic” “merge” or “json” and they match the patch formats supported by kubectl. The default “patchtype” is “strategic”. “extension” must be either “json” or “yaml”. “suffix” is an optional string that can be used to determine which patches are applied first alpha-numerically. These files can be written into the target directory via KubeadmConfig.Files which specifies additional files to be created on the machine, either with content inline or by referencing a secret. | MaxLength: 512 MinLength: 1 Optional: {} |
Scheduler
Scheduler holds settings necessary for scheduler deployments in the cluster.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
extraArgs Arg array | extraArgs is a list of args to pass to the control plane component. The arg name must match the command line flag name except without leading dash(es). Extra arguments will override existing default arguments set by kubeadm. | MaxItems: 100 MinItems: 1 Optional: {} | |
extraVolumes HostPathMount array | extraVolumes is an extra set of host volumes, mounted to the control plane component. | MaxItems: 100 MinItems: 1 Optional: {} | |
extraEnvs EnvVar | extraEnvs is an extra set of environment variables to pass to the control plane component. Environment variables passed using ExtraEnvs will override any existing environment variables, or *_proxy environment variables that kubeadm adds by default. This option takes effect only on Kubernetes >=1.31.0. | MaxItems: 100 MinItems: 1 Optional: {} |
SecretFileSource
SecretFileSource adapts a Secret into a FileSource.
The contents of the target Secret’s Data field will be presented as files using the keys in the Data field as the file names.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string | name of the secret in the KubeadmBootstrapConfig’s namespace to use. | MaxLength: 253 MinLength: 1 Required: {} | |
key string | key is the key in the secret’s data map for this value. | MaxLength: 256 MinLength: 1 Required: {} |
SecretPasswdSource
SecretPasswdSource adapts a Secret into a PasswdSource.
The contents of the target Secret’s Data field will be presented as passwd using the keys in the Data field as the file names.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string | name of the secret in the KubeadmBootstrapConfig’s namespace to use. | MaxLength: 253 MinLength: 1 Required: {} | |
key string | key is the key in the secret’s data map for this value. | MaxLength: 256 MinLength: 1 Required: {} |
Timeouts
Timeouts holds various timeouts that apply to kubeadm commands.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
controlPlaneComponentHealthCheckSeconds integer | controlPlaneComponentHealthCheckSeconds is the amount of time to wait for a control plane component, such as the API server, to be healthy during “kubeadm init” and “kubeadm join”. If not set, it defaults to 4m (240s). | Minimum: 0 Optional: {} | |
kubeletHealthCheckSeconds integer | kubeletHealthCheckSeconds is the amount of time to wait for the kubelet to be healthy during “kubeadm init” and “kubeadm join”. If not set, it defaults to 4m (240s). | Minimum: 0 Optional: {} | |
kubernetesAPICallSeconds integer | kubernetesAPICallSeconds is the amount of time to wait for the kubeadm client to complete a request to the API server. This applies to all types of methods (GET, POST, etc). If not set, it defaults to 1m (60s). | Minimum: 0 Optional: {} | |
etcdAPICallSeconds integer | etcdAPICallSeconds is the amount of time to wait for the kubeadm etcd client to complete a request to the etcd cluster. If not set, it defaults to 2m (120s). | Minimum: 0 Optional: {} | |
tlsBootstrapSeconds integer | tlsBootstrapSeconds is the amount of time to wait for the kubelet to complete TLS bootstrap for a joining node. If not set, it defaults to 5m (300s). | Minimum: 0 Optional: {} | |
discoverySeconds integer | discoverySeconds is the amount of time to wait for kubeadm to validate the API server identity for a joining node. If not set, it defaults to 5m (300s). | Minimum: 0 Optional: {} |
User
User defines the input for a generated user in cloud-init.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string | name specifies the user name | MaxLength: 256 MinLength: 1 Required: {} | |
gecos string | gecos specifies the gecos to use for the user | MaxLength: 256 MinLength: 1 Optional: {} | |
groups string | groups specifies the additional groups for the user | MaxLength: 256 MinLength: 1 Optional: {} | |
homeDir string | homeDir specifies the home directory to use for the user | MaxLength: 256 MinLength: 1 Optional: {} | |
inactive boolean | inactive specifies whether to mark the user as inactive | Optional: {} | |
shell string | shell specifies the user’s shell | MaxLength: 256 MinLength: 1 Optional: {} | |
passwd string | passwd specifies a hashed password for the user | MaxLength: 256 MinLength: 1 Optional: {} | |
passwdFrom PasswdSource | passwdFrom is a referenced source of passwd to populate the passwd. | Optional: {} | |
primaryGroup string | primaryGroup specifies the primary group for the user | MaxLength: 256 MinLength: 1 Optional: {} | |
lockPassword boolean | lockPassword specifies if password login should be disabled | Optional: {} | |
sudo string | sudo specifies a sudo role for the user | MaxLength: 256 MinLength: 1 Optional: {} | |
sshAuthorizedKeys string array | sshAuthorizedKeys specifies a list of ssh authorized keys for the user | MaxItems: 100 items:MaxLength: 2048 items:MinLength: 1 Optional: {} |
cluster.x-k8s.io/v1beta2
Package v1beta2 contains API Schema definitions for the cluster v1beta2 API group
Resource Types
- Cluster
- ClusterClass
- ClusterClassList
- ClusterList
- Machine
- MachineDeployment
- MachineDeploymentList
- MachineDrainRule
- MachineDrainRuleList
- MachineHealthCheck
- MachineHealthCheckList
- MachineList
- MachinePool
- MachinePoolList
- MachineSet
- MachineSetList
APIEndpoint
APIEndpoint represents a reachable Kubernetes API endpoint.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
host string | host is the hostname on which the API server is serving. | MaxLength: 512 MinLength: 1 Optional: {} | |
port integer | port is the port on which the API server is serving. | Maximum: 65535 Minimum: 1 Optional: {} |
Bootstrap
Bootstrap encapsulates fields to configure the Machine’s bootstrapping mechanism.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
configRef ContractVersionedObjectReference | configRef is a reference to a bootstrap provider-specific resource that holds configuration details. The reference is optional to allow users/operators to specify Bootstrap.DataSecretName without the need of a controller. | Optional: {} | |
dataSecretName string | dataSecretName is the name of the secret that stores the bootstrap data script. If nil, the Machine should remain in the Pending state. | MaxLength: 253 MinLength: 0 Optional: {} |
Cluster
Cluster is the Schema for the clusters API.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | cluster.x-k8s.io/v1beta2 | ||
kind string | Cluster | ||
metadata ObjectMeta | Refer to Kubernetes API documentation for fields of metadata. | MinProperties: 1 Optional: {} | |
spec ClusterSpec | spec is the desired state of Cluster. | MinProperties: 1 Required: {} | |
status ClusterStatus | status is the observed state of Cluster. | MinProperties: 1 Optional: {} |
ClusterAvailabilityGate
ClusterAvailabilityGate contains the type of a Cluster condition to be used as availability gate.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
conditionType string | conditionType refers to a condition with matching type in the Cluster’s condition list. If the conditions doesn’t exist, it will be treated as unknown. Note: Both Cluster API conditions or conditions added by 3rd party controllers can be used as availability gates. | MaxLength: 316 MinLength: 1 Pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ Required: {} | |
polarity ConditionPolarity | polarity of the conditionType specified in this availabilityGate. Valid values are Positive, Negative and omitted. When omitted, the default behaviour will be Positive. A positive polarity means that the condition should report a true status under normal conditions. A negative polarity means that the condition should report a false status under normal conditions. | Enum: [Positive Negative] Optional: {} |
ClusterClass
ClusterClass is a template which can be used to create managed topologies. NOTE: This CRD can only be used if the ClusterTopology feature gate is enabled.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | cluster.x-k8s.io/v1beta2 | ||
kind string | ClusterClass | ||
metadata ObjectMeta | Refer to Kubernetes API documentation for fields of metadata. | MinProperties: 1 Optional: {} | |
spec ClusterClassSpec | spec is the desired state of ClusterClass. | Required: {} | |
status ClusterClassStatus | status is the observed state of ClusterClass. | MinProperties: 1 Optional: {} |
ClusterClassDeprecatedStatus
ClusterClassDeprecatedStatus groups all the status fields that are deprecated and will be removed in a future version. See https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more context.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
v1beta1 ClusterClassV1Beta1DeprecatedStatus | v1beta1 groups all the status fields that are deprecated and will be removed when support for v1beta1 will be dropped. | Optional: {} |
ClusterClassList
ClusterClassList contains a list of Cluster.
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | cluster.x-k8s.io/v1beta2 | ||
kind string | ClusterClassList | ||
metadata ListMeta | Refer to Kubernetes API documentation for fields of metadata. | Optional: {} | |
items ClusterClass array | items is the list of ClusterClasses. |
ClusterClassPatch
ClusterClassPatch defines a patch which is applied to customize the referenced templates.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string | name of the patch. | MaxLength: 256 MinLength: 1 Required: {} | |
description string | description is a human-readable description of this patch. | MaxLength: 1024 MinLength: 1 Optional: {} | |
enabledIf string | enabledIf is a Go template to be used to calculate if a patch should be enabled. It can reference variables defined in .spec.variables and builtin variables. The patch will be enabled if the template evaluates to true, otherwise it willbe disabled. If EnabledIf is not set, the patch will be enabled per default. | MaxLength: 256 MinLength: 1 Optional: {} | |
definitions PatchDefinition array | definitions define inline patches. Note: Patches will be applied in the order of the array. Note: Exactly one of Definitions or External must be set. | MaxItems: 100 Optional: {} | |
external ExternalPatchDefinition | external defines an external patch. Note: Exactly one of Definitions or External must be set. | Optional: {} |
ClusterClassRef
ClusterClassRef is the ref to the ClusterClass that should be used for the topology.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string | name is the name of the ClusterClass that should be used for the topology. name must be a valid ClusterClass name and because of that be at most 253 characters in length and it must consist only of lower case alphanumeric characters, hyphens (-) and periods (.), and must start and end with an alphanumeric character. | MaxLength: 253 MinLength: 1 Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ Required: {} | |
namespace string | namespace is the namespace of the ClusterClass that should be used for the topology. If namespace is empty or not set, it is defaulted to the namespace of the Cluster object. namespace must be a valid namespace name and because of that be at most 63 characters in length and it must consist only of lower case alphanumeric characters or hyphens (-), and must start and end with an alphanumeric character. | MaxLength: 63 MinLength: 1 Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$ Optional: {} |
ClusterClassSpec
ClusterClassSpec describes the desired state of the ClusterClass.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
availabilityGates ClusterAvailabilityGate array | availabilityGates specifies additional conditions to include when evaluating Cluster Available condition. NOTE: If a Cluster is using this ClusterClass, and this Cluster defines a custom list of availabilityGates, such list overrides availabilityGates defined in this field. | MaxItems: 32 MinItems: 1 Optional: {} | |
infrastructure InfrastructureClass | infrastructure is a reference to a local struct that holds the details for provisioning the infrastructure cluster for the Cluster. | Required: {} | |
controlPlane ControlPlaneClass | controlPlane is a reference to a local struct that holds the details for provisioning the Control Plane for the Cluster. | Required: {} | |
workers WorkersClass | workers describes the worker nodes for the cluster. It is a collection of node types which can be used to create the worker nodes of the cluster. | MinProperties: 1 Optional: {} | |
variables ClusterClassVariable array | variables defines the variables which can be configured in the Cluster topology and are then used in patches. | MaxItems: 1000 MinItems: 1 Optional: {} | |
patches ClusterClassPatch array | patches defines the patches which are applied to customize referenced templates of a ClusterClass. Note: Patches will be applied in the order of the array. | MaxItems: 1000 MinItems: 1 Optional: {} | |
upgrade ClusterClassUpgrade | upgrade defines the upgrade configuration for clusters using this ClusterClass. | MinProperties: 1 Optional: {} | |
kubernetesVersions string array | kubernetesVersions is the list of Kubernetes versions that can be used for clusters using this ClusterClass. The list of version must be ordered from the older to the newer version, and there should be at least one version for every minor in between the first and the last version. | MaxItems: 100 MinItems: 1 items:MaxLength: 256 items:MinLength: 1 Optional: {} |
ClusterClassStatus
ClusterClassStatus defines the observed state of the ClusterClass.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
conditions Condition array | conditions represents the observations of a ClusterClass’s current state. Known condition types are VariablesReady, RefVersionsUpToDate, Paused. | MaxItems: 32 Optional: {} | |
variables ClusterClassStatusVariable array | variables is a list of ClusterClassStatusVariable that are defined for the ClusterClass. | MaxItems: 1000 Optional: {} | |
observedGeneration integer | observedGeneration is the latest generation observed by the controller. | Minimum: 1 Optional: {} | |
deprecated ClusterClassDeprecatedStatus | deprecated groups all the status fields that are deprecated and will be removed when all the nested field are removed. | Optional: {} |
ClusterClassStatusVariable
ClusterClassStatusVariable defines a variable which appears in the status of a ClusterClass.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string | name is the name of the variable. | MaxLength: 256 MinLength: 1 Required: {} | |
definitionsConflict boolean | definitionsConflict specifies whether or not there are conflicting definitions for a single variable name. | Optional: {} | |
definitions ClusterClassStatusVariableDefinition array | definitions is a list of definitions for a variable. | MaxItems: 100 MinItems: 1 Required: {} |
ClusterClassStatusVariableDefinition
ClusterClassStatusVariableDefinition defines a variable which appears in the status of a ClusterClass.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
from string | from specifies the origin of the variable definition. This will be inline for variables defined in the ClusterClass or the name of a patch defined in the ClusterClassfor variables discovered from a DiscoverVariables runtime extensions. | MaxLength: 256 MinLength: 1 Required: {} | |
required boolean | required specifies if the variable is required. Note: this applies to the variable as a whole and thus the top-level object defined in the schema. If nested fields are required, this will be specified inside the schema. | Required: {} | |
deprecatedV1Beta1Metadata ClusterClassVariableMetadata | deprecatedV1Beta1Metadata is the metadata of a variable. It can be used to add additional data for higher level tools to a ClusterClassVariable. Deprecated: This field is deprecated and will be removed when support for v1beta1 will be dropped. Please use XMetadata in JSONSchemaProps instead. | MinProperties: 1 Optional: {} | |
schema VariableSchema | schema defines the schema of the variable. | Required: {} |
ClusterClassTemplateReference
ClusterClassTemplateReference is a reference to a ClusterClass template.
Appears in:
- ControlPlaneClass
- ControlPlaneClassMachineInfrastructureTemplate
- InfrastructureClass
- MachineDeploymentClassBootstrapTemplate
- MachineDeploymentClassInfrastructureTemplate
- MachinePoolClassBootstrapTemplate
- MachinePoolClassInfrastructureTemplate
| Field | Description | Default | Validation |
|---|---|---|---|
kind string | kind of the template. kind must consist of alphanumeric characters or ‘-’, start with an alphabetic character, and end with an alphanumeric character. | MaxLength: 63 MinLength: 1 Pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$ Required: {} | |
name string | name of the template. name must consist of lower case alphanumeric characters, ‘-’ or ‘.’, and must start and end with an alphanumeric character. | MaxLength: 253 MinLength: 1 Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ Required: {} | |
apiVersion string | apiVersion of the template. apiVersion must be fully qualified domain name followed by / and a version. | MaxLength: 317 MinLength: 1 Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*\/[a-z]([-a-z0-9]*[a-z0-9])?$ Required: {} |
ClusterClassUpgrade
ClusterClassUpgrade defines the upgrade configuration for clusters using the ClusterClass.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
external ClusterClassUpgradeExternal | external defines external runtime extensions for upgrade operations. | MinProperties: 1 Optional: {} |
ClusterClassUpgradeExternal
ClusterClassUpgradeExternal defines external runtime extensions for upgrade operations.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
generateUpgradePlanExtension string | generateUpgradePlanExtension references an extension which is called to generate upgrade plan. | MaxLength: 512 MinLength: 1 Optional: {} |
ClusterClassV1Beta1DeprecatedStatus
ClusterClassV1Beta1DeprecatedStatus groups all the status fields that are deprecated and will be removed when support for v1beta1 will be dropped. See https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more context.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
conditions Conditions | conditions defines current observed state of the ClusterClass. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | Optional: {} |
ClusterClassVariable
ClusterClassVariable defines a variable which can be configured in the Cluster topology and used in patches.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string | name of the variable. | MaxLength: 256 MinLength: 1 Required: {} | |
required boolean | required specifies if the variable is required. Note: this applies to the variable as a whole and thus the top-level object defined in the schema. If nested fields are required, this will be specified inside the schema. | Required: {} | |
deprecatedV1Beta1Metadata ClusterClassVariableMetadata | deprecatedV1Beta1Metadata is the metadata of a variable. It can be used to add additional data for higher level tools to a ClusterClassVariable. Deprecated: This field is deprecated and will be removed when support for v1beta1 will be dropped. Please use XMetadata in JSONSchemaProps instead. | MinProperties: 1 Optional: {} | |
schema VariableSchema | schema defines the schema of the variable. | Required: {} |
ClusterClassVariableMetadata
ClusterClassVariableMetadata is the metadata of a variable. It can be used to add additional data for higher level tools to a ClusterClassVariable.
Deprecated: This struct is deprecated and is going to be removed in the next apiVersion.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
labels object (keys:string, values:string) | labels is a map of string keys and values that can be used to organize and categorize (scope and select) variables. | Optional: {} | |
annotations object (keys:string, values:string) | annotations is an unstructured key value map that can be used to store and retrieve arbitrary metadata. They are not queryable. | Optional: {} |
ClusterControlPlaneStatus
ClusterControlPlaneStatus groups all the observations about control plane current state.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
desiredReplicas integer | desiredReplicas is the total number of desired control plane machines in this cluster. | Optional: {} | |
replicas integer | replicas is the total number of control plane machines in this cluster. NOTE: replicas also includes machines still being provisioned or being deleted. | Optional: {} | |
upToDateReplicas integer | upToDateReplicas is the number of up-to-date control plane machines in this cluster. A machine is considered up-to-date when Machine’s UpToDate condition is true. | Optional: {} | |
readyReplicas integer | readyReplicas is the total number of ready control plane machines in this cluster. A machine is considered ready when Machine’s Ready condition is true. | Optional: {} | |
availableReplicas integer | availableReplicas is the total number of available control plane machines in this cluster. A machine is considered available when Machine’s Available condition is true. | Optional: {} |
ClusterDeprecatedStatus
ClusterDeprecatedStatus groups all the status fields that are deprecated and will be removed in a future version. See https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more context.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
v1beta1 ClusterV1Beta1DeprecatedStatus | v1beta1 groups all the status fields that are deprecated and will be removed when support for v1beta1 will be dropped. | Optional: {} |
ClusterInitializationStatus
ClusterInitializationStatus provides observations of the Cluster initialization process. NOTE: Fields in this struct are part of the Cluster API contract and are used to orchestrate initial Cluster provisioning.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
infrastructureProvisioned boolean | infrastructureProvisioned is true when the infrastructure provider reports that Cluster’s infrastructure is fully provisioned. NOTE: this field is part of the Cluster API contract, and it is used to orchestrate provisioning. The value of this field is never updated after provisioning is completed. | Optional: {} | |
controlPlaneInitialized boolean | controlPlaneInitialized denotes when the control plane is functional enough to accept requests. This information is usually used as a signal for starting all the provisioning operations that depends on a functional API server, but do not require a full HA control plane to exists, like e.g. join worker Machines, install core addons like CNI, CPI, CSI etc. NOTE: this field is part of the Cluster API contract, and it is used to orchestrate provisioning. The value of this field is never updated after initialization is completed. | Optional: {} |
ClusterList
ClusterList contains a list of Cluster.
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | cluster.x-k8s.io/v1beta2 | ||
kind string | ClusterList | ||
metadata ListMeta | Refer to Kubernetes API documentation for fields of metadata. | Optional: {} | |
items Cluster array | items is the list of Clusters. |
ClusterNetwork
ClusterNetwork specifies the different networking parameters for a cluster.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
apiServerPort integer | apiServerPort specifies the port the API Server should bind to. Defaults to 6443. | Maximum: 65535 Minimum: 1 Optional: {} | |
services NetworkRanges | services is the network ranges from which service VIPs are allocated. | Optional: {} | |
pods NetworkRanges | pods is the network ranges from which Pod networks are allocated. | Optional: {} | |
serviceDomain string | serviceDomain is the domain name for services. | MaxLength: 253 MinLength: 1 Optional: {} |
ClusterSpec
ClusterSpec defines the desired state of Cluster.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
paused boolean | paused can be used to prevent controllers from processing the Cluster and all its associated objects. | Optional: {} | |
clusterNetwork ClusterNetwork | clusterNetwork represents the cluster network configuration. | MinProperties: 1 Optional: {} | |
controlPlaneEndpoint APIEndpoint | controlPlaneEndpoint represents the endpoint used to communicate with the control plane. | MinProperties: 1 Optional: {} | |
controlPlaneRef ContractVersionedObjectReference | controlPlaneRef is an optional reference to a provider-specific resource that holds the details for provisioning the Control Plane for a Cluster. | Optional: {} | |
infrastructureRef ContractVersionedObjectReference | infrastructureRef is a reference to a provider-specific resource that holds the details for provisioning infrastructure for a cluster in said provider. | Optional: {} | |
topology Topology | topology encapsulates the topology for the cluster. NOTE: It is required to enable the ClusterTopology feature gate flag to activate managed topologies support. | Optional: {} | |
availabilityGates ClusterAvailabilityGate array | availabilityGates specifies additional conditions to include when evaluating Cluster Available condition. If this field is not defined and the Cluster implements a managed topology, availabilityGates from the corresponding ClusterClass will be used, if any. | MaxItems: 32 MinItems: 1 Optional: {} |
ClusterStatus
ClusterStatus defines the observed state of Cluster.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
conditions Condition array | conditions represents the observations of a Cluster’s current state. Known condition types are Available, InfrastructureReady, ControlPlaneInitialized, ControlPlaneAvailable, WorkersAvailable, MachinesReady MachinesUpToDate, RemoteConnectionProbe, ScalingUp, ScalingDown, Remediating, Deleting, Paused. Additionally, a TopologyReconciled condition will be added in case the Cluster is referencing a ClusterClass / defining a managed Topology. | MaxItems: 32 Optional: {} | |
initialization ClusterInitializationStatus | initialization provides observations of the Cluster initialization process. NOTE: Fields in this struct are part of the Cluster API contract and are used to orchestrate initial Cluster provisioning. | MinProperties: 1 Optional: {} | |
controlPlane ClusterControlPlaneStatus | controlPlane groups all the observations about Cluster’s ControlPlane current state. | Optional: {} | |
workers WorkersStatus | workers groups all the observations about Cluster’s Workers current state. | Optional: {} | |
failureDomains FailureDomain array | failureDomains is a slice of failure domain objects synced from the infrastructure provider. | MaxItems: 100 MinItems: 1 Optional: {} | |
phase string | phase represents the current phase of cluster actuation. | Enum: [Pending Provisioning Provisioned Deleting Failed Unknown] Optional: {} | |
observedGeneration integer | observedGeneration is the latest generation observed by the controller. | Minimum: 1 Optional: {} | |
deprecated ClusterDeprecatedStatus | deprecated groups all the status fields that are deprecated and will be removed when all the nested field are removed. | Optional: {} |
ClusterV1Beta1DeprecatedStatus
ClusterV1Beta1DeprecatedStatus groups all the status fields that are deprecated and will be removed when support for v1beta1 will be dropped. See https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more context.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
conditions Conditions | conditions defines current service state of the cluster. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | Optional: {} | |
failureReason ClusterStatusError | failureReason indicates that there is a fatal problem reconciling the state, and will be set to a token value suitable for programmatic interpretation. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | Optional: {} | |
failureMessage string | failureMessage indicates that there is a fatal problem reconciling the state, and will be set to a descriptive error message. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | MaxLength: 10240 MinLength: 1 Optional: {} |
ClusterVariable
ClusterVariable can be used to customize the Cluster through patches. Each ClusterVariable is associated with a
Variable definition in the ClusterClass status variables.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string | name of the variable. | MaxLength: 256 MinLength: 1 Required: {} | |
value JSON | value of the variable. Note: the value will be validated against the schema of the corresponding ClusterClassVariable from the ClusterClass. Note: We have to use apiextensionsv1.JSON instead of a custom JSON type, because controller-tools has a hard-coded schema for apiextensionsv1.JSON which cannot be produced by another type via controller-tools, i.e. it is not possible to have no type field. Ref: https://github.com/kubernetes-sigs/controller-tools/blob/d0e03a142d0ecdd5491593e941ee1d6b5d91dba6/pkg/crd/known_types.go#L106-L111 | Required: {} |
Condition
Condition defines an observation of a Cluster API resource operational state.
Deprecated: This type is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
type ConditionType | type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. | MaxLength: 256 MinLength: 1 Required: {} | |
status ConditionStatus | status of the condition, one of True, False, Unknown. | Required: {} | |
severity ConditionSeverity | severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. | MaxLength: 32 Optional: {} | |
reason string | reason is the reason for the condition’s last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may be empty. | MaxLength: 256 MinLength: 1 Optional: {} | |
message string | message is a human readable message indicating details about the transition. This field may be empty. | MaxLength: 10240 MinLength: 1 Optional: {} |
ConditionPolarity
Underlying type: string
ConditionPolarity defines the polarity for a metav1.Condition.
Validation:
- Enum: [Positive Negative]
Appears in:
| Field | Description |
|---|---|
Positive | PositivePolarityCondition describe a condition with positive polarity, a condition where the normal state is True. e.g. NetworkReady. |
Negative | NegativePolarityCondition describe a condition with negative polarity, a condition where the normal state is False. e.g. MemoryPressure. |
ConditionSeverity
Underlying type: string
ConditionSeverity expresses the severity of a Condition Type failing.
Deprecated: This type is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details.
Validation:
- MaxLength: 32
Appears in:
| Field | Description |
|---|---|
Error | ConditionSeverityError specifies that a condition with Status=False is an error. |
Warning | ConditionSeverityWarning specifies that a condition with Status=False is a warning. |
Info | ConditionSeverityInfo specifies that a condition with Status=False is informative. |
| `` | ConditionSeverityNone should apply only to conditions with Status=True. |
ConditionType
Underlying type: string
ConditionType is a valid value for Condition.Type.
Deprecated: This type is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details.
Validation:
- MaxLength: 256
- MinLength: 1
Appears in:
| Field | Description |
|---|---|
Ready | ReadyV1Beta1Condition defines the Ready condition type that summarizes the operational state of a Cluster API object. |
InfrastructureReady | InfrastructureReadyV1Beta1Condition reports a summary of current status of the infrastructure object defined for this cluster/machine/machinepool. This condition is mirrored from the Ready condition in the infrastructure ref object, and the absence of this condition might signal problems in the reconcile external loops or the fact that the infrastructure provider does not implement the Ready condition yet. |
VariablesReconciled | ClusterClassVariablesReconciledV1Beta1Condition reports if the ClusterClass variables, including both inline and external variables, have been successfully reconciled. This signals that the ClusterClass is ready to be used to default and validate variables on Clusters using this ClusterClass. |
ControlPlaneInitialized | ControlPlaneInitializedV1Beta1Condition reports if the cluster’s control plane has been initialized such that the cluster’s apiserver is reachable. If no Control Plane provider is in use this condition reports that at least one control plane Machine has a node reference. Once this Condition is marked true, its value is never changed. See the ControlPlaneReady condition for an indication of the current readiness of the cluster’s control plane. |
ControlPlaneReady | ControlPlaneReadyV1Beta1Condition reports the ready condition from the control plane object defined for this cluster. This condition is mirrored from the Ready condition in the control plane ref object, and the absence of this condition might signal problems in the reconcile external loops or the fact that the control plane provider does not implement the Ready condition yet. |
BootstrapReady | BootstrapReadyV1Beta1Condition reports a summary of current status of the bootstrap object defined for this machine. This condition is mirrored from the Ready condition in the bootstrap ref object, and the absence of this condition might signal problems in the reconcile external loops or the fact that the bootstrap provider does not implement the Ready condition yet. |
DrainingSucceeded | DrainingSucceededV1Beta1Condition provide evidence of the status of the node drain operation which happens during the machine deletion process. |
PreDrainDeleteHookSucceeded | PreDrainDeleteHookSucceededV1Beta1Condition reports a machine waiting for a PreDrainDeleteHook before being delete. |
PreTerminateDeleteHookSucceeded | PreTerminateDeleteHookSucceededV1Beta1Condition reports a machine waiting for a PreDrainDeleteHook before being delete. |
VolumeDetachSucceeded | VolumeDetachSucceededV1Beta1Condition reports a machine waiting for volumes to be detached. |
HealthCheckSucceeded | MachineHealthCheckSucceededV1Beta1Condition is set on machines that have passed a healthcheck by the MachineHealthCheck controller. In the event that the health check fails it will be set to False. |
OwnerRemediated | MachineOwnerRemediatedV1Beta1Condition is set on machines that have failed a healthcheck by the MachineHealthCheck controller. MachineOwnerRemediatedV1Beta1Condition is set to False after a health check fails, but should be changed to True by the owning controller after remediation succeeds. |
ExternalRemediationTemplateAvailable | ExternalRemediationTemplateAvailableV1Beta1Condition is set on machinehealthchecks when MachineHealthCheck controller uses external remediation. ExternalRemediationTemplateAvailableV1Beta1Condition is set to false if external remediation template is not found. |
ExternalRemediationRequestAvailable | ExternalRemediationRequestAvailableV1Beta1Condition is set on machinehealthchecks when MachineHealthCheck controller uses external remediation. ExternalRemediationRequestAvailableV1Beta1Condition is set to false if creating external remediation request fails. |
NodeHealthy | MachineNodeHealthyV1Beta1Condition provides info about the operational state of the Kubernetes node hosted on the machine by summarizing node conditions. If the conditions defined in a Kubernetes node (i.e., NodeReady, NodeMemoryPressure, NodeDiskPressure and NodePIDPressure) are in a healthy state, it will be set to True. |
RemediationAllowed | RemediationAllowedV1Beta1Condition is set on MachineHealthChecks to show the status of whether the MachineHealthCheck is allowed to remediate any Machines or whether it is blocked from remediating any further. |
Available | MachineDeploymentAvailableV1Beta1Condition means the MachineDeployment is available, that is, at least the minimum available machines required (i.e. Spec.Replicas-MaxUnavailable when spec.rollout.strategy.type = RollingUpdate) are up and running for at least minReadySeconds. |
MachineSetReady | MachineSetReadyV1Beta1Condition reports a summary of current status of the MachineSet owned by the MachineDeployment. |
MachinesCreated | MachinesCreatedV1Beta1Condition documents that the machines controlled by the MachineSet are created. When this condition is false, it indicates that there was an error when cloning the infrastructure/bootstrap template or when generating the machine object. |
MachinesReady | MachinesReadyV1Beta1Condition reports an aggregate of current status of the machines controlled by the MachineSet. |
Resized | ResizedV1Beta1Condition documents a MachineSet is resizing the set of controlled machines. |
TopologyReconciled | TopologyReconciledV1Beta1Condition provides evidence about the reconciliation of a Cluster topology into the managed objects of the Cluster. Status false means that for any reason, the values defined in Cluster.spec.topology are not yet applied to managed objects on the Cluster; status true means that Cluster.spec.topology have been applied to the objects in the Cluster (but this does not imply those objects are already reconciled to the spec provided). |
RefVersionsUpToDate | ClusterClassRefVersionsUpToDateV1Beta1Condition documents if the references in the ClusterClass are up-to-date (i.e. they are using the latest apiVersion of the current Cluster API contract from the corresponding CRD). |
ReplicasReady | ReplicasReadyV1Beta1Condition reports an aggregate of current status of the replicas controlled by the MachinePool. |
Conditions
Underlying type: Condition
Conditions provide observations of the operational state of a Cluster API resource.
Deprecated: This type is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details.
Appears in:
- ClusterClassV1Beta1DeprecatedStatus
- ClusterResourceSetV1Beta1DeprecatedStatus
- ClusterV1Beta1DeprecatedStatus
- ExtensionConfigV1Beta1DeprecatedStatus
- IPAddressClaimV1Beta1DeprecatedStatus
- KubeadmConfigV1Beta1DeprecatedStatus
- KubeadmControlPlaneV1Beta1DeprecatedStatus
- MachineDeploymentV1Beta1DeprecatedStatus
- MachineHealthCheckV1Beta1DeprecatedStatus
- MachinePoolV1Beta1DeprecatedStatus
- MachineSetV1Beta1DeprecatedStatus
- MachineV1Beta1DeprecatedStatus
| Field | Description | Default | Validation |
|---|---|---|---|
type ConditionType | type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. | MaxLength: 256 MinLength: 1 Required: {} | |
status ConditionStatus | status of the condition, one of True, False, Unknown. | Required: {} | |
severity ConditionSeverity | severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False. | MaxLength: 32 Optional: {} | |
reason string | reason is the reason for the condition’s last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may be empty. | MaxLength: 256 MinLength: 1 Optional: {} | |
message string | message is a human readable message indicating details about the transition. This field may be empty. | MaxLength: 10240 MinLength: 1 Optional: {} |
ContractVersionedObjectReference
ContractVersionedObjectReference is a reference to a resource for which the version is inferred from contract labels.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
kind string | kind of the resource being referenced. kind must consist of alphanumeric characters or ‘-’, start with an alphabetic character, and end with an alphanumeric character. | MaxLength: 63 MinLength: 1 Pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$ Required: {} | |
name string | name of the resource being referenced. name must consist of lower case alphanumeric characters, ‘-’ or ‘.’, and must start and end with an alphanumeric character. | MaxLength: 253 MinLength: 1 Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ Required: {} | |
apiGroup string | apiGroup is the group of the resource being referenced. apiGroup must be fully qualified domain name. The corresponding version for this reference will be looked up from the contract labels of the corresponding CRD of the resource being referenced. | MaxLength: 253 MinLength: 1 Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ Required: {} |
ControlPlaneClass
ControlPlaneClass defines the class for the control plane.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
metadata ObjectMeta | Refer to Kubernetes API documentation for fields of metadata. | MinProperties: 1 Optional: {} | |
templateRef ClusterClassTemplateReference | templateRef contains the reference to a provider-specific control plane template. | Required: {} | |
machineInfrastructure ControlPlaneClassMachineInfrastructureTemplate | machineInfrastructure defines the metadata and infrastructure information for control plane machines. This field is supported if and only if the control plane provider template referenced above is Machine based and supports setting replicas. | Optional: {} | |
healthCheck ControlPlaneClassHealthCheck | healthCheck defines a MachineHealthCheck for this ControlPlaneClass. This field is supported if and only if the ControlPlane provider template referenced above is Machine based and supports setting replicas. | MinProperties: 1 Optional: {} | |
naming ControlPlaneClassNamingSpec | naming allows changing the naming pattern used when creating the control plane provider object. | MinProperties: 1 Optional: {} | |
deletion ControlPlaneClassMachineDeletionSpec | deletion contains configuration options for Machine deletion. | MinProperties: 1 Optional: {} | |
taints MachineTaint array | taints are the node taints that Cluster API will manage. This list is not necessarily complete: other Kubernetes components may add or remove other taints from nodes, e.g. the node controller might add the node.kubernetes.io/not-ready taint. Only those taints defined in this list will be added or removed by core Cluster API controllers. There can be at most 64 taints. A pod would have to tolerate all existing taints to run on the corresponding node. NOTE: This list is implemented as a “map” type, meaning that individual elements can be managed by different owners. | MaxItems: 64 MinItems: 1 Optional: {} | |
readinessGates MachineReadinessGate array | readinessGates specifies additional conditions to include when evaluating Machine Ready condition. This field can be used e.g. to instruct the machine controller to include in the computation for Machine’s ready computation a condition, managed by an external controllers, reporting the status of special software/hardware installed on the Machine. NOTE: If a Cluster defines a custom list of readinessGates for the control plane, such list overrides readinessGates defined in this field. NOTE: Specific control plane provider implementations might automatically extend the list of readinessGates; e.g. the kubeadm control provider adds ReadinessGates for the APIServerPodHealthy, SchedulerPodHealthy conditions, etc. | MaxItems: 32 MinItems: 1 Optional: {} |
ControlPlaneClassHealthCheck
ControlPlaneClassHealthCheck defines a MachineHealthCheck for control plane machines.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
checks ControlPlaneClassHealthCheckChecks | checks are the checks that are used to evaluate if a Machine is healthy. Independent of this configuration the MachineHealthCheck controller will always flag Machines with cluster.x-k8s.io/remediate-machine annotation andMachines with deleted Nodes as unhealthy. Furthermore, if checks.nodeStartupTimeoutSeconds is not set it is defaulted to 10 minutes and evaluated accordingly. | MinProperties: 1 Optional: {} | |
remediation ControlPlaneClassHealthCheckRemediation | remediation configures if and how remediations are triggered if a Machine is unhealthy. If remediation or remediation.triggerIf is not set, remediation will always be triggered for unhealthy Machines. If remediation or remediation.templateRef is not set, the OwnerRemediated condition will be set on unhealthy Machines to trigger remediation via the owner of the Machines, for example a MachineSet or a KubeadmControlPlane. | MinProperties: 1 Optional: {} |
ControlPlaneClassHealthCheckChecks
ControlPlaneClassHealthCheckChecks are the checks that are used to evaluate if a control plane Machine is healthy.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
nodeStartupTimeoutSeconds integer | nodeStartupTimeoutSeconds allows to set the maximum time for MachineHealthCheck to consider a Machine unhealthy if a corresponding Node isn’t associated through a Spec.ProviderID field.The duration set in this field is compared to the greatest of: - Cluster’s infrastructure ready condition timestamp (if and when available) - Control Plane’s initialized condition timestamp (if and when available) - Machine’s infrastructure ready condition timestamp (if and when available) - Machine’s metadata creation timestamp Defaults to 10 minutes. If you wish to disable this feature, set the value explicitly to 0. | Minimum: 0 Optional: {} | |
unhealthyNodeConditions UnhealthyNodeCondition array | unhealthyNodeConditions contains a list of conditions that determine whether a node is considered unhealthy. The conditions are combined in a logical OR, i.e. if any of the conditions is met, the node is unhealthy. | MaxItems: 100 MinItems: 1 Optional: {} | |
unhealthyMachineConditions UnhealthyMachineCondition array | unhealthyMachineConditions contains a list of the machine conditions that determine whether a machine is considered unhealthy. The conditions are combined in a logical OR, i.e. if any of the conditions is met, the machine is unhealthy. | MaxItems: 100 MinItems: 1 Optional: {} |
ControlPlaneClassHealthCheckRemediation
ControlPlaneClassHealthCheckRemediation configures if and how remediations are triggered if a control plane Machine is unhealthy.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
triggerIf ControlPlaneClassHealthCheckRemediationTriggerIf | triggerIf configures if remediations are triggered. If this field is not set, remediations are always triggered. | MinProperties: 1 Optional: {} | |
templateRef MachineHealthCheckRemediationTemplateReference | templateRef is a reference to a remediation template provided by an infrastructure provider. This field is completely optional, when filled, the MachineHealthCheck controller creates a new object from the template referenced and hands off remediation of the machine to a controller that lives outside of Cluster API. | Optional: {} |
ControlPlaneClassHealthCheckRemediationTriggerIf
ControlPlaneClassHealthCheckRemediationTriggerIf configures if remediations are triggered.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
unhealthyLessThanOrEqualTo IntOrString | unhealthyLessThanOrEqualTo specifies that remediations are only triggered if the number of unhealthy Machines is less than or equal to the configured value. unhealthyInRange takes precedence if set. | Optional: {} | |
unhealthyInRange string | unhealthyInRange specifies that remediations are only triggered if the number of unhealthy Machines is in the configured range. Takes precedence over unhealthyLessThanOrEqualTo. Eg. “[3-5]“ - This means that remediation will be allowed only when: (a) there are at least 3 unhealthy Machines (and) (b) there are at most 5 unhealthy Machines | MaxLength: 32 MinLength: 1 Pattern: ^\[[0-9]+-[0-9]+\]$ Optional: {} |
ControlPlaneClassMachineDeletionSpec
ControlPlaneClassMachineDeletionSpec contains configuration options for Machine deletion.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
nodeDrainTimeoutSeconds integer | nodeDrainTimeoutSeconds is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: nodeDrainTimeoutSeconds is different from kubectl drain --timeoutNOTE: This value can be overridden while defining a Cluster.Topology. | Minimum: 0 Optional: {} | |
nodeVolumeDetachTimeoutSeconds integer | nodeVolumeDetachTimeoutSeconds is the total amount of time that the controller will spend on waiting for all volumes to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. NOTE: This value can be overridden while defining a Cluster.Topology. | Minimum: 0 Optional: {} | |
nodeDeletionTimeoutSeconds integer | nodeDeletionTimeoutSeconds defines how long the controller will attempt to delete the Node that the Machine hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. Defaults to 10 seconds. NOTE: This value can be overridden while defining a Cluster.Topology. | Minimum: 0 Optional: {} |
ControlPlaneClassMachineInfrastructureTemplate
ControlPlaneClassMachineInfrastructureTemplate defines the template for a MachineInfrastructure of a ControlPlane.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
templateRef ClusterClassTemplateReference | templateRef is a required reference to the template for a MachineInfrastructure of a ControlPlane. | Required: {} |
ControlPlaneClassNamingSpec
ControlPlaneClassNamingSpec defines the naming strategy for control plane objects.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
template string | template defines the template to use for generating the name of the ControlPlane object. If not defined, it will fallback to \{\{ .cluster.name \}\}-\{\{ .random \}\}.If the templated string exceeds 63 characters, it will be trimmed to 58 characters and will get concatenated with a random suffix of length 5. The templating mechanism provides the following arguments: * .cluster.name: The name of the cluster object.* .random: A random alphanumeric string, without vowels, of length 5. | MaxLength: 1024 MinLength: 1 Optional: {} |
ControlPlaneTopology
ControlPlaneTopology specifies the parameters for the control plane nodes in the cluster.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
metadata ObjectMeta | Refer to Kubernetes API documentation for fields of metadata. | MinProperties: 1 Optional: {} | |
replicas integer | replicas is the number of control plane nodes. If the value is not set, the ControlPlane object is created without the number of Replicas and it’s assumed that the control plane controller does not implement support for this field. When specified against a control plane provider that lacks support for this field, this value will be ignored. | Optional: {} | |
rollout ControlPlaneTopologyRolloutSpec | rollout allows you to configure the behavior of rolling updates to the control plane. | MinProperties: 1 Optional: {} | |
healthCheck ControlPlaneTopologyHealthCheck | healthCheck allows to enable, disable and override control plane health check configuration from the ClusterClass for this control plane. | MinProperties: 1 Optional: {} | |
deletion ControlPlaneTopologyMachineDeletionSpec | deletion contains configuration options for Machine deletion. | MinProperties: 1 Optional: {} | |
taints MachineTaint array | taints are the node taints that Cluster API will manage. This list is not necessarily complete: other Kubernetes components may add or remove other taints from nodes, e.g. the node controller might add the node.kubernetes.io/not-ready taint. Only those taints defined in this list will be added or removed by core Cluster API controllers. There can be at most 64 taints. A pod would have to tolerate all existing taints to run on the corresponding node. NOTE: This list is implemented as a “map” type, meaning that individual elements can be managed by different owners. | MaxItems: 64 MinItems: 1 Optional: {} | |
readinessGates MachineReadinessGate array | readinessGates specifies additional conditions to include when evaluating Machine Ready condition. This field can be used e.g. to instruct the machine controller to include in the computation for Machine’s ready computation a condition, managed by an external controllers, reporting the status of special software/hardware installed on the Machine. If this field is not defined, readinessGates from the corresponding ControlPlaneClass will be used, if any. NOTE: Specific control plane provider implementations might automatically extend the list of readinessGates; e.g. the kubeadm control provider adds ReadinessGates for the APIServerPodHealthy, SchedulerPodHealthy conditions, etc. | MaxItems: 32 MinItems: 1 Optional: {} | |
variables ControlPlaneVariables | variables can be used to customize the ControlPlane through patches. | MinProperties: 1 Optional: {} |
ControlPlaneTopologyHealthCheck
ControlPlaneTopologyHealthCheck defines a MachineHealthCheck for control plane machines.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
enabled boolean | enabled controls if a MachineHealthCheck should be created for the target machines. If false: No MachineHealthCheck will be created. If not set(default): A MachineHealthCheck will be created if it is defined here or in the associated ClusterClass. If no MachineHealthCheck is defined then none will be created. If true: A MachineHealthCheck is guaranteed to be created. Cluster validation will block if enable is true and no MachineHealthCheck definition is available. | Optional: {} | |
checks ControlPlaneTopologyHealthCheckChecks | checks are the checks that are used to evaluate if a Machine is healthy. If one of checks and remediation fields are set, the system assumes that an healthCheck override is defined, and as a consequence the checks and remediation fields from Cluster will be used instead of the corresponding fields in ClusterClass. Independent of this configuration the MachineHealthCheck controller will always flag Machines with cluster.x-k8s.io/remediate-machine annotation andMachines with deleted Nodes as unhealthy. Furthermore, if checks.nodeStartupTimeoutSeconds is not set it is defaulted to 10 minutes and evaluated accordingly. | MinProperties: 1 Optional: {} | |
remediation ControlPlaneTopologyHealthCheckRemediation | remediation configures if and how remediations are triggered if a Machine is unhealthy. If one of checks and remediation fields are set, the system assumes that an healthCheck override is defined, and as a consequence the checks and remediation fields from cluster will be used instead of the corresponding fields in ClusterClass. If an health check override is defined and remediation or remediation.triggerIf is not set, remediation will always be triggered for unhealthy Machines. If an health check override is defined and remediation or remediation.templateRef is not set, the OwnerRemediated condition will be set on unhealthy Machines to trigger remediation via the owner of the Machines, for example a MachineSet or a KubeadmControlPlane. | MinProperties: 1 Optional: {} |
ControlPlaneTopologyHealthCheckChecks
ControlPlaneTopologyHealthCheckChecks are the checks that are used to evaluate if a control plane Machine is healthy.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
nodeStartupTimeoutSeconds integer | nodeStartupTimeoutSeconds allows to set the maximum time for MachineHealthCheck to consider a Machine unhealthy if a corresponding Node isn’t associated through a Spec.ProviderID field.The duration set in this field is compared to the greatest of: - Cluster’s infrastructure ready condition timestamp (if and when available) - Control Plane’s initialized condition timestamp (if and when available) - Machine’s infrastructure ready condition timestamp (if and when available) - Machine’s metadata creation timestamp Defaults to 10 minutes. If you wish to disable this feature, set the value explicitly to 0. | Minimum: 0 Optional: {} | |
unhealthyNodeConditions UnhealthyNodeCondition array | unhealthyNodeConditions contains a list of conditions that determine whether a node is considered unhealthy. The conditions are combined in a logical OR, i.e. if any of the conditions is met, the node is unhealthy. | MaxItems: 100 MinItems: 1 Optional: {} | |
unhealthyMachineConditions UnhealthyMachineCondition array | unhealthyMachineConditions contains a list of the machine conditions that determine whether a machine is considered unhealthy. The conditions are combined in a logical OR, i.e. if any of the conditions is met, the machine is unhealthy. | MaxItems: 100 MinItems: 1 Optional: {} |
ControlPlaneTopologyHealthCheckRemediation
ControlPlaneTopologyHealthCheckRemediation configures if and how remediations are triggered if a control plane Machine is unhealthy.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
triggerIf ControlPlaneTopologyHealthCheckRemediationTriggerIf | triggerIf configures if remediations are triggered. If this field is not set, remediations are always triggered. | MinProperties: 1 Optional: {} | |
templateRef MachineHealthCheckRemediationTemplateReference | templateRef is a reference to a remediation template provided by an infrastructure provider. This field is completely optional, when filled, the MachineHealthCheck controller creates a new object from the template referenced and hands off remediation of the machine to a controller that lives outside of Cluster API. | Optional: {} |
ControlPlaneTopologyHealthCheckRemediationTriggerIf
ControlPlaneTopologyHealthCheckRemediationTriggerIf configures if remediations are triggered.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
unhealthyLessThanOrEqualTo IntOrString | unhealthyLessThanOrEqualTo specifies that remediations are only triggered if the number of unhealthy Machines is less than or equal to the configured value. unhealthyInRange takes precedence if set. | Optional: {} | |
unhealthyInRange string | unhealthyInRange specifies that remediations are only triggered if the number of unhealthy Machines is in the configured range. Takes precedence over unhealthyLessThanOrEqualTo. Eg. “[3-5]“ - This means that remediation will be allowed only when: (a) there are at least 3 unhealthy Machines (and) (b) there are at most 5 unhealthy Machines | MaxLength: 32 MinLength: 1 Pattern: ^\[[0-9]+-[0-9]+\]$ Optional: {} |
ControlPlaneTopologyMachineDeletionSpec
ControlPlaneTopologyMachineDeletionSpec contains configuration options for Machine deletion.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
nodeDrainTimeoutSeconds integer | nodeDrainTimeoutSeconds is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: nodeDrainTimeoutSeconds is different from kubectl drain --timeout | Minimum: 0 Optional: {} | |
nodeVolumeDetachTimeoutSeconds integer | nodeVolumeDetachTimeoutSeconds is the total amount of time that the controller will spend on waiting for all volumes to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. | Minimum: 0 Optional: {} | |
nodeDeletionTimeoutSeconds integer | nodeDeletionTimeoutSeconds defines how long the controller will attempt to delete the Node that the Machine hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. Defaults to 10 seconds. | Minimum: 0 Optional: {} |
ControlPlaneTopologyRolloutSpec
ControlPlaneTopologyRolloutSpec defines the rollout behavior.
Validation:
- MinProperties: 1
Appears in:
ControlPlaneVariables
ControlPlaneVariables can be used to provide variables for the ControlPlane.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
overrides ClusterVariable array | overrides can be used to override Cluster level variables. | MaxItems: 1000 MinItems: 1 Optional: {} |
ExternalPatchDefinition
ExternalPatchDefinition defines an external patch. Note: At least one of GeneratePatchesExtension or ValidateTopologyExtension must be set.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
generatePatchesExtension string | generatePatchesExtension references an extension which is called to generate patches. | MaxLength: 512 MinLength: 1 Optional: {} | |
validateTopologyExtension string | validateTopologyExtension references an extension which is called to validate the topology. | MaxLength: 512 MinLength: 1 Optional: {} | |
discoverVariablesExtension string | discoverVariablesExtension references an extension which is called to discover variables. | MaxLength: 512 MinLength: 1 Optional: {} | |
settings object (keys:string, values:string) | settings defines key value pairs to be passed to the extensions. Values defined here take precedence over the values defined in the corresponding ExtensionConfig. | Optional: {} |
FailureDomain
FailureDomain is the Schema for Cluster API failure domains. It allows controllers to understand how many failure domains a cluster can optionally span across.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string | name is the name of the failure domain. | MaxLength: 256 MinLength: 1 Required: {} | |
controlPlane boolean | controlPlane determines if this failure domain is suitable for use by control plane machines. | Optional: {} | |
attributes object (keys:string, values:string) | attributes is a free form map of attributes an infrastructure provider might use or require. | Optional: {} |
FieldValueErrorReason
Underlying type: string
FieldValueErrorReason is a machine-readable value providing more detail about why a field failed the validation.
Appears in:
| Field | Description |
|---|---|
FieldValueRequired | FieldValueRequired is used to report required values that are not provided (e.g. empty strings, null values, or empty arrays). |
FieldValueDuplicate | FieldValueDuplicate is used to report collisions of values that must be unique (e.g. unique IDs). |
FieldValueInvalid | FieldValueInvalid is used to report malformed values (e.g. failed regex match, too long, out of bounds). |
FieldValueForbidden | FieldValueForbidden is used to report valid (as per formatting rules) values which would be accepted under some conditions, but which are not permitted by the current conditions (such as security policy). |
InfrastructureClass
InfrastructureClass defines the class for the infrastructure cluster.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
templateRef ClusterClassTemplateReference | templateRef contains the reference to a provider-specific infrastructure cluster template. | Required: {} | |
naming InfrastructureClassNamingSpec | naming allows changing the naming pattern used when creating the infrastructure cluster object. | MinProperties: 1 Optional: {} |
InfrastructureClassNamingSpec
InfrastructureClassNamingSpec defines the naming strategy for infrastructure objects.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
template string | template defines the template to use for generating the name of the Infrastructure object. If not defined, it will fallback to \{\{ .cluster.name \}\}-\{\{ .random \}\}.If the templated string exceeds 63 characters, it will be trimmed to 58 characters and will get concatenated with a random suffix of length 5. The templating mechanism provides the following arguments: * .cluster.name: The name of the cluster object.* .random: A random alphanumeric string, without vowels, of length 5. | MaxLength: 1024 MinLength: 1 Optional: {} |
JSONPatch
JSONPatch defines a JSON patch.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
op string | op defines the operation of the patch. Note: Only add, replace and remove are supported. | Enum: [add replace remove] Required: {} | |
path string | path defines the path of the patch. Note: Only the spec of a template can be patched, thus the path has to start with /spec/. Note: For now the only allowed array modifications are append and prepend, i.e.:* for op: add: only index 0 (prepend) and - (append) are allowed* for op: replace or remove: no indexes are allowed | MaxLength: 512 MinLength: 1 Required: {} | |
value JSON | value defines the value of the patch. Note: Either Value or ValueFrom is required for add and replace operations. Only one of them is allowed to be set at the same time. Note: We have to use apiextensionsv1.JSON instead of our JSON type, because controller-tools has a hard-coded schema for apiextensionsv1.JSON which cannot be produced by another type (unset type field). Ref: https://github.com/kubernetes-sigs/controller-tools/blob/d0e03a142d0ecdd5491593e941ee1d6b5d91dba6/pkg/crd/known_types.go#L106-L111 | Optional: {} | |
valueFrom JSONPatchValue | valueFrom defines the value of the patch. Note: Either Value or ValueFrom is required for add and replace operations. Only one of them is allowed to be set at the same time. | Optional: {} |
JSONPatchValue
JSONPatchValue defines the value of a patch. Note: Only one of the fields is allowed to be set at the same time.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
variable string | variable is the variable to be used as value. Variable can be one of the variables defined in .spec.variables or a builtin variable. | MaxLength: 256 MinLength: 1 Optional: {} | |
template string | template is the Go template to be used to calculate the value. A template can reference variables defined in .spec.variables and builtin variables. Note: The template must evaluate to a valid YAML or JSON value. | MaxLength: 10240 MinLength: 1 Optional: {} |
JSONSchemaProps
JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/). This struct has been initially copied from apiextensionsv1.JSONSchemaProps, but all fields which are not supported in CAPI have been removed.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
description string | description is a human-readable description of this variable. | MaxLength: 4096 MinLength: 1 Optional: {} | |
example JSON | example is an example for this variable. | Optional: {} | |
type string | type is the type of the variable. Valid values are: object, array, string, integer, number or boolean. | Enum: [object array string integer number boolean] Optional: {} | |
properties object (keys:string, values:JSONSchemaProps) | properties specifies fields of an object. NOTE: Can only be set if type is object. NOTE: Properties is mutually exclusive with AdditionalProperties. NOTE: This field uses PreserveUnknownFields and Schemaless, because recursive validation is not possible. | Schemaless: {} Optional: {} | |
additionalProperties JSONSchemaProps | additionalProperties specifies the schema of values in a map (keys are always strings). NOTE: Can only be set if type is object. NOTE: AdditionalProperties is mutually exclusive with Properties. NOTE: This field uses PreserveUnknownFields and Schemaless, because recursive validation is not possible. | MinProperties: 1 Schemaless: {} Optional: {} | |
maxProperties integer | maxProperties is the maximum amount of entries in a map or properties in an object. NOTE: Can only be set if type is object. | Optional: {} | |
minProperties integer | minProperties is the minimum amount of entries in a map or properties in an object. NOTE: Can only be set if type is object. | Optional: {} | |
required string array | required specifies which fields of an object are required. NOTE: Can only be set if type is object. | MaxItems: 1000 MinItems: 1 items:MaxLength: 256 items:MinLength: 1 Optional: {} | |
items JSONSchemaProps | items specifies fields of an array. NOTE: Can only be set if type is array. NOTE: This field uses PreserveUnknownFields and Schemaless, because recursive validation is not possible. | MinProperties: 1 Schemaless: {} Optional: {} | |
maxItems integer | maxItems is the max length of an array variable. NOTE: Can only be set if type is array. | Optional: {} | |
minItems integer | minItems is the min length of an array variable. NOTE: Can only be set if type is array. | Optional: {} | |
uniqueItems boolean | uniqueItems specifies if items in an array must be unique. NOTE: Can only be set if type is array. | Optional: {} | |
format string | format is an OpenAPI v3 format string. Unknown formats are ignored. For a list of supported formats please see: (of the k8s.io/apiextensions-apiserver version we’re currently using) https://github.com/kubernetes/apiextensions-apiserver/blob/master/pkg/apiserver/validation/formats.go NOTE: Can only be set if type is string. | MaxLength: 32 MinLength: 1 Optional: {} | |
maxLength integer | maxLength is the max length of a string variable. NOTE: Can only be set if type is string. | Optional: {} | |
minLength integer | minLength is the min length of a string variable. NOTE: Can only be set if type is string. | Optional: {} | |
pattern string | pattern is the regex which a string variable must match. NOTE: Can only be set if type is string. | MaxLength: 512 MinLength: 1 Optional: {} | |
maximum integer | maximum is the maximum of an integer or number variable. If ExclusiveMaximum is false, the variable is valid if it is lower than, or equal to, the value of Maximum. If ExclusiveMaximum is true, the variable is valid if it is strictly lower than the value of Maximum. NOTE: Can only be set if type is integer or number. | Optional: {} | |
exclusiveMaximum boolean | exclusiveMaximum specifies if the Maximum is exclusive. NOTE: Can only be set if type is integer or number. | Optional: {} | |
minimum integer | minimum is the minimum of an integer or number variable. If ExclusiveMinimum is false, the variable is valid if it is greater than, or equal to, the value of Minimum. If ExclusiveMinimum is true, the variable is valid if it is strictly greater than the value of Minimum. NOTE: Can only be set if type is integer or number. | Optional: {} | |
exclusiveMinimum boolean | exclusiveMinimum specifies if the Minimum is exclusive. NOTE: Can only be set if type is integer or number. | Optional: {} | |
x-kubernetes-preserve-unknown-fields boolean | x-kubernetes-preserve-unknown-fields allows setting fields in a variable object which are not defined in the variable schema. This affects fields recursively, except if nested properties or additionalProperties are specified in the schema. | Optional: {} | |
enum JSON array | enum is the list of valid values of the variable. NOTE: Can be set for all types. | MaxItems: 100 Optional: {} | |
default JSON | default is the default value of the variable. NOTE: Can be set for all types. | Optional: {} | |
x-kubernetes-validations ValidationRule array | x-kubernetes-validations describes a list of validation rules written in the CEL expression language. | MaxItems: 100 MinItems: 1 Optional: {} | |
x-metadata VariableSchemaMetadata | x-metadata is the metadata of a variable or a nested field within a variable. It can be used to add additional data for higher level tools. | MinProperties: 1 Optional: {} | |
x-kubernetes-int-or-string boolean | x-kubernetes-int-or-string specifies that this value is either an integer or a string. If this is true, an empty type is allowed and type as child of anyOf is permitted if following one of the following patterns: 1) anyOf: - type: integer - type: string 2) allOf: - anyOf: - type: integer - type: string - ... zero or more | Optional: {} | |
allOf JSONSchemaProps array | allOf specifies that the variable must validate against all of the subschemas in the array. NOTE: This field uses PreserveUnknownFields and Schemaless, because recursive validation is not possible. | MinProperties: 1 Schemaless: {} Optional: {} | |
oneOf JSONSchemaProps array | oneOf specifies that the variable must validate against exactly one of the subschemas in the array. NOTE: This field uses PreserveUnknownFields and Schemaless, because recursive validation is not possible. | MinProperties: 1 Schemaless: {} Optional: {} | |
anyOf JSONSchemaProps array | anyOf specifies that the variable must validate against one or more of the subschemas in the array. NOTE: This field uses PreserveUnknownFields and Schemaless, because recursive validation is not possible. | MinProperties: 1 Schemaless: {} Optional: {} | |
not JSONSchemaProps | not specifies that the variable must not validate against the subschema. NOTE: This field uses PreserveUnknownFields and Schemaless, because recursive validation is not possible. | MinProperties: 1 Schemaless: {} Optional: {} |
Machine
Machine is the Schema for the machines API.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | cluster.x-k8s.io/v1beta2 | ||
kind string | Machine | ||
metadata ObjectMeta | Refer to Kubernetes API documentation for fields of metadata. | MinProperties: 1 Optional: {} | |
spec MachineSpec | spec is the desired state of Machine. | Required: {} | |
status MachineStatus | status is the observed state of Machine. | MinProperties: 1 Optional: {} |
MachineAddress
MachineAddress contains information for the node’s address.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
type MachineAddressType | type is the machine address type, one of Hostname, ExternalIP, InternalIP, ExternalDNS or InternalDNS. | Enum: [Hostname ExternalIP InternalIP ExternalDNS InternalDNS] Required: {} | |
address string | address is the machine address. | MaxLength: 256 MinLength: 1 Required: {} |
MachineAddressType
Underlying type: string
MachineAddressType describes a valid MachineAddress type.
Validation:
- Enum: [Hostname ExternalIP InternalIP ExternalDNS InternalDNS]
Appears in:
| Field | Description |
|---|---|
Hostname | |
ExternalIP | |
InternalIP | |
ExternalDNS | |
InternalDNS |
MachineAddresses
Underlying type: MachineAddress
MachineAddresses is a slice of MachineAddress items to be used by infrastructure providers.
Validation:
- MaxItems: 256
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
type MachineAddressType | type is the machine address type, one of Hostname, ExternalIP, InternalIP, ExternalDNS or InternalDNS. | Enum: [Hostname ExternalIP InternalIP ExternalDNS InternalDNS] Required: {} | |
address string | address is the machine address. | MaxLength: 256 MinLength: 1 Required: {} |
MachineDeletionSpec
MachineDeletionSpec contains configuration options for Machine deletion.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
nodeDrainTimeoutSeconds integer | nodeDrainTimeoutSeconds is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: nodeDrainTimeoutSeconds is different from kubectl drain --timeout | Minimum: 0 Optional: {} | |
nodeVolumeDetachTimeoutSeconds integer | nodeVolumeDetachTimeoutSeconds is the total amount of time that the controller will spend on waiting for all volumes to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. | Minimum: 0 Optional: {} | |
nodeDeletionTimeoutSeconds integer | nodeDeletionTimeoutSeconds defines how long the controller will attempt to delete the Node that the Machine hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. Defaults to 10 seconds. | Minimum: 0 Optional: {} |
MachineDeletionStatus
MachineDeletionStatus is the deletion state of the Machine.
Appears in:
MachineDeployment
MachineDeployment is the Schema for the machinedeployments API.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | cluster.x-k8s.io/v1beta2 | ||
kind string | MachineDeployment | ||
metadata ObjectMeta | Refer to Kubernetes API documentation for fields of metadata. | MinProperties: 1 Optional: {} | |
spec MachineDeploymentSpec | spec is the desired state of MachineDeployment. | Required: {} | |
status MachineDeploymentStatus | status is the observed state of MachineDeployment. | MinProperties: 1 Optional: {} |
MachineDeploymentClass
MachineDeploymentClass serves as a template to define a set of worker nodes of the cluster
provisioned using the ClusterClass.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
metadata ObjectMeta | Refer to Kubernetes API documentation for fields of metadata. | MinProperties: 1 Optional: {} | |
class string | class denotes a type of worker node present in the cluster, this name MUST be unique within a ClusterClass and can be referenced in the Cluster to create a managed MachineDeployment. | MaxLength: 256 MinLength: 1 Required: {} | |
bootstrap MachineDeploymentClassBootstrapTemplate | bootstrap contains the bootstrap template reference to be used for the creation of worker Machines. | Required: {} | |
infrastructure MachineDeploymentClassInfrastructureTemplate | infrastructure contains the infrastructure template reference to be used for the creation of worker Machines. | Required: {} | |
healthCheck MachineDeploymentClassHealthCheck | healthCheck defines a MachineHealthCheck for this MachineDeploymentClass. | MinProperties: 1 Optional: {} | |
failureDomain string | failureDomain is the failure domain the machines will be created in. Must match the name of a FailureDomain from the Cluster status. NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass. | MaxLength: 256 MinLength: 1 Optional: {} | |
naming MachineDeploymentClassNamingSpec | naming allows changing the naming pattern used when creating the MachineDeployment. | MinProperties: 1 Optional: {} | |
deletion MachineDeploymentClassMachineDeletionSpec | deletion contains configuration options for Machine deletion. | MinProperties: 1 Optional: {} | |
taints MachineTaint array | taints are the node taints that Cluster API will manage. This list is not necessarily complete: other Kubernetes components may add or remove other taints from nodes, e.g. the node controller might add the node.kubernetes.io/not-ready taint. Only those taints defined in this list will be added or removed by core Cluster API controllers. There can be at most 64 taints. A pod would have to tolerate all existing taints to run on the corresponding node. NOTE: This list is implemented as a “map” type, meaning that individual elements can be managed by different owners. | MaxItems: 64 MinItems: 1 Optional: {} | |
minReadySeconds integer | minReadySeconds is the minimum number of seconds for which a newly created machine should be ready. Defaults to 0 (machine will be considered available as soon as it is ready) NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass. | Minimum: 0 Optional: {} | |
readinessGates MachineReadinessGate array | readinessGates specifies additional conditions to include when evaluating Machine Ready condition. This field can be used e.g. to instruct the machine controller to include in the computation for Machine’s ready computation a condition, managed by an external controllers, reporting the status of special software/hardware installed on the Machine. NOTE: If a Cluster defines a custom list of readinessGates for a MachineDeployment using this MachineDeploymentClass, such list overrides readinessGates defined in this field. | MaxItems: 32 MinItems: 1 Optional: {} | |
rollout MachineDeploymentClassRolloutSpec | rollout allows you to configure the behaviour of rolling updates to the MachineDeployment Machines. It allows you to define the strategy used during rolling replacements. | MinProperties: 1 Optional: {} |
MachineDeploymentClassBootstrapTemplate
MachineDeploymentClassBootstrapTemplate defines the BootstrapTemplate for a MachineDeployment.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
templateRef ClusterClassTemplateReference | templateRef is a required reference to the BootstrapTemplate for a MachineDeployment. | Required: {} |
MachineDeploymentClassHealthCheck
MachineDeploymentClassHealthCheck defines a MachineHealthCheck for MachineDeployment machines.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
checks MachineDeploymentClassHealthCheckChecks | checks are the checks that are used to evaluate if a Machine is healthy. Independent of this configuration the MachineHealthCheck controller will always flag Machines with cluster.x-k8s.io/remediate-machine annotation andMachines with deleted Nodes as unhealthy. Furthermore, if checks.nodeStartupTimeoutSeconds is not set it is defaulted to 10 minutes and evaluated accordingly. | MinProperties: 1 Optional: {} | |
remediation MachineDeploymentClassHealthCheckRemediation | remediation configures if and how remediations are triggered if a Machine is unhealthy. If remediation or remediation.triggerIf is not set, remediation will always be triggered for unhealthy Machines. If remediation or remediation.templateRef is not set, the OwnerRemediated condition will be set on unhealthy Machines to trigger remediation via the owner of the Machines, for example a MachineSet or a KubeadmControlPlane. | MinProperties: 1 Optional: {} |
MachineDeploymentClassHealthCheckChecks
MachineDeploymentClassHealthCheckChecks are the checks that are used to evaluate if a MachineDeployment Machine is healthy.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
nodeStartupTimeoutSeconds integer | nodeStartupTimeoutSeconds allows to set the maximum time for MachineHealthCheck to consider a Machine unhealthy if a corresponding Node isn’t associated through a Spec.ProviderID field.The duration set in this field is compared to the greatest of: - Cluster’s infrastructure ready condition timestamp (if and when available) - Control Plane’s initialized condition timestamp (if and when available) - Machine’s infrastructure ready condition timestamp (if and when available) - Machine’s metadata creation timestamp Defaults to 10 minutes. If you wish to disable this feature, set the value explicitly to 0. | Minimum: 0 Optional: {} | |
unhealthyNodeConditions UnhealthyNodeCondition array | unhealthyNodeConditions contains a list of conditions that determine whether a node is considered unhealthy. The conditions are combined in a logical OR, i.e. if any of the conditions is met, the node is unhealthy. | MaxItems: 100 MinItems: 1 Optional: {} | |
unhealthyMachineConditions UnhealthyMachineCondition array | unhealthyMachineConditions contains a list of the machine conditions that determine whether a machine is considered unhealthy. The conditions are combined in a logical OR, i.e. if any of the conditions is met, the machine is unhealthy. | MaxItems: 100 MinItems: 1 Optional: {} |
MachineDeploymentClassHealthCheckRemediation
MachineDeploymentClassHealthCheckRemediation configures if and how remediations are triggered if a MachineDeployment Machine is unhealthy.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
maxInFlight IntOrString | maxInFlight determines how many in flight remediations should happen at the same time. Remediation only happens on the MachineSet with the most current revision, while older MachineSets (usually present during rollout operations) aren’t allowed to remediate. Note: In general (independent of remediations), unhealthy machines are always prioritized during scale down operations over healthy ones. MaxInFlight can be set to a fixed number or a percentage. Example: when this is set to 20%, the MachineSet controller deletes at most 20% of the desired replicas. If not set, remediation is limited to all machines (bounded by replicas) under the active MachineSet’s management. | Optional: {} | |
triggerIf MachineDeploymentClassHealthCheckRemediationTriggerIf | triggerIf configures if remediations are triggered. If this field is not set, remediations are always triggered. | MinProperties: 1 Optional: {} | |
templateRef MachineHealthCheckRemediationTemplateReference | templateRef is a reference to a remediation template provided by an infrastructure provider. This field is completely optional, when filled, the MachineHealthCheck controller creates a new object from the template referenced and hands off remediation of the machine to a controller that lives outside of Cluster API. | Optional: {} |
MachineDeploymentClassHealthCheckRemediationTriggerIf
MachineDeploymentClassHealthCheckRemediationTriggerIf configures if remediations are triggered.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
unhealthyLessThanOrEqualTo IntOrString | unhealthyLessThanOrEqualTo specifies that remediations are only triggered if the number of unhealthy Machines is less than or equal to the configured value. unhealthyInRange takes precedence if set. | Optional: {} | |
unhealthyInRange string | unhealthyInRange specifies that remediations are only triggered if the number of unhealthy Machines is in the configured range. Takes precedence over unhealthyLessThanOrEqualTo. Eg. “[3-5]“ - This means that remediation will be allowed only when: (a) there are at least 3 unhealthy Machines (and) (b) there are at most 5 unhealthy Machines | MaxLength: 32 MinLength: 1 Pattern: ^\[[0-9]+-[0-9]+\]$ Optional: {} |
MachineDeploymentClassInfrastructureTemplate
MachineDeploymentClassInfrastructureTemplate defines the InfrastructureTemplate for a MachineDeployment.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
templateRef ClusterClassTemplateReference | templateRef is a required reference to the InfrastructureTemplate for a MachineDeployment. | Required: {} |
MachineDeploymentClassMachineDeletionSpec
MachineDeploymentClassMachineDeletionSpec contains configuration options for Machine deletion.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
order MachineSetDeletionOrder | order defines the order in which Machines are deleted when downscaling. Defaults to “Random”. Valid values are “Random, “Newest”, “Oldest” | Enum: [Random Newest Oldest] Optional: {} | |
nodeDrainTimeoutSeconds integer | nodeDrainTimeoutSeconds is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: nodeDrainTimeoutSeconds is different from kubectl drain --timeoutNOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass. | Minimum: 0 Optional: {} | |
nodeVolumeDetachTimeoutSeconds integer | nodeVolumeDetachTimeoutSeconds is the total amount of time that the controller will spend on waiting for all volumes to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass. | Minimum: 0 Optional: {} | |
nodeDeletionTimeoutSeconds integer | nodeDeletionTimeoutSeconds defines how long the controller will attempt to delete the Node that the Machine hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. Defaults to 10 seconds. NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass. | Minimum: 0 Optional: {} |
MachineDeploymentClassNamingSpec
MachineDeploymentClassNamingSpec defines the naming strategy for machine deployment objects.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
template string | template defines the template to use for generating the name of the MachineDeployment object. If not defined, it will fallback to \{\{ .cluster.name \}\}-\{\{ .machineDeployment.topologyName \}\}-\{\{ .random \}\}.If the templated string exceeds 63 characters, it will be trimmed to 58 characters and will get concatenated with a random suffix of length 5. The templating mechanism provides the following arguments: * .cluster.name: The name of the cluster object.* .random: A random alphanumeric string, without vowels, of length 5.* .machineDeployment.topologyName: The name of the MachineDeployment topology (Cluster.spec.topology.workers.machineDeployments[].name). | MaxLength: 1024 MinLength: 1 Optional: {} |
MachineDeploymentClassRolloutSpec
MachineDeploymentClassRolloutSpec defines the rollout behavior.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
strategy MachineDeploymentClassRolloutStrategy | strategy specifies how to roll out control plane Machines. | MinProperties: 1 Optional: {} |
MachineDeploymentClassRolloutStrategy
MachineDeploymentClassRolloutStrategy describes how to replace existing machines with new ones.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
type MachineDeploymentRolloutStrategyType | type of rollout. Allowed values are RollingUpdate and OnDelete. Default is RollingUpdate. | Enum: [RollingUpdate OnDelete] Required: {} | |
rollingUpdate MachineDeploymentClassRolloutStrategyRollingUpdate | rollingUpdate is the rolling update config params. Present only if type = RollingUpdate. | MinProperties: 1 Optional: {} |
MachineDeploymentClassRolloutStrategyRollingUpdate
MachineDeploymentClassRolloutStrategyRollingUpdate is used to control the desired behavior of rolling update.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
maxUnavailable IntOrString | maxUnavailable is the maximum number of machines that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired machines (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 0. Example: when this is set to 30%, the old MachineSet can be scaled down to 70% of desired machines immediately when the rolling update starts. Once new machines are ready, old MachineSet can be scaled down further, followed by scaling up the new MachineSet, ensuring that the total number of machines available at all times during the update is at least 70% of desired machines. | Optional: {} | |
maxSurge IntOrString | maxSurge is the maximum number of machines that can be scheduled above the desired number of machines. Value can be an absolute number (ex: 5) or a percentage of desired machines (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 1. Example: when this is set to 30%, the new MachineSet can be scaled up immediately when the rolling update starts, such that the total number of old and new machines do not exceed 130% of desired machines. Once old machines have been killed, new MachineSet can be scaled up further, ensuring that total number of machines running at any time during the update is at most 130% of desired machines. | Optional: {} |
MachineDeploymentDeletionSpec
MachineDeploymentDeletionSpec contains configuration options for MachineDeployment deletion.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
order MachineSetDeletionOrder | order defines the order in which Machines are deleted when downscaling. Defaults to “Random”. Valid values are “Random, “Newest”, “Oldest” | Enum: [Random Newest Oldest] Optional: {} |
MachineDeploymentDeprecatedStatus
MachineDeploymentDeprecatedStatus groups all the status fields that are deprecated and will be removed in a future version. See https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more context.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
v1beta1 MachineDeploymentV1Beta1DeprecatedStatus | v1beta1 groups all the status fields that are deprecated and will be removed when support for v1beta1 will be dropped. | Optional: {} |
MachineDeploymentList
MachineDeploymentList contains a list of MachineDeployment.
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | cluster.x-k8s.io/v1beta2 | ||
kind string | MachineDeploymentList | ||
metadata ListMeta | Refer to Kubernetes API documentation for fields of metadata. | Optional: {} | |
items MachineDeployment array | items is the list of MachineDeployments. |
MachineDeploymentRemediationSpec
MachineDeploymentRemediationSpec controls how unhealthy Machines are remediated.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
maxInFlight IntOrString | maxInFlight determines how many in flight remediations should happen at the same time. Remediation only happens on the MachineSet with the most current revision, while older MachineSets (usually present during rollout operations) aren’t allowed to remediate. Note: In general (independent of remediations), unhealthy machines are always prioritized during scale down operations over healthy ones. MaxInFlight can be set to a fixed number or a percentage. Example: when this is set to 20%, the MachineSet controller deletes at most 20% of the desired replicas. If not set, remediation is limited to all machines (bounded by replicas) under the active MachineSet’s management. | Optional: {} |
MachineDeploymentRolloutSpec
MachineDeploymentRolloutSpec defines the rollout behavior.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
strategy MachineDeploymentRolloutStrategy | strategy specifies how to roll out control plane Machines. | MinProperties: 1 Optional: {} |
MachineDeploymentRolloutStrategy
MachineDeploymentRolloutStrategy describes how to replace existing machines with new ones.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
type MachineDeploymentRolloutStrategyType | type of rollout. Allowed values are RollingUpdate and OnDelete. Default is RollingUpdate. | Enum: [RollingUpdate OnDelete] Required: {} | |
rollingUpdate MachineDeploymentRolloutStrategyRollingUpdate | rollingUpdate is the rolling update config params. Present only if type = RollingUpdate. | MinProperties: 1 Optional: {} |
MachineDeploymentRolloutStrategyRollingUpdate
MachineDeploymentRolloutStrategyRollingUpdate is used to control the desired behavior of rolling update.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
maxUnavailable IntOrString | maxUnavailable is the maximum number of machines that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired machines (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 0. Example: when this is set to 30%, the old MachineSet can be scaled down to 70% of desired machines immediately when the rolling update starts. Once new machines are ready, old MachineSet can be scaled down further, followed by scaling up the new MachineSet, ensuring that the total number of machines available at all times during the update is at least 70% of desired machines. | Optional: {} | |
maxSurge IntOrString | maxSurge is the maximum number of machines that can be scheduled above the desired number of machines. Value can be an absolute number (ex: 5) or a percentage of desired machines (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 1. Example: when this is set to 30%, the new MachineSet can be scaled up immediately when the rolling update starts, such that the total number of old and new machines do not exceed 130% of desired machines. Once old machines have been killed, new MachineSet can be scaled up further, ensuring that total number of machines running at any time during the update is at most 130% of desired machines. | Optional: {} |
MachineDeploymentRolloutStrategyType
Underlying type: string
MachineDeploymentRolloutStrategyType defines the type of MachineDeployment rollout strategies.
Validation:
- Enum: [RollingUpdate OnDelete]
Appears in:
- MachineDeploymentClassRolloutStrategy
- MachineDeploymentRolloutStrategy
- MachineDeploymentTopologyRolloutStrategy
| Field | Description |
|---|---|
RollingUpdate | RollingUpdateMachineDeploymentStrategyType replaces the old MachineSet by new one using rolling update i.e. gradually scale down the old MachineSet and scale up the new one. |
OnDelete | OnDeleteMachineDeploymentStrategyType replaces old MachineSets when the deletion of the associated machines are completed. |
MachineDeploymentSpec
MachineDeploymentSpec defines the desired state of MachineDeployment.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
clusterName string | clusterName is the name of the Cluster this object belongs to. | MaxLength: 63 MinLength: 1 Required: {} | |
replicas integer | replicas is the number of desired machines. This is a pointer to distinguish between explicit zero and not specified. Defaults to: * if the Kubernetes autoscaler min size and max size annotations are set: - if it’s a new MachineDeployment, use min size - if the replicas field of the old MachineDeployment is < min size, use min size - if the replicas field of the old MachineDeployment is > max size, use max size - if the replicas field of the old MachineDeployment is in the (min size, max size) range, keep the value from the oldMD * otherwise use 1 Note: Defaulting will be run whenever the replicas field is not set: * A new MachineDeployment is created with replicas not set. * On an existing MachineDeployment the replicas field was first set and is now unset. Those cases are especially relevant for the following Kubernetes autoscaler use cases: * A new MachineDeployment is created and replicas should be managed by the autoscaler * An existing MachineDeployment which initially wasn’t controlled by the autoscaler should be later controlled by the autoscaler | Optional: {} | |
rollout MachineDeploymentRolloutSpec | rollout allows you to configure the behaviour of rolling updates to the MachineDeployment Machines. It allows you to require that all Machines are replaced after a certain time, and allows you to define the strategy used during rolling replacements. | MinProperties: 1 Optional: {} | |
selector LabelSelector | selector is the label selector for machines. Existing MachineSets whose machines are selected by this will be the ones affected by this deployment. It must match the machine template’s labels. | Required: {} | |
template MachineTemplateSpec | template describes the machines that will be created. | Required: {} | |
machineNaming MachineNamingSpec | machineNaming allows changing the naming pattern used when creating Machines. Note: InfraMachines & BootstrapConfigs will use the same name as the corresponding Machines. | MinProperties: 1 Optional: {} | |
remediation MachineDeploymentRemediationSpec | remediation controls how unhealthy Machines are remediated. | MinProperties: 1 Optional: {} | |
deletion MachineDeploymentDeletionSpec | deletion contains configuration options for MachineDeployment deletion. | MinProperties: 1 Optional: {} | |
paused boolean | paused indicates that the deployment is paused. | Optional: {} |
MachineDeploymentStatus
MachineDeploymentStatus defines the observed state of MachineDeployment.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
conditions Condition array | conditions represents the observations of a MachineDeployment’s current state. Known condition types are Available, MachinesReady, MachinesUpToDate, ScalingUp, ScalingDown, Remediating, Deleting, Paused. | MaxItems: 32 Optional: {} | |
observedGeneration integer | observedGeneration is the generation observed by the deployment controller. | Minimum: 1 Optional: {} | |
selector string | selector is the same as the label selector but in the string format to avoid introspection by clients. The string will be in the same format as the query-param syntax. More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors | MaxLength: 4096 MinLength: 1 Optional: {} | |
replicas integer | replicas is the total number of non-terminated machines targeted by this deployment (their labels match the selector). | Optional: {} | |
readyReplicas integer | readyReplicas is the number of ready replicas for this MachineDeployment. A machine is considered ready when Machine’s Ready condition is true. | Optional: {} | |
availableReplicas integer | availableReplicas is the number of available replicas for this MachineDeployment. A machine is considered available when Machine’s Available condition is true. | Optional: {} | |
upToDateReplicas integer | upToDateReplicas is the number of up-to-date replicas targeted by this deployment. A machine is considered up-to-date when Machine’s UpToDate condition is true. | Optional: {} | |
phase string | phase represents the current phase of a MachineDeployment (ScalingUp, ScalingDown, Running, Failed, or Unknown). | Enum: [ScalingUp ScalingDown Running Failed Unknown] Optional: {} | |
deprecated MachineDeploymentDeprecatedStatus | deprecated groups all the status fields that are deprecated and will be removed when all the nested field are removed. | Optional: {} |
MachineDeploymentTopology
MachineDeploymentTopology specifies the different parameters for a set of worker nodes in the topology. This set of nodes is managed by a MachineDeployment object whose lifecycle is managed by the Cluster controller.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
metadata ObjectMeta | Refer to Kubernetes API documentation for fields of metadata. | MinProperties: 1 Optional: {} | |
class string | class is the name of the MachineDeploymentClass used to create the set of worker nodes. This should match one of the deployment classes defined in the ClusterClass object mentioned in the Cluster.Spec.Class field. | MaxLength: 256 MinLength: 1 Required: {} | |
name string | name is the unique identifier for this MachineDeploymentTopology. The value is used with other unique identifiers to create a MachineDeployment’s Name (e.g. cluster’s name, etc). In case the name is greater than the allowed maximum length, the values are hashed together. | MaxLength: 63 MinLength: 1 Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ Required: {} | |
failureDomain string | failureDomain is the failure domain the machines will be created in. Must match a key in the FailureDomains map stored on the cluster object. | MaxLength: 256 MinLength: 1 Optional: {} | |
replicas integer | replicas is the number of worker nodes belonging to this set. If the value is nil, the MachineDeployment is created without the number of Replicas (defaulting to 1) and it’s assumed that an external entity (like cluster autoscaler) is responsible for the management of this value. | Optional: {} | |
healthCheck MachineDeploymentTopologyHealthCheck | healthCheck allows to enable, disable and override MachineDeployment health check configuration from the ClusterClass for this MachineDeployment. | MinProperties: 1 Optional: {} | |
deletion MachineDeploymentTopologyMachineDeletionSpec | deletion contains configuration options for Machine deletion. | MinProperties: 1 Optional: {} | |
taints MachineTaint array | taints are the node taints that Cluster API will manage. This list is not necessarily complete: other Kubernetes components may add or remove other taints from nodes, e.g. the node controller might add the node.kubernetes.io/not-ready taint. Only those taints defined in this list will be added or removed by core Cluster API controllers. There can be at most 64 taints. A pod would have to tolerate all existing taints to run on the corresponding node. NOTE: This list is implemented as a “map” type, meaning that individual elements can be managed by different owners. | MaxItems: 64 MinItems: 1 Optional: {} | |
minReadySeconds integer | minReadySeconds is the minimum number of seconds for which a newly created machine should be ready. Defaults to 0 (machine will be considered available as soon as it is ready) | Minimum: 0 Optional: {} | |
readinessGates MachineReadinessGate array | readinessGates specifies additional conditions to include when evaluating Machine Ready condition. This field can be used e.g. to instruct the machine controller to include in the computation for Machine’s ready computation a condition, managed by an external controllers, reporting the status of special software/hardware installed on the Machine. If this field is not defined, readinessGates from the corresponding MachineDeploymentClass will be used, if any. | MaxItems: 32 MinItems: 1 Optional: {} | |
rollout MachineDeploymentTopologyRolloutSpec | rollout allows you to configure the behaviour of rolling updates to the MachineDeployment Machines. It allows you to define the strategy used during rolling replacements. | MinProperties: 1 Optional: {} | |
variables MachineDeploymentVariables | variables can be used to customize the MachineDeployment through patches. | MinProperties: 1 Optional: {} |
MachineDeploymentTopologyHealthCheck
MachineDeploymentTopologyHealthCheck defines a MachineHealthCheck for MachineDeployment machines.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
enabled boolean | enabled controls if a MachineHealthCheck should be created for the target machines. If false: No MachineHealthCheck will be created. If not set(default): A MachineHealthCheck will be created if it is defined here or in the associated ClusterClass. If no MachineHealthCheck is defined then none will be created. If true: A MachineHealthCheck is guaranteed to be created. Cluster validation will block if enable is true and no MachineHealthCheck definition is available. | Optional: {} | |
checks MachineDeploymentTopologyHealthCheckChecks | checks are the checks that are used to evaluate if a Machine is healthy. If one of checks and remediation fields are set, the system assumes that an healthCheck override is defined, and as a consequence the checks and remediation fields from Cluster will be used instead of the corresponding fields in ClusterClass. Independent of this configuration the MachineHealthCheck controller will always flag Machines with cluster.x-k8s.io/remediate-machine annotation andMachines with deleted Nodes as unhealthy. Furthermore, if checks.nodeStartupTimeoutSeconds is not set it is defaulted to 10 minutes and evaluated accordingly. | MinProperties: 1 Optional: {} | |
remediation MachineDeploymentTopologyHealthCheckRemediation | remediation configures if and how remediations are triggered if a Machine is unhealthy. If one of checks and remediation fields are set, the system assumes that an healthCheck override is defined, and as a consequence the checks and remediation fields from cluster will be used instead of the corresponding fields in ClusterClass. If an health check override is defined and remediation or remediation.triggerIf is not set, remediation will always be triggered for unhealthy Machines. If an health check override is defined and remediation or remediation.templateRef is not set, the OwnerRemediated condition will be set on unhealthy Machines to trigger remediation via the owner of the Machines, for example a MachineSet or a KubeadmControlPlane. | MinProperties: 1 Optional: {} |
MachineDeploymentTopologyHealthCheckChecks
MachineDeploymentTopologyHealthCheckChecks are the checks that are used to evaluate if a MachineDeployment Machine is healthy.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
nodeStartupTimeoutSeconds integer | nodeStartupTimeoutSeconds allows to set the maximum time for MachineHealthCheck to consider a Machine unhealthy if a corresponding Node isn’t associated through a Spec.ProviderID field.The duration set in this field is compared to the greatest of: - Cluster’s infrastructure ready condition timestamp (if and when available) - Control Plane’s initialized condition timestamp (if and when available) - Machine’s infrastructure ready condition timestamp (if and when available) - Machine’s metadata creation timestamp Defaults to 10 minutes. If you wish to disable this feature, set the value explicitly to 0. | Minimum: 0 Optional: {} | |
unhealthyNodeConditions UnhealthyNodeCondition array | unhealthyNodeConditions contains a list of conditions that determine whether a node is considered unhealthy. The conditions are combined in a logical OR, i.e. if any of the conditions is met, the node is unhealthy. | MaxItems: 100 MinItems: 1 Optional: {} | |
unhealthyMachineConditions UnhealthyMachineCondition array | unhealthyMachineConditions contains a list of the machine conditions that determine whether a machine is considered unhealthy. The conditions are combined in a logical OR, i.e. if any of the conditions is met, the machine is unhealthy. | MaxItems: 100 MinItems: 1 Optional: {} |
MachineDeploymentTopologyHealthCheckRemediation
MachineDeploymentTopologyHealthCheckRemediation configures if and how remediations are triggered if a MachineDeployment Machine is unhealthy.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
maxInFlight IntOrString | maxInFlight determines how many in flight remediations should happen at the same time. Remediation only happens on the MachineSet with the most current revision, while older MachineSets (usually present during rollout operations) aren’t allowed to remediate. Note: In general (independent of remediations), unhealthy machines are always prioritized during scale down operations over healthy ones. MaxInFlight can be set to a fixed number or a percentage. Example: when this is set to 20%, the MachineSet controller deletes at most 20% of the desired replicas. If not set, remediation is limited to all machines (bounded by replicas) under the active MachineSet’s management. | Optional: {} | |
triggerIf MachineDeploymentTopologyHealthCheckRemediationTriggerIf | triggerIf configures if remediations are triggered. If this field is not set, remediations are always triggered. | MinProperties: 1 Optional: {} | |
templateRef MachineHealthCheckRemediationTemplateReference | templateRef is a reference to a remediation template provided by an infrastructure provider. This field is completely optional, when filled, the MachineHealthCheck controller creates a new object from the template referenced and hands off remediation of the machine to a controller that lives outside of Cluster API. | Optional: {} |
MachineDeploymentTopologyHealthCheckRemediationTriggerIf
MachineDeploymentTopologyHealthCheckRemediationTriggerIf configures if remediations are triggered.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
unhealthyLessThanOrEqualTo IntOrString | unhealthyLessThanOrEqualTo specifies that remediations are only triggered if the number of unhealthy Machines is less than or equal to the configured value. unhealthyInRange takes precedence if set. | Optional: {} | |
unhealthyInRange string | unhealthyInRange specifies that remediations are only triggered if the number of unhealthy Machines is in the configured range. Takes precedence over unhealthyLessThanOrEqualTo. Eg. “[3-5]“ - This means that remediation will be allowed only when: (a) there are at least 3 unhealthy Machines (and) (b) there are at most 5 unhealthy Machines | MaxLength: 32 MinLength: 1 Pattern: ^\[[0-9]+-[0-9]+\]$ Optional: {} |
MachineDeploymentTopologyMachineDeletionSpec
MachineDeploymentTopologyMachineDeletionSpec contains configuration options for Machine deletion.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
order MachineSetDeletionOrder | order defines the order in which Machines are deleted when downscaling. Defaults to “Random”. Valid values are “Random, “Newest”, “Oldest” | Enum: [Random Newest Oldest] Optional: {} | |
nodeDrainTimeoutSeconds integer | nodeDrainTimeoutSeconds is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: nodeDrainTimeoutSeconds is different from kubectl drain --timeout | Minimum: 0 Optional: {} | |
nodeVolumeDetachTimeoutSeconds integer | nodeVolumeDetachTimeoutSeconds is the total amount of time that the controller will spend on waiting for all volumes to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. | Minimum: 0 Optional: {} | |
nodeDeletionTimeoutSeconds integer | nodeDeletionTimeoutSeconds defines how long the controller will attempt to delete the Node that the Machine hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. Defaults to 10 seconds. | Minimum: 0 Optional: {} |
MachineDeploymentTopologyRolloutSpec
MachineDeploymentTopologyRolloutSpec defines the rollout behavior.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
strategy MachineDeploymentTopologyRolloutStrategy | strategy specifies how to roll out control plane Machines. | MinProperties: 1 Optional: {} |
MachineDeploymentTopologyRolloutStrategy
MachineDeploymentTopologyRolloutStrategy describes how to replace existing machines with new ones.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
type MachineDeploymentRolloutStrategyType | type of rollout. Allowed values are RollingUpdate and OnDelete. Default is RollingUpdate. | Enum: [RollingUpdate OnDelete] Required: {} | |
rollingUpdate MachineDeploymentTopologyRolloutStrategyRollingUpdate | rollingUpdate is the rolling update config params. Present only if type = RollingUpdate. | MinProperties: 1 Optional: {} |
MachineDeploymentTopologyRolloutStrategyRollingUpdate
MachineDeploymentTopologyRolloutStrategyRollingUpdate is used to control the desired behavior of rolling update.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
maxUnavailable IntOrString | maxUnavailable is the maximum number of machines that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired machines (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 0. Example: when this is set to 30%, the old MachineSet can be scaled down to 70% of desired machines immediately when the rolling update starts. Once new machines are ready, old MachineSet can be scaled down further, followed by scaling up the new MachineSet, ensuring that the total number of machines available at all times during the update is at least 70% of desired machines. | Optional: {} | |
maxSurge IntOrString | maxSurge is the maximum number of machines that can be scheduled above the desired number of machines. Value can be an absolute number (ex: 5) or a percentage of desired machines (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 1. Example: when this is set to 30%, the new MachineSet can be scaled up immediately when the rolling update starts, such that the total number of old and new machines do not exceed 130% of desired machines. Once old machines have been killed, new MachineSet can be scaled up further, ensuring that total number of machines running at any time during the update is at most 130% of desired machines. | Optional: {} |
MachineDeploymentV1Beta1DeprecatedStatus
MachineDeploymentV1Beta1DeprecatedStatus groups all the status fields that are deprecated and will be removed when support for v1beta1 will be dropped. See https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more context.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
conditions Conditions | conditions defines current service state of the MachineDeployment. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | Optional: {} | |
updatedReplicas integer | updatedReplicas is the total number of non-terminated machines targeted by this deployment that have the desired template spec. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | Optional: {} | |
readyReplicas integer | readyReplicas is the total number of ready machines targeted by this deployment. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | Optional: {} | |
availableReplicas integer | availableReplicas is the total number of available machines (ready for at least minReadySeconds) targeted by this deployment. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | Optional: {} | |
unavailableReplicas integer | unavailableReplicas is the total number of unavailable machines targeted by this deployment. This is the total number of machines that are still required for the deployment to have 100% available capacity. They may either be machines that are running but not yet available or machines that still have not been created. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | Optional: {} |
MachineDeploymentVariables
MachineDeploymentVariables can be used to provide variables for a specific MachineDeployment.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
overrides ClusterVariable array | overrides can be used to override Cluster level variables. | MaxItems: 1000 MinItems: 1 Optional: {} |
MachineDeprecatedStatus
MachineDeprecatedStatus groups all the status fields that are deprecated and will be removed in a future version. See https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more context.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
v1beta1 MachineV1Beta1DeprecatedStatus | v1beta1 groups all the status fields that are deprecated and will be removed when support for v1beta1 will be dropped. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | Optional: {} |
MachineDrainRule
MachineDrainRule is the Schema for the MachineDrainRule API.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | cluster.x-k8s.io/v1beta2 | ||
kind string | MachineDrainRule | ||
metadata ObjectMeta | Refer to Kubernetes API documentation for fields of metadata. | MinProperties: 1 Required: {} | |
spec MachineDrainRuleSpec | spec defines the spec of a MachineDrainRule. | Required: {} |
MachineDrainRuleDrainBehavior
Underlying type: string
MachineDrainRuleDrainBehavior defines the drain behavior. Can be either “Drain”, “Skip”, or “WaitCompleted”.
Validation:
- Enum: [Drain Skip WaitCompleted]
Appears in:
| Field | Description |
|---|---|
Drain | MachineDrainRuleDrainBehaviorDrain means a Pod should be drained. |
Skip | MachineDrainRuleDrainBehaviorSkip means the drain for a Pod should be skipped. |
WaitCompleted | MachineDrainRuleDrainBehaviorWaitCompleted means the Pod should not be evicted, but overall drain should wait until the Pod completes. |
MachineDrainRuleDrainConfig
MachineDrainRuleDrainConfig configures if and how Pods are drained.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
behavior MachineDrainRuleDrainBehavior | behavior defines the drain behavior. Can be either “Drain”, “Skip”, or “WaitCompleted”. “Drain” means that the Pods to which this MachineDrainRule applies will be drained. If behavior is set to “Drain” the order in which Pods are drained can be configured with the order field. When draining Pods of a Node the Pods will be grouped by order and one group after another will be drained (by increasing order). Cluster API will wait until all Pods of a group are terminated / removed from the Node before starting with the next group. “Skip” means that the Pods to which this MachineDrainRule applies will be skipped during drain. “WaitCompleted” means that the pods to which this MachineDrainRule applies will never be evicted and we wait for them to be completed, it is enforced that pods marked with this behavior always have Order=0. | Enum: [Drain Skip WaitCompleted] Required: {} | |
order integer | order defines the order in which Pods are drained. Pods with higher order are drained after Pods with lower order. order can only be set if behavior is set to “Drain”. If order is not set, 0 will be used. Valid values for order are from -2147483648 to 2147483647 (inclusive). | Optional: {} |
MachineDrainRuleList
MachineDrainRuleList contains a list of MachineDrainRules.
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | cluster.x-k8s.io/v1beta2 | ||
kind string | MachineDrainRuleList | ||
metadata ListMeta | Refer to Kubernetes API documentation for fields of metadata. | Required: {} | |
items MachineDrainRule array | items contains the items of the MachineDrainRuleList. |
MachineDrainRuleMachineSelector
MachineDrainRuleMachineSelector defines to which Machines this MachineDrainRule should be applied.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
selector LabelSelector | selector is a label selector which selects Machines by their labels. This field follows standard label selector semantics; if not present or empty, it selects all Machines. If clusterSelector is also set, then the selector as a whole selects Machines matching selector belonging to Clusters selected by clusterSelector. If clusterSelector is not set, it selects all Machines matching selector in all Clusters. | Optional: {} | |
clusterSelector LabelSelector | clusterSelector is a label selector which selects Machines by the labels of their Clusters. This field follows standard label selector semantics; if not present or empty, it selects Machines of all Clusters. If selector is also set, then the selector as a whole selects Machines matching selector belonging to Clusters selected by clusterSelector. If selector is not set, it selects all Machines belonging to Clusters selected by clusterSelector. | Optional: {} |
MachineDrainRulePodSelector
MachineDrainRulePodSelector defines to which Pods this MachineDrainRule should be applied.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
selector LabelSelector | selector is a label selector which selects Pods by their labels. This field follows standard label selector semantics; if not present or empty, it selects all Pods. If namespaceSelector is also set, then the selector as a whole selects Pods matching selector in Namespaces selected by namespaceSelector. If namespaceSelector is not set, it selects all Pods matching selector in all Namespaces. | Optional: {} | |
namespaceSelector LabelSelector | namespaceSelector is a label selector which selects Pods by the labels of their Namespaces. This field follows standard label selector semantics; if not present or empty, it selects Pods of all Namespaces. If selector is also set, then the selector as a whole selects Pods matching selector in Namespaces selected by namespaceSelector. If selector is not set, it selects all Pods in Namespaces selected by namespaceSelector. | Optional: {} |
MachineDrainRuleSpec
MachineDrainRuleSpec defines the spec of a MachineDrainRule.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
drain MachineDrainRuleDrainConfig | drain configures if and how Pods are drained. | Required: {} | |
machines MachineDrainRuleMachineSelector array | machines defines to which Machines this MachineDrainRule should be applied. If machines is not set, the MachineDrainRule applies to all Machines in the Namespace. If machines contains multiple selectors, the results are ORed. Within a single Machine selector the results of selector and clusterSelector are ANDed. Machines will be selected from all Clusters in the Namespace unless otherwise restricted with the clusterSelector. Example: Selects control plane Machines in all Clusters or Machines with label “os” == “linux” in Clusters with label “stage” == “production”. - selector: matchExpressions: - key: cluster.x-k8s.io/control-plane operator: Exists - selector: matchLabels: os: linux clusterSelector: matchExpressions: - key: stage operator: In values: - production | MaxItems: 32 MinItems: 1 MinProperties: 1 Optional: {} | |
pods MachineDrainRulePodSelector array | pods defines to which Pods this MachineDrainRule should be applied. If pods is not set, the MachineDrainRule applies to all Pods in all Namespaces. If pods contains multiple selectors, the results are ORed. Within a single Pod selector the results of selector and namespaceSelector are ANDed. Pods will be selected from all Namespaces unless otherwise restricted with the namespaceSelector. Example: Selects Pods with label “app” == “logging” in all Namespaces or Pods with label “app” == “prometheus” in the “monitoring” Namespace. - selector: matchExpressions: - key: app operator: In values: - logging - selector: matchLabels: app: prometheus namespaceSelector: matchLabels: kubernetes.io/metadata.name: monitoring | MaxItems: 32 MinItems: 1 MinProperties: 1 Optional: {} |
MachineHealthCheck
MachineHealthCheck is the Schema for the machinehealthchecks API.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | cluster.x-k8s.io/v1beta2 | ||
kind string | MachineHealthCheck | ||
metadata ObjectMeta | Refer to Kubernetes API documentation for fields of metadata. | MinProperties: 1 Optional: {} | |
spec MachineHealthCheckSpec | spec is the specification of machine health check policy | Required: {} | |
status MachineHealthCheckStatus | status is the most recently observed status of MachineHealthCheck resource | MinProperties: 1 Optional: {} |
MachineHealthCheckChecks
MachineHealthCheckChecks are the checks that are used to evaluate if a Machine is healthy.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
nodeStartupTimeoutSeconds integer | nodeStartupTimeoutSeconds allows to set the maximum time for MachineHealthCheck to consider a Machine unhealthy if a corresponding Node isn’t associated through a Spec.ProviderID field.The duration set in this field is compared to the greatest of: - Cluster’s infrastructure ready condition timestamp (if and when available) - Control Plane’s initialized condition timestamp (if and when available) - Machine’s infrastructure ready condition timestamp (if and when available) - Machine’s metadata creation timestamp Defaults to 10 minutes. If you wish to disable this feature, set the value explicitly to 0. | Minimum: 0 Optional: {} | |
unhealthyNodeConditions UnhealthyNodeCondition array | unhealthyNodeConditions contains a list of conditions that determine whether a node is considered unhealthy. The conditions are combined in a logical OR, i.e. if any of the conditions is met, the node is unhealthy. | MaxItems: 100 MinItems: 1 Optional: {} | |
unhealthyMachineConditions UnhealthyMachineCondition array | unhealthyMachineConditions contains a list of the machine conditions that determine whether a machine is considered unhealthy. The conditions are combined in a logical OR, i.e. if any of the conditions is met, the machine is unhealthy. | MaxItems: 100 MinItems: 1 Optional: {} |
MachineHealthCheckDeprecatedStatus
MachineHealthCheckDeprecatedStatus groups all the status fields that are deprecated and will be removed in a future version. See https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more context.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
v1beta1 MachineHealthCheckV1Beta1DeprecatedStatus | v1beta1 groups all the status fields that are deprecated and will be removed when support for v1beta1 will be dropped. | Optional: {} |
MachineHealthCheckList
MachineHealthCheckList contains a list of MachineHealthCheck.
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | cluster.x-k8s.io/v1beta2 | ||
kind string | MachineHealthCheckList | ||
metadata ListMeta | Refer to Kubernetes API documentation for fields of metadata. | Optional: {} | |
items MachineHealthCheck array | items is the list of MachineHealthChecks. |
MachineHealthCheckRemediation
MachineHealthCheckRemediation configures if and how remediations are triggered if a Machine is unhealthy.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
triggerIf MachineHealthCheckRemediationTriggerIf | triggerIf configures if remediations are triggered. If this field is not set, remediations are always triggered. | MinProperties: 1 Optional: {} | |
templateRef MachineHealthCheckRemediationTemplateReference | templateRef is a reference to a remediation template provided by an infrastructure provider. This field is completely optional, when filled, the MachineHealthCheck controller creates a new object from the template referenced and hands off remediation of the machine to a controller that lives outside of Cluster API. | Optional: {} |
MachineHealthCheckRemediationTemplateReference
MachineHealthCheckRemediationTemplateReference is a reference to a remediation template.
Appears in:
- ControlPlaneClassHealthCheckRemediation
- ControlPlaneTopologyHealthCheckRemediation
- MachineDeploymentClassHealthCheckRemediation
- MachineDeploymentTopologyHealthCheckRemediation
- MachineHealthCheckRemediation
| Field | Description | Default | Validation |
|---|---|---|---|
kind string | kind of the remediation template. kind must consist of alphanumeric characters or ‘-’, start with an alphabetic character, and end with an alphanumeric character. | MaxLength: 63 MinLength: 1 Pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$ Required: {} | |
name string | name of the remediation template. name must consist of lower case alphanumeric characters, ‘-’ or ‘.’, and must start and end with an alphanumeric character. | MaxLength: 253 MinLength: 1 Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ Required: {} | |
apiVersion string | apiVersion of the remediation template. apiVersion must be fully qualified domain name followed by / and a version. NOTE: This field must be kept in sync with the APIVersion of the remediation template. | MaxLength: 317 MinLength: 1 Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*\/[a-z]([-a-z0-9]*[a-z0-9])?$ Required: {} |
MachineHealthCheckRemediationTriggerIf
MachineHealthCheckRemediationTriggerIf configures if remediations are triggered.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
unhealthyLessThanOrEqualTo IntOrString | unhealthyLessThanOrEqualTo specifies that remediations are only triggered if the number of unhealthy Machines is less than or equal to the configured value. unhealthyInRange takes precedence if set. | Optional: {} | |
unhealthyInRange string | unhealthyInRange specifies that remediations are only triggered if the number of unhealthy Machines is in the configured range. Takes precedence over unhealthyLessThanOrEqualTo. Eg. “[3-5]“ - This means that remediation will be allowed only when: (a) there are at least 3 unhealthy Machines (and) (b) there are at most 5 unhealthy Machines | MaxLength: 32 MinLength: 1 Pattern: ^\[[0-9]+-[0-9]+\]$ Optional: {} |
MachineHealthCheckSpec
MachineHealthCheckSpec defines the desired state of MachineHealthCheck.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
clusterName string | clusterName is the name of the Cluster this object belongs to. | MaxLength: 63 MinLength: 1 Required: {} | |
selector LabelSelector | selector is a label selector to match machines whose health will be exercised | Required: {} | |
checks MachineHealthCheckChecks | checks are the checks that are used to evaluate if a Machine is healthy. Independent of this configuration the MachineHealthCheck controller will always flag Machines with cluster.x-k8s.io/remediate-machine annotation andMachines with deleted Nodes as unhealthy. Furthermore, if checks.nodeStartupTimeoutSeconds is not set it is defaulted to 10 minutes and evaluated accordingly. | MinProperties: 1 Optional: {} | |
remediation MachineHealthCheckRemediation | remediation configures if and how remediations are triggered if a Machine is unhealthy. If remediation or remediation.triggerIf is not set, remediation will always be triggered for unhealthy Machines. If remediation or remediation.templateRef is not set, the OwnerRemediated condition will be set on unhealthy Machines to trigger remediation via the owner of the Machines, for example a MachineSet or a KubeadmControlPlane. | MinProperties: 1 Optional: {} |
MachineHealthCheckStatus
MachineHealthCheckStatus defines the observed state of MachineHealthCheck.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
conditions Condition array | conditions represents the observations of a MachineHealthCheck’s current state. Known condition types are RemediationAllowed, Paused. | MaxItems: 32 Optional: {} | |
expectedMachines integer | expectedMachines is the total number of machines counted by this machine health check | Minimum: 0 Optional: {} | |
currentHealthy integer | currentHealthy is the total number of healthy machines counted by this machine health check | Minimum: 0 Optional: {} | |
remediationsAllowed integer | remediationsAllowed is the number of further remediations allowed by this machine health check before maxUnhealthy short circuiting will be applied | Minimum: 0 Optional: {} | |
observedGeneration integer | observedGeneration is the latest generation observed by the controller. | Minimum: 1 Optional: {} | |
targets string array | targets shows the current list of machines the machine health check is watching | MaxItems: 10000 items:MaxLength: 253 items:MinLength: 1 Optional: {} | |
deprecated MachineHealthCheckDeprecatedStatus | deprecated groups all the status fields that are deprecated and will be removed when all the nested field are removed. | Optional: {} |
MachineHealthCheckV1Beta1DeprecatedStatus
MachineHealthCheckV1Beta1DeprecatedStatus groups all the status fields that are deprecated and will be removed when support for v1beta1 will be dropped. See https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more context.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
conditions Conditions | conditions defines current service state of the MachineHealthCheck. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | Optional: {} |
MachineInitializationStatus
MachineInitializationStatus provides observations of the Machine initialization process. NOTE: Fields in this struct are part of the Cluster API contract and are used to orchestrate initial Machine provisioning.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
infrastructureProvisioned boolean | infrastructureProvisioned is true when the infrastructure provider reports that Machine’s infrastructure is fully provisioned. NOTE: this field is part of the Cluster API contract, and it is used to orchestrate provisioning. The value of this field is never updated after provisioning is completed. | Optional: {} | |
bootstrapDataSecretCreated boolean | bootstrapDataSecretCreated is true when the bootstrap provider reports that the Machine’s boostrap secret is created. NOTE: this field is part of the Cluster API contract, and it is used to orchestrate provisioning. The value of this field is never updated after provisioning is completed. | Optional: {} |
MachineList
MachineList contains a list of Machine.
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | cluster.x-k8s.io/v1beta2 | ||
kind string | MachineList | ||
metadata ListMeta | Refer to Kubernetes API documentation for fields of metadata. | Optional: {} | |
items Machine array | items is the list of Machines. |
MachineNamingSpec
MachineNamingSpec allows changing the naming pattern used when creating Machines. Note: InfraMachines & BootstrapConfigs will use the same name as the corresponding Machines.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
template string | template defines the template to use for generating the names of the Machine objects. If not defined, it will fallback to \{\{ .machineSet.name \}\}-\{\{ .random \}\}.If the generated name string exceeds 63 characters, it will be trimmed to 58 characters and will get concatenated with a random suffix of length 5. Length of the template string must not exceed 256 characters. The template allows the following variables .cluster.name,.machineSet.name and .random.The variable .cluster.name retrieves the name of the cluster objectthat owns the Machines being created. The variable .machineSet.name retrieves the name of the MachineSetobject that owns the Machines being created. The variable .random is substituted with random alphanumeric string,without vowels, of length 5. This variable is required part of the template. If not provided, validation will fail. | MaxLength: 256 MinLength: 1 Optional: {} |
MachineNodeReference
MachineNodeReference is a reference to the node running on the machine.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string | name of the node. name must consist of lower case alphanumeric characters, ‘-’ or ‘.’, and must start and end with an alphanumeric character. | MaxLength: 253 MinLength: 1 Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ Required: {} |
MachinePool
MachinePool is the Schema for the machinepools API. NOTE: This CRD can only be used if the MachinePool feature gate is enabled.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | cluster.x-k8s.io/v1beta2 | ||
kind string | MachinePool | ||
metadata ObjectMeta | Refer to Kubernetes API documentation for fields of metadata. | MinProperties: 1 Optional: {} | |
spec MachinePoolSpec | spec is the desired state of MachinePool. | Required: {} | |
status MachinePoolStatus | status is the observed state of MachinePool. | MinProperties: 1 Optional: {} |
MachinePoolClass
MachinePoolClass serves as a template to define a pool of worker nodes of the cluster
provisioned using ClusterClass.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
metadata ObjectMeta | Refer to Kubernetes API documentation for fields of metadata. | MinProperties: 1 Optional: {} | |
class string | class denotes a type of machine pool present in the cluster, this name MUST be unique within a ClusterClass and can be referenced in the Cluster to create a managed MachinePool. | MaxLength: 256 MinLength: 1 Required: {} | |
bootstrap MachinePoolClassBootstrapTemplate | bootstrap contains the bootstrap template reference to be used for the creation of the Machines in the MachinePool. | Required: {} | |
infrastructure MachinePoolClassInfrastructureTemplate | infrastructure contains the infrastructure template reference to be used for the creation of the MachinePool. | Required: {} | |
failureDomains string array | failureDomains is the list of failure domains the MachinePool should be attached to. Must match a key in the FailureDomains map stored on the cluster object. NOTE: This value can be overridden while defining a Cluster.Topology using this MachinePoolClass. | MaxItems: 100 items:MaxLength: 256 items:MinLength: 1 Optional: {} | |
naming MachinePoolClassNamingSpec | naming allows changing the naming pattern used when creating the MachinePool. | MinProperties: 1 Optional: {} | |
deletion MachinePoolClassMachineDeletionSpec | deletion contains configuration options for Machine deletion. | MinProperties: 1 Optional: {} | |
taints MachineTaint array | taints are the node taints that Cluster API will manage. This list is not necessarily complete: other Kubernetes components may add or remove other taints from nodes, e.g. the node controller might add the node.kubernetes.io/not-ready taint. Only those taints defined in this list will be added or removed by core Cluster API controllers. There can be at most 64 taints. A pod would have to tolerate all existing taints to run on the corresponding node. NOTE: This list is implemented as a “map” type, meaning that individual elements can be managed by different owners. | MaxItems: 64 MinItems: 1 Optional: {} | |
minReadySeconds integer | minReadySeconds is the minimum number of seconds for which a newly created machine pool should be ready. Defaults to 0 (machine will be considered available as soon as it is ready) NOTE: This value can be overridden while defining a Cluster.Topology using this MachinePoolClass. | Minimum: 0 Optional: {} |
MachinePoolClassBootstrapTemplate
MachinePoolClassBootstrapTemplate defines the BootstrapTemplate for a MachinePool.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
templateRef ClusterClassTemplateReference | templateRef is a required reference to the BootstrapTemplate for a MachinePool. | Required: {} |
MachinePoolClassInfrastructureTemplate
MachinePoolClassInfrastructureTemplate defines the InfrastructureTemplate for a MachinePool.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
templateRef ClusterClassTemplateReference | templateRef is a required reference to the InfrastructureTemplate for a MachinePool. | Required: {} |
MachinePoolClassMachineDeletionSpec
MachinePoolClassMachineDeletionSpec contains configuration options for Machine deletion.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
nodeDrainTimeoutSeconds integer | nodeDrainTimeoutSeconds is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: nodeDrainTimeoutSeconds is different from kubectl drain --timeoutNOTE: This value can be overridden while defining a Cluster.Topology using this MachinePoolClass. | Minimum: 0 Optional: {} | |
nodeVolumeDetachTimeoutSeconds integer | nodeVolumeDetachTimeoutSeconds is the total amount of time that the controller will spend on waiting for all volumes to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. NOTE: This value can be overridden while defining a Cluster.Topology using this MachinePoolClass. | Minimum: 0 Optional: {} | |
nodeDeletionTimeoutSeconds integer | nodeDeletionTimeoutSeconds defines how long the controller will attempt to delete the Node that the Machine hosts after the Machine Pool is marked for deletion. A duration of 0 will retry deletion indefinitely. Defaults to 10 seconds. NOTE: This value can be overridden while defining a Cluster.Topology using this MachinePoolClass. | Minimum: 0 Optional: {} |
MachinePoolClassNamingSpec
MachinePoolClassNamingSpec defines the naming strategy for MachinePool objects.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
template string | template defines the template to use for generating the name of the MachinePool object. If not defined, it will fallback to \{\{ .cluster.name \}\}-\{\{ .machinePool.topologyName \}\}-\{\{ .random \}\}.If the templated string exceeds 63 characters, it will be trimmed to 58 characters and will get concatenated with a random suffix of length 5. The templating mechanism provides the following arguments: * .cluster.name: The name of the cluster object.* .random: A random alphanumeric string, without vowels, of length 5.* .machinePool.topologyName: The name of the MachinePool topology (Cluster.spec.topology.workers.machinePools[].name). | MaxLength: 1024 MinLength: 1 Optional: {} |
MachinePoolDeprecatedStatus
MachinePoolDeprecatedStatus groups all the status fields that are deprecated and will be removed in a future version. See https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more context.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
v1beta1 MachinePoolV1Beta1DeprecatedStatus | v1beta1 groups all the status fields that are deprecated and will be removed when support for v1beta1 will be dropped. | Optional: {} |
MachinePoolInitializationStatus
MachinePoolInitializationStatus provides observations of the MachinePool initialization process. NOTE: Fields in this struct are part of the Cluster API contract and are used to orchestrate initial MachinePool provisioning.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
infrastructureProvisioned boolean | infrastructureProvisioned is true when the infrastructure provider reports that MachinePool’s infrastructure is fully provisioned. NOTE: this field is part of the Cluster API contract, and it is used to orchestrate provisioning. The value of this field is never updated after provisioning is completed. | Optional: {} | |
bootstrapDataSecretCreated boolean | bootstrapDataSecretCreated is true when the bootstrap provider reports that the MachinePool’s boostrap secret is created. NOTE: this field is part of the Cluster API contract, and it is used to orchestrate provisioning. The value of this field is never updated after provisioning is completed. | Optional: {} |
MachinePoolList
MachinePoolList contains a list of MachinePool.
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | cluster.x-k8s.io/v1beta2 | ||
kind string | MachinePoolList | ||
metadata ListMeta | Refer to Kubernetes API documentation for fields of metadata. | Optional: {} | |
items MachinePool array | items is the list of MachinePools. |
MachinePoolSpec
MachinePoolSpec defines the desired state of MachinePool.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
clusterName string | clusterName is the name of the Cluster this object belongs to. | MaxLength: 63 MinLength: 1 Required: {} | |
replicas integer | replicas is the number of desired machines. Defaults to 1. This is a pointer to distinguish between explicit zero and not specified. | Optional: {} | |
template MachineTemplateSpec | template describes the machines that will be created. | Required: {} | |
providerIDList string array | providerIDList are the identification IDs of machine instances provided by the provider. This field must match the provider IDs as seen on the node objects corresponding to a machine pool’s machine instances. | MaxItems: 10000 items:MaxLength: 512 items:MinLength: 1 Optional: {} | |
failureDomains string array | failureDomains is the list of failure domains this MachinePool should be attached to. | MaxItems: 100 items:MaxLength: 256 items:MinLength: 1 Optional: {} |
MachinePoolStatus
MachinePoolStatus defines the observed state of MachinePool.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
conditions Condition array | conditions represents the observations of a MachinePool’s current state. Known condition types are Available, BootstrapConfigReady, InfrastructureReady, MachinesReady, MachinesUpToDate, ScalingUp, ScalingDown, Remediating, Deleting, Paused. | MaxItems: 32 Optional: {} | |
initialization MachinePoolInitializationStatus | initialization provides observations of the MachinePool initialization process. NOTE: Fields in this struct are part of the Cluster API contract and are used to orchestrate initial MachinePool provisioning. | MinProperties: 1 Optional: {} | |
nodeRefs ObjectReference array | nodeRefs will point to the corresponding Nodes if it they exist. | MaxItems: 10000 Optional: {} | |
replicas integer | replicas is the most recently observed number of replicas. | Optional: {} | |
readyReplicas integer | readyReplicas is the number of ready replicas for this MachinePool. A machine is considered ready when Machine’s Ready condition is true. | Optional: {} | |
availableReplicas integer | availableReplicas is the number of available replicas for this MachinePool. A machine is considered available when Machine’s Available condition is true. | Optional: {} | |
upToDateReplicas integer | upToDateReplicas is the number of up-to-date replicas targeted by this MachinePool. A machine is considered up-to-date when Machine’s UpToDate condition is true. | Optional: {} | |
phase string | phase represents the current phase of cluster actuation. | Enum: [Pending Provisioning Provisioned Running ScalingUp ScalingDown Scaling Deleting Failed Unknown] Optional: {} | |
observedGeneration integer | observedGeneration is the latest generation observed by the controller. | Minimum: 1 Optional: {} | |
deprecated MachinePoolDeprecatedStatus | deprecated groups all the status fields that are deprecated and will be removed when all the nested field are removed. | Optional: {} |
MachinePoolTopology
MachinePoolTopology specifies the different parameters for a pool of worker nodes in the topology. This pool of nodes is managed by a MachinePool object whose lifecycle is managed by the Cluster controller.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
metadata ObjectMeta | Refer to Kubernetes API documentation for fields of metadata. | MinProperties: 1 Optional: {} | |
class string | class is the name of the MachinePoolClass used to create the pool of worker nodes. This should match one of the deployment classes defined in the ClusterClass object mentioned in the Cluster.Spec.Class field. | MaxLength: 256 MinLength: 1 Required: {} | |
name string | name is the unique identifier for this MachinePoolTopology. The value is used with other unique identifiers to create a MachinePool’s Name (e.g. cluster’s name, etc). In case the name is greater than the allowed maximum length, the values are hashed together. | MaxLength: 63 MinLength: 1 Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ Required: {} | |
failureDomains string array | failureDomains is the list of failure domains the machine pool will be created in. Must match a key in the FailureDomains map stored on the cluster object. | MaxItems: 100 MinItems: 1 items:MaxLength: 256 items:MinLength: 1 Optional: {} | |
deletion MachinePoolTopologyMachineDeletionSpec | deletion contains configuration options for Machine deletion. | MinProperties: 1 Optional: {} | |
taints MachineTaint array | taints are the node taints that Cluster API will manage. This list is not necessarily complete: other Kubernetes components may add or remove other taints from nodes, e.g. the node controller might add the node.kubernetes.io/not-ready taint. Only those taints defined in this list will be added or removed by core Cluster API controllers. There can be at most 64 taints. A pod would have to tolerate all existing taints to run on the corresponding node. NOTE: This list is implemented as a “map” type, meaning that individual elements can be managed by different owners. | MaxItems: 64 MinItems: 1 Optional: {} | |
minReadySeconds integer | minReadySeconds is the minimum number of seconds for which a newly created machine pool should be ready. Defaults to 0 (machine will be considered available as soon as it is ready) | Minimum: 0 Optional: {} | |
replicas integer | replicas is the number of nodes belonging to this pool. If the value is nil, the MachinePool is created without the number of Replicas (defaulting to 1) and it’s assumed that an external entity (like cluster autoscaler) is responsible for the management of this value. | Optional: {} | |
variables MachinePoolVariables | variables can be used to customize the MachinePool through patches. | MinProperties: 1 Optional: {} |
MachinePoolTopologyMachineDeletionSpec
MachinePoolTopologyMachineDeletionSpec contains configuration options for Machine deletion.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
nodeDrainTimeoutSeconds integer | nodeDrainTimeoutSeconds is the total amount of time that the controller will spend on draining a node. The default value is 0, meaning that the node can be drained without any time limitations. NOTE: nodeDrainTimeoutSeconds is different from kubectl drain --timeout | Minimum: 0 Optional: {} | |
nodeVolumeDetachTimeoutSeconds integer | nodeVolumeDetachTimeoutSeconds is the total amount of time that the controller will spend on waiting for all volumes to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. | Minimum: 0 Optional: {} | |
nodeDeletionTimeoutSeconds integer | nodeDeletionTimeoutSeconds defines how long the controller will attempt to delete the Node that the MachinePool hosts after the MachinePool is marked for deletion. A duration of 0 will retry deletion indefinitely. Defaults to 10 seconds. | Minimum: 0 Optional: {} |
MachinePoolV1Beta1DeprecatedStatus
MachinePoolV1Beta1DeprecatedStatus groups all the status fields that are deprecated and will be removed when support for v1beta1 will be dropped. See https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more context.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
conditions Conditions | conditions define the current service state of the MachinePool. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | Optional: {} | |
failureReason MachinePoolStatusFailure | failureReason indicates that there is a problem reconciling the state, and will be set to a token value suitable for programmatic interpretation. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | Optional: {} | |
failureMessage string | failureMessage indicates that there is a problem reconciling the state, and will be set to a descriptive error message. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | MaxLength: 10240 MinLength: 1 Optional: {} | |
readyReplicas integer | readyReplicas is the number of ready replicas for this MachinePool. A machine is considered ready when the node has been created and is “Ready”. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | Optional: {} | |
availableReplicas integer | availableReplicas is the number of available replicas (ready for at least minReadySeconds) for this MachinePool. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | Optional: {} | |
unavailableReplicas integer | unavailableReplicas is the total number of unavailable machine instances targeted by this machine pool. This is the total number of machine instances that are still required for the machine pool to have 100% available capacity. They may either be machine instances that are running but not yet available or machine instances that still have not been created. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | Optional: {} |
MachinePoolVariables
MachinePoolVariables can be used to provide variables for a specific MachinePool.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
overrides ClusterVariable array | overrides can be used to override Cluster level variables. | MaxItems: 1000 MinItems: 1 Optional: {} |
MachineReadinessGate
MachineReadinessGate contains the type of a Machine condition to be used as a readiness gate.
Appears in:
- ControlPlaneClass
- ControlPlaneTopology
- KubeadmControlPlaneMachineTemplateSpec
- MachineDeploymentClass
- MachineDeploymentTopology
- MachineSpec
| Field | Description | Default | Validation |
|---|---|---|---|
conditionType string | conditionType refers to a condition with matching type in the Machine’s condition list. If the conditions doesn’t exist, it will be treated as unknown. Note: Both Cluster API conditions or conditions added by 3rd party controllers can be used as readiness gates. | MaxLength: 316 MinLength: 1 Pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ Required: {} | |
polarity ConditionPolarity | polarity of the conditionType specified in this readinessGate. Valid values are Positive, Negative and omitted. When omitted, the default behaviour will be Positive. A positive polarity means that the condition should report a true status under normal conditions. A negative polarity means that the condition should report a false status under normal conditions. | Enum: [Positive Negative] Optional: {} |
MachineSet
MachineSet is the Schema for the machinesets API.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | cluster.x-k8s.io/v1beta2 | ||
kind string | MachineSet | ||
metadata ObjectMeta | Refer to Kubernetes API documentation for fields of metadata. | MinProperties: 1 Optional: {} | |
spec MachineSetSpec | spec is the desired state of MachineSet. | Required: {} | |
status MachineSetStatus | status is the observed state of MachineSet. | MinProperties: 1 Optional: {} |
MachineSetDeletionOrder
Underlying type: string
MachineSetDeletionOrder defines how priority is assigned to nodes to delete when downscaling a MachineSet. Defaults to “Random”.
Validation:
- Enum: [Random Newest Oldest]
Appears in:
- MachineDeploymentClassMachineDeletionSpec
- MachineDeploymentDeletionSpec
- MachineDeploymentTopologyMachineDeletionSpec
- MachineSetDeletionSpec
| Field | Description |
|---|---|
Random | RandomMachineSetDeletionOrder prioritizes both Machines that have the annotation “cluster.x-k8s.io/delete-machine=yes” and Machines that are unhealthy (Status.FailureReason or Status.FailureMessage are set to a non-empty value or NodeHealthy type of Status.Conditions is not true). Finally, it picks Machines at random to delete. |
Newest | NewestMachineSetDeletionOrder prioritizes both Machines that have the annotation “cluster.x-k8s.io/delete-machine=yes” and Machines that are unhealthy (Status.FailureReason or Status.FailureMessage are set to a non-empty value or NodeHealthy type of Status.Conditions is not true). It then prioritizes the newest Machines for deletion based on the Machine’s CreationTimestamp. |
Oldest | OldestMachineSetDeletionOrder prioritizes both Machines that have the annotation “cluster.x-k8s.io/delete-machine=yes” and Machines that are unhealthy (Status.FailureReason or Status.FailureMessage are set to a non-empty value or NodeHealthy type of Status.Conditions is not true). It then prioritizes the oldest Machines for deletion based on the Machine’s CreationTimestamp. |
MachineSetDeletionSpec
MachineSetDeletionSpec contains configuration options for MachineSet deletion.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
order MachineSetDeletionOrder | order defines the order in which Machines are deleted when downscaling. Defaults to “Random”. Valid values are “Random, “Newest”, “Oldest” | Enum: [Random Newest Oldest] Optional: {} |
MachineSetDeprecatedStatus
MachineSetDeprecatedStatus groups all the status fields that are deprecated and will be removed in a future version. See https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more context.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
v1beta1 MachineSetV1Beta1DeprecatedStatus | v1beta1 groups all the status fields that are deprecated and will be removed when support for v1beta1 will be dropped. | Optional: {} |
MachineSetList
MachineSetList contains a list of MachineSet.
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | cluster.x-k8s.io/v1beta2 | ||
kind string | MachineSetList | ||
metadata ListMeta | Refer to Kubernetes API documentation for fields of metadata. | Optional: {} | |
items MachineSet array | items is the list of MachineSets. |
MachineSetSpec
MachineSetSpec defines the desired state of MachineSet.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
clusterName string | clusterName is the name of the Cluster this object belongs to. | MaxLength: 63 MinLength: 1 Required: {} | |
replicas integer | replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to: * if the Kubernetes autoscaler min size and max size annotations are set: - if it’s a new MachineSet, use min size - if the replicas field of the old MachineSet is < min size, use min size - if the replicas field of the old MachineSet is > max size, use max size - if the replicas field of the old MachineSet is in the (min size, max size) range, keep the value from the oldMS * otherwise use 1 Note: Defaulting will be run whenever the replicas field is not set: * A new MachineSet is created with replicas not set. * On an existing MachineSet the replicas field was first set and is now unset. Those cases are especially relevant for the following Kubernetes autoscaler use cases: * A new MachineSet is created and replicas should be managed by the autoscaler * An existing MachineSet which initially wasn’t controlled by the autoscaler should be later controlled by the autoscaler | Optional: {} | |
selector LabelSelector | selector is a label query over machines that should match the replica count. Label keys and values that must match in order to be controlled by this MachineSet. It must match the machine template’s labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors | Required: {} | |
template MachineTemplateSpec | template is the object that describes the machine that will be created if insufficient replicas are detected. Object references to custom resources are treated as templates. | Required: {} | |
machineNaming MachineNamingSpec | machineNaming allows changing the naming pattern used when creating Machines. Note: InfraMachines & BootstrapConfigs will use the same name as the corresponding Machines. | MinProperties: 1 Optional: {} | |
deletion MachineSetDeletionSpec | deletion contains configuration options for MachineSet deletion. | MinProperties: 1 Optional: {} |
MachineSetStatus
MachineSetStatus defines the observed state of MachineSet.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
conditions Condition array | conditions represents the observations of a MachineSet’s current state. Known condition types are MachinesReady, MachinesUpToDate, ScalingUp, ScalingDown, Remediating, Deleting, Paused. | MaxItems: 32 Optional: {} | |
selector string | selector is the same as the label selector but in the string format to avoid introspection by clients. The string will be in the same format as the query-param syntax. More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors | MaxLength: 4096 MinLength: 1 Optional: {} | |
replicas integer | replicas is the most recently observed number of replicas. | Optional: {} | |
readyReplicas integer | readyReplicas is the number of ready replicas for this MachineSet. A machine is considered ready when Machine’s Ready condition is true. | Optional: {} | |
availableReplicas integer | availableReplicas is the number of available replicas for this MachineSet. A machine is considered available when Machine’s Available condition is true. | Optional: {} | |
upToDateReplicas integer | upToDateReplicas is the number of up-to-date replicas for this MachineSet. A machine is considered up-to-date when Machine’s UpToDate condition is true. | Optional: {} | |
observedGeneration integer | observedGeneration reflects the generation of the most recently observed MachineSet. | Minimum: 1 Optional: {} | |
deprecated MachineSetDeprecatedStatus | deprecated groups all the status fields that are deprecated and will be removed when all the nested field are removed. | Optional: {} |
MachineSetV1Beta1DeprecatedStatus
MachineSetV1Beta1DeprecatedStatus groups all the status fields that are deprecated and will be removed when support for v1beta1 will be dropped. See https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more context.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
conditions Conditions | conditions defines current service state of the MachineSet. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | Optional: {} | |
failureReason MachineSetStatusError | failureReason will be set in the event that there is a terminal problem reconciling the Machine and will contain a succinct value suitable for machine interpretation. In the event that there is a terminal problem reconciling the replicas, both FailureReason and FailureMessage will be set. FailureReason will be populated with a succinct value suitable for machine interpretation, while FailureMessage will contain a more verbose string suitable for logging and human consumption. These fields should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the MachineTemplate’s spec or the configuration of the machine controller, and that manual intervention is required. Examples of terminal errors would be invalid combinations of settings in the spec, values that are unsupported by the machine controller, or the responsible machine controller itself being critically misconfigured. Any transient errors that occur during the reconciliation of Machines can be added as events to the MachineSet object and/or logged in the controller’s output. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | Optional: {} | |
failureMessage string | failureMessage will be set in the event that there is a terminal problem reconciling the Machine and will contain a more verbose string suitable for logging and human consumption. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | MaxLength: 10240 MinLength: 1 Optional: {} | |
fullyLabeledReplicas integer | fullyLabeledReplicas is the number of replicas that have labels matching the labels of the machine template of the MachineSet. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | Optional: {} | |
readyReplicas integer | readyReplicas is the number of ready replicas for this MachineSet. A machine is considered ready when the node has been created and is “Ready”. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | Optional: {} | |
availableReplicas integer | availableReplicas is the number of available replicas (ready for at least minReadySeconds) for this MachineSet. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | Optional: {} |
MachineSpec
MachineSpec defines the desired state of Machine.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
clusterName string | clusterName is the name of the Cluster this object belongs to. | MaxLength: 63 MinLength: 1 Required: {} | |
bootstrap Bootstrap | bootstrap is a reference to a local struct which encapsulates fields to configure the Machine’s bootstrapping mechanism. | Required: {} | |
infrastructureRef ContractVersionedObjectReference | infrastructureRef is a required reference to a custom resource offered by an infrastructure provider. | Required: {} | |
version string | version defines the desired Kubernetes version. This field is meant to be optionally used by bootstrap providers. | MaxLength: 256 MinLength: 1 Optional: {} | |
providerID string | providerID is the identification ID of the machine provided by the provider. This field must match the provider ID as seen on the node object corresponding to this machine. This field is required by higher level consumers of cluster-api. Example use case is cluster autoscaler with cluster-api as provider. Clean-up logic in the autoscaler compares machines to nodes to find out machines at provider which could not get registered as Kubernetes nodes. With cluster-api as a generic out-of-tree provider for autoscaler, this field is required by autoscaler to be able to have a provider view of the list of machines. Another list of nodes is queried from the k8s apiserver and then a comparison is done to find out unregistered machines and are marked for delete. This field will be set by the actuators and consumed by higher level entities like autoscaler that will be interfacing with cluster-api as generic provider. | MaxLength: 512 MinLength: 1 Optional: {} | |
failureDomain string | failureDomain is the failure domain the machine will be created in. Must match the name of a FailureDomain from the Cluster status. | MaxLength: 256 MinLength: 1 Optional: {} | |
minReadySeconds integer | minReadySeconds is the minimum number of seconds for which a Machine should be ready before considering it available. Defaults to 0 (Machine will be considered available as soon as the Machine is ready) | Minimum: 0 Optional: {} | |
readinessGates MachineReadinessGate array | readinessGates specifies additional conditions to include when evaluating Machine Ready condition. This field can be used e.g. by Cluster API control plane providers to extend the semantic of the Ready condition for the Machine they control, like the kubeadm control provider adding ReadinessGates for the APIServerPodHealthy, SchedulerPodHealthy conditions, etc. Another example are external controllers, e.g. responsible to install special software/hardware on the Machines; they can include the status of those components with a new condition and add this condition to ReadinessGates. NOTE: In case readinessGates conditions start with the APIServer, ControllerManager, Scheduler prefix, and all those readiness gates condition are reporting the same message, when computing the Machine’s Ready condition those readinessGates will be replaced by a single entry reporting “Control plane components: “ + message. This helps to improve readability of conditions bubbling up to the Machine’s owner resource / to the Cluster). | MaxItems: 32 MinItems: 1 Optional: {} | |
deletion MachineDeletionSpec | deletion contains configuration options for Machine deletion. | MinProperties: 1 Optional: {} | |
taints MachineTaint array | taints are the node taints that Cluster API will manage. This list is not necessarily complete: other Kubernetes components may add or remove other taints from nodes, e.g. the node controller might add the node.kubernetes.io/not-ready taint. Only those taints defined in this list will be added or removed by core Cluster API controllers. There can be at most 64 taints. A pod would have to tolerate all existing taints to run on the corresponding node. NOTE: This list is implemented as a “map” type, meaning that individual elements can be managed by different owners. | MaxItems: 64 MinItems: 1 Optional: {} |
MachineStatus
MachineStatus defines the observed state of Machine.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
conditions Condition array | conditions represents the observations of a Machine’s current state. Known condition types are Available, Ready, UpToDate, BootstrapConfigReady, InfrastructureReady, NodeReady, NodeHealthy, Updating, Deleting, Paused. If a MachineHealthCheck is targeting this machine, also HealthCheckSucceeded, OwnerRemediated conditions are added. Additionally control plane Machines controlled by KubeadmControlPlane will have following additional conditions: APIServerPodHealthy, ControllerManagerPodHealthy, SchedulerPodHealthy, EtcdPodHealthy, EtcdMemberHealthy, NodeKubeadmLabelsAndTaintsSet. | MaxItems: 32 Optional: {} | |
initialization MachineInitializationStatus | initialization provides observations of the Machine initialization process. NOTE: Fields in this struct are part of the Cluster API contract and are used to orchestrate initial Machine provisioning. | MinProperties: 1 Optional: {} | |
nodeRef MachineNodeReference | nodeRef will point to the corresponding Node if it exists. | Optional: {} | |
nodeInfo NodeSystemInfo | nodeInfo is a set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info | Optional: {} | |
addresses MachineAddresses | addresses is a list of addresses assigned to the machine. This field is copied from the infrastructure provider reference. | MaxItems: 256 Optional: {} | |
failureDomain string | failureDomain is the failure domain where the Machine has been scheduled. | MaxLength: 256 MinLength: 1 Optional: {} | |
phase string | phase represents the current phase of machine actuation. | Enum: [Pending Provisioning Provisioned Running Updating Deleting Deleted Failed Unknown] Optional: {} | |
observedGeneration integer | observedGeneration is the latest generation observed by the controller. | Minimum: 1 Optional: {} | |
deletion MachineDeletionStatus | deletion contains information relating to removal of the Machine. Only present when the Machine has a deletionTimestamp and drain or wait for volume detach started. | Optional: {} | |
deprecated MachineDeprecatedStatus | deprecated groups all the status fields that are deprecated and will be removed when all the nested field are removed. | Optional: {} |
MachineTaint
MachineTaint defines a taint equivalent to corev1.Taint, but additionally having a propagation field.
Appears in:
- ControlPlaneClass
- ControlPlaneTopology
- KubeadmControlPlaneMachineTemplateSpec
- KubeadmControlPlaneTemplateMachineTemplateSpec
- MachineDeploymentClass
- MachineDeploymentTopology
- MachinePoolClass
- MachinePoolTopology
- MachineSpec
| Field | Description | Default | Validation |
|---|---|---|---|
key string | key is the taint key to be applied to a node. Must be a valid qualified name of maximum size 63 characters with an optional subdomain prefix of maximum size 253 characters, separated by a /. | MaxLength: 317 MinLength: 1 Pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*\/)?([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]$ Required: {} | |
value string | value is the taint value corresponding to the taint key. It must be a valid label value of maximum size 63 characters. | MaxLength: 63 MinLength: 1 Pattern: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$ Optional: {} | |
effect TaintEffect | effect is the effect for the taint. Valid values are NoSchedule, PreferNoSchedule and NoExecute. | Enum: [NoSchedule PreferNoSchedule NoExecute] Required: {} | |
propagation MachineTaintPropagation | propagation defines how this taint should be propagated to nodes. Valid values are ‘Always’ and ‘OnInitialization’. Always: The taint will be continuously reconciled. If it is not set for a node, it will be added during reconciliation. OnInitialization: The taint will be added during node initialization. If it gets removed from the node later on it will not get added again. | Enum: [Always OnInitialization] Required: {} |
MachineTaintPropagation
Underlying type: string
MachineTaintPropagation defines when a taint should be propagated to nodes.
Validation:
- Enum: [Always OnInitialization]
Appears in:
| Field | Description |
|---|---|
Always | MachineTaintPropagationAlways means the taint should be continuously reconciled and kept on the node. - If an Always taint is added to the Machine, the taint will be added to the node. - If an Always taint is removed from the Machine, the taint will be removed from the node. - If an OnInitialization taint is changed to Always, the Machine controller will ensure the taint is set on the node. - If an Always taint is removed from the node, it will be re-added during reconciliation. |
OnInitialization | MachineTaintPropagationOnInitialization means the taint should be set once during initialization and then left alone. - If an OnInitialization taint is added to the Machine, the taint will only be added to the node on initialization. - If an OnInitialization taint is removed from the Machine nothing will be changed on the node. - If an Always taint is changed to OnInitialization, the taint will only be added to the node on initialization. - If an OnInitialization taint is removed from the node, it will not be re-added during reconciliation. |
MachineTemplateSpec
MachineTemplateSpec describes the data needed to create a Machine from a template.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
metadata ObjectMeta | Refer to Kubernetes API documentation for fields of metadata. | MinProperties: 1 Optional: {} | |
spec MachineSpec | spec is the specification of the desired behavior of the machine. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status | Required: {} |
MachineV1Beta1DeprecatedStatus
MachineV1Beta1DeprecatedStatus groups all the status fields that are deprecated and will be removed when support for v1beta1 will be dropped. See https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more context.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
conditions Conditions | conditions defines current service state of the Machine. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | Optional: {} | |
failureReason MachineStatusError | failureReason will be set in the event that there is a terminal problem reconciling the Machine and will contain a succinct value suitable for machine interpretation. This field should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the Machine’s spec or the configuration of the controller, and that manual intervention is required. Examples of terminal errors would be invalid combinations of settings in the spec, values that are unsupported by the controller, or the responsible controller itself being critically misconfigured. Any transient errors that occur during the reconciliation of Machines can be added as events to the Machine object and/or logged in the controller’s output. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | Optional: {} | |
failureMessage string | failureMessage will be set in the event that there is a terminal problem reconciling the Machine and will contain a more verbose string suitable for logging and human consumption. This field should not be set for transitive errors that a controller faces that are expected to be fixed automatically over time (like service outages), but instead indicate that something is fundamentally wrong with the Machine’s spec or the configuration of the controller, and that manual intervention is required. Examples of terminal errors would be invalid combinations of settings in the spec, values that are unsupported by the controller, or the responsible controller itself being critically misconfigured. Any transient errors that occur during the reconciliation of Machines can be added as events to the Machine object and/or logged in the controller’s output. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | MaxLength: 10240 MinLength: 1 Optional: {} |
NetworkRanges
NetworkRanges represents ranges of network addresses.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
cidrBlocks string array | cidrBlocks is a list of CIDR blocks. | MaxItems: 100 MinItems: 1 items:MaxLength: 43 items:MinLength: 1 Required: {} |
ObjectMeta
ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create. This is a copy of customizable fields from metav1.ObjectMeta.
ObjectMeta is embedded in Machine.Spec, MachineDeployment.Template and MachineSet.Template,
which are not top-level Kubernetes objects. Given that metav1.ObjectMeta has lots of special cases
and read-only fields which end up in the generated CRD validation, having it as a subset simplifies
the API and some issues that can impact user experience.
During the upgrade to controller-tools@v2
for v1alpha2, we noticed a failure would occur running Cluster API test suite against the new CRDs,
specifically spec.metadata.creationTimestamp in body must be of type string: "null".
The investigation showed that controller-tools@v2 behaves differently than its previous version
when handling types from metav1 package.
In more details, we found that embedded (non-top level) types that embedded metav1.ObjectMeta
had validation properties, including for creationTimestamp (metav1.Time).
The metav1.Time type specifies a custom json marshaller that, when IsZero() is true, returns null
which breaks validation because the field isn’t marked as nullable.
In future versions, controller-tools@v2 might allow overriding the type and validation for embedded types. When that happens, this hack should be revisited.
Validation:
- MinProperties: 1
Appears in:
- ControlPlaneClass
- ControlPlaneTopology
- KubeadmConfigTemplateResource
- KubeadmControlPlaneMachineTemplate
- KubeadmControlPlaneTemplateMachineTemplate
- KubeadmControlPlaneTemplateResource
- MachineDeploymentClass
- MachineDeploymentTopology
- MachinePoolClass
- MachinePoolTopology
- MachineTemplateSpec
| Field | Description | Default | Validation |
|---|---|---|---|
labels object (keys:string, values:string) | labels is a 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: http://kubernetes.io/docs/user-guide/labels | Optional: {} | |
annotations object (keys:string, values:string) | 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://kubernetes.io/docs/user-guide/annotations | Optional: {} |
PatchDefinition
PatchDefinition defines a patch which is applied to customize the referenced templates.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
selector PatchSelector | selector defines on which templates the patch should be applied. | Required: {} | |
jsonPatches JSONPatch array | jsonPatches defines the patches which should be applied on the templates matching the selector. Note: Patches will be applied in the order of the array. | MaxItems: 100 MinItems: 1 Required: {} |
PatchSelector
PatchSelector defines on which templates the patch should be applied. Note: Matching on APIVersion and Kind is mandatory, to enforce that the patches are written for the correct version. The version of the references in the ClusterClass may be automatically updated during reconciliation if there is a newer version for the same contract. Note: The results of selection based on the individual fields are ANDed.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | apiVersion filters templates by apiVersion. apiVersion must be fully qualified domain name followed by / and a version. | MaxLength: 317 MinLength: 1 Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*\/[a-z]([-a-z0-9]*[a-z0-9])?$ Required: {} | |
kind string | kind filters templates by kind. kind must consist of alphanumeric characters or ‘-’, start with an alphabetic character, and end with an alphanumeric character. | MaxLength: 63 MinLength: 1 Pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$ Required: {} | |
matchResources PatchSelectorMatch | matchResources selects templates based on where they are referenced. | MinProperties: 1 Required: {} |
PatchSelectorMatch
PatchSelectorMatch selects templates based on where they are referenced. Note: The selector must match at least one template. Note: The results of selection based on the individual fields are ORed.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
controlPlane boolean | controlPlane selects templates referenced in .spec.ControlPlane. Note: this will match the controlPlane and also the controlPlane machineInfrastructure (depending on the kind and apiVersion). | Optional: {} | |
infrastructureCluster boolean | infrastructureCluster selects templates referenced in .spec.infrastructure. | Optional: {} | |
machineDeploymentClass PatchSelectorMatchMachineDeploymentClass | machineDeploymentClass selects templates referenced in specific MachineDeploymentClasses in .spec.workers.machineDeployments. | Optional: {} | |
machinePoolClass PatchSelectorMatchMachinePoolClass | machinePoolClass selects templates referenced in specific MachinePoolClasses in .spec.workers.machinePools. | Optional: {} |
PatchSelectorMatchMachineDeploymentClass
PatchSelectorMatchMachineDeploymentClass selects templates referenced in specific MachineDeploymentClasses in .spec.workers.machineDeployments.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
names string array | names selects templates by class names. | MaxItems: 100 items:MaxLength: 256 items:MinLength: 1 Optional: {} |
PatchSelectorMatchMachinePoolClass
PatchSelectorMatchMachinePoolClass selects templates referenced in specific MachinePoolClasses in .spec.workers.machinePools.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
names string array | names selects templates by class names. | MaxItems: 100 items:MaxLength: 256 items:MinLength: 1 Optional: {} |
Topology
Topology encapsulates the information of the managed resources.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
classRef ClusterClassRef | classRef is the ref to the ClusterClass that should be used for the topology. | Required: {} | |
version string | version is the Kubernetes version of the cluster. | MaxLength: 256 MinLength: 1 Required: {} | |
controlPlane ControlPlaneTopology | controlPlane describes the cluster control plane. | MinProperties: 1 Optional: {} | |
workers WorkersTopology | workers encapsulates the different constructs that form the worker nodes for the cluster. | MinProperties: 1 Optional: {} | |
variables ClusterVariable array | variables can be used to customize the Cluster through patches. They must comply to the corresponding VariableClasses defined in the ClusterClass. | MaxItems: 1000 MinItems: 1 Optional: {} |
UnhealthyMachineCondition
UnhealthyMachineCondition represents a Machine condition type and value with a timeout specified as a duration. When the named condition has been in the given status for at least the timeout value, a machine is considered unhealthy.
Appears in:
- ControlPlaneClassHealthCheckChecks
- ControlPlaneTopologyHealthCheckChecks
- MachineDeploymentClassHealthCheckChecks
- MachineDeploymentTopologyHealthCheckChecks
- MachineHealthCheckChecks
| Field | Description | Default | Validation |
|---|---|---|---|
type string | type of Machine condition | MaxLength: 316 MinLength: 1 Pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ Required: {} | |
status ConditionStatus | status of the condition, one of True, False, Unknown. | Enum: [True False Unknown] Required: {} | |
timeoutSeconds integer | timeoutSeconds is the duration that a machine must be in a given status for, after which the machine is considered unhealthy. For example, with a value of “3600”, the machine must match the status for at least 1 hour before being considered unhealthy. | Minimum: 0 Required: {} |
UnhealthyNodeCondition
UnhealthyNodeCondition represents a Node condition type and value with a timeout specified as a duration. When the named condition has been in the given status for at least the timeout value, a node is considered unhealthy.
Appears in:
- ControlPlaneClassHealthCheckChecks
- ControlPlaneTopologyHealthCheckChecks
- MachineDeploymentClassHealthCheckChecks
- MachineDeploymentTopologyHealthCheckChecks
- MachineHealthCheckChecks
| Field | Description | Default | Validation |
|---|---|---|---|
type NodeConditionType | type of Node condition | MinLength: 1 Type: string Required: {} | |
status ConditionStatus | status of the condition, one of True, False, Unknown. | MinLength: 1 Type: string Required: {} | |
timeoutSeconds integer | timeoutSeconds is the duration that a node must be in a given status for, after which the node is considered unhealthy. For example, with a value of “3600”, the node must match the status for at least 1 hour before being considered unhealthy. | Minimum: 0 Required: {} |
VariableSchema
VariableSchema defines the schema of a variable.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
openAPIV3Schema JSONSchemaProps | openAPIV3Schema defines the schema of a variable via OpenAPI v3 schema. The schema is a subset of the schema used in Kubernetes CRDs. | MinProperties: 1 Required: {} |
VariableSchemaMetadata
Underlying type: struct{Labels map[string]string “json:“labels,omitempty“”; Annotations map[string]string “json:“annotations,omitempty“”}
VariableSchemaMetadata is the metadata of a variable or a nested field within a variable. It can be used to add additional data for higher level tools.
Validation:
- MinProperties: 1
Appears in:
WorkersClass
WorkersClass is a collection of deployment classes.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
machineDeployments MachineDeploymentClass array | machineDeployments is a list of machine deployment classes that can be used to create a set of worker nodes. | MaxItems: 100 MinItems: 1 Optional: {} | |
machinePools MachinePoolClass array | machinePools is a list of machine pool classes that can be used to create a set of worker nodes. | MaxItems: 100 MinItems: 1 Optional: {} |
WorkersStatus
WorkersStatus groups all the observations about workers current state.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
desiredReplicas integer | desiredReplicas is the total number of desired worker machines in this cluster. | Optional: {} | |
replicas integer | replicas is the total number of worker machines in this cluster. NOTE: replicas also includes machines still being provisioned or being deleted. | Optional: {} | |
upToDateReplicas integer | upToDateReplicas is the number of up-to-date worker machines in this cluster. A machine is considered up-to-date when Machine’s UpToDate condition is true. | Optional: {} | |
readyReplicas integer | readyReplicas is the total number of ready worker machines in this cluster. A machine is considered ready when Machine’s Ready condition is true. | Optional: {} | |
availableReplicas integer | availableReplicas is the total number of available worker machines in this cluster. A machine is considered available when Machine’s Available condition is true. | Optional: {} |
WorkersTopology
WorkersTopology represents the different sets of worker nodes in the cluster.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
machineDeployments MachineDeploymentTopology array | machineDeployments is a list of machine deployments in the cluster. | MaxItems: 2000 MinItems: 1 Optional: {} | |
machinePools MachinePoolTopology array | machinePools is a list of machine pools in the cluster. | MaxItems: 2000 MinItems: 1 Optional: {} |
controlplane.cluster.x-k8s.io/v1beta2
Package v1beta2 contains API Schema definitions for the kubeadm v1beta2 API group.
Resource Types
- KubeadmControlPlane
- KubeadmControlPlaneList
- KubeadmControlPlaneTemplate
- KubeadmControlPlaneTemplateList
KubeadmControlPlane
KubeadmControlPlane is the Schema for the KubeadmControlPlane API.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | controlplane.cluster.x-k8s.io/v1beta2 | ||
kind string | KubeadmControlPlane | ||
metadata ObjectMeta | Refer to Kubernetes API documentation for fields of metadata. | MinProperties: 1 Optional: {} | |
spec KubeadmControlPlaneSpec | spec is the desired state of KubeadmControlPlane. | Required: {} | |
status KubeadmControlPlaneStatus | status is the observed state of KubeadmControlPlane. | MinProperties: 1 Optional: {} |
KubeadmControlPlaneDeprecatedStatus
KubeadmControlPlaneDeprecatedStatus groups all the status fields that are deprecated and will be removed in a future version. See https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more context.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
v1beta1 KubeadmControlPlaneV1Beta1DeprecatedStatus | v1beta1 groups all the status fields that are deprecated and will be removed when support for v1beta1 will be dropped. | Optional: {} |
KubeadmControlPlaneInitializationStatus
KubeadmControlPlaneInitializationStatus provides observations of the KubeadmControlPlane initialization process.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
controlPlaneInitialized boolean | controlPlaneInitialized is true when the KubeadmControlPlane provider reports that the Kubernetes control plane is initialized; A control plane is considered initialized when it can accept requests, no matter if this happens before the control plane is fully provisioned or not. NOTE: this field is part of the Cluster API contract, and it is used to orchestrate initial Machine provisioning. | Optional: {} |
KubeadmControlPlaneList
KubeadmControlPlaneList contains a list of KubeadmControlPlane.
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | controlplane.cluster.x-k8s.io/v1beta2 | ||
kind string | KubeadmControlPlaneList | ||
metadata ListMeta | Refer to Kubernetes API documentation for fields of metadata. | Optional: {} | |
items KubeadmControlPlane array | items is the list of KubeadmControlPlanes. |
KubeadmControlPlaneMachineTemplate
KubeadmControlPlaneMachineTemplate defines the template for Machines in a KubeadmControlPlane object.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
metadata ObjectMeta | Refer to Kubernetes API documentation for fields of metadata. | MinProperties: 1 Optional: {} | |
spec KubeadmControlPlaneMachineTemplateSpec | spec defines the spec for Machines in a KubeadmControlPlane object. | Required: {} |
KubeadmControlPlaneMachineTemplateDeletionSpec
KubeadmControlPlaneMachineTemplateDeletionSpec contains configuration options for Machine deletion.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
nodeDrainTimeoutSeconds integer | nodeDrainTimeoutSeconds is the total amount of time that the controller will spend on draining a controlplane node The default value is 0, meaning that the node can be drained without any time limitations. NOTE: nodeDrainTimeoutSeconds is different from kubectl drain --timeout | Minimum: 0 Optional: {} | |
nodeVolumeDetachTimeoutSeconds integer | nodeVolumeDetachTimeoutSeconds is the total amount of time that the controller will spend on waiting for all volumes to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. | Minimum: 0 Optional: {} | |
nodeDeletionTimeoutSeconds integer | nodeDeletionTimeoutSeconds defines how long the machine controller will attempt to delete the Node that the Machine hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. If no value is provided, the default value for this property of the Machine resource will be used. | Minimum: 0 Optional: {} |
KubeadmControlPlaneMachineTemplateSpec
KubeadmControlPlaneMachineTemplateSpec defines the spec for Machines in a KubeadmControlPlane object.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
infrastructureRef ContractVersionedObjectReference | infrastructureRef is a required reference to a custom resource offered by an infrastructure provider. | Required: {} | |
readinessGates MachineReadinessGate array | readinessGates specifies additional conditions to include when evaluating Machine Ready condition; KubeadmControlPlane will always add readinessGates for the condition it is setting on the Machine: NodeKubeadmLabelsAndTaintsSet, APIServerPodHealthy, SchedulerPodHealthy, ControllerManagerPodHealthy, and if etcd is managed by CKP also EtcdPodHealthy, EtcdMemberHealthy. This field can be used e.g. to instruct the machine controller to include in the computation for Machine’s ready computation a condition, managed by an external controllers, reporting the status of special software/hardware installed on the Machine. | MaxItems: 32 MinItems: 1 Optional: {} | |
deletion KubeadmControlPlaneMachineTemplateDeletionSpec | deletion contains configuration options for Machine deletion. | MinProperties: 1 Optional: {} | |
taints MachineTaint array | taints are the node taints that Cluster API will manage. This list is not necessarily complete: other Kubernetes components may add or remove other taints from nodes, e.g. the node controller might add the node.kubernetes.io/not-ready taint. Only those taints defined in this list will be added or removed by core Cluster API controllers. There can be at most 64 taints. A pod would have to tolerate all existing taints to run on the corresponding node. NOTE: This list is implemented as a “map” type, meaning that individual elements can be managed by different owners. | MaxItems: 64 MinItems: 1 Optional: {} |
KubeadmControlPlaneRemediationSpec
KubeadmControlPlaneRemediationSpec controls how unhealthy control plane Machines are remediated.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
maxRetry integer | maxRetry is the Max number of retries while attempting to remediate an unhealthy machine. A retry happens when a machine that was created as a replacement for an unhealthy machine also fails. For example, given a control plane with three machines M1, M2, M3: M1 become unhealthy; remediation happens, and M1-1 is created as a replacement. If M1-1 (replacement of M1) has problems while bootstrapping it will become unhealthy, and then be remediated; such operation is considered a retry, remediation-retry #1. If M1-2 (replacement of M1-1) becomes unhealthy, remediation-retry #2 will happen, etc. A retry could happen only after retryPeriodSeconds from the previous retry. If a machine is marked as unhealthy after minHealthyPeriodSeconds from the previous remediation expired, this is not considered a retry anymore because the new issue is assumed unrelated from the previous one. If not set, the remedation will be retried infinitely. | Optional: {} | |
retryPeriodSeconds integer | retryPeriodSeconds is the duration that KCP should wait before remediating a machine being created as a replacement for an unhealthy machine (a retry). If not set, a retry will happen immediately. | Minimum: 0 Optional: {} | |
minHealthyPeriodSeconds integer | minHealthyPeriodSeconds defines the duration after which KCP will consider any failure to a machine unrelated from the previous one. In this case the remediation is not considered a retry anymore, and thus the retry counter restarts from 0. For example, assuming minHealthyPeriodSeconds is set to 1h (default) M1 become unhealthy; remediation happens, and M1-1 is created as a replacement. If M1-1 (replacement of M1) has problems within the 1hr after the creation, also this machine will be remediated and this operation is considered a retry - a problem related to the original issue happened to M1 -. If instead the problem on M1-1 is happening after minHealthyPeriodSeconds expired, e.g. four days after m1-1 has been created as a remediation of M1, the problem on M1-1 is considered unrelated to the original issue happened to M1. If not set, this value is defaulted to 1h. | Minimum: 0 Optional: {} |
KubeadmControlPlaneRolloutBeforeSpec
KubeadmControlPlaneRolloutBeforeSpec describes when a rollout should be performed on the KCP machines.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
certificatesExpiryDays integer | certificatesExpiryDays indicates a rollout needs to be performed if the certificates of the machine will expire within the specified days. The minimum for this field is 7. | Minimum: 7 Optional: {} |
KubeadmControlPlaneRolloutSpec
KubeadmControlPlaneRolloutSpec allows you to configure the behaviour of rolling updates to the control plane Machines. It allows you to require that all Machines are replaced before or after a certain time, and allows you to define the strategy used during rolling replacements.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
before KubeadmControlPlaneRolloutBeforeSpec | before is a field to indicate a rollout should be performed if the specified criteria is met. | MinProperties: 1 Optional: {} | |
strategy KubeadmControlPlaneRolloutStrategy | strategy specifies how to roll out control plane Machines. | MinProperties: 1 Optional: {} |
KubeadmControlPlaneRolloutStrategy
KubeadmControlPlaneRolloutStrategy describes how to replace existing machines with new ones.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
type KubeadmControlPlaneRolloutStrategyType | type of rollout. Currently the only supported strategy is “RollingUpdate”. Default is RollingUpdate. | Enum: [RollingUpdate] Required: {} | |
rollingUpdate KubeadmControlPlaneRolloutStrategyRollingUpdate | rollingUpdate is the rolling update config params. Present only if type = RollingUpdate. | MinProperties: 1 Optional: {} |
KubeadmControlPlaneRolloutStrategyRollingUpdate
KubeadmControlPlaneRolloutStrategyRollingUpdate is used to control the desired behavior of rolling update.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
maxSurge IntOrString | maxSurge is the maximum number of control planes that can be scheduled above or under the desired number of control planes. Value can be an absolute number 1 or 0. Defaults to 1. Example: when this is set to 1, the control plane can be scaled up immediately when the rolling update starts. | Optional: {} |
KubeadmControlPlaneRolloutStrategyType
Underlying type: string
KubeadmControlPlaneRolloutStrategyType defines the rollout strategies for a KubeadmControlPlane.
Validation:
- Enum: [RollingUpdate]
Appears in:
| Field | Description |
|---|---|
RollingUpdate | RollingUpdateStrategyType replaces the old control planes by new one using rolling update i.e. gradually scale up or down the old control planes and scale up or down the new one. |
KubeadmControlPlaneSpec
KubeadmControlPlaneSpec defines the desired state of KubeadmControlPlane.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
replicas integer | replicas is the number of desired machines. Defaults to 1. When stacked etcd is used only odd numbers are permitted, as per etcd best practice. This is a pointer to distinguish between explicit zero and not specified. | Optional: {} | |
version string | version defines the desired Kubernetes version. | MaxLength: 256 MinLength: 1 Required: {} | |
machineTemplate KubeadmControlPlaneMachineTemplate | machineTemplate contains information about how machines should be shaped when creating or updating a control plane. | Required: {} | |
kubeadmConfigSpec KubeadmConfigSpec | kubeadmConfigSpec is a KubeadmConfigSpec to use for initializing and joining machines to the control plane. | MinProperties: 1 Optional: {} | |
rollout KubeadmControlPlaneRolloutSpec | rollout allows you to configure the behaviour of rolling updates to the control plane Machines. It allows you to require that all Machines are replaced before or after a certain time, and allows you to define the strategy used during rolling replacements. | MinProperties: 1 Optional: {} | |
remediation KubeadmControlPlaneRemediationSpec | remediation controls how unhealthy Machines are remediated. | MinProperties: 1 Optional: {} | |
machineNaming MachineNamingSpec | machineNaming allows changing the naming pattern used when creating Machines. InfraMachines & KubeadmConfigs will use the same name as the corresponding Machines. | MinProperties: 1 Optional: {} |
KubeadmControlPlaneStatus
KubeadmControlPlaneStatus defines the observed state of KubeadmControlPlane.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
conditions Condition array | conditions represents the observations of a KubeadmControlPlane’s current state. Known condition types are Available, CertificatesAvailable, EtcdClusterAvailable, MachinesReady, MachinesUpToDate, ScalingUp, ScalingDown, Remediating, Deleting, Paused. | MaxItems: 32 Optional: {} | |
initialization KubeadmControlPlaneInitializationStatus | initialization provides observations of the KubeadmControlPlane initialization process. NOTE: Fields in this struct are part of the Cluster API contract and are used to orchestrate initial Machine provisioning. | MinProperties: 1 Optional: {} | |
selector string | selector is the label selector in string format to avoid introspection by clients, and is used to provide the CRD-based integration for the scale subresource and additional integrations for things like kubectl describe.. The string will be in the same format as the query-param syntax. More info about label selectors: http://kubernetes.io/docs/user-guide/labels#label-selectors | MaxLength: 4096 MinLength: 1 Optional: {} | |
replicas integer | replicas is the total number of non-terminated machines targeted by this control plane (their labels match the selector). | Optional: {} | |
readyReplicas integer | readyReplicas is the number of ready replicas for this KubeadmControlPlane. A machine is considered ready when Machine’s Ready condition is true. | Optional: {} | |
availableReplicas integer | availableReplicas is the number of available replicas targeted by this KubeadmControlPlane. A machine is considered available when Machine’s Available condition is true. | Optional: {} | |
upToDateReplicas integer | upToDateReplicas is the number of up-to-date replicas targeted by this KubeadmControlPlane. A machine is considered up-to-date when Machine’s UpToDate condition is true. | Optional: {} | |
version string | version represents the minimum Kubernetes version for the control plane machines in the cluster. | MaxLength: 256 MinLength: 1 Optional: {} | |
observedGeneration integer | observedGeneration is the latest generation observed by the controller. | Minimum: 1 Optional: {} | |
lastRemediation LastRemediationStatus | lastRemediation stores info about last remediation performed. | Optional: {} | |
deprecated KubeadmControlPlaneDeprecatedStatus | deprecated groups all the status fields that are deprecated and will be removed when all the nested field are removed. | Optional: {} |
KubeadmControlPlaneTemplate
KubeadmControlPlaneTemplate is the Schema for the kubeadmcontrolplanetemplates API. NOTE: This CRD can only be used if the ClusterTopology feature gate is enabled.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | controlplane.cluster.x-k8s.io/v1beta2 | ||
kind string | KubeadmControlPlaneTemplate | ||
metadata ObjectMeta | Refer to Kubernetes API documentation for fields of metadata. | MinProperties: 1 Optional: {} | |
spec KubeadmControlPlaneTemplateSpec | spec is the desired state of KubeadmControlPlaneTemplate. | Optional: {} |
KubeadmControlPlaneTemplateList
KubeadmControlPlaneTemplateList contains a list of KubeadmControlPlaneTemplate.
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | controlplane.cluster.x-k8s.io/v1beta2 | ||
kind string | KubeadmControlPlaneTemplateList | ||
metadata ListMeta | Refer to Kubernetes API documentation for fields of metadata. | Optional: {} | |
items KubeadmControlPlaneTemplate array | items is the list of KubeadmControlPlaneTemplates. |
KubeadmControlPlaneTemplateMachineTemplate
KubeadmControlPlaneTemplateMachineTemplate defines the template for Machines in a KubeadmControlPlaneTemplate object. NOTE: KubeadmControlPlaneTemplateMachineTemplate is similar to KubeadmControlPlaneMachineTemplate but omits ObjectMeta and InfrastructureRef fields. These fields do not make sense on the KubeadmControlPlaneTemplate, because they are calculated by the Cluster topology reconciler during reconciliation and thus cannot be configured on the KubeadmControlPlaneTemplate.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
metadata ObjectMeta | Refer to Kubernetes API documentation for fields of metadata. | MinProperties: 1 Optional: {} | |
spec KubeadmControlPlaneTemplateMachineTemplateSpec | spec defines the spec for Machines in a KubeadmControlPlane object. | MinProperties: 1 Optional: {} |
KubeadmControlPlaneTemplateMachineTemplateDeletionSpec
KubeadmControlPlaneTemplateMachineTemplateDeletionSpec contains configuration options for Machine deletion.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
nodeDrainTimeoutSeconds integer | nodeDrainTimeoutSeconds is the total amount of time that the controller will spend on draining a controlplane node The default value is 0, meaning that the node can be drained without any time limitations. NOTE: nodeDrainTimeoutSeconds is different from kubectl drain --timeout | Minimum: 0 Optional: {} | |
nodeVolumeDetachTimeoutSeconds integer | nodeVolumeDetachTimeoutSeconds is the total amount of time that the controller will spend on waiting for all volumes to be detached. The default value is 0, meaning that the volumes can be detached without any time limitations. | Minimum: 0 Optional: {} | |
nodeDeletionTimeoutSeconds integer | nodeDeletionTimeoutSeconds defines how long the machine controller will attempt to delete the Node that the Machine hosts after the Machine is marked for deletion. A duration of 0 will retry deletion indefinitely. If no value is provided, the default value for this property of the Machine resource will be used. | Minimum: 0 Optional: {} |
KubeadmControlPlaneTemplateMachineTemplateSpec
KubeadmControlPlaneTemplateMachineTemplateSpec defines the spec for Machines in a KubeadmControlPlane object.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
deletion KubeadmControlPlaneTemplateMachineTemplateDeletionSpec | deletion contains configuration options for Machine deletion. | MinProperties: 1 Optional: {} | |
taints MachineTaint array | taints are the node taints that Cluster API will manage. This list is not necessarily complete: other Kubernetes components may add or remove other taints from nodes, e.g. the node controller might add the node.kubernetes.io/not-ready taint. Only those taints defined in this list will be added or removed by core Cluster API controllers. There can be at most 64 taints. A pod would have to tolerate all existing taints to run on the corresponding node. NOTE: This list is implemented as a “map” type, meaning that individual elements can be managed by different owners. | MaxItems: 64 MinItems: 1 Optional: {} |
KubeadmControlPlaneTemplateResource
KubeadmControlPlaneTemplateResource describes the data needed to create a KubeadmControlPlane from a template.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
metadata ObjectMeta | Refer to Kubernetes API documentation for fields of metadata. | MinProperties: 1 Optional: {} | |
spec KubeadmControlPlaneTemplateResourceSpec | spec is the desired state of KubeadmControlPlaneTemplateResource. | MinProperties: 1 Optional: {} |
KubeadmControlPlaneTemplateResourceSpec
KubeadmControlPlaneTemplateResourceSpec defines the desired state of KubeadmControlPlane. NOTE: KubeadmControlPlaneTemplateResourceSpec is similar to KubeadmControlPlaneSpec but omits Replicas and Version fields. These fields do not make sense on the KubeadmControlPlaneTemplate, because they are calculated by the Cluster topology reconciler during reconciliation and thus cannot be configured on the KubeadmControlPlaneTemplate.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
machineTemplate KubeadmControlPlaneTemplateMachineTemplate | machineTemplate contains information about how machines should be shaped when creating or updating a control plane. | MinProperties: 1 Optional: {} | |
kubeadmConfigSpec KubeadmConfigSpec | kubeadmConfigSpec is a KubeadmConfigSpec to use for initializing and joining machines to the control plane. | MinProperties: 1 Optional: {} | |
rollout KubeadmControlPlaneRolloutSpec | rollout allows you to configure the behaviour of rolling updates to the control plane Machines. It allows you to require that all Machines are replaced before or after a certain time, and allows you to define the strategy used during rolling replacements. | MinProperties: 1 Optional: {} | |
remediation KubeadmControlPlaneRemediationSpec | remediation controls how unhealthy Machines are remediated. | MinProperties: 1 Optional: {} | |
machineNaming MachineNamingSpec | machineNaming allows changing the naming pattern used when creating Machines. InfraMachines & KubeadmConfigs will use the same name as the corresponding Machines. | MinProperties: 1 Optional: {} |
KubeadmControlPlaneTemplateSpec
KubeadmControlPlaneTemplateSpec defines the desired state of KubeadmControlPlaneTemplate.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
template KubeadmControlPlaneTemplateResource | template defines the desired state of KubeadmControlPlaneTemplate. | MinProperties: 1 Required: {} |
KubeadmControlPlaneV1Beta1DeprecatedStatus
KubeadmControlPlaneV1Beta1DeprecatedStatus groups all the status fields that are deprecated and will be removed when support for v1beta1 will be dropped. See https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more context.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
conditions Conditions | conditions defines current service state of the KubeadmControlPlane. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | Optional: {} | |
failureReason KubeadmControlPlaneStatusError | failureReason indicates that there is a terminal problem reconciling the state, and will be set to a token value suitable for programmatic interpretation. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | Optional: {} | |
failureMessage string | failureMessage indicates that there is a terminal problem reconciling the state, and will be set to a descriptive error message. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | MaxLength: 10240 MinLength: 1 Optional: {} | |
updatedReplicas integer | updatedReplicas is the total number of non-terminated machines targeted by this control plane that have the desired template spec. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | Optional: {} | |
readyReplicas integer | readyReplicas is the total number of fully running and ready control plane machines. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | Optional: {} | |
unavailableReplicas integer | unavailableReplicas is the total number of unavailable machines targeted by this control plane. This is the total number of machines that are still required for the deployment to have 100% available capacity. They may either be machines that are running but not yet ready or machines that still have not been created. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | Optional: {} |
LastRemediationStatus
LastRemediationStatus stores info about last remediation performed. NOTE: if for any reason information about last remediation are lost, RetryCount is going to restart from 0 and thus more remediations than expected might happen.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
machine string | machine is the machine name of the latest machine being remediated. | MaxLength: 253 MinLength: 1 Required: {} | |
retryCount integer | retryCount used to keep track of remediation retry for the last remediated machine. A retry happens when a machine that was created as a replacement for an unhealthy machine also fails. | Minimum: 0 Required: {} |
MachineNamingSpec
MachineNamingSpec allows changing the naming pattern used when creating Machines. InfraMachines & KubeadmConfigs will use the same name as the corresponding Machines.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
template string | template defines the template to use for generating the names of the Machine objects. If not defined, it will fallback to \{\{ .kubeadmControlPlane.name \}\}-\{\{ .random \}\}.If the generated name string exceeds 63 characters, it will be trimmed to 58 characters and will get concatenated with a random suffix of length 5. Length of the template string must not exceed 256 characters. The template allows the following variables .cluster.name, .kubeadmControlPlane.name and .random.The variable .cluster.name retrieves the name of the cluster object that owns the Machines being created.The variable .kubeadmControlPlane.name retrieves the name of the KubeadmControlPlane object that owns the Machines being created.The variable .random is substituted with random alphanumeric string, without vowels, of length 5. This variable is requiredpart of the template. If not provided, validation will fail. | MaxLength: 256 MinLength: 1 Optional: {} |
ipam.cluster.x-k8s.io/v1alpha1
Package v1alpha1 contains API Schema definitions for the exp v1alpha1 IPAM API.
Deprecated: This package is deprecated and is going to be removed when support for v1beta1 will be dropped.
Resource Types
IPAddress
IPAddress is the Schema for the ipaddress API.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | ipam.cluster.x-k8s.io/v1alpha1 | ||
kind string | IPAddress | ||
metadata ObjectMeta | Refer to Kubernetes API documentation for fields of metadata. | MinProperties: 1 Optional: {} | |
spec IPAddressSpec | spec is the desired state of IPAddress. | Optional: {} |
IPAddressClaim
IPAddressClaim is the Schema for the ipaddressclaim API.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | ipam.cluster.x-k8s.io/v1alpha1 | ||
kind string | IPAddressClaim | ||
metadata ObjectMeta | Refer to Kubernetes API documentation for fields of metadata. | MinProperties: 1 Optional: {} | |
spec IPAddressClaimSpec | spec is the desired state of IPAddressClaim. | Optional: {} | |
status IPAddressClaimStatus | status is the observed state of IPAddressClaim. | Optional: {} |
IPAddressClaimList
IPAddressClaimList is a list of IPAddressClaims.
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | ipam.cluster.x-k8s.io/v1alpha1 | ||
kind string | IPAddressClaimList | ||
metadata ListMeta | Refer to Kubernetes API documentation for fields of metadata. | Optional: {} | |
items IPAddressClaim array | items is the list of IPAddressClaims. |
IPAddressClaimSpec
IPAddressClaimSpec is the desired state of an IPAddressClaim.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
poolRef TypedLocalObjectReference | poolRef is a reference to the pool from which an IP address should be created. | Required: {} |
IPAddressClaimStatus
IPAddressClaimStatus is the observed status of a IPAddressClaim.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
addressRef LocalObjectReference | addressRef is a reference to the address that was created for this claim. | Optional: {} | |
conditions Conditions | conditions summarises the current state of the IPAddressClaim | Optional: {} |
IPAddressList
IPAddressList is a list of IPAddress.
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | ipam.cluster.x-k8s.io/v1alpha1 | ||
kind string | IPAddressList | ||
metadata ListMeta | Refer to Kubernetes API documentation for fields of metadata. | Optional: {} | |
items IPAddress array | items is the list of IPAddresses. |
IPAddressSpec
IPAddressSpec is the desired state of an IPAddress.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
claimRef LocalObjectReference | claimRef is a reference to the claim this IPAddress was created for. | Required: {} | |
poolRef TypedLocalObjectReference | poolRef is a reference to the pool that this IPAddress was created from. | Required: {} | |
address string | address is the IP address. | MaxLength: 39 MinLength: 1 Required: {} | |
prefix integer | prefix is the prefix of the address. | Required: {} | |
gateway string | gateway is the network gateway of the network the address is from. | MaxLength: 39 MinLength: 1 Optional: {} |
ipam.cluster.x-k8s.io/v1beta2
Package v1beta2 contains API Schema definitions for the v1beta2 IPAM API.
Resource Types
IPAddress
IPAddress is the Schema for the ipaddress API.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | ipam.cluster.x-k8s.io/v1beta2 | ||
kind string | IPAddress | ||
metadata ObjectMeta | Refer to Kubernetes API documentation for fields of metadata. | MinProperties: 1 Optional: {} | |
spec IPAddressSpec | spec is the desired state of IPAddress. | Required: {} |
IPAddressClaim
IPAddressClaim is the Schema for the ipaddressclaim API.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | ipam.cluster.x-k8s.io/v1beta2 | ||
kind string | IPAddressClaim | ||
metadata ObjectMeta | Refer to Kubernetes API documentation for fields of metadata. | MinProperties: 1 Optional: {} | |
spec IPAddressClaimSpec | spec is the desired state of IPAddressClaim. | Required: {} | |
status IPAddressClaimStatus | status is the observed state of IPAddressClaim. | MinProperties: 1 Optional: {} |
IPAddressClaimDeprecatedStatus
IPAddressClaimDeprecatedStatus groups all the status fields that are deprecated and will be removed in a future version. See https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more context.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
v1beta1 IPAddressClaimV1Beta1DeprecatedStatus | v1beta1 groups all the status fields that are deprecated and will be removed when support for v1beta1 will be dropped. | Optional: {} |
IPAddressClaimList
IPAddressClaimList is a list of IPAddressClaims.
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | ipam.cluster.x-k8s.io/v1beta2 | ||
kind string | IPAddressClaimList | ||
metadata ListMeta | Refer to Kubernetes API documentation for fields of metadata. | Optional: {} | |
items IPAddressClaim array | items is the list of IPAddressClaims. |
IPAddressClaimReference
IPAddressClaimReference is a reference to an IPAddressClaim.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string | name of the IPAddressClaim. name must consist of lower case alphanumeric characters, ‘-’ or ‘.’, and must start and end with an alphanumeric character. | MaxLength: 253 MinLength: 1 Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ Required: {} |
IPAddressClaimSpec
IPAddressClaimSpec is the desired state of an IPAddressClaim.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
clusterName string | clusterName is the name of the Cluster this object belongs to. | MaxLength: 63 MinLength: 1 Optional: {} | |
poolRef IPPoolReference | poolRef is a reference to the pool from which an IP address should be created. | Required: {} |
IPAddressClaimStatus
IPAddressClaimStatus is the observed status of a IPAddressClaim.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
conditions Condition array | conditions represents the observations of a IPAddressClaim’s current state. Known condition types are Ready. | MaxItems: 32 Optional: {} | |
addressRef IPAddressReference | addressRef is a reference to the address that was created for this claim. | Optional: {} | |
deprecated IPAddressClaimDeprecatedStatus | deprecated groups all the status fields that are deprecated and will be removed when all the nested field are removed. | Optional: {} |
IPAddressClaimV1Beta1DeprecatedStatus
IPAddressClaimV1Beta1DeprecatedStatus groups all the status fields that are deprecated and will be removed when support for v1beta1 will be dropped. See https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more context.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
conditions Conditions | conditions summarises the current state of the IPAddressClaim Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | Optional: {} |
IPAddressList
IPAddressList is a list of IPAddress.
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | ipam.cluster.x-k8s.io/v1beta2 | ||
kind string | IPAddressList | ||
metadata ListMeta | Refer to Kubernetes API documentation for fields of metadata. | Optional: {} | |
items IPAddress array | items is the list of IPAddresses. |
IPAddressReference
IPAddressReference is a reference to an IPAddress.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string | name of the IPAddress. name must consist of lower case alphanumeric characters, ‘-’ or ‘.’, and must start and end with an alphanumeric character. | MaxLength: 253 MinLength: 1 Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ Required: {} |
IPAddressSpec
IPAddressSpec is the desired state of an IPAddress.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
claimRef IPAddressClaimReference | claimRef is a reference to the claim this IPAddress was created for. | Required: {} | |
poolRef IPPoolReference | poolRef is a reference to the pool that this IPAddress was created from. | Required: {} | |
address string | address is the IP address. | MaxLength: 39 MinLength: 1 Required: {} | |
prefix integer | prefix is the prefix of the address. | Maximum: 128 Minimum: 0 Required: {} | |
gateway string | gateway is the network gateway of the network the address is from. | MaxLength: 39 MinLength: 1 Optional: {} |
IPPoolReference
IPPoolReference is a reference to an IPPool.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string | name of the IPPool. name must consist of lower case alphanumeric characters, ‘-’ or ‘.’, and must start and end with an alphanumeric character. | MaxLength: 253 MinLength: 1 Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ Required: {} | |
kind string | kind of the IPPool. kind must consist of alphanumeric characters or ‘-’, start with an alphabetic character, and end with an alphanumeric character. | MaxLength: 63 MinLength: 1 Pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$ Required: {} | |
apiGroup string | apiGroup of the IPPool. apiGroup must be fully qualified domain name. | MaxLength: 253 MinLength: 1 Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ Required: {} |
runtime.cluster.x-k8s.io/v1alpha1
Package v1alpha1 contains the v1alpha1 implementation of ExtensionConfig.
Deprecated: This package is deprecated and is going to be removed when support for v1beta1 will be dropped.
Resource Types
ClientConfig
ClientConfig contains the information to make a client connection with an Extension server.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
url string | url gives the location of the Extension server, in standard URL form ( scheme://host:port/path).Note: Exactly one of url or service must be specified.The scheme must be “https”. The host should not refer to a service running in the cluster; usethe service field instead.A path is optional, and if present may be any string permissible in a URL. If a path is set it will be used as prefix to the hook-specific path. Attempting to use a user or basic auth e.g. “user:password@” is not allowed. Fragments (”#...”) and query parameters (”?...”) are not allowed either. | MaxLength: 512 MinLength: 1 Optional: {} | |
service ServiceReference | service is a reference to the Kubernetes service for the Extension server. Note: Exactly one of url or service must be specified.If the Extension server is running within a cluster, then you should use service. | Optional: {} | |
caBundle integer array | caBundle is a PEM encoded CA bundle which will be used to validate the Extension server’s server certificate. | MaxLength: 51200 MinLength: 1 Optional: {} |
ExtensionConfig
ExtensionConfig is the Schema for the ExtensionConfig API.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | runtime.cluster.x-k8s.io/v1alpha1 | ||
kind string | ExtensionConfig | ||
metadata ObjectMeta | Refer to Kubernetes API documentation for fields of metadata. | MinProperties: 1 Optional: {} | |
spec ExtensionConfigSpec | spec is the desired state of the ExtensionConfig. | Optional: {} | |
status ExtensionConfigStatus | status is the current state of the ExtensionConfig | Optional: {} |
ExtensionConfigList
ExtensionConfigList contains a list of ExtensionConfig.
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | runtime.cluster.x-k8s.io/v1alpha1 | ||
kind string | ExtensionConfigList | ||
metadata ListMeta | Refer to Kubernetes API documentation for fields of metadata. | Optional: {} | |
items ExtensionConfig array | items is the list of ExtensionConfigs. |
ExtensionConfigSpec
ExtensionConfigSpec defines the desired state of ExtensionConfig.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
clientConfig ClientConfig | clientConfig defines how to communicate with the Extension server. | Required: {} | |
namespaceSelector LabelSelector | namespaceSelector decides whether to call the hook for an object based on whether the namespace for that object matches the selector. Defaults to the empty LabelSelector, which matches all objects. | Optional: {} | |
settings object (keys:string, values:string) | settings defines key value pairs to be passed to all calls to all supported RuntimeExtensions. Note: Settings can be overridden on the ClusterClass. | Optional: {} |
ExtensionConfigStatus
ExtensionConfigStatus defines the observed state of ExtensionConfig.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
handlers ExtensionHandler array | handlers defines the current ExtensionHandlers supported by an Extension. | MaxItems: 512 Optional: {} | |
conditions Conditions | conditions define the current service state of the ExtensionConfig. | Optional: {} | |
v1beta2 ExtensionConfigV1Beta2Status | v1beta2 groups all the fields that will be added or modified in ExtensionConfig’s status with the V1Beta2 version. | Optional: {} |
ExtensionConfigV1Beta2Status
ExtensionConfigV1Beta2Status groups all the fields that will be added or modified in ExtensionConfig with the V1Beta2 version. See https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more context.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
conditions Condition array | conditions represents the observations of a ExtensionConfig’s current state. Known condition types are Discovered, Paused. | MaxItems: 32 Optional: {} |
ExtensionHandler
ExtensionHandler specifies the details of a handler for a particular runtime hook registered by an Extension server.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string | name is the unique name of the ExtensionHandler. | MaxLength: 512 MinLength: 1 Required: {} | |
requestHook GroupVersionHook | requestHook defines the versioned runtime hook which this ExtensionHandler serves. | Required: {} | |
timeoutSeconds integer | timeoutSeconds defines the timeout duration for client calls to the ExtensionHandler. Defaults to 10 is not set. | Optional: {} | |
failurePolicy FailurePolicy | failurePolicy defines how failures in calls to the ExtensionHandler should be handled by a client. Defaults to Fail if not set. | Enum: [Ignore Fail] Optional: {} |
FailurePolicy
Underlying type: string
FailurePolicy specifies how unrecognized errors when calling the ExtensionHandler are handled. FailurePolicy helps with extensions not working consistently, e.g. due to an intermittent network issue. The following type of errors are never ignored by FailurePolicy Ignore:
- Misconfigurations (e.g. incompatible types)
- Extension explicitly returns a Status Failure.
Appears in:
| Field | Description |
|---|---|
Ignore | FailurePolicyIgnore means that an error when calling the extension is ignored. |
Fail | FailurePolicyFail means that an error when calling the extension is propagated as an error. |
GroupVersionHook
GroupVersionHook defines the runtime hook when the ExtensionHandler is called.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | apiVersion is the group and version of the Hook. | MaxLength: 512 MinLength: 1 Required: {} | |
hook string | hook is the name of the hook. | MaxLength: 256 MinLength: 1 Required: {} |
ServiceReference
ServiceReference holds a reference to a Kubernetes Service of an Extension server.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
namespace string | namespace is the namespace of the service. | MaxLength: 63 MinLength: 1 Required: {} | |
name string | name is the name of the service. | MaxLength: 63 MinLength: 1 Required: {} | |
path string | path is an optional URL path and if present may be any string permissible in a URL. If a path is set it will be used as prefix to the hook-specific path. | MaxLength: 512 MinLength: 1 Optional: {} | |
port integer | port is the port on the service that’s hosting the Extension server. Defaults to 443. Port should be a valid port number (1-65535, inclusive). | Optional: {} |
runtime.cluster.x-k8s.io/v1beta2
Package v1beta2 contains the v1beta2 implementation of ExtensionConfig.
Resource Types
ClientConfig
ClientConfig contains the information to make a client connection with an Extension server.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
url string | url gives the location of the Extension server, in standard URL form ( scheme://host:port/path).Note: Exactly one of url or service must be specified.The scheme must be “https”. The host should not refer to a service running in the cluster; usethe service field instead.A path is optional, and if present may be any string permissible in a URL. If a path is set it will be used as prefix to the hook-specific path. Attempting to use a user or basic auth e.g. “user:password@” is not allowed. Fragments (”#...”) and query parameters (”?...”) are not allowed either. | MaxLength: 512 MinLength: 1 Optional: {} | |
service ServiceReference | service is a reference to the Kubernetes service for the Extension server. Note: Exactly one of url or service must be specified.If the Extension server is running within a cluster, then you should use service. | Optional: {} | |
caBundle integer array | caBundle is a PEM encoded CA bundle which will be used to validate the Extension server’s server certificate. | MaxLength: 51200 MinLength: 1 Optional: {} |
ExtensionConfig
ExtensionConfig is the Schema for the ExtensionConfig API. NOTE: This CRD can only be used if the RuntimeSDK feature gate is enabled.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | runtime.cluster.x-k8s.io/v1beta2 | ||
kind string | ExtensionConfig | ||
metadata ObjectMeta | Refer to Kubernetes API documentation for fields of metadata. | MinProperties: 1 Optional: {} | |
spec ExtensionConfigSpec | spec is the desired state of the ExtensionConfig. | Required: {} | |
status ExtensionConfigStatus | status is the current state of the ExtensionConfig | MinProperties: 1 Optional: {} |
ExtensionConfigDeprecatedStatus
ExtensionConfigDeprecatedStatus groups all the status fields that are deprecated and will be removed in a future version.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
v1beta1 ExtensionConfigV1Beta1DeprecatedStatus | v1beta1 groups all the status fields that are deprecated and will be removed when support for v1beta1 will be dropped. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | Optional: {} |
ExtensionConfigList
ExtensionConfigList contains a list of ExtensionConfig.
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | runtime.cluster.x-k8s.io/v1beta2 | ||
kind string | ExtensionConfigList | ||
metadata ListMeta | Refer to Kubernetes API documentation for fields of metadata. | Optional: {} | |
items ExtensionConfig array | items is the list of ExtensionConfigs. |
ExtensionConfigSpec
ExtensionConfigSpec defines the desired state of ExtensionConfig.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
clientConfig ClientConfig | clientConfig defines how to communicate with the Extension server. | MinProperties: 1 Required: {} | |
namespaceSelector LabelSelector | namespaceSelector decides whether to call the hook for an object based on whether the namespace for that object matches the selector. Defaults to the empty LabelSelector, which matches all objects. | Optional: {} | |
settings object (keys:string, values:string) | settings defines key value pairs to be passed to all calls to all supported RuntimeExtensions. Note: Settings can be overridden on the ClusterClass. | Optional: {} |
ExtensionConfigStatus
ExtensionConfigStatus defines the observed state of ExtensionConfig.
Validation:
- MinProperties: 1
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
conditions Condition array | conditions represents the observations of a ExtensionConfig’s current state. Known condition types are Discovered, Paused. | MaxItems: 32 Optional: {} | |
handlers ExtensionHandler array | handlers defines the current ExtensionHandlers supported by an Extension. | MaxItems: 512 Optional: {} | |
deprecated ExtensionConfigDeprecatedStatus | deprecated groups all the status fields that are deprecated and will be removed when all the nested field are removed. | Optional: {} |
ExtensionConfigV1Beta1DeprecatedStatus
ExtensionConfigV1Beta1DeprecatedStatus groups all the status fields that are deprecated and will be removed when support for v1beta1 will be dropped. See https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more context.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
conditions Conditions | conditions defines current service state of the ExtensionConfig. Deprecated: This field is deprecated and is going to be removed when support for v1beta1 will be dropped. Please see https://github.com/kubernetes-sigs/cluster-api/blob/main/docs/proposals/20240916-improve-status-in-CAPI-resources.md for more details. | Optional: {} |
ExtensionHandler
ExtensionHandler specifies the details of a handler for a particular runtime hook registered by an Extension server.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
name string | name is the unique name of the ExtensionHandler. | MaxLength: 512 MinLength: 1 Required: {} | |
requestHook GroupVersionHook | requestHook defines the versioned runtime hook which this ExtensionHandler serves. | Required: {} | |
timeoutSeconds integer | timeoutSeconds defines the timeout duration for client calls to the ExtensionHandler. Defaults to 10 if not set. | Minimum: 1 Optional: {} | |
failurePolicy FailurePolicy | failurePolicy defines how failures in calls to the ExtensionHandler should be handled by a client. Defaults to Fail if not set. | Enum: [Ignore Fail] Optional: {} |
FailurePolicy
Underlying type: string
FailurePolicy specifies how unrecognized errors when calling the ExtensionHandler are handled. FailurePolicy helps with extensions not working consistently, e.g. due to an intermittent network issue. The following type of errors are never ignored by FailurePolicy Ignore:
- Misconfigurations (e.g. incompatible types)
- Extension explicitly returns a Status Failure.
Validation:
- Enum: [Ignore Fail]
Appears in:
| Field | Description |
|---|---|
Ignore | FailurePolicyIgnore means that an error when calling the extension is ignored. |
Fail | FailurePolicyFail means that an error when calling the extension is propagated as an error. |
GroupVersionHook
GroupVersionHook defines the runtime hook when the ExtensionHandler is called.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string | apiVersion is the group and version of the Hook. | MaxLength: 512 MinLength: 1 Required: {} | |
hook string | hook is the name of the hook. | MaxLength: 256 MinLength: 1 Required: {} |
ServiceReference
ServiceReference holds a reference to a Kubernetes Service of an Extension server.
Appears in:
| Field | Description | Default | Validation |
|---|---|---|---|
namespace string | namespace is the namespace of the service. | MaxLength: 63 MinLength: 1 Required: {} | |
name string | name is the name of the service. | MaxLength: 63 MinLength: 1 Required: {} | |
path string | path is an optional URL path and if present may be any string permissible in a URL. If a path is set it will be used as prefix to the hook-specific path. | MaxLength: 512 MinLength: 1 Optional: {} | |
port integer | port is the port on the service that’s hosting the Extension server. Defaults to 443. Port should be a valid port number (1-65535, inclusive). | Optional: {} |