diff --git a/helm/cluster/README.md b/helm/cluster/README.md new file mode 100644 index 00000000..95299739 --- /dev/null +++ b/helm/cluster/README.md @@ -0,0 +1,397 @@ +# Values schema documentation + +This page lists all available configuration options, based on the [configuration values schema](values.schema.json). + +Note that configuration options can change between releases. Use the GitHub function for selecting a branch/tag to view the documentation matching your `cluster` chart version. + +The docs below are generated by executing the following command from the repo root directory: + +```bash +make generate-docs +``` + +The above `make` target will generate Helm values schema docs by running `schemagen` like this: + +```bash +schemadocs generate helm/cluster/values.schema.json -o helm/cluster/README.md +``` + +--> + + + +### Components +Properties within the `.global.components` object +Advanced configuration of components that are running on all nodes. + +| **Property** | **Description** | **More Details** | +| :----------- | :-------------- | :--------------- | +| `global.components.containerd` | **Containerd** - Configuration of containerd.|**Type:** `object`
| +| `global.components.containerd.containerRegistries` | **Container registries** - Endpoints and credentials configuration for container registries.|**Type:** `object`
**Default:** `{"docker.io":[{"endpoint":"registry-1.docker.io"},{"endpoint":"giantswarm.azurecr.io"}]}`| +| `global.components.containerd.containerRegistries.*` | **Registries** - Container registries and mirrors|**Type:** `array`
| +| `global.components.containerd.containerRegistries.*[*]` | **Registry**|**Type:** `object`
| +| `global.components.containerd.containerRegistries.*[*].credentials` | **Credentials**|**Type:** `object`
| +| `global.components.containerd.containerRegistries.*[*].credentials.auth` | **Auth** - Base64-encoded string from the concatenation of the username, a colon, and the password.|**Type:** `string`
| +| `global.components.containerd.containerRegistries.*[*].credentials.identitytoken` | **Identity token** - Used to authenticate the user and obtain an access token for the registry.|**Type:** `string`
| +| `global.components.containerd.containerRegistries.*[*].credentials.password` | **Password** - Used to authenticate for the registry with username/password.|**Type:** `string`
| +| `global.components.containerd.containerRegistries.*[*].credentials.username` | **Username** - Used to authenticate for the registry with username/password.|**Type:** `string`
| +| `global.components.containerd.containerRegistries.*[*].endpoint` | **Endpoint** - Endpoint for the container registry.|**Type:** `string`
| + +### Connectivity +Properties within the `.global.connectivity` object +Configuration of connectivity and networking options. + +| **Property** | **Description** | **More Details** | +| :----------- | :-------------- | :--------------- | +| `global.connectivity.baseDomain` | **Base DNS domain**|**Type:** `string`
| +| `global.connectivity.bastion` | **Bastion host**|**Type:** `object`
| +| `global.connectivity.bastion.enabled` | **Enable**|**Type:** `boolean`
**Default:** `true`| +| `global.connectivity.bastion.replicas` | **Number of hosts**|**Type:** `integer`
**Default:** `1`| +| `global.connectivity.network` | **Network**|**Type:** `object`
| +| `global.connectivity.network.pods` | **Pods**|**Type:** `object`
| +| `global.connectivity.network.pods.cidrBlocks` | **Pod subnets**|**Type:** `array`
**Default:** `["100.64.0.0/12"]`| +| `global.connectivity.network.pods.cidrBlocks[*]` | **Pod subnet** - IPv4 address range for pods, in CIDR notation.|**Type:** `string`
**Example:** `"10.244.0.0/16"`
| +| `global.connectivity.network.services` | **Services**|**Type:** `object`
| +| `global.connectivity.network.services.cidrBlocks` | **Kubernetes Service subnets**|**Type:** `array`
**Default:** `["172.31.0.0/16"]`| +| `global.connectivity.network.services.cidrBlocks[*]` | **Service subnet** - IPv4 address range for kubernetes services, in CIDR notation.|**Type:** `string`
**Example:** `"172.31.0.0/16"`
| +| `global.connectivity.proxy` | **Proxy** - Whether/how outgoing traffic is routed through proxy servers.|| + +### Control plane +Properties within the `.global.controlPlane` object +Configuration of the control plane. + +| **Property** | **Description** | **More Details** | +| :----------- | :-------------- | :--------------- | +| `global.controlPlane.customNodeTaints` | **Custom node taints**|**Type:** `array`
| +| `global.controlPlane.customNodeTaints[*]` |**None**|**Type:** `object`
| +| `global.controlPlane.customNodeTaints[*].effect` | **Effect**|**Type:** `string`
| +| `global.controlPlane.customNodeTaints[*].key` | **Key**|**Type:** `string`
| +| `global.controlPlane.customNodeTaints[*].value` | **Value**|**Type:** `string`
| +| `global.controlPlane.machineHealthCheck` | **Machine health check**|**Type:** `object`
| +| `global.controlPlane.machineHealthCheck.enabled` | **Enable**|**Type:** `boolean`
**Default:** `true`| +| `global.controlPlane.machineHealthCheck.maxUnhealthy` | **Maximum unhealthy nodes**|**Type:** `string`
**Example:** `"40%"`
**Default:** `"40%"`| +| `global.controlPlane.machineHealthCheck.nodeStartupTimeout` | **Node startup timeout** - Determines how long a machine health check should wait for a node to join the cluster, before considering a machine unhealthy.|**Type:** `string`
**Examples:** `"10m", "100s"`
**Default:** `"8m0s"`| +| `global.controlPlane.machineHealthCheck.unhealthyNotReadyTimeout` | **Timeout for ready** - If a node is not in condition 'Ready' after this timeout, it will be considered unhealthy.|**Type:** `string`
**Example:** `"300s"`
**Default:** `"10m0s"`| +| `global.controlPlane.machineHealthCheck.unhealthyUnknownTimeout` | **Timeout for unknown condition** - If a node is in 'Unknown' condition after this timeout, it will be considered unhealthy.|**Type:** `string`
**Example:** `"300s"`
**Default:** `"10m0s"`| +| `global.controlPlane.oidc` | **OIDC authentication**|| +| `global.controlPlane.replicas` | **Replicas** - The number of control plane nodes.|**Type:** `integer`
**Default:** `3`| + +### Internal +Properties within the `.internal` top-level object + +| **Property** | **Description** | **More Details** | +| :----------- | :-------------- | :--------------- | +| `internal.bastion` | **Internal bastion configuration**|**Type:** `object`
| +| `internal.bastion.kubeadmConfig` | **Kubeadm config** - Configuration of bastion nodes.|**Type:** `object`
| +| `internal.bastion.kubeadmConfig.ignition` | **Ignition** - Ignition-specific configuration.|**Type:** `object`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig` | **Container Linux configuration**|**Type:** `object`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig` | **Additional config** - Additional configuration to be merged with the Ignition. More info: https://coreos.github.io/ignition/operator-notes/#config-merging.|**Type:** `object`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage` | **Storage** - It describes the desired state of the system’s storage devices.|**Type:** `object`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories` | **Directories** - The list of directories to be created.|**Type:** `array`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*]` | **Directory** - The directory to be created.|**Type:** `object`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].filesystem` | **Filesystem** - The internal identifier of the filesystem in which to create the directory. This matches the last filesystem with the given identifier.|**Type:** `string`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].group` | **Group** - It specifies the group of the owner.|**Type:** `object`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].group.id` | **ID** - The group ID of the owner.|**Type:** `integer`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].group.name` | **Name** - The group name of the owner.|**Type:** `string`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].mode` | **Mode** - The directory’s permission mode.|**Type:** `integer`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].overwrite` | **Overwrite** - Whether to delete preexisting nodes at the path.|**Type:** `boolean`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].path` | **Path** - The absolute path to the directory.|**Type:** `string`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].user` | **User** - It specifies the directory’s owner.|**Type:** `object`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].user.id` | **ID** - The user ID of the owner.|**Type:** `integer`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].user.name` | **Name** - The user name of the owner.|**Type:** `string`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems` | **File systems** - The list of filesystems to be configured and/or used in the “files” section. Either “mount” or “path” needs to be specified.|**Type:** `array`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*]` | **File system** - The filesystem to be configured and/or used in the “files” section. Either “mount” or “path” needs to be specified.|**Type:** `object`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].mount` | **Mount** - It contains the set of mount and formatting options for the filesystem. A non-null entry indicates that the filesystem should be mounted before it is used by Ignition.|**Type:** `object`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].mount.device` | **Device** - The absolute path to the device. Devices are typically referenced by the /dev/disk/by-* symlinks.|**Type:** `string`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].mount.format` | **Format** - The filesystem format (ext4, btrfs, or xfs).|**Type:** `string`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].mount.label` | **Label** - The label of the filesystem.|**Type:** `string`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].mount.options` | **Options** - Any additional options to be passed to the format-specific mkfs utility.|**Type:** `array`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].mount.options[*]` |An additional option to be passed to the format-specific mkfs utility.|**Type:** `string`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].mount.uuid` | **UUID** - The uuid of the filesystem.|**Type:** `string`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].mount.wipeFilesystem` | **Wipe filesystem** - Whether or not to wipe the device before filesystem creation, see Ignition’s documentation on filesystems for more information https://github.com/coreos/ignition/blob/main/docs/operator-notes.md#filesystem-reuse-semantics.|**Type:** `boolean`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].name` | **Name** - The identifier for the filesystem, internal to Ignition. This is only required if the filesystem needs to be referenced in the “files” section.|**Type:** `string`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].path` | **Path** - The mount-point of the filesystem. A non-null entry indicates that the filesystem has already been mounted by the system at the specified path. This is really only useful for “/sysroot”.|**Type:** `string`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd` | **systemd** - It describes the desired state of the systemd units.|**Type:** `object`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units` | **Units**|**Type:** `array`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*]` | **systemd unit**|**Type:** `object`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*].contents` | **Contents** - The contents of the unit.|**Type:** `string`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*].dropins` | **Unit drop-ins** - The list of drop-ins for the unit|**Type:** `array`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*].dropins[*]` | **Unit drop-in**|**Type:** `object`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*].dropins[*].contents` | **Contents** - The contents of the drop-in.|**Type:** `string`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*].dropins[*].name` | **Name** - The name of the drop-in. This must be suffixed with “.conf”|**Type:** `string`
**Value pattern:** `^.+\.conf$`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*].enabled` | **Enabled?** - Whether or not the service shall be enabled. When true, the service is enabled. When false, the service is disabled. When omitted, the service is unmodified. In order for this to have any effect, the unit must have an install section.|**Type:** `boolean`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*].mask` | **Masked?** - Whether or not the service shall be masked. When true, the service is masked by symlinking it to /dev/null.|**Type:** `boolean`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*].name` | **Name** - The name of the unit. This must be suffixed with a valid unit type (e.g. “thing.service”).|**Type:** `string`
| +| `internal.bastion.kubeadmConfig.ignition.containerLinuxConfig.strict` | **Strict** - It controls if AdditionalConfig should be strictly parsed. If so, warnings are treated as errors.|**Type:** `boolean`
| +| `internal.bastion.kubeadmConfig.preKubeadmCommands` | **Pre-kubeadm commands** - Extra commands to run before kubeadm runs.|**Type:** `array`
| +| `internal.bastion.kubeadmConfig.preKubeadmCommands[*]` |**None**|**Type:** `string`
| +| `internal.components` | **Components** - Internal configuration of various components that form the Kubernetes cluster.|**Type:** `object`
| +| `internal.components.containerd` | **Containerd** - Configuration of containerd.|**Type:** `object`
| +| `internal.components.containerd.sandboxContainerImage` | **Kubectl image**|**Type:** `object`
| +| `internal.components.containerd.sandboxContainerImage.name` | **Repository**|**Type:** `string`
**Default:** `"giantswarm/pause"`| +| `internal.components.containerd.sandboxContainerImage.registry` | **Registry**|**Type:** `string`
**Default:** `"quay.io"`| +| `internal.components.containerd.sandboxContainerImage.tag` | **Tag**|**Type:** `string`
**Default:** `"3.9"`| +| `internal.components.kubelet` | **Kubelet** - Kubelet configuration that is used on all nodes.|| +| `internal.components.systemd` | **systemd**|| +| `internal.connectivity` | **Connectivity** - Internal connectivity configuration.|**Type:** `object`
| +| `internal.connectivity.sshSsoPublicKey` | **SSH public key for single sign-on**|**Type:** `string`
**Default:** `"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM4cvZ01fLmO9cJbWUj7sfF+NhECgy+Cl0bazSrZX7sU vault-ca@vault.operations.giantswarm.io"`| +| `internal.controlPlane` | **Internal control plane configuration**|**Type:** `object`
| +| `internal.controlPlane.kubeadmConfig` | **Kubeadm config** - Configuration of control plane nodes.|**Type:** `object`
| +| `internal.controlPlane.kubeadmConfig.clusterConfiguration` | **Cluster configuration** - Configuration of Kubernetes components.|**Type:** `object`
| +| `internal.controlPlane.kubeadmConfig.clusterConfiguration.apiServer` | **API server** - Configuration of API server.|**Type:** `object`
**Default:** `{}`| +| `internal.controlPlane.kubeadmConfig.clusterConfiguration.apiServer.additionalAdmissionPlugins` | **Additional admission plugins** - A list of plugins to enable, in addition to the default ones that include DefaultStorageClass, DefaultTolerationSeconds, LimitRanger, MutatingAdmissionWebhook, NamespaceLifecycle, PersistentVolumeClaimResize, Priority, ResourceQuota, ServiceAccount and ValidatingAdmissionWebhook.|**Type:** `array`
| +| `internal.controlPlane.kubeadmConfig.clusterConfiguration.apiServer.additionalAdmissionPlugins[*]` | **Additional admission plugin**|**Type:** `string`
| +| `internal.controlPlane.kubeadmConfig.clusterConfiguration.apiServer.apiAudiences` | **API audiences** - Identifiers of the API. The service account token authenticator will validate that tokens used against the API are bound to at least one of these audiences. If the --service-account-issuer flag is configured and this flag is not, 'api-audiences' field defaults to a single element list containing the issuer URL.|| +| `internal.controlPlane.kubeadmConfig.clusterConfiguration.apiServer.etcdPrefix` | **etcd prefix**|**Type:** `string`
| +| `internal.controlPlane.kubeadmConfig.clusterConfiguration.apiServer.extraArgs` | **Extra args**|**Type:** `object`
| +| `internal.controlPlane.kubeadmConfig.clusterConfiguration.apiServer.extraCertificateSANs` | **Extra certificate SANs** - The additional certificate SANs that are appended to the default SANs.|**Type:** `array`
| +| `internal.controlPlane.kubeadmConfig.clusterConfiguration.apiServer.extraCertificateSANs[*]` | **Extra certificate SAN**|**Type:** `string`
| +| `internal.controlPlane.kubeadmConfig.clusterConfiguration.apiServer.featureGates` | **Feature gates**|**Type:** `array`
| +| `internal.controlPlane.kubeadmConfig.clusterConfiguration.apiServer.featureGates[*]` | **Feature gate**|**Type:** `object`
| +| `internal.controlPlane.kubeadmConfig.clusterConfiguration.apiServer.featureGates[*].enabled` | **Enabled**|**Type:** `boolean`
| +| `internal.controlPlane.kubeadmConfig.clusterConfiguration.apiServer.featureGates[*].name` | **Name**|**Type:** `string`
| +| `internal.controlPlane.kubeadmConfig.clusterConfiguration.apiServer.serviceAccountIssuer` | **Service account issuer** - Configuration of the identifier of the service account token issuer. You must specify either URL or clusterDomainPrefix (only one, not both).|| +| `internal.controlPlane.kubeadmConfig.clusterConfiguration.etcd` | **etcd** - Configuration of etcd|**Type:** `object`
| +| `internal.controlPlane.kubeadmConfig.clusterConfiguration.etcd.experimental` | **Experimental**|**Type:** `object`
| +| `internal.controlPlane.kubeadmConfig.clusterConfiguration.etcd.experimental.peerSkipClientSanVerification` | **Peer skip client SAN verification** - Skip verification of SAN field in client certificate for peer connections.|**Type:** `boolean`
| +| `internal.controlPlane.kubeadmConfig.clusterConfiguration.etcd.extraArgs` | **Extra args**|**Type:** `object`
| +| `internal.controlPlane.kubeadmConfig.clusterConfiguration.etcd.initialCluster` | **Initial cluster** - Initial cluster configuration for bootstrapping.|**Type:** `string`
| +| `internal.controlPlane.kubeadmConfig.clusterConfiguration.etcd.initialClusterState` | **Initial cluster state**|**Type:** `string`
| +| `internal.controlPlane.kubeadmConfig.files` | **Files** - These are the files that are included on control plane nodes.|**Type:** `array`
| +| `internal.controlPlane.kubeadmConfig.files[*]` | **File from secret** - It defines a file with content in a Secret|**Type:** `object`
| +| `internal.controlPlane.kubeadmConfig.files[*].contentFrom` | **Content from** - It specifies where the file content is coming from.|**Type:** `object`
| +| `internal.controlPlane.kubeadmConfig.files[*].contentFrom.secret` | **Secret** - Kubernetes Secret resource with the file content.|**Type:** `object`
| +| `internal.controlPlane.kubeadmConfig.files[*].contentFrom.secret.key` | **Key** - Secret key where the file content is.|**Type:** `string`
| +| `internal.controlPlane.kubeadmConfig.files[*].contentFrom.secret.name` | **Name** - Name of the Secret resource.|**Type:** `string`
| +| `internal.controlPlane.kubeadmConfig.files[*].path` | **Path** - File path on the node.|**Type:** `string`
| +| `internal.controlPlane.kubeadmConfig.files[*].permissions` | **Permissions** - File permissions in form 0644|**Type:** `string`
**Default:** `"0644"`| +| `internal.controlPlane.kubeadmConfig.ignition` | **Ignition** - Ignition-specific configuration.|**Type:** `object`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig` | **Container Linux configuration**|**Type:** `object`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig` | **Additional config** - Additional configuration to be merged with the Ignition. More info: https://coreos.github.io/ignition/operator-notes/#config-merging.|**Type:** `object`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage` | **Storage** - It describes the desired state of the system’s storage devices.|**Type:** `object`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories` | **Directories** - The list of directories to be created.|**Type:** `array`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*]` | **Directory** - The directory to be created.|**Type:** `object`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].filesystem` | **Filesystem** - The internal identifier of the filesystem in which to create the directory. This matches the last filesystem with the given identifier.|**Type:** `string`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].group` | **Group** - It specifies the group of the owner.|**Type:** `object`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].group.id` | **ID** - The group ID of the owner.|**Type:** `integer`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].group.name` | **Name** - The group name of the owner.|**Type:** `string`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].mode` | **Mode** - The directory’s permission mode.|**Type:** `integer`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].overwrite` | **Overwrite** - Whether to delete preexisting nodes at the path.|**Type:** `boolean`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].path` | **Path** - The absolute path to the directory.|**Type:** `string`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].user` | **User** - It specifies the directory’s owner.|**Type:** `object`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].user.id` | **ID** - The user ID of the owner.|**Type:** `integer`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].user.name` | **Name** - The user name of the owner.|**Type:** `string`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems` | **File systems** - The list of filesystems to be configured and/or used in the “files” section. Either “mount” or “path” needs to be specified.|**Type:** `array`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*]` | **File system** - The filesystem to be configured and/or used in the “files” section. Either “mount” or “path” needs to be specified.|**Type:** `object`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].mount` | **Mount** - It contains the set of mount and formatting options for the filesystem. A non-null entry indicates that the filesystem should be mounted before it is used by Ignition.|**Type:** `object`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].mount.device` | **Device** - The absolute path to the device. Devices are typically referenced by the /dev/disk/by-* symlinks.|**Type:** `string`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].mount.format` | **Format** - The filesystem format (ext4, btrfs, or xfs).|**Type:** `string`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].mount.label` | **Label** - The label of the filesystem.|**Type:** `string`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].mount.options` | **Options** - Any additional options to be passed to the format-specific mkfs utility.|**Type:** `array`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].mount.options[*]` |An additional option to be passed to the format-specific mkfs utility.|**Type:** `string`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].mount.uuid` | **UUID** - The uuid of the filesystem.|**Type:** `string`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].mount.wipeFilesystem` | **Wipe filesystem** - Whether or not to wipe the device before filesystem creation, see Ignition’s documentation on filesystems for more information https://github.com/coreos/ignition/blob/main/docs/operator-notes.md#filesystem-reuse-semantics.|**Type:** `boolean`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].name` | **Name** - The identifier for the filesystem, internal to Ignition. This is only required if the filesystem needs to be referenced in the “files” section.|**Type:** `string`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].path` | **Path** - The mount-point of the filesystem. A non-null entry indicates that the filesystem has already been mounted by the system at the specified path. This is really only useful for “/sysroot”.|**Type:** `string`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd` | **systemd** - It describes the desired state of the systemd units.|**Type:** `object`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units` | **Units**|**Type:** `array`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*]` | **systemd unit**|**Type:** `object`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*].contents` | **Contents** - The contents of the unit.|**Type:** `string`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*].dropins` | **Unit drop-ins** - The list of drop-ins for the unit|**Type:** `array`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*].dropins[*]` | **Unit drop-in**|**Type:** `object`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*].dropins[*].contents` | **Contents** - The contents of the drop-in.|**Type:** `string`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*].dropins[*].name` | **Name** - The name of the drop-in. This must be suffixed with “.conf”|**Type:** `string`
**Value pattern:** `^.+\.conf$`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*].enabled` | **Enabled?** - Whether or not the service shall be enabled. When true, the service is enabled. When false, the service is disabled. When omitted, the service is unmodified. In order for this to have any effect, the unit must have an install section.|**Type:** `boolean`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*].mask` | **Masked?** - Whether or not the service shall be masked. When true, the service is masked by symlinking it to /dev/null.|**Type:** `boolean`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*].name` | **Name** - The name of the unit. This must be suffixed with a valid unit type (e.g. “thing.service”).|**Type:** `string`
| +| `internal.controlPlane.kubeadmConfig.ignition.containerLinuxConfig.strict` | **Strict** - It controls if AdditionalConfig should be strictly parsed. If so, warnings are treated as errors.|**Type:** `boolean`
| +| `internal.controlPlane.kubeadmConfig.localAPIEndpoint` | **Local API endpoint**|**Type:** `object`
| +| `internal.controlPlane.kubeadmConfig.localAPIEndpoint.bindPort` | **Bind port** - Kubernetes API bind port used for API server pod.|**Type:** `integer`
**Default:** `6443`| +| `internal.controlPlane.kubeadmConfig.postKubeadmCommands` | **Post-kubeadm commands** - Extra commands to run after kubeadm runs.|**Type:** `array`
| +| `internal.controlPlane.kubeadmConfig.postKubeadmCommands[*]` |**None**|**Type:** `string`
| +| `internal.controlPlane.kubeadmConfig.preKubeadmCommands` | **Pre-kubeadm commands** - Extra commands to run before kubeadm runs.|**Type:** `array`
| +| `internal.controlPlane.kubeadmConfig.preKubeadmCommands[*]` |**None**|**Type:** `string`
| +| `internal.controlPlane.resources` | **Resources configuration** - GVK and other configuration for control plane resources.|**Type:** `object`
| +| `internal.controlPlane.resources.controlPlane` | **Control plane resource config**|**Type:** `object`
**Default:** `{"api":{"group":"controlplane.cluster.x-k8s.io","kind":"KubeadmControlPlane","version":"v1beta1"}}`| +| `internal.controlPlane.resources.controlPlane.api` | **Schema for Kubernetes API group, version and kind** - It can be used to specify which CustomResourceDefinition is used.|**Type:** `object`
| +| `internal.controlPlane.resources.controlPlane.api.group` | **API group**|**Type:** `string`
**Examples:** `"cluster.x-k8s.io", "controlplane.cluster.x-k8s.io", "infrastructure.cluster.x-k8s.io"`
| +| `internal.controlPlane.resources.controlPlane.api.kind` | **API kind**|**Type:** `string`
**Examples:** `"Cluster", "KubeadmControlPlane"`
| +| `internal.controlPlane.resources.controlPlane.api.version` | **API version**|**Type:** `string`
**Examples:** `"v1alpha1", "v1alpha2", "v1beta1", "v1"`
| +| `internal.controlPlane.resources.infrastructureMachineTemplate` | **Infrastructure Machine template** - Group, version and kind of provider-specific infrastructure Machine template resource.|**Type:** `object`
| +| `internal.controlPlane.resources.infrastructureMachineTemplate.group` | **API group**|**Type:** `string`
**Example:** `"infrastructure.cluster.x-k8s.io"`
| +| `internal.controlPlane.resources.infrastructureMachineTemplate.kind` | **API kind**|**Type:** `string`
**Examples:** `"AWSMachineTemplate", "AzureMachineTemplate"`
| +| `internal.controlPlane.resources.infrastructureMachineTemplate.version` | **API version**|**Type:** `string`
**Examples:** `"v1alpha1", "v1beta1", "v1beta2", "v1", "v2"`
| +| `internal.controlPlane.resources.infrastructureMachineTemplateSpecTemplateName` | **Infrastructure Machine template spec template name** - The name of Helm template that renders Infrastructure Machine template spec.|**Type:** `string`
| +| `internal.hashSalt` | **Hash salt** - If specified, this token is used as a salt to the hash suffix of some resource names. Can be used to force-recreate some resources.|**Type:** `string`
| +| `internal.kubeadmConfig` | **Kubeadm config** - Common kubeadm config for all nodes, including both control plane and workers.|**Type:** `object`
| +| `internal.kubeadmConfig.files` | **Files** - These are the files that are included on all the nodes.|**Type:** `array`
| +| `internal.kubeadmConfig.files[*]` | **File from secret** - It defines a file with content in a Secret|**Type:** `object`
| +| `internal.kubeadmConfig.files[*].contentFrom` | **Content from** - It specifies where the file content is coming from.|**Type:** `object`
| +| `internal.kubeadmConfig.files[*].contentFrom.secret` | **Secret** - Kubernetes Secret resource with the file content.|**Type:** `object`
| +| `internal.kubeadmConfig.files[*].contentFrom.secret.key` | **Key** - Secret key where the file content is.|**Type:** `string`
| +| `internal.kubeadmConfig.files[*].contentFrom.secret.name` | **Name** - Name of the Secret resource.|**Type:** `string`
| +| `internal.kubeadmConfig.files[*].path` | **Path** - File path on the node.|**Type:** `string`
| +| `internal.kubeadmConfig.files[*].permissions` | **Permissions** - File permissions in form 0644|**Type:** `string`
**Default:** `"0644"`| +| `internal.kubeadmConfig.ignition` | **Ignition** - Ignition-specific configuration.|**Type:** `object`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig` | **Container Linux configuration**|**Type:** `object`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig` | **Additional config** - Additional configuration to be merged with the Ignition. More info: https://coreos.github.io/ignition/operator-notes/#config-merging.|**Type:** `object`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage` | **Storage** - It describes the desired state of the system’s storage devices.|**Type:** `object`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories` | **Directories** - The list of directories to be created.|**Type:** `array`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*]` | **Directory** - The directory to be created.|**Type:** `object`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].filesystem` | **Filesystem** - The internal identifier of the filesystem in which to create the directory. This matches the last filesystem with the given identifier.|**Type:** `string`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].group` | **Group** - It specifies the group of the owner.|**Type:** `object`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].group.id` | **ID** - The group ID of the owner.|**Type:** `integer`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].group.name` | **Name** - The group name of the owner.|**Type:** `string`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].mode` | **Mode** - The directory’s permission mode.|**Type:** `integer`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].overwrite` | **Overwrite** - Whether to delete preexisting nodes at the path.|**Type:** `boolean`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].path` | **Path** - The absolute path to the directory.|**Type:** `string`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].user` | **User** - It specifies the directory’s owner.|**Type:** `object`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].user.id` | **ID** - The user ID of the owner.|**Type:** `integer`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].user.name` | **Name** - The user name of the owner.|**Type:** `string`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems` | **File systems** - The list of filesystems to be configured and/or used in the “files” section. Either “mount” or “path” needs to be specified.|**Type:** `array`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*]` | **File system** - The filesystem to be configured and/or used in the “files” section. Either “mount” or “path” needs to be specified.|**Type:** `object`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].mount` | **Mount** - It contains the set of mount and formatting options for the filesystem. A non-null entry indicates that the filesystem should be mounted before it is used by Ignition.|**Type:** `object`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].mount.device` | **Device** - The absolute path to the device. Devices are typically referenced by the /dev/disk/by-* symlinks.|**Type:** `string`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].mount.format` | **Format** - The filesystem format (ext4, btrfs, or xfs).|**Type:** `string`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].mount.label` | **Label** - The label of the filesystem.|**Type:** `string`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].mount.options` | **Options** - Any additional options to be passed to the format-specific mkfs utility.|**Type:** `array`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].mount.options[*]` |An additional option to be passed to the format-specific mkfs utility.|**Type:** `string`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].mount.uuid` | **UUID** - The uuid of the filesystem.|**Type:** `string`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].mount.wipeFilesystem` | **Wipe filesystem** - Whether or not to wipe the device before filesystem creation, see Ignition’s documentation on filesystems for more information https://github.com/coreos/ignition/blob/main/docs/operator-notes.md#filesystem-reuse-semantics.|**Type:** `boolean`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].name` | **Name** - The identifier for the filesystem, internal to Ignition. This is only required if the filesystem needs to be referenced in the “files” section.|**Type:** `string`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].path` | **Path** - The mount-point of the filesystem. A non-null entry indicates that the filesystem has already been mounted by the system at the specified path. This is really only useful for “/sysroot”.|**Type:** `string`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd` | **systemd** - It describes the desired state of the systemd units.|**Type:** `object`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units` | **Units**|**Type:** `array`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*]` | **systemd unit**|**Type:** `object`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*].contents` | **Contents** - The contents of the unit.|**Type:** `string`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*].dropins` | **Unit drop-ins** - The list of drop-ins for the unit|**Type:** `array`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*].dropins[*]` | **Unit drop-in**|**Type:** `object`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*].dropins[*].contents` | **Contents** - The contents of the drop-in.|**Type:** `string`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*].dropins[*].name` | **Name** - The name of the drop-in. This must be suffixed with “.conf”|**Type:** `string`
**Value pattern:** `^.+\.conf$`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*].enabled` | **Enabled?** - Whether or not the service shall be enabled. When true, the service is enabled. When false, the service is disabled. When omitted, the service is unmodified. In order for this to have any effect, the unit must have an install section.|**Type:** `boolean`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*].mask` | **Masked?** - Whether or not the service shall be masked. When true, the service is masked by symlinking it to /dev/null.|**Type:** `boolean`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*].name` | **Name** - The name of the unit. This must be suffixed with a valid unit type (e.g. “thing.service”).|**Type:** `string`
| +| `internal.kubeadmConfig.ignition.containerLinuxConfig.strict` | **Strict** - It controls if AdditionalConfig should be strictly parsed. If so, warnings are treated as errors.|**Type:** `boolean`
| +| `internal.kubeadmConfig.postKubeadmCommands` | **Post-kubeadm commands** - Extra commands to run after kubeadm runs.|**Type:** `array`
| +| `internal.kubeadmConfig.postKubeadmCommands[*]` |**None**|**Type:** `string`
| +| `internal.kubeadmConfig.preKubeadmCommands` | **Pre-kubeadm commands** - Extra commands to run before kubeadm runs.|**Type:** `array`
| +| `internal.kubeadmConfig.preKubeadmCommands[*]` |**None**|**Type:** `string`
| +| `internal.kubernetesVersion` | **Kubernetes version**|**Type:** `string`
**Example:** `"1.24.7"`
**Default:** `"1.24.10"`| +| `internal.paused` | **Paused**|**Type:** `boolean`
**Default:** `false`| +| `internal.resourcesApi` | **Resources API** - Group, version and kind configuration that is required and used by a specific Cluster API provider.|**Type:** `object`
| +| `internal.resourcesApi.bastion` | **Bastion** - Configuration of bastion resources API and names.|**Type:** `object`
| +| `internal.resourcesApi.bastion.infrastructureMachineTemplate` | **Infrastructure Machine template** - Group, version and kind of provider-specific infrastructure Machine template resource.|**Type:** `object`
| +| `internal.resourcesApi.bastion.infrastructureMachineTemplate.group` | **API group**|**Type:** `string`
**Example:** `"infrastructure.cluster.x-k8s.io"`
| +| `internal.resourcesApi.bastion.infrastructureMachineTemplate.kind` | **API kind**|**Type:** `string`
**Examples:** `"AWSMachineTemplate", "AzureMachineTemplate"`
| +| `internal.resourcesApi.bastion.infrastructureMachineTemplate.version` | **API version**|**Type:** `string`
**Examples:** `"v1alpha1", "v1beta1", "v1beta2", "v1", "v2"`
| +| `internal.resourcesApi.bastion.infrastructureMachineTemplateSpecTemplateName` | **Infrastructure Machine template spec template name** - The name of Helm template that renders Infrastructure Machine template spec.|**Type:** `string`
| +| `internal.resourcesApi.bastionResourceEnabled` | **Bastion resource enabled** - Flag that indicates if the Bastion resource is enabled and templated. This is meant only for the initial development purposes for the sake of incrementally integrating cluster chart into cluster-$provider apps.|**Type:** `boolean`
**Default:** `true`| +| `internal.resourcesApi.clusterResourceEnabled` | **Cluster resource enabled** - Flag that indicates if the Cluster resource is enabled and templated. This is meant only for the initial development purposes for the sake of incrementally integrating cluster chart into cluster-$provider apps.|**Type:** `boolean`
**Default:** `true`| +| `internal.resourcesApi.controlPlaneResourceEnabled` | **Control plane resource enabled** - Flag that indicates if the control plane resource is enabled and templated. This is meant only for the initial development purposes for the sake of incrementally integrating cluster chart into cluster-$provider apps.|**Type:** `boolean`
**Default:** `true`| +| `internal.resourcesApi.infrastructureCluster` | **Infrastructure cluster** - Group, version and kind of provider-specific infrastructure cluster resource.|**Type:** `object`
| +| `internal.resourcesApi.infrastructureCluster.group` | **API group**|**Type:** `string`
**Example:** `"infrastructure.cluster.x-k8s.io"`
| +| `internal.resourcesApi.infrastructureCluster.kind` | **API kind**|**Type:** `string`
**Examples:** `"AWSCluster", "AzureCluster", "VCDCluster", "VSphereCluster"`
| +| `internal.resourcesApi.infrastructureCluster.version` | **API version**|**Type:** `string`
**Examples:** `"v1alpha1", "v1beta1", "v1beta2", "v1", "v2"`
| +| `internal.resourcesApi.machineHealthCheckResourceEnabled` | **MachineHealthCheck resource enabled** - Flag that indicates if the MachineHealthCheck resource is enabled and templated. This is meant only for the initial development purposes for the sake of incrementally integrating cluster chart into cluster-$provider apps.|**Type:** `boolean`
**Default:** `true`| +| `internal.resourcesApi.machinePoolResourcesEnabled` | **Machine pool resources enabled** - Flag that indicates if the machine pool resources are enabled and templated. This is meant only for the initial development purposes for the sake of incrementally integrating cluster chart into cluster-$provider apps.|**Type:** `boolean`
**Default:** `true`| +| `internal.teleport` | **Teleport**|**Type:** `object`
| +| `internal.teleport.enabled` | **Enable teleport**|**Type:** `boolean`
**Default:** `false`| +| `internal.teleport.proxyAddr` | **Teleport proxy address**|**Type:** `string`
**Default:** `"test.teleport.giantswarm.io:443"`| +| `internal.teleport.version` | **Teleport version**|**Type:** `string`
**Default:** `"13.3.8"`| +| `internal.workers` | **Internal workers configuration**|**Type:** `object`
| +| `internal.workers.kubeadmConfig` | **Kubeadm config** - Configuration of workers nodes.|**Type:** `object`
| +| `internal.workers.kubeadmConfig.files` | **Files** - These are the files that are included on worker nodes.|**Type:** `array`
| +| `internal.workers.kubeadmConfig.files[*]` | **File from secret** - It defines a file with content in a Secret|**Type:** `object`
| +| `internal.workers.kubeadmConfig.files[*].contentFrom` | **Content from** - It specifies where the file content is coming from.|**Type:** `object`
| +| `internal.workers.kubeadmConfig.files[*].contentFrom.secret` | **Secret** - Kubernetes Secret resource with the file content.|**Type:** `object`
| +| `internal.workers.kubeadmConfig.files[*].contentFrom.secret.key` | **Key** - Secret key where the file content is.|**Type:** `string`
| +| `internal.workers.kubeadmConfig.files[*].contentFrom.secret.name` | **Name** - Name of the Secret resource.|**Type:** `string`
| +| `internal.workers.kubeadmConfig.files[*].path` | **Path** - File path on the node.|**Type:** `string`
| +| `internal.workers.kubeadmConfig.files[*].permissions` | **Permissions** - File permissions in form 0644|**Type:** `string`
**Default:** `"0644"`| +| `internal.workers.kubeadmConfig.ignition` | **Ignition** - Ignition-specific configuration.|**Type:** `object`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig` | **Container Linux configuration**|**Type:** `object`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig` | **Additional config** - Additional configuration to be merged with the Ignition. More info: https://coreos.github.io/ignition/operator-notes/#config-merging.|**Type:** `object`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage` | **Storage** - It describes the desired state of the system’s storage devices.|**Type:** `object`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories` | **Directories** - The list of directories to be created.|**Type:** `array`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*]` | **Directory** - The directory to be created.|**Type:** `object`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].filesystem` | **Filesystem** - The internal identifier of the filesystem in which to create the directory. This matches the last filesystem with the given identifier.|**Type:** `string`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].group` | **Group** - It specifies the group of the owner.|**Type:** `object`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].group.id` | **ID** - The group ID of the owner.|**Type:** `integer`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].group.name` | **Name** - The group name of the owner.|**Type:** `string`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].mode` | **Mode** - The directory’s permission mode.|**Type:** `integer`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].overwrite` | **Overwrite** - Whether to delete preexisting nodes at the path.|**Type:** `boolean`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].path` | **Path** - The absolute path to the directory.|**Type:** `string`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].user` | **User** - It specifies the directory’s owner.|**Type:** `object`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].user.id` | **ID** - The user ID of the owner.|**Type:** `integer`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.directories[*].user.name` | **Name** - The user name of the owner.|**Type:** `string`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems` | **File systems** - The list of filesystems to be configured and/or used in the “files” section. Either “mount” or “path” needs to be specified.|**Type:** `array`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*]` | **File system** - The filesystem to be configured and/or used in the “files” section. Either “mount” or “path” needs to be specified.|**Type:** `object`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].mount` | **Mount** - It contains the set of mount and formatting options for the filesystem. A non-null entry indicates that the filesystem should be mounted before it is used by Ignition.|**Type:** `object`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].mount.device` | **Device** - The absolute path to the device. Devices are typically referenced by the /dev/disk/by-* symlinks.|**Type:** `string`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].mount.format` | **Format** - The filesystem format (ext4, btrfs, or xfs).|**Type:** `string`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].mount.label` | **Label** - The label of the filesystem.|**Type:** `string`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].mount.options` | **Options** - Any additional options to be passed to the format-specific mkfs utility.|**Type:** `array`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].mount.options[*]` |An additional option to be passed to the format-specific mkfs utility.|**Type:** `string`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].mount.uuid` | **UUID** - The uuid of the filesystem.|**Type:** `string`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].mount.wipeFilesystem` | **Wipe filesystem** - Whether or not to wipe the device before filesystem creation, see Ignition’s documentation on filesystems for more information https://github.com/coreos/ignition/blob/main/docs/operator-notes.md#filesystem-reuse-semantics.|**Type:** `boolean`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].name` | **Name** - The identifier for the filesystem, internal to Ignition. This is only required if the filesystem needs to be referenced in the “files” section.|**Type:** `string`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.storage.filesystems[*].path` | **Path** - The mount-point of the filesystem. A non-null entry indicates that the filesystem has already been mounted by the system at the specified path. This is really only useful for “/sysroot”.|**Type:** `string`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd` | **systemd** - It describes the desired state of the systemd units.|**Type:** `object`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units` | **Units**|**Type:** `array`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*]` | **systemd unit**|**Type:** `object`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*].contents` | **Contents** - The contents of the unit.|**Type:** `string`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*].dropins` | **Unit drop-ins** - The list of drop-ins for the unit|**Type:** `array`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*].dropins[*]` | **Unit drop-in**|**Type:** `object`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*].dropins[*].contents` | **Contents** - The contents of the drop-in.|**Type:** `string`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*].dropins[*].name` | **Name** - The name of the drop-in. This must be suffixed with “.conf”|**Type:** `string`
**Value pattern:** `^.+\.conf$`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*].enabled` | **Enabled?** - Whether or not the service shall be enabled. When true, the service is enabled. When false, the service is disabled. When omitted, the service is unmodified. In order for this to have any effect, the unit must have an install section.|**Type:** `boolean`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*].mask` | **Masked?** - Whether or not the service shall be masked. When true, the service is masked by symlinking it to /dev/null.|**Type:** `boolean`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.additionalConfig.systemd.units[*].name` | **Name** - The name of the unit. This must be suffixed with a valid unit type (e.g. “thing.service”).|**Type:** `string`
| +| `internal.workers.kubeadmConfig.ignition.containerLinuxConfig.strict` | **Strict** - It controls if AdditionalConfig should be strictly parsed. If so, warnings are treated as errors.|**Type:** `boolean`
| +| `internal.workers.kubeadmConfig.postKubeadmCommands` | **Post-kubeadm commands** - Extra commands to run after kubeadm runs.|**Type:** `array`
| +| `internal.workers.kubeadmConfig.postKubeadmCommands[*]` |**None**|**Type:** `string`
| +| `internal.workers.kubeadmConfig.preKubeadmCommands` | **Pre-kubeadm commands** - Extra commands to run before kubeadm runs.|**Type:** `array`
| +| `internal.workers.kubeadmConfig.preKubeadmCommands[*]` |**None**|**Type:** `string`
| + +### Metadata +Properties within the `.global.metadata` object + +| **Property** | **Description** | **More Details** | +| :----------- | :-------------- | :--------------- | +| `global.metadata.annotations` | **Annotations** - These annotations are added to all Kubernetes resources defining this cluster.|**Type:** `object`
| +| `global.metadata.annotations.PATTERN` | **Annotation**|**Type:** `string`
**Key pattern:**
`PATTERN`=`^([a-zA-Z0-9\.-]{1,253}/)?[a-zA-Z0-9\._-]{1,63}$`
| +| `global.metadata.description` | **Cluster description** - User-friendly description of the cluster's purpose.|**Type:** `string`
| +| `global.metadata.labels` | **Labels** - These labels are added to all Kubernetes resources defining this cluster.|**Type:** `object`
| +| `global.metadata.labels.PATTERN` | **Label**|**Type:** `string`
**Key pattern:**
`PATTERN`=`^[a-zA-Z0-9/\._-]+$`
**Value pattern:** `^[a-zA-Z0-9\._-]+$`
| +| `global.metadata.name` | **Cluster name** - Unique identifier, cannot be changed after creation.|**Type:** `string`
| +| `global.metadata.organization` | **Organization** - The name of organization that owns the cluster.|**Type:** `string`
| +| `global.metadata.servicePriority` | **Service priority** - The relative importance of this cluster.|**Type:** `string`
**Default:** `"highest"`| + +### Node pools +Properties within the `.global.nodePools` object + +| **Property** | **Description** | **More Details** | +| :----------- | :-------------- | :--------------- | +| `global.nodePools.PATTERN` | **Node pool**|**Type:** `object`
**Key pattern:**
`PATTERN`=`^[a-z0-9]{5,10}$`
| +| `global.nodePools.PATTERN.annotations` | **Annotations** - These annotations are added to all Kubernetes resources defining this node pool.|**Type:** `object`
**Key pattern:**
`PATTERN`=`^[a-z0-9]{5,10}$`
| +| `global.nodePools.PATTERN.annotations.PATTERN_2` | **Annotation**|**Type:** `string`
**Key patterns:**
`PATTERN`=`^[a-z0-9]{5,10}$`
`PATTERN_2`=`^([a-zA-Z0-9\.-]{1,253}/)?[a-zA-Z0-9\._-]{1,63}$`
| +| `global.nodePools.PATTERN.labels` | **Labels** - These labels are added to all Kubernetes resources defining this node pool.|**Type:** `object`
**Key pattern:**
`PATTERN`=`^[a-z0-9]{5,10}$`
| +| `global.nodePools.PATTERN.labels.PATTERN_2` | **Label**|**Type:** `string`
**Key patterns:**
`PATTERN`=`^[a-z0-9]{5,10}$`
`PATTERN_2`=`^[a-zA-Z0-9/\._-]+$`
**Value pattern:** `^[a-zA-Z0-9\._-]+$`
| +| `global.nodePools.PATTERN.nodeLabels` | **Node labels** - Labels that are passed to kubelet argument 'node-labels'.|**Type:** `object`
**Key pattern:**
`PATTERN`=`^[a-z0-9]{5,10}$`
| +| `global.nodePools.PATTERN.nodeLabels.*` |**None**|**Type:** `string`
**Key pattern:**
`PATTERN`=`^[a-z0-9]{5,10}$`
| +| `global.nodePools.PATTERN.nodeTaints` | **Custom node taints**|**Type:** `array`
**Key pattern:**
`PATTERN`=`^[a-z0-9]{5,10}$`
| +| `global.nodePools.PATTERN.nodeTaints[*]` |**None**|**Type:** `object`
**Key pattern:**
`PATTERN`=`^[a-z0-9]{5,10}$`
| +| `global.nodePools.PATTERN.nodeTaints[*].effect` | **Effect**|**Type:** `string`
**Key pattern:**
`PATTERN`=`^[a-z0-9]{5,10}$`
| +| `global.nodePools.PATTERN.nodeTaints[*].key` | **Key**|**Type:** `string`
**Key pattern:**
`PATTERN`=`^[a-z0-9]{5,10}$`
| +| `global.nodePools.PATTERN.nodeTaints[*].value` | **Value**|**Type:** `string`
**Key pattern:**
`PATTERN`=`^[a-z0-9]{5,10}$`
| +| `global.nodePools.PATTERN.replicas` | **Replicas** - The number of node pool nodes.|**Type:** `integer`
**Key pattern:**
`PATTERN`=`^[a-z0-9]{5,10}$`
| + +### Other global + +| **Property** | **Description** | **More Details** | +| :----------- | :-------------- | :--------------- | +| `global.managementCluster` | **Management cluster** - Name of the Cluster API cluster managing this workload cluster.|**Type:** `string`
| + + + +