×
Description

ClusterClass is a template which can be used to create managed topologies.

Type

object

Specification

Property Type Description

apiVersion

string

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

kind

string

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

metadata

ObjectMeta

Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

spec

object

ClusterClassSpec describes the desired state of the ClusterClass.

status

object

ClusterClassStatus defines the observed state of the ClusterClass.

.spec

Description

ClusterClassSpec describes the desired state of the ClusterClass.

Type

object

Property Type Description

controlPlane

object

ControlPlane is a reference to a local struct that holds the details for provisioning the Control Plane for the Cluster.

infrastructure

object

Infrastructure is a reference to a provider-specific template that holds the details for provisioning infrastructure specific cluster for the underlying provider. The underlying provider is responsible for the implementation of the template to an infrastructure cluster.

patches

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.

patches[]

object

ClusterClassPatch defines a patch which is applied to customize the referenced templates.

variables

array

Variables defines the variables which can be configured in the Cluster topology and are then used in patches.

variables[]

object

ClusterClassVariable defines a variable which can be configured in the Cluster topology and used in patches.

workers

object

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.

.spec.controlPlane

Description

ControlPlane is a reference to a local struct that holds the details for provisioning the Control Plane for the Cluster.

Type

object

Required
  • ref

Property Type Description

machineHealthCheck

object

MachineHealthCheck 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.

machineInfrastructure

object

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.

metadata

object

Metadata is the metadata applied to the ControlPlane and the Machines of the ControlPlane if the ControlPlaneTemplate referenced is machine based. If not, it is applied only to the ControlPlane. At runtime this metadata is merged with the corresponding metadata from the topology.

This field is supported if and only if the control plane provider template referenced is Machine based.

namingStrategy

object

NamingStrategy allows changing the naming pattern used when creating the control plane provider object.

nodeDeletionTimeout

string

NodeDeletionTimeout 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.

nodeDrainTimeout

string

NodeDrainTimeout 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: NodeDrainTimeout is different from kubectl drain --timeout NOTE: This value can be overridden while defining a Cluster.Topology.

nodeVolumeDetachTimeout

string

NodeVolumeDetachTimeout 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.

ref

object

Ref is a required reference to a custom resource offered by a provider.

.spec.controlPlane.machineHealthCheck

Description

MachineHealthCheck 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.

Type

object

Property Type Description

maxUnhealthy

integer-or-string

Any further remediation is only allowed if at most "MaxUnhealthy" machines selected by "selector" are not healthy.

nodeStartupTimeout

string

Machines older than this duration without a node will be considered to have failed and will be remediated. If you wish to disable this feature, set the value explicitly to 0.

remediationTemplate

object

RemediationTemplate 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.

unhealthyConditions

array

UnhealthyConditions contains a list of the 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.

unhealthyConditions[]

object

UnhealthyCondition 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.

unhealthyRange

string

Any further remediation is only allowed if the number of machines selected by "selector" as not healthy is within the range of "UnhealthyRange". Takes precedence over MaxUnhealthy. 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

.spec.controlPlane.machineHealthCheck.remediationTemplate

Description

RemediationTemplate 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.

Type

object

Property Type Description

apiVersion

string

API version of the referent.

fieldPath

string

If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.

kind

string

Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

name

string

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

namespace

string

Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/

resourceVersion

string

Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

uid

string

UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids

.spec.controlPlane.machineHealthCheck.unhealthyConditions

Description

UnhealthyConditions contains a list of the 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.

Type

array

.spec.controlPlane.machineHealthCheck.unhealthyConditions[]

Description

UnhealthyCondition 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.

Type

object

Required
  • status

  • timeout

  • type

Property Type Description

status

string

timeout

string

type

string

.spec.controlPlane.machineInfrastructure

Description

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.

Type

object

Required
  • ref

Property Type Description

ref

object

Ref is a required reference to a custom resource offered by a provider.

