If the cluster control plane is hosted on a virtual machines or bare-metal servers, the cloud provider uses the settings from the
cloud-provider-zvirtmodule in the Deckhouse configuration. Otherwise, if the cluster control plane is hosted in a cloud, the cloud provider uses the ZvirtClusterConfiguration structure for configuration.
ZvirtClusterConfiguration
Version: deckhouse.io/v1
Describes the configuration of a cloud cluster in zVirt.
Used by the cloud provider if a cluster’s control plane is hosted in the cloud.
Run the following command to change the configuration in a running cluster:
d8 system edit provider-cluster-configuration
After updating the node parameters, you need to run the
dhctl convergecommand for the changes to take effect. For more information about changing the cluster configuration, see Adding and managing cloud nodes.
Example:
apiVersion: deckhouse.io/v1
kind: ZvirtClusterConfiguration
layout: Standard
clusterID: b46372e7-0d52-40c7-9bbf-fda31e187088
masterNodeGroup:
replicas: 1
instanceClass:
numCPUs: 4
memory: 8192
template: debian-bookworm
vnicProfileID: 49bb4594-0cd4-4eb7-8288-8594eafd5a86
storageDomainID: c4bf82a5-b803-40c3-9f6c-b9398378f424
nodeGroups:
- name: worker
replicas: 1
instanceClass:
numCPUs: 4
memory: 8192
template: debian-bookworm
vnicProfileID: 49bb4594-0cd4-4eb7-8288-8594eafd5a86
provider:
server: "<SERVER>"
username: "<USERNAME>"
password: "<PASSWORD>"
insecure: true
- stringapiVersion
Required value
Allowed values:
deckhouse.io/v1 - stringclusterID
Required value
Cluster ID with shared storage domains and CPUs of the same type to create virtual machines.
Pattern:
^[\da-fA-F]{8}\-[\da-fA-F]{4}\-[\da-fA-F]{4}\-[\da-fA-F]{4}\-[\da-fA-F]{12}$Example:
clusterID: 49bb4594-0cd4-4eb7-8288-8594eafd5a86 - stringkind
Required value
Allowed values:
ZvirtClusterConfiguration - stringlayout
Required value
The way resources are located in the cloud.
Read more about possible provider layouts.
- objectmasterNodeGroup
Required value
The definition of the master’s NodeGroup.
For the changes to take effect, run
dhctl convergeafter modifying the parameters of themasterNodeGroupsection.- objectmasterNodeGroup.instanceClass
Required value
Partial contents of the fields of the ZvirtInstanceClass.
- integermasterNodeGroup.instanceClass.etcdDiskSizeGb
Etcd disk size in GiB.
Default:
10Example:
etcdDiskSizeGb: 10 - integermasterNodeGroup.instanceClass.memory
Required value
Memory in MiB to allocate to the VM.
Allowed values:
1 <= XExample:
memory: 8192 - integermasterNodeGroup.instanceClass.numCPUs
Required value
Number of vCPUs to allocate to the VM.
Allowed values:
1 <= XExample:
numCPUs: 2 - integermasterNodeGroup.instanceClass.rootDiskSizeGb
Root disk size in GiB to use in zVirt VirtualMachines.
Default:
50Example:
rootDiskSizeGb: 50 - stringmasterNodeGroup.instanceClass.storageDomainID
Required value
Storage domain id which contains the shared resources that must be available to all datacenter hosts.
Pattern:
^[\da-fA-F]{8}\-[\da-fA-F]{4}\-[\da-fA-F]{4}\-[\da-fA-F]{4}\-[\da-fA-F]{12}$Example:
storageDomainID: 49bb4594-0cd4-4eb7-8288-8594eafd5a86 - stringmasterNodeGroup.instanceClass.template
Required value
Template name to be cloned.
Example:
template: debian-bookworm - stringmasterNodeGroup.instanceClass.vnicProfileID
Required value
Virtual NIC profile ID on the basis of which the virtual NIC will be created.
Pattern:
^[\da-fA-F]{8}\-[\da-fA-F]{4}\-[\da-fA-F]{4}\-[\da-fA-F]{4}\-[\da-fA-F]{12}$Example:
vnicProfileID: 49bb4594-0cd4-4eb7-8288-8594eafd5a86
- integermasterNodeGroup.replicas
Required value
The number of master nodes to create. It is important to have an odd number of masters to ensure a quorum.
Allowed values:
1 <= X
- array of objectsnodeGroups
An array of additional NodeGroups for creating static nodes (e.g., for dedicated front nodes or gateways).
- objectnodeGroups.instanceClass
Required value
Partial contents of the fields of the.
- integernodeGroups.instanceClass.etcdDiskSizeGb
Etcd disk size in GiB.
Default:
10Example:
etcdDiskSizeGb: 10 - integernodeGroups.instanceClass.memory
Required value
Memory in MiB to allocate to the VM.
Allowed values:
1 <= XExample:
memory: 8192 - integernodeGroups.instanceClass.numCPUs
Required value
Number of vCPUs to allocate to the VM.
Allowed values:
1 <= XExample:
numCPUs: 2 - integernodeGroups.instanceClass.rootDiskSizeGb
Root disk size in GiB to use in zVirt VirtualMachines.
Default:
50Example:
rootDiskSizeGb: 50 - stringnodeGroups.instanceClass.storageDomainID
Storage domain id which contains the shared resources that must be available to all datacenter hosts.
Pattern:
^[\da-fA-F]{8}\-[\da-fA-F]{4}\-[\da-fA-F]{4}\-[\da-fA-F]{4}\-[\da-fA-F]{12}$Example:
storageDomainID: 49bb4594-0cd4-4eb7-8288-8594eafd5a86 - stringnodeGroups.instanceClass.template
Required value
Template name to be cloned.
Example:
template: debian-bookworm - stringnodeGroups.instanceClass.vnicProfileID
Required value
Virtual NIC profile ID on the basis of which the virtual NIC will be created.
Pattern:
^[\da-fA-F]{8}\-[\da-fA-F]{4}\-[\da-fA-F]{4}\-[\da-fA-F]{4}\-[\da-fA-F]{12}$Example:
vnicProfileID: 49bb4594-0cd4-4eb7-8288-8594eafd5a86
- stringnodeGroups.name
Required value
The name of the NodeGroup to use for generating node names.
- nodeGroups.nodeTemplate
Parameters of Node objects in Kubernetes to add after registering the node.
- objectnodeGroups.nodeTemplate.annotations
The same as the
metadata.annotationsstandard field.Example:
annotations: ai.fleet.com/discombobulate: 'true' - objectnodeGroups.nodeTemplate.labels
A list of labels to attach to cluster resources.
The same as the
metadata.labelsstandard field.Example:
labels: environment: production app: warp-drive-ai - array of objectsnodeGroups.nodeTemplate.taints
The same as the
.spec.taintsfield of the Node object.Available fields:
effect,key, andvalues.Example:
taints: - effect: NoExecute key: ship-class value: frigate- stringnodeGroups.nodeTemplate.taints.effect
Allowed values:
NoSchedule,PreferNoSchedule,NoExecute - stringnodeGroups.nodeTemplate.taints.key
- stringnodeGroups.nodeTemplate.taints.value
- integernodeGroups.replicas
Required value
The number of nodes to create.
- objectprovider
Required value
Parameters for connecting to the Zvirt.
- stringprovider.caBundle
CA certificate in base64.
Default:
- booleanprovider.insecure
Set to
trueif Zvirt has a self-signed certificate.Default:
false - stringprovider.password
Required value
The user’s password.
- stringprovider.server
Required value
The URL to the Zvirt API endpoint.
- stringprovider.username
Required value
The login ID.
- stringsshPublicKey
Required value
a public key for accessing nodes.