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-zvirt
module 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:
kubectl -n d8-system exec -ti deploy/deckhouse -- deckhouse-controller edit provider-cluster-configuration
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
- apiVersionstring
Required value
Allowed values:
deckhouse.io/v1
- clusterIDstring
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}\-4[\da-fA-F]{3}\-[\da-fA-F]{4}\-[\da-fA-F]{12}$
Example:
clusterID: 49bb4594-0cd4-4eb7-8288-8594eafd5a86
- kindstring
Required value
Allowed values:
ZvirtClusterConfiguration
- layoutstring
Required value
The way resources are located in the cloud.
Read more about possible provider layouts.
- masterNodeGroupobject
Required value
The definition of the master’s NodeGroup.
Caution! After changing the parameters of the section, you need to run
dhctl converge
for the changes to take effect.- masterNodeGroup.instanceClassobject
Required value
Partial contents of the fields of the ZvirtInstanceClass.
- masterNodeGroup.instanceClass.etcdDiskSizeGbinteger
Etcd disk size in GiB.
Default:
10
Example:
etcdDiskSizeGb: 10
- masterNodeGroup.instanceClass.memoryinteger
Required value
Memory in MiB to allocate to the VM.
Allowed values:
1 <= X
Example:
memory: 8192
- masterNodeGroup.instanceClass.numCPUsinteger
Required value
Number of vCPUs to allocate to the VM.
Allowed values:
1 <= X
Example:
numCPUs: 2
- masterNodeGroup.instanceClass.rootDiskSizeGbinteger
Root disk size in GiB to use in zVirt VirtualMachines.
Default:
30
Example:
rootDiskSizeGb: 30
- masterNodeGroup.instanceClass.storageDomainIDstring
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}\-4[\da-fA-F]{3}\-[\da-fA-F]{4}\-[\da-fA-F]{12}$
Example:
storageDomainID: 49bb4594-0cd4-4eb7-8288-8594eafd5a86
- masterNodeGroup.instanceClass.templatestring
Required value
Template name to be cloned.
Example:
template: debian-bookworm
- masterNodeGroup.instanceClass.vnicProfileIDstring
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}\-4[\da-fA-F]{3}\-[\da-fA-F]{4}\-[\da-fA-F]{12}$
Example:
vnicProfileID: 49bb4594-0cd4-4eb7-8288-8594eafd5a86
- masterNodeGroup.instanceClass.etcdDiskSizeGbinteger
- masterNodeGroup.replicasinteger
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
- masterNodeGroup.instanceClassobject
- nodeGroupsarray of objects
An array of additional NodeGroups for creating static nodes (e.g., for dedicated front nodes or gateways).
- nodeGroups.instanceClassobject
Required value
Partial contents of the fields of the.
- nodeGroups.instanceClass.etcdDiskSizeGbinteger
Etcd disk size in GiB.
Default:
10
Example:
etcdDiskSizeGb: 10
- nodeGroups.instanceClass.memoryinteger
Required value
Memory in MiB to allocate to the VM.
Allowed values:
1 <= X
Example:
memory: 8192
- nodeGroups.instanceClass.numCPUsinteger
Required value
Number of vCPUs to allocate to the VM.
Allowed values:
1 <= X
Example:
numCPUs: 2
- nodeGroups.instanceClass.rootDiskSizeGbinteger
Root disk size in GiB to use in zVirt VirtualMachines.
Default:
30
Example:
rootDiskSizeGb: 30
- nodeGroups.instanceClass.storageDomainIDstring
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}\-4[\da-fA-F]{3}\-[\da-fA-F]{4}\-[\da-fA-F]{12}$
Example:
storageDomainID: 49bb4594-0cd4-4eb7-8288-8594eafd5a86
- nodeGroups.instanceClass.templatestring
Required value
Template name to be cloned.
Example:
template: debian-bookworm
- nodeGroups.instanceClass.vnicProfileIDstring
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}\-4[\da-fA-F]{3}\-[\da-fA-F]{4}\-[\da-fA-F]{12}$
Example:
vnicProfileID: 49bb4594-0cd4-4eb7-8288-8594eafd5a86
- nodeGroups.instanceClass.etcdDiskSizeGbinteger
- nodeGroups.namestring
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.
- nodeGroups.nodeTemplate.annotationsobject
The same as the
metadata.annotations
standard field.Example:
annotations: ai.fleet.com/discombobulate: 'true'
- nodeGroups.nodeTemplate.labelsobject
A list of labels to attach to cluster resources.
The same as the
metadata.labels
standard field.Example:
labels: environment: production app: warp-drive-ai
- nodeGroups.nodeTemplate.taintsarray of objects
The same as the
.spec.taints
field of the Node object.Caution! Only the
effect
,key
,values
fields are available.Example:
taints: - effect: NoExecute key: ship-class value: frigate
- nodeGroups.nodeTemplate.taints.effectstring
Allowed values:
NoSchedule
,PreferNoSchedule
,NoExecute
- nodeGroups.nodeTemplate.taints.keystring
- nodeGroups.nodeTemplate.taints.valuestring
- nodeGroups.nodeTemplate.taints.effectstring
- nodeGroups.nodeTemplate.annotationsobject
- nodeGroups.replicasinteger
Required value
The number of nodes to create.
- nodeGroups.instanceClassobject
- providerobject
Required value
Parameters for connecting to the Zvirt.
- provider.caBundlestring
CA certificate in base64.
Default:
""
- provider.insecureboolean
Set to
true
if Zvirt has a self-signed certificate.Default:
false
- provider.passwordstring
Required value
The user’s password.
- provider.serverstring
Required value
The URL to the Zvirt API endpoint.
- provider.usernamestring
Required value
The login ID.
- provider.caBundlestring
- sshPublicKeystring
Required value
a public key for accessing nodes.