.spec.controlPlane.machineInfrastructure.ref

Description

Ref is a required reference to a custom resource offered by a provider.

Type

object

Property Type Description

apiVersion

string

API version of the referent.

fieldPath

string

If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.

kind

string

Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

name

string

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

namespace

string

Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/

resourceVersion

string

Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

uid

string

UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids

.spec.controlPlane.metadata

Description

Metadata is the metadata applied to the ControlPlane and the Machines of the ControlPlane if the ControlPlaneTemplate referenced is machine based. If not, it is applied only to the ControlPlane. At runtime this metadata is merged with the corresponding metadata from the topology.

This field is supported if and only if the control plane provider template referenced is Machine based.

Type

object

Property Type Description

annotations

object (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

labels

object (string)

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

.spec.controlPlane.namingStrategy

Description

NamingStrategy allows changing the naming pattern used when creating the control plane provider object.

Type

object

Property Type Description

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.

.spec.controlPlane.ref

Description

Ref is a required reference to a custom resource offered by a provider.

Type

object

Property Type Description

apiVersion

string

API version of the referent.

fieldPath

string

If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.

kind

string

Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

name

string

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

namespace

string

Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/

resourceVersion

string

Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

uid

string

UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids

.spec.infrastructure

Description

Infrastructure is a reference to a provider-specific template that holds the details for provisioning infrastructure specific cluster for the underlying provider. The underlying provider is responsible for the implementation of the template to an infrastructure cluster.

Type

object

Required
  • ref

Property Type Description

ref

object

Ref is a required reference to a custom resource offered by a provider.

.spec.infrastructure.ref

Description

Ref is a required reference to a custom resource offered by a provider.

Type

object

Property Type Description

apiVersion

string

API version of the referent.

fieldPath

string

If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.

kind

string

Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

name

string

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

namespace

string

Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/

resourceVersion

string

Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

uid

string

UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids

.spec.patches

Description

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.

Type

array

.spec.patches[]

Description

ClusterClassPatch defines a patch which is applied to customize the referenced templates.

Type

object

Required
  • name

Property Type Description

definitions

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.

definitions[]

object

PatchDefinition defines a patch which is applied to customize the referenced templates.

description

string

Description is a human-readable description of this patch.

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 will be disabled. If EnabledIf is not set, the patch will be enabled per default.

external

object

External defines an external patch. Note: Exactly one of Definitions or External must be set.

name

string

Name of the patch.

.spec.patches[].definitions

Description

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.

Type

array

.spec.patches[].definitions[]

Description

PatchDefinition defines a patch which is applied to customize the referenced templates.

Type

object

Required
  • jsonPatches

  • selector

Property Type Description

jsonPatches

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.

jsonPatches[]

object

JSONPatch defines a JSON patch.

selector

object

Selector defines on which templates the patch should be applied.

.spec.patches[].definitions[].jsonPatches

Description

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.

Type

array

.spec.patches[].definitions[].jsonPatches[]

Description

JSONPatch defines a JSON patch.

Type

object

Required
  • op

  • path

Property Type Description

op

string

Op defines the operation of the patch. Note: Only add, replace and remove are supported.

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

value

``

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

valueFrom

object

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.

.spec.patches[].definitions[].jsonPatches[].valueFrom

Description

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.

Type

object

Property Type Description

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.

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.

.spec.patches[].definitions[].selector

Description

Selector defines on which templates the patch should be applied.

Type

object

Required
  • apiVersion

  • kind

  • matchResources

Property Type Description

apiVersion

string

APIVersion filters templates by apiVersion.

kind

string

Kind filters templates by kind.

matchResources

object

MatchResources selects templates based on where they are referenced.

.spec.patches[].definitions[].selector.matchResources

Description

MatchResources selects templates based on where they are referenced.

Type

object

Property Type Description

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).

infrastructureCluster

boolean

InfrastructureCluster selects templates referenced in .spec.infrastructure.

