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 p edit provider-cluster-configuration
After updating the node parameters, you need to run the dhctl converge command to apply the changes.
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.