machineDeploymentClass

object

MachineDeploymentClass selects templates referenced in specific MachineDeploymentClasses in .spec.workers.machineDeployments.

machinePoolClass

object

MachinePoolClass selects templates referenced in specific MachinePoolClasses in .spec.workers.machinePools.

.spec.patches[].definitions[].selector.matchResources.machineDeploymentClass

Description

MachineDeploymentClass selects templates referenced in specific MachineDeploymentClasses in .spec.workers.machineDeployments.

Type

object

Property Type Description

names

array (string)

Names selects templates by class names.

.spec.patches[].definitions[].selector.matchResources.machinePoolClass

Description

MachinePoolClass selects templates referenced in specific MachinePoolClasses in .spec.workers.machinePools.

Type

object

Property Type Description

names

array (string)

Names selects templates by class names.

.spec.patches[].external

Description

External defines an external patch. Note: Exactly one of Definitions or External must be set.

Type

object

Property Type Description

discoverVariablesExtension

string

DiscoverVariablesExtension references an extension which is called to discover variables.

generateExtension

string

GenerateExtension references an extension which is called to generate patches.

settings

object (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.

validateExtension

string

ValidateExtension references an extension which is called to validate the topology.

.spec.variables

Description

Variables defines the variables which can be configured in the Cluster topology and are then used in patches.

Type

array

.spec.variables[]

Description

ClusterClassVariable defines a variable which can be configured in the Cluster topology and used in patches.

Type

object

Required
  • name

  • required

  • schema

Property Type Description

metadata

object

Metadata is the metadata of a variable. It can be used to add additional data for higher level tools to a ClusterClassVariable.

name

string

Name of the variable.

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.

schema

object

Schema defines the schema of the variable.

.spec.variables[].metadata

Description

Metadata is the metadata of a variable. It can be used to add additional data for higher level tools to a ClusterClassVariable.

Type

object

Property Type Description

annotations

object (string)

Annotations is an unstructured key value map that can be used to store and retrieve arbitrary metadata. They are not queryable.

labels

object (string)

Map of string keys and values that can be used to organize and categorize (scope and select) variables.

.spec.variables[].schema

Description

Schema defines the schema of the variable.

Type

object

Required
  • openAPIV3Schema

Property Type Description

openAPIV3Schema

object

OpenAPIV3Schema defines the schema of a variable via OpenAPI v3 schema. The schema is a subset of the schema used in Kubernetes CRDs.

.spec.variables[].schema.openAPIV3Schema

Description

OpenAPIV3Schema defines the schema of a variable via OpenAPI v3 schema. The schema is a subset of the schema used in Kubernetes CRDs.

Type

object

Required
  • type

Property Type Description

additionalProperties

``

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.

default

``

Default is the default value of the variable. NOTE: Can be set for all types.

description

string

Description is a human-readable description of this variable.

enum

array (undefined)

Enum is the list of valid values of the variable. NOTE: Can be set for all types.

example

``

Example is an example for this variable.

exclusiveMaximum

boolean

ExclusiveMaximum specifies if the Maximum is exclusive. NOTE: Can only be set if type is integer or number.

exclusiveMinimum

boolean

ExclusiveMinimum specifies if the Minimum is exclusive. NOTE: Can only be set if type is integer or number.

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.

items

``

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.

maxItems

integer

MaxItems is the max length of an array variable. NOTE: Can only be set if type is array.

maxLength

integer

MaxLength is the max length of a string variable. NOTE: Can only be set if type is string.

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.

minItems

integer

MinItems is the min length of an array variable. NOTE: Can only be set if type is array.

minLength

integer

MinLength is the min length of a string variable. NOTE: Can only be set if type is string.

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.

pattern

string

Pattern is the regex which a string variable must match. NOTE: Can only be set if type is string.

properties

``

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.

required

array (string)

Required specifies which fields of an object are required. NOTE: Can only be set if type is object.

type

string

Type is the type of the variable. Valid values are: object, array, string, integer, number or boolean.

uniqueItems

boolean

UniqueItems specifies if items in an array must be unique. NOTE: Can only be set if type is array.

x-kubernetes-preserve-unknown-fields

boolean

XPreserveUnknownFields 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.

.spec.workers

Description

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.

Type

object

Property Type Description

machineDeployments

array

MachineDeployments is a list of machine deployment classes that can be used to create a set of worker nodes.

machineDeployments[]

object

MachineDeploymentClass serves as a template to define a set of worker nodes of the cluster provisioned using the ClusterClass.

machinePools

array

MachinePools is a list of machine pool classes that can be used to create a set of worker nodes.

machinePools[]

object

MachinePoolClass serves as a template to define a pool of worker nodes of the cluster provisioned using ClusterClass.

.spec.workers.machineDeployments

Description

MachineDeployments is a list of machine deployment classes that can be used to create a set of worker nodes.

Type

array

.spec.workers.machineDeployments[]

Description

MachineDeploymentClass serves as a template to define a set of worker nodes of the cluster provisioned using the ClusterClass.

Type

object

Required
  • class

  • template

Property Type Description

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.

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. NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass.

machineHealthCheck

object

MachineHealthCheck defines a MachineHealthCheck for this MachineDeploymentClass.

minReadySeconds

integer

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.

namingStrategy

object

NamingStrategy allows changing the naming pattern used when creating the MachineDeployment.

nodeDeletionTimeout

string

NodeDeletionTimeout 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.

nodeDrainTimeout

string

NodeDrainTimeout 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: NodeDrainTimeout is different from kubectl drain --timeout NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass.

nodeVolumeDetachTimeout

string

NodeVolumeDetachTimeout 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.

strategy

object

The deployment strategy to use to replace existing machines with new ones. NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass.

template

object

Template is a local struct containing a collection of templates for creation of MachineDeployment objects representing a set of worker nodes.

.spec.workers.machineDeployments[].machineHealthCheck

Description

MachineHealthCheck defines a MachineHealthCheck for this MachineDeploymentClass.

Type

object

Property Type Description

maxUnhealthy

integer-or-string

Any further remediation is only allowed if at most "MaxUnhealthy" machines selected by "selector" are not healthy.

nodeStartupTimeout

string

Machines older than this duration without a node will be considered to have failed and will be remediated. If you wish to disable this feature, set the value explicitly to 0.

remediationTemplate

object

RemediationTemplate 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.

unhealthyConditions

array

UnhealthyConditions contains a list of the 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.

unhealthyConditions[]

object

UnhealthyCondition 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.

unhealthyRange

string

Any further remediation is only allowed if the number of machines selected by "selector" as not healthy is within the range of "UnhealthyRange". Takes precedence over MaxUnhealthy. 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

.spec.workers.machineDeployments[].machineHealthCheck.remediationTemplate

Description

RemediationTemplate 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.

Type

object

Property Type Description

apiVersion

string

API version of the referent.

fieldPath

string

If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.

kind

string

Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

name

string

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

namespace

string

Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/

resourceVersion

string

Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

uid

string

UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids

.spec.workers.machineDeployments[].machineHealthCheck.unhealthyConditions

Description

UnhealthyConditions contains a list of the 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.

Type

array

.spec.workers.machineDeployments[].machineHealthCheck.unhealthyConditions[]

Description

UnhealthyCondition 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.

Type

object

Required
  • status

  • timeout

  • type

Property Type Description

status

string

timeout

string

type

string

.spec.workers.machineDeployments[].namingStrategy

Description

NamingStrategy allows changing the naming pattern used when creating the MachineDeployment.

Type

object

Property Type Description

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).

.spec.workers.machineDeployments[].strategy

Description

The deployment strategy to use to replace existing machines with new ones. NOTE: This value can be overridden while defining a Cluster.Topology using this MachineDeploymentClass.

Type

object

Property Type Description

rollingUpdate

object

Rolling update config params. Present only if MachineDeploymentStrategyType = RollingUpdate.

type

string

Type of deployment. Allowed values are RollingUpdate and OnDelete. The default is RollingUpdate.

.spec.workers.machineDeployments[].strategy.rollingUpdate

Description

Rolling update config params. Present only if MachineDeploymentStrategyType = RollingUpdate.

Type

object

Property Type Description

deletePolicy

string

DeletePolicy defines the policy used by the MachineDeployment to identify nodes to delete when downscaling. Valid values are "Random, "Newest", "Oldest" When no value is supplied, the default DeletePolicy of MachineSet is used

maxSurge

integer-or-string

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.

maxUnavailable

integer-or-string

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.

.spec.workers.machineDeployments[].template

Description

Template is a local struct containing a collection of templates for creation of MachineDeployment objects representing a set of worker nodes.

Type

object

Required
  • bootstrap

  • infrastructure

Property Type Description

bootstrap

object

Bootstrap contains the bootstrap template reference to be used for the creation of worker Machines.

infrastructure

object

Infrastructure contains the infrastructure template reference to be used for the creation of worker Machines.

metadata

object

Metadata is the metadata applied to the MachineDeployment and the machines of the MachineDeployment. At runtime this metadata is merged with the corresponding metadata from the topology.

.spec.workers.machineDeployments[].template.bootstrap

Description

Bootstrap contains the bootstrap template reference to be used for the creation of worker Machines.

Type

object

Required
  • ref

Property Type Description

ref

object

Ref is a required reference to a custom resource offered by a provider.

.spec.workers.machineDeployments[].template.bootstrap.ref

Description

Ref is a required reference to a custom resource offered by a provider.

Type

object

Property Type Description

apiVersion

string

API version of the referent.

fieldPath

string

If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.

kind

string

Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

name

string

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

namespace

string

Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/

resourceVersion

string

Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

uid

string

UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids

.spec.workers.machineDeployments[].template.infrastructure

Description

Infrastructure contains the infrastructure template reference to be used for the creation of worker Machines.

Type

object

Required
  • ref

Property Type Description

ref

object

Ref is a required reference to a custom resource offered by a provider.

.spec.workers.machineDeployments[].template.infrastructure.ref

Description

Ref is a required reference to a custom resource offered by a provider.

Type

object

Property Type Description

apiVersion

string

API version of the referent.

fieldPath

string

If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.

kind

string

Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

name

string

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

namespace

string

Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/

resourceVersion

string

Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

uid

string

UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids

.spec.workers.machineDeployments[].template.metadata

Description

Metadata is the metadata applied to the MachineDeployment and the machines of the MachineDeployment. At runtime this metadata is merged with the corresponding metadata from the topology.

Type

object

Property Type Description

annotations

object (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

labels

object (string)

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

.spec.workers.machinePools

Description

MachinePools is a list of machine pool classes that can be used to create a set of worker nodes.

Type

array

.spec.workers.machinePools[]

Description

MachinePoolClass serves as a template to define a pool of worker nodes of the cluster provisioned using ClusterClass.

Type

object

Required
  • class

  • template

Property Type Description

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.

failureDomains

array (string)

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.

minReadySeconds

integer

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.

namingStrategy

object

NamingStrategy allows changing the naming pattern used when creating the MachinePool.

nodeDeletionTimeout

string

NodeDeletionTimeout 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.

nodeDrainTimeout

string

NodeDrainTimeout 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: NodeDrainTimeout is different from kubectl drain --timeout NOTE: This value can be overridden while defining a Cluster.Topology using this MachinePoolClass.

nodeVolumeDetachTimeout

string

NodeVolumeDetachTimeout 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.

template

object

Template is a local struct containing a collection of templates for creation of MachinePools objects representing a pool of worker nodes.

.spec.workers.machinePools[].namingStrategy

Description

NamingStrategy allows changing the naming pattern used when creating the MachinePool.

Type

object

Property Type Description

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).

.spec.workers.machinePools[].template

Description

Template is a local struct containing a collection of templates for creation of MachinePools objects representing a pool of worker nodes.

Type

object

Required
  • bootstrap

  • infrastructure

Property Type Description

bootstrap

object

Bootstrap contains the bootstrap template reference to be used for the creation of the Machines in the MachinePool.

infrastructure

object

Infrastructure contains the infrastructure template reference to be used for the creation of the MachinePool.

metadata

object

Metadata is the metadata applied to the MachinePool. At runtime this metadata is merged with the corresponding metadata from the topology.

.spec.workers.machinePools[].template.bootstrap

Description

Bootstrap contains the bootstrap template reference to be used for the creation of the Machines in the MachinePool.

Type

object

Required
  • ref

Property Type Description

ref

object

Ref is a required reference to a custom resource offered by a provider.

.spec.workers.machinePools[].template.bootstrap.ref

Description

Ref is a required reference to a custom resource offered by a provider.

Type

object

Property Type Description

apiVersion

string

API version of the referent.

fieldPath

string

If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.

kind

string

Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

name

string

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

namespace

string

Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/

resourceVersion

string

Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

uid

string

UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids

.spec.workers.machinePools[].template.infrastructure

Description

Infrastructure contains the infrastructure template reference to be used for the creation of the MachinePool.

Type

object

Required
  • ref

Property Type Description

ref

object

Ref is a required reference to a custom resource offered by a provider.

.spec.workers.machinePools[].template.infrastructure.ref

Description

Ref is a required reference to a custom resource offered by a provider.

Type

object

Property Type Description

apiVersion

string

API version of the referent.

fieldPath

string

If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.

kind

string

Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

name

string

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

namespace

string

Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/

resourceVersion

string

Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

uid

string

UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids

.spec.workers.machinePools[].template.metadata

Description

Metadata is the metadata applied to the MachinePool. At runtime this metadata is merged with the corresponding metadata from the topology.

Type

object

Property Type Description

annotations

object (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

labels

object (string)

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

.status

Description

ClusterClassStatus defines the observed state of the ClusterClass.

Type

object

Property Type Description

conditions

array

Conditions defines current observed state of the ClusterClass.

conditions[]

object

Condition defines an observation of a Cluster API resource operational state.

observedGeneration

integer

ObservedGeneration is the latest generation observed by the controller.

variables

array

Variables is a list of ClusterClassStatusVariable that are defined for the ClusterClass.

variables[]

object

ClusterClassStatusVariable defines a variable which appears in the status of a ClusterClass.

.status.conditions

Description

Conditions defines current observed state of the ClusterClass.

Type

array

.status.conditions[]

Description

Condition defines an observation of a Cluster API resource operational state.

Type

object

Required
  • lastTransitionTime

  • status

  • type

Property Type Description

lastTransitionTime

string

Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.

message

string

A human readable message indicating details about the transition. This field may be empty.

reason

string

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 not be empty.

severity

string

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.

status

string

Status of the condition, one of True, False, Unknown.

type

string

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.

.status.variables

Description

Variables is a list of ClusterClassStatusVariable that are defined for the ClusterClass.

Type

array

.status.variables[]

Description

ClusterClassStatusVariable defines a variable which appears in the status of a ClusterClass.

Type

object

Required
  • definitions

  • name

Property Type Description

definitions

array

Definitions is a list of definitions for a variable.

definitions[]

object

ClusterClassStatusVariableDefinition defines a variable which appears in the status of a ClusterClass.

definitionsConflict

boolean

DefinitionsConflict specifies whether or not there are conflicting definitions for a single variable name.

name

string

Name is the name of the variable.

.status.variables[].definitions

Description

Definitions is a list of definitions for a variable.

Type

array

.status.variables[].definitions[]

Description

ClusterClassStatusVariableDefinition defines a variable which appears in the status of a ClusterClass.

Type

object

Required
  • from

  • required

  • schema

Property Type Description

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 ClusterClass for variables discovered from a DiscoverVariables runtime extensions.

metadata

object

Metadata is the metadata of a variable. It can be used to add additional data for higher level tools to a ClusterClassVariable.

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.

schema

object

Schema defines the schema of the variable.

.status.variables[].definitions[].metadata

Description

Metadata is the metadata of a variable. It can be used to add additional data for higher level tools to a ClusterClassVariable.

Type

object

Property Type Description

annotations

object (string)

Annotations is an unstructured key value map that can be used to store and retrieve arbitrary metadata. They are not queryable.

labels

object (string)

Map of string keys and values that can be used to organize and categorize (scope and select) variables.

.status.variables[].definitions[].schema

Description

Schema defines the schema of the variable.

Type

object

Required
  • openAPIV3Schema

Property Type Description

openAPIV3Schema

object

OpenAPIV3Schema defines the schema of a variable via OpenAPI v3 schema. The schema is a subset of the schema used in Kubernetes CRDs.

.status.variables[].definitions[].schema.openAPIV3Schema

Description

OpenAPIV3Schema defines the schema of a variable via OpenAPI v3 schema. The schema is a subset of the schema used in Kubernetes CRDs.

Type

object

Required
  • type

Property Type Description

additionalProperties

``

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.

default

``

Default is the default value of the variable. NOTE: Can be set for all types.

description

string

Description is a human-readable description of this variable.

enum

array (undefined)

Enum is the list of valid values of the variable. NOTE: Can be set for all types.

example

``

Example is an example for this variable.

exclusiveMaximum

boolean

ExclusiveMaximum specifies if the Maximum is exclusive. NOTE: Can only be set if type is integer or number.

exclusiveMinimum

boolean

ExclusiveMinimum specifies if the Minimum is exclusive. NOTE: Can only be set if type is integer or number.

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.

items

``

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.

maxItems

integer

MaxItems is the max length of an array variable. NOTE: Can only be set if type is array.

maxLength

integer

MaxLength is the max length of a string variable. NOTE: Can only be set if type is string.

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.

minItems

integer

MinItems is the min length of an array variable. NOTE: Can only be set if type is array.

minLength

integer

MinLength is the min length of a string variable. NOTE: Can only be set if type is string.

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.

pattern

string

Pattern is the regex which a string variable must match. NOTE: Can only be set if type is string.

properties

``

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.

required

array (string)

Required specifies which fields of an object are required. NOTE: Can only be set if type is object.

type

string

Type is the type of the variable. Valid values are: object, array, string, integer, number or boolean.

uniqueItems

boolean

UniqueItems specifies if items in an array must be unique. NOTE: Can only be set if type is array.

x-kubernetes-preserve-unknown-fields

boolean

XPreserveUnknownFields 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.

API endpoints

The following API endpoints are available:

  • /apis/cluster.x-k8s.io/v1beta1/clusterclasses

    • GET: list objects of kind ClusterClass

  • /apis/cluster.x-k8s.io/v1beta1/namespaces/{namespace}/clusterclasses

    • DELETE: delete collection of ClusterClass

    • GET: list objects of kind ClusterClass

    • POST: create a ClusterClass

  • /apis/cluster.x-k8s.io/v1beta1/namespaces/{namespace}/clusterclasses/{name}

    • DELETE: delete a ClusterClass

    • GET: read the specified ClusterClass

    • PATCH: partially update the specified ClusterClass

    • PUT: replace the specified ClusterClass

  • /apis/cluster.x-k8s.io/v1beta1/namespaces/{namespace}/clusterclasses/{name}/status

    • GET: read status of the specified ClusterClass

    • PATCH: partially update status of the specified ClusterClass

    • PUT: replace status of the specified ClusterClass

/apis/cluster.x-k8s.io/v1beta1/clusterclasses

HTTP method

GET

Description

list objects of kind ClusterClass

Table 1. HTTP responses
HTTP code Reponse body

200 - OK

ClusterClassList schema

401 - Unauthorized

Empty

/apis/cluster.x-k8s.io/v1beta1/namespaces/{namespace}/clusterclasses

HTTP method

DELETE

Description

delete collection of ClusterClass

Table 2. HTTP responses
HTTP code Reponse body

200 - OK

Status schema

401 - Unauthorized

Empty

HTTP method

GET

Description

list objects of kind ClusterClass

Table 3. HTTP responses
HTTP code Reponse body

200 - OK

ClusterClassList schema

401 - Unauthorized

Empty

HTTP method

POST

Description

create a ClusterClass

Table 4. Query parameters
Parameter Type Description

dryRun

string

When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed

fieldValidation

string

fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.

Table 5. Body parameters
Parameter Type Description

body

ClusterClass schema

Table 6. HTTP responses
HTTP code Reponse body

200 - OK

ClusterClass schema

201 - Created

ClusterClass schema

202 - Accepted

ClusterClass schema

401 - Unauthorized

Empty

/apis/cluster.x-k8s.io/v1beta1/namespaces/{namespace}/clusterclasses/{name}

Table 7. Global path parameters
Parameter Type Description

name

string

name of the ClusterClass

HTTP method

DELETE

Description

delete a ClusterClass

Table 8. Query parameters
Parameter Type Description

dryRun

string

When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed

Table 9. HTTP responses
HTTP code Reponse body

200 - OK

Status schema

202 - Accepted

Status schema

401 - Unauthorized

Empty

HTTP method

GET

Description

read the specified ClusterClass

Table 10. HTTP responses
HTTP code Reponse body

200 - OK

ClusterClass schema

401 - Unauthorized

Empty

HTTP method

PATCH

Description

partially update the specified ClusterClass

Table 11. Query parameters
Parameter Type Description

dryRun

string

When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed

fieldValidation

string

fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.

Table 12. HTTP responses
HTTP code Reponse body

200 - OK

ClusterClass schema

401 - Unauthorized

Empty

HTTP method

PUT

Description

replace the specified ClusterClass

Table 13. Query parameters
Parameter Type Description

dryRun

string

When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed

fieldValidation

string

fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.

Table 14. Body parameters
Parameter Type Description

body

ClusterClass schema

Table 15. HTTP responses
HTTP code Reponse body

200 - OK

ClusterClass schema

201 - Created

ClusterClass schema

401 - Unauthorized

Empty

/apis/cluster.x-k8s.io/v1beta1/namespaces/{namespace}/clusterclasses/{name}/status

Table 16. Global path parameters
Parameter Type Description

name

string

name of the ClusterClass

HTTP method

GET

Description

read status of the specified ClusterClass

Table 17. HTTP responses
HTTP code Reponse body

200 - OK

ClusterClass schema

401 - Unauthorized

Empty

HTTP method

PATCH

Description

partially update status of the specified ClusterClass

Table 18. Query parameters
Parameter Type Description

dryRun

string

When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed

fieldValidation

string

fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.

Table 19. HTTP responses
HTTP code Reponse body

200 - OK

ClusterClass schema

401 - Unauthorized

Empty

HTTP method

PUT

Description

replace status of the specified ClusterClass

Table 20. Query parameters
Parameter Type Description

dryRun

string

When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed

fieldValidation

string

fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.

Table 21. Body parameters
Parameter Type Description

body

ClusterClass schema

Table 22. HTTP responses
HTTP code Reponse body

200 - OK

ClusterClass schema

201 - Created

ClusterClass schema

401 - Unauthorized

Empty