How to deploy a cluster

Instructions for deploying a client cluster in the GUI for Shturval v2, VMware vSphere, oVirt, OpenStack, Yandex Cloud, vCloud Director and Basis Dynamix.

Once the working management cluster is available in the platform and the infrastructure provider instance is configured, you are ready to create a client cluster in the platform GUI. Below is a checklist of preconditions, then where to start creating, details for each provider (tabs), general steps of the wizard for the certificate and services, status tracking and links to reference materials.

Preconditions (check before starting)

Before clicking Create Cluster or Add Cluster make sure:

Note: For OpenStack, Yandex Cloud, vCloud Director, Basis Dynamix IP pools are not used - addresses are set differently (often through external balancers). See the corresponding provider tab.

If something is not completed, go to How to work with providers in the platform. General requirements for nodes and network are on the Requirements page.

Briefly about providers
ProviderWhen to choosePreparing nodes
Shturval v2Naked hosts, SSHHosts and OS, without VM template
VMware vSpherevCenterVM template (stc), upload to vSphere
oVirt and analogueszVirt, oVirt, HostVM, ED Virtualization, ROSA VirtualizationVM Template, DHCP in VNIC Profile
OpenStack and similarVK Cloud, Selectel, etc.Images, VPC, security groups
Yandex CloudYandex CloudImage with --keep-cloud-init, VPC
vCloud DirectorvCloud OrganizationCatalogs, templates, DHCP on the network
Basis DynamixBasis Dynamix EnvironmentTemplates/images, customizing LB after creation

Recommendation for the first time: VMware vSphere or Shturval v2.


Where to create a cluster in the platform

  1. Open the Cluster section and click Add a cluster.
  2. Select the provider type and specify Cluster Name (see the screenshot below).
  3. Go through the steps of the wizard: basic data (instance, network and entry points according to the provider’s script, template or image if necessary), nodes Control Plane and Worker, certificate, select services, check data → Create (see the screenshot below).

Create cluster button and list of client clusters

Illustration: Where to create a cluster in the platform

Selecting a provider when creating a cluster

FieldPurpose
Cluster nameUnique identifier. Limited to 37 characters: The cluster name is used when generating labels for related objects that are limited in length (63 characters)

Detailed wizard fields and environment features are on the tabs in the “Deployment by Provider” section.


Deployment by provider

Below are the prerequisites, GUI flow, wizard fields (steps 1-4 or equivalent), environment specifics, and API call for each provider. General steps installing a certificate and selecting services are listed after the tabs.

After filling out the provider fields in the wizard, go to the sections “Installing a certificate” and “Selecting services”, then complete data verification and cluster creation.

Shturval v2

Prerequisites

  • Configured provider instance Shturval v2 with added hosts;
  • Pool of IP addresses with free addresses for KubeAPI and Ingress (optional, simplifies the selection of VIP addresses when using internal balancers for Kube-API/Ingress);
  • Hosts with OS from supported list, SSH access.

Advantage: No VM template is needed - the platform deploys Kubernetes directly on selected hosts. For more information about the model without VM templates and Cluster API, see Creating nodes when deploying a client cluster.

Process in GUI

Going to the wizard and selecting a provider with an instance is described at the beginning of the page. Next in the wizard for Shturval v2:

  1. Fill in basic details (basic or advanced mode): instance, platform version, network entry points (see table), external balancers, subnets and cluster profile if necessary.
  2. Configure Control Plane and Worker groups: host selection, scaling, selectors in advanced mode.
  3. Go through certificate installation, select services, data verification and create a cluster.
Step 1: Basic data

At the “Basic data” step, the fields are available in basic mode and in advanced settings mode (the “Show advanced settings” toggle switch). When switching from advanced to basic mode, values in hidden fields are lost.

Basic mode - minimum set: VIP for management access to the cluster and VIP Ingress, if necessary, selecting addresses from the instance pool. Advanced information security parameters, external balancers and explicit CIDR of pods/services are not set in this mode (platform default values are used).

Screenshot: basic data in basic mode

Shturval v2 - basic data, basic mode

In the basic mode the following are specified:

FieldPurpose
InstanceInstance Shturval v2; if there is one, it is selected automatically.
Platform VersionVersion of the Shturval platform from which the cluster will be installed
Version KubernetesVersion of Kubernetes in accordance with the selected platform version
cluster API server addressIP or FQDN for KubeAPI; you can enter it manually or select a free IP from the pool associated with the instance. Copying of value is available.
VIP address for IngressIPv4 in internal subnet and nodes or from a pool; will be configured on one of the Workers for the system Ingress. Copying available.

If an instance has an IP pool defined, the drop-down lists only show free addresses in the pool. If one address is free, it can be specified either for the API or for Ingress; otherwise, set the addresses manually or expand the pool.

Advanced mode adds external balancing, subnets and profile fields.

Screenshot: extended master data

Shturval v2 - expanded master data

FieldPurpose
API server addressSame as in basic mode; when using an external LB for the API, specify the FQDN to which the balancer is configured (see below).
VIP address for Ingress and DNS record for IngressIPv4 and/or Wildcard FQDN for Ingress. If you are using an internal balancer for Ingress, both fields are available. The Ingress DNS record is limited to 53 characters to ensure that the resulting commonName for cert-manager does not exceed the allowed length.
Use external balancer for IngressWhen enabled, haproxy is used; with an internal scheme, balancing on the API may not be applied; the traffic goes to the VIP. With an external LB, the Ingress DNS record (Wildcard FQDN) field remains for Ingress.
Use an external balancer for the API serverDisabled by default. If enabled, in the API server address field, specify the FQDN of the external balancer. The balancer must be configured before the start of cluster deployment.
Screenshot: external balancer for API

Shturval v2 - external API balancer

Screenshot: external balancer for Ingress

Shturval v2 - external Ingress balancer

FieldPurpose
Set advanced information security settingsSecret Encryption for etcd, TLS connection to Kubelet and pre-configured audit policy.
PodSubnetCIDR for Pod; should not intersect with the network of nodes and services. Typical range: 172.16.0.0/16.
Service SubnetCIDR for ClusterIP; does not intersect with nodes and Pods. 10.96.0.0/12 is recommended.
Cluster ProfileSee Cluster Profiles; by default - default profile.

Before saving, check the ranges for intersections; see FQDN and VIP and checking the intersection of subnets when creating a cluster.

Note: There is no reservation IP mechanism: the address could be free when filling out the form and occupied by the time of deployment - a cluster will not be created. Allocate non-overlapping subnets and pools for different clusters.

FQDN in the cluster depend on Ingress:

  • for DNS record Ingress: *.<ingress-dns-record>;
  • for VIP Ingress: *.<CLUSTER_NAME>.ip-<VIP-Ingress>.shturval.link.
Step 2–3: Node Configuration

Unlike providers with VM templates, nodes are instance hosts (roles and labels are set when adding hosts or in the provider).

Control Plane — an odd number of nodes, no more than 5. The Potentially available hosts block shows hosts with the role controlplane (or according to the selector). If there are no hosts, add them to the provider instance.

Screenshot: Control Plane, basic mode

Shturval v2 - Control Plane

In advanced settings a host selector (labels, expressions) is available; by default the role label controlplane is added.

Screenshot: Control Plane, selector

Shturval v2 - Control Plane, advanced settings

Worker groups - by default, two protected groups of three nodes: default and infra. They can be created without adding hosts (number 0), then MachineDeployments will remain for subsequent scaling. You can add custom groups, copy settings between groups, and duplicate configuration.

Screenshot: Worker groups

Shturval v2 - Worker groups

For each group: manual or automatic scaling (the minimum number of nodes in the GUI is usually not lower than 2), in the basic mode - host role (workers, infra, etc.; the controlplane role is not available for Worker). In advanced mode - host selector with default labels for the group.

Screenshot: Worker group parameters, basic mode

Shturval v2 - Worker, roles

Screenshot: Worker selector

Shturval v2 - Worker, selector

Note: Selector rule: labels specified as a match in one group should be excluded in other groups using NotIn (samekey and value) to prevent the host from being in two groups at the same time.

If at the start of creation there are not enough hosts with the required roles/labels, some nodes may not join: add hosts in the provider and check the labels on the node page (Labels and annotations / Cluster API).

Recommended host resources: client cluster requirements.

Next is the general step “Installing a certificate” and “Selecting services”.

Features Shturval v2

  • No template: The platform installs Kubernetes on bare metal hosts with a pre-installed OS.
  • Hosts: Added to the provider instance. Requires SSH access (key or password). The hosts must be on the same subnet.
  • Resources: CPU, RAM, disk are set on the hosts. The platform does not create VMs - it uses existing ones.
  • Recommended for: First cluster, test benches, bare metal.

VMware vSphere

Prerequisites

  • Configured provider instance VMware vSphere;
  • VM templates for the required versions of Kubernetes: for each version of Kubernetes in the provider instance - one template; prepare using template instructions (stc utility), then upload to vSphere;
  • Pool of IP addresses with at least 2 free addresses (KubeAPI and Ingress).

Process in GUI

Going to the wizard and selecting a provider with an instance is described at the beginning of the page. Next in the wizard for VMware vSphere:

  1. Fill in basic details (basic or advanced mode): instance, provider template, network entry points (see table), platform version, CSI if necessary, external balancer, subnets and cluster profile.
  2. Configure Control Plane and Worker groups: number of nodes, default or override resources, scaling.
  3. Go through certificate installation, select services, data verification and create a cluster.
Step 1: Basic data

Filling is available in basic mode and in advanced settings mode. When switching from advanced to basic mode, values in hidden fields are lost.

Screenshot: basic data in basic mode

vSphere - basic data, basic mode

Screenshot: raceextended master data

vSphere - extended master data

FieldWhy is it necessaryFeatures
InstancevSphere instance; if there is one, it is selected automatically.—
Provider TemplateDefines the Kubernetes version and IP pool. The template must be added to the provider instance.If there is only one template, it is selected automatically. When the pool is linked, the number of free IPs is shown.
Platform VersionVersion of the Shturval platform from which the cluster will be installed.Depends on the version of Kubernetes in the template.
Version KubernetesVersion of Kubernetes in accordance with the selected platform version.
cluster API server addressVIP for KubeAPI. It connects kubectl, dashboards, CI/CD.Select from the pool or enter manually. Must be on the Control Plane nodes subnet.
Ingress VIP (Basic), Ingress VIP and/or Ingress DNS (Advanced)Entry point for HTTP/HTTPS.In advanced mode, when using an internal balancer, you can fill in both the VIP and DNS records. With an external balancer, the DNS record Ingress field remains for Ingress. The Ingress DNS record is limited to 53 characters to ensure that the resulting commonName for cert-manager does not exceed the allowed length.
Enable CSI IntegrationvSphere CSI for PersistentVolume.Requires service role #2 in vCenter. The default is no.
Use external balancerUse haproxy.In advanced settings. Otherwise, all control traffic goes to VIP.
Set advanced information security settingsSecret Encryption for etcd, TLS connection to Kubelet and audit policy.Only in advanced settings.
PodSubnetCIDR for Pod network.172.16.0.0/16 - typical. Should not intersect with the network of nodes and services.
Service SubnetCIDR for Service (ClusterIP).10.96.0.0/12 - default.
Cluster ProfileA set of cluster policies and parameters.See Cluster Profiles; by default - default.

Before setting subnets, check the ranges for intersection: FQDN and VIP, checking the intersection of subnets when creating a cluster.

Note: If there is no IP pool associated with the template/provider, addresses are entered manually. Requirements: VIP for KubeAPI— in the Control Plane nodes subnet; VIP for Ingress - in a subnet accessible to the balancer; the addresses must not match the IP of the cluster nodes.

Note: There is no IP reservation mechanism. The address is free at the time of configuration, but by the time of startup it may be busy - the cluster will not deploy. It is recommended to allocate non-overlapping subnets for different clusters.

FQDN: for Ingress DNS record - *.<ingress-dns-record>; for VIP Ingress - *.<cluster-name>.ip-<VIP-Ingress>.shturval.link.

Step 2–3: Node Configuration

The provider template is selected at the “Basic data” step. At this step, the number of nodes is set and, if necessary, the resources are redefined.

Screenshot: Control Plane

vSphere - Control Plane

ParameterWhy is it necessaryRecommendations
Control Plane: quantity1 - test; 3 — production (fault tolerance).For production - 3 nodes.
Worker: group defaultNodes for user applications.Minimum 2.
Worker: group infraNodes for system services. Partitioning reduces resource competition with applications.0 or 3 for production.
Resources (CPU, RAM, disk)Overriding template parameters for nodes.See client cluster resource requirements.

By default, two Worker groups (default and infra) of three nodes are created; the number of nodes can be reset to zero - MachineDeployments will remain for subsequent scaling. Manual and automatic scaling, copying settings between groups, and duplicating group configurations are available.

Screenshot: Worker groups

vSphere - Worker groups

Screenshot: Worker group parameters

vSphere - Worker parameters

VMware vSphere Features

  • Network: DHCP must work in the selected Network (Distributed Port Group) - the platform receives IP for created VMs automatically.
  • Template: Must be prepared by the stc utility and loaded into vSphere. For the source VM in vSphere, before preparing the template: parameter disk.EnableUUID = True, VM hardware version (compatibility) 15 or higher, SCSI controller - VMware Paravirtual. Without a valid template, creation will fail.
  • CSI: For PersistentVolume, enable “Enable CSI Integration” and configure permissions using the serviceth role No. 2 in vCenter (see vSphere provider).
  • FQDN: For VIP Ingress - *.clustername.ip-X-X-X-X.shturval.link. For DNS records - *.<ingress-dns-record>.

oVirt and similar

Prerequisites

Process in GUI

Going to the wizard and selecting a provider with an instance is described at the beginning of the page. Next in the wizard for oVirt (or equivalent):

  1. Fill in basic details (basic or advanced mode): instance, provider template, network entry points (see table), platform version, if necessary CSI, external LB, subnets and cluster profile.
  2. Configure Control Plane and Worker groups: number of nodes, resources (cores/sockets/threads, memory, disk for oVirt), scaling.
  3. Go through certificate installation, select services, data verification and create a cluster.
Step 1: Basic data

Filling is available in basic and advanced modes (the “Show advanced settings” toggle switch). When you switch to Basic mode, data from hidden fields is lost.

Basic mode: instance, provider template, platform version, VIP/FQDN for cluster management access and for Ingress, CSI. Advanced information security parameters and explicit CIDR of pods/services are not specified; no external balancer is used.

Advanced mode additionally: VIP address for Ingress and DNS record of Ingress (both values can be filled in when the external balancer is disabled for Ingress), external balancer (haproxy; when enabled, the DNS field remains for Ingress), advanced information security parameters, pod subnet, service subnet, cluster profile (help).

FieldWhy is it necessaryFeatures
InstanceAn instance of oVirt (or equivalent); if there is one, it is selected automatically.—
Provider TemplateKubernetes version, VM image, IP pool.One template is selected automatically. When pooling, the number of free IPs is shown.
API server addressVIP/FQDN KubeAPI.From a template pool or manually.
Platform VersionVersion of the Shturval platform from which the cluster will be installedDepends on the version of Kubernetes in the template.
Version KubernetesVersion of Kubernetes in accordance with the selected platform version
VIP address for Ingress and DNS record for IngressHTTP/HTTPS Ingress.From a pool or manually; in advanced mode, you can also specify a Wildcard FQDN. When the use of an external balancer for Ingress is disabled, it is possible to fill both the VIP and DNS records.
Enable CSI IntegrationoVirt CSI.May be prohibited in the template.

Note: List of IPs in the drop-down fields - free pool addresses of the selected template. One free IP cannot be assigned to both API and Ingress at the same time.

For oVirt and similar providers (zVirt, HostVM, RED Virtualization, ROSA Virtualization) in the GUIs for creating a client cluster and a management cluster, additional checks for the simultaneous filling of the DNS record Ingress and VIP addresses for Ingress are not performed. The correctness of the values can be checked at the configuration check step in dry_run mode.

Note: there is no IP reservation; Plan for disjoint subnets and pools. FQDN: for Ingress DNS record - *.<DNS>; for VIP - *.<cluster-name>.ip-<VIP>.shturval.link.

See FQDN and VIP, checking the intersection of subnets when creating a cluster.

Step 2–3: Node Configuration

The template is selected at the “Basic data” step.

Screenshot: Control Plane

oVirt - Control Plane

Control Plane parameterDescription
Number of nodesOdd number, not more than 5.
Cores/Sockets/ThreadsVM computing resources (default values in the UI).
Memory (MiB)Default is 8192.
Disk (GiB)Default 60; local storage - at least 60 GiB.

For Worker, the default is two groups of three nodes (default, infra); you can reset the quantity, add groups, configure manual/automatic scaling and copy settings (as in the vSphere documentation).

ParameterWhy is it necessaryRecommendations
Control Plane1 or 3 knots.For production - 3.
Worker: defaultUser loads.Minimum 2.
Worker: infraMonitoring, logs, Ingress.0 or 3 for production.

Recommended node resources: client cluster requirements.

Features of oVirt

  • VNIC profile: The network profile (for example, ovirtmgmt/ovirtmgmt) is set in the provider. DHCP must be enabled on the network.
  • Template: Prepared according to single instructions.
  • CSI: “Allow CSI” is configured on the provider instance. When enabled - oVirt CSI for PersistentVolume.
  • Supported platforms: oVirt, zVirt, HostVM, ED Virtualization, ROSA Virtualization - the settings are identical.

API

Method: POST $BACKENDPOINT/api/v1/platform/providers/clusters/capov

Authorization: header Authorization: Bearer $token. Get token.

Request body: JSON with sections cluster and provider. provider uses capovNodeConfig and identityName is the name of the provider template.

More details: API for cluster management.

OpenStack and similar

Prerequisites

  • Configured provider instance OpenStack;
  • Images for the required versions of Kubernetes;
  • VPC, subnets, security groups;
  • Ability to configure an external balancer for KubeAPI/Ingress in the cloud (Octavia / Neutron LBaaS and analogues for VK Cloud, Selectel).

Note: In a typical scenario, the IP pool of the cluster creation wizard is not used - public addresses and Ingress are transferred to external cloud balancers.

Process in GUI

Going to the wizard and selecting a provider with an instance is described at the beginning of the page. Next in the wizard for OpenStack / VK Cloud / Selectel:

  1. Fill in basic data (basic or advanced mode): instance, platform version, CSI, with advanced settings - external LB, DNS Ingress, node/pod/service subnets, cluster profile.
  2. Configure Control Plane and Worker (VM type, disk type, availability zone, group scaling) (see the screenshot below).
  3. Go through certificate installation, select services, data verification and create a cluster. If using an external balancer, then complete the LB configuration in the Virtualization panel (Virtual Networks/Balancers) (see the screenshot below).

For how nodes are created from images, see Creating nodes when deploying a client cluster.

Basic data when creating a cluster with OpenStack

New Cluster Wizard Fields

Step 1: Basic data

Filling in basic and advanced modes; atWhen switching to basic, the extended fields are reset.

Basic Mode

FieldDescription
InstanceOpenStack instance (project, network, images, etc.); if there is one, it is selected automatically.
Platform VersionVersion of the Shturval platform from which the cluster will be installed
Version KubernetesVersion of Kubernetes in accordance with the selected platform version
Enable CSI IntegrationDefaults to “no” if there is no prohibition in the instance. With OpenStack cloud storage, after deleting a cluster, you may need to manually delete the PVC in virtualization.

In the basic mode extended information security is not enabled; FQDN Ingress is generated automatically:

*.<cluster-name>.ip-<IP_EXTERNAL_LB>.shturval.link,

where IP_EXTERNAL_LB is the VIP of the external Ingress balancer in the cloud. Subnets of pods and services - default. After creating the cluster, configure an external balancer in the cloud.

Advanced mode - additionally:

FieldDescription
Use external balancer for IngressDefault is “yes” for this scenario.
DNS record IngressWildcard FQDN; the resulting names are *.<ingress-dns-record>. If the field is empty, the automatic scheme with IP_EXTERNAL_LB applies, as above. The Ingress DNS record is limited to 53 characters to ensure that the resulting commonName for cert-manager does not exceed the allowed length.
Set advanced information security settingsSecret Encryption for etcd, TLS connection to Kubelet and audit policy.
Pod subnet / service subnetCIDR; typically 172.16.0.0/16 and 10.96.0.0/12.
Host SubnetShould not overlap with subnets of pods and services; if not specified, it is taken from OpenStack provider configuration.
Cluster ProfileSee Cluster Profiles.

Checking intersections: checking the intersection of subnets when creating a cluster.

Step 2–3: Node Configuration

VM images and standard parameters are specified in the provider instance/templates; at this step - the number of nodes, VM type, disk type, disk size, availability zone (Control Plane), scaling and resources of Worker groups.

Screenshot: Control Plane

OpenStack - Control Plane

Screenshot: Worker groups

OpenStack - Worker groups

ParameterWhy is it necessaryRecommendations
Control PlaneOdd number of nodes (up to 5).For production - 3.
Worker: defaultUser loads.Minimum 2.
Worker: infraSystem services.0 or 3 for production.

Recommended resources: client cluster requirements.

Features of OpenStack

  • Network and balancing: In a typical scenario, OpenStack/VK Cloud/Selectel Ingress and public endpoints are tied to an external balancer of the cloud; After creating the cluster, complete the LB configuration in the virtualization panel.
  • External balancer: After creating the cluster, configure Load Balancer in OpenStack (Neutron LBaaS, Octavia): frontend for CLUSTERNAME-ingress-backend, port 30443.
  • Images: Prepared according to platform instructions. For Yandex Cloud, when creating a template, use the --keep-cloud-init flag.
  • Security groups: Must allow traffic for Kubernetes (API, etcd, NodePort, etc.).

API

Method: POST $BACKENDPOINT/api/v1/platform/providers/clusters/capos

Authorization: header Authorization: Bearer $token. Get token.

Request body: JSON with sections cluster and provider. provider uses caposNodeConfig and image parameters.

More details: API for cluster management.

Yandex Cloud

Prerequisites

  • Configured provider instance Yandex Cloud;
  • Images for the required versions of Kubernetes (with the --keep-cloud-init flag when creating a template using the stc utility);
  • VPC, subnets, security groups.

Note: KubeAPI and Ingress are usually delivered to external balancers Yandex Cloud; a separate IP pool of the cluster creation wizard, like VMware/oVirt, may not be used.

Process in GUI

Going to the wizard and selecting a provider with an instance is described at the beginning of the page. Next in the wizard for Yandex Cloud:

  1. Fill in basic data (basic or advanced mode): instance, platform version, if necessary DNS Ingress, information security, CIDR of pods/services, cluster profile.
  2. Configure Control Plane and Worker: platform type (VM size), disk type, CPU/RAM/disk, group scaling, node roles (see the screenshot below).
  3. Go through certificate installation, select services, data verification and create a cluster (see the screenshot below).

Provider instance configuration, see the illustration below.

Yandex Cloud configuration (prprovider)

New Cluster Wizard Fields

Step 1: Basic data

Basic and advanced mode (toggle switch “Show advanced settings”); When you switch to basic, the extended values are reset.

FieldWhy is it necessary
InstanceConfigured instance of the Yandex Cloud provider.
Platform VersionVersion of the Shturval platform from which the cluster will be installed
Version KubernetesVersion of Kubernetes in accordance with the selected platform version
Screenshot: basic data, basic mode

Yandex Cloud - basic data, basic mode

Basic mode: in addition to the name and instance, the platform version (compatible with Kubernetes in instance VM templates and the current platform; can be substituted automatically). Extended information security is not enabled; Ingress DNS record is cluster.shturval.link by default (cannot be edited in basic mode); CIDR of pods and services is the default.

Screenshot: extended master data

Yandex Cloud - extended master data

Advanced Mode

FieldDescription
DNS record IngressWildcard FQDN; final names *.<ingress-dns-record>. The Ingress DNS record is limited to 53 characters to ensure that the resulting commonName for cert-manager does not exceed the allowed length.
Set advanced information security settingsSecret Encryption, TLS connection to Kubelet and audit policy.
Pod subnet / service subnetShould not intersect with the network of nodes and with each other; see checking the intersection of subnets.
Cluster ProfileCluster Profiles.

The KubeAPI and Ingress addresses in the cloud are set through external Yandex Cloud balancers after the cluster resources become available (see FQDN and VIP).

Step 2–3: Node Configuration
Screenshot: Control Plane

Yandex Cloud — Control Plane

Control Plane parameterDescription
Number of nodesOdd value.
Platform TypeVM profile from the instance.
Disk TypeOf those available in copy.
DiskDefault 60 GiB (minimum for local storage); for production recomore is required.
CPU/memoryIn units of Gi or Mi; the UI has minimum restrictions.
Screenshot: Worker groups

Yandex Cloud - Worker groups

By default, two groups (default, infra) of three nodes each; manual/automatic scaling is available (the minimum number of replicas in the GUI is usually not lower than 2), copying and duplicating groups. In the group parameters: platform type, disk, CPU, memory, roles (separated by commas; node-role.kubernetes.io/... labels will appear on the nodes).

Screenshot: editing the Worker group

Yandex Cloud - Worker parameters

ParameterWhy is it necessaryRecommendations
Control Plane1 or 3 knots.For production - 3.
Worker: group defaultNodes for user applications.Minimum 2.
Worker: group infraNodes for system services: monitoring, logging, Ingress. Partitioning reduces resource competition with applications.0 or 3 for production.

Recommended resources: client cluster requirements.

Features of Yandex Cloud

  • IP Pool: Not used. Addresses are set through external Yandex Cloud balancers.
  • Images: When creating a template using the stc utility, be sure to use the --keep-cloud-init flag.
  • VPC: Subnets of pods and services should not overlap with VPC subnets and other clusters.

More information about common errors and checks - checking the intersection of subnets when creating a cluster.

API

Method: POST $BACKENDPOINT/api/v1/platform/providers/clusters/capyc

Authorization: header Authorization: Bearer $token. Get token.

Request body: JSON with sections cluster and provider. provider uses capycNodeConfig and image parameters.

More details: API for cluster management.

VMware vCloud Director

Prerequisites

  • Configured provider instance vCloud Director;
  • Catalogs, templates in the vCloud Director organization;
  • Pool of IP addresses.

Process in GUI

Going to the wizard and selecting a provider with an instance is described at the beginning of the page. Next in the wizard for vCloud Director:

  1. Fill in basic data (basic or advanced mode): instance, prova templateder, platform version, DNS Ingress if necessary, CSI, VIP subnets, pod/service, cluster profile.
  2. Configure Control Plane and Worker (SizingPolicy, DiskSize, scaling, roles).
  3. Go through certificate installation, select services, data verification and create a cluster. If you have an automatic naming scheme after creation, configure an external balancer in vCD for Ingress (see FQDN formula below).
Illustration: Process in GUI

Connect to vCloud Director

New Cluster Wizard Fields

Step 1: Basic data
FieldWhy is it necessary
InstanceAn instance with a configured vCloud Director (organization, directory).
Platform VersionVersion of the Shturval platform from which the cluster will be installed
Version KubernetesVersion of Kubernetes in accordance with the selected platform version

Basic mode: in addition to the name and instance - the provider template, platform version and, if necessary, CSI. Extended information security is not enabled. FQDN Ingress default:

*.<cluster-name>.ip-<IP_EXTERNAL_LB>.shturval.link,

where IP_EXTERNAL_LB is the VIP of the external Ingress balancer in vCloud Director. Pod and service subnets are default values.

Advanced mode (toggle switch “Show advanced settings”):

Screenshot: extended master data

vCloud Director - extended master data

FieldDescription
DNS record IngressWildcard FQDN → *.<DNS>; if empty, the automatic formula with IP_EXTERNAL_LB applies. The Ingress DNS record is limited to 53 characters to ensure that the resulting commonName for cert-manager does not exceed the allowed length.
Provider TemplateOne template is automatically selected when there is only one option.
Enable CSI IntegrationIncludes vCloud Director CSI for Persistent Volumes. The default is no. Not available if the provider instance does not allow CSI to be installed.
Set advanced information security settingsSecret Encryption, TLS connection to Kubelet and audit policy.
Pod subnet / service subnetCIDR; check intersections - check subnet intersections.
Enable CSI IntegrationUnless prohibited by the template; permissions in vCenter - see vSphere.
kubeAPIVIPSubnetThe subnet from which the IP for KubeAPI is selected.
Cluster ProfileCluster Profiles.

Note: If the IP pool is not bound, set the addresses for management access to the cluster and Ingress manually, taking into account the host subnets.

Step 2–3: Node Configuration

The template is set at the “Basic data” step.

Screenshot: Control Plane

vCloud Director - Control Plane

Control Plane parameterDescription
Number of nodesOdd value.
DiskSizeDisk capacity (Gi or Mi); by default 60 GiB, not lower than the minimum in the UI.
SizingPolicyCPU/RAM policy from the vCD list.
Screenshot: Worker groups

vCloud Director - Worker groups

The default groups are default and infra; manual/automatic scaling, DiskSize, SizingPolicy, roles (comma separated, labels node-role.kubernetes.io/...).

ParameterWhy is it necessaryRecommendations
Control Plane1 or 3 knots.For production - 3.
Worker: group defaultNodes for user applications.Minimum 2.
Worker: group infraNodes for system services: monitoring, logging, Ingress. Partitioning reduces resource competition with applications.0 or 3 for production.

Recommended resources: client cluster requirements.

Features of vCloud Director

  • Directories: VMs are created in the vCloud Director organization directories.
  • Templates: Prepared according to single instructions.
  • CSI: “Allow CSI” is configured on the provider instance. If installation is allowed, vCloud Director CSI integration can be enabled in the Basic Data step.
  • Network: DHCP must be enabled on the selected network.

API

Method: POST $BACKENDPOINT/api/v1/platform/providers/clusters/capcd

Authorization: header Authorization: Bearer $token. Get token.

Request body: JSON with sections cluster and provider. provider uses the configuration for vCloud Director.

More details: API for cluster management.

Basis Dynamix

Prerequisites

  • Configured provider instance Basis Dynamix;
  • Templates or images for timesturning knots.

Note: Master IP pool, like vSphere/oVirt, is usually not used - Ingress is configured through an external balancer in Basis Dynamix after the cluster is created.

Process in GUI

Going to the wizard and selecting a provider with an instance is described at the beginning of the page. Next for Basis Dynamix:

  1. Fill in basic data (basic or advanced mode): instance, platform version, external LB, DNS Ingress, information security, CIDR of pods/services, cluster profile.
  2. Configure Control Plane and Worker (CPU, RAM, disk, scaling).
  3. Go through certificate installation, select services, data verification and create a cluster. In the Basis Dynamix panel, add the balancer frontend for CLUSTERNAME-ingress-backend, port 30443 (see below).
Screenshot: master master data (see the screenshot below).

Basis Dynamix - basic data

Basis Dynamix instance configuration

New Cluster Wizard Fields

Step 1: Basic data

Basic and advanced mode; When switching to basic, the extended fields are reset.

Basic Mode

FieldDescription
InstanceWhen there is one instance, it is selected automatically.
Platform VersionVersion of the Shturval platform from which the cluster will be installed
Version KubernetesVersion of Kubernetes in accordance with the selected platform version

Extended information security is not enabled; CIDR of pods and services is the default. IP Ingress will be received after creation: in Network → Balancers → Schema tab → frontend for CLUSTERNAME-ingress-backend, port 30443.

Advanced Mode

FieldDescription
External balancer for IngressAfter creating the cluster, configure LB and frontend as in basic mode.
DNS record IngressWildcard FQDN → *.<ingress-dns-record>. The Ingress DNS record is limited to 53 characters to ensure that the resulting commonName for cert-manager does not exceed the allowed length.
Set advanced information security settingsSecret Encryption, TLS connection to Kubelet and audit policy.
Pod subnet / service subnetRecommended ranges are 172.16.0.0/16 and 10.96.0.0/12; check intersections - check subnet intersections.
Clast profileeraCluster Profiles.
Step 2–3: Node Configuration

The template is specified in the instance and in the master data step of the wizard.

Screenshot: Control Plane

Basis Dynamix - Control Plane

Control Plane parameterDescription
Number of nodesOdd, no more than 5.
CPU/memory/diskThe default is close to the minimum requirements; there are lower limits in the UI.
Screenshot: Worker groups

Basis Dynamix - Worker groups

Groups default and infra, manual/automatic scaling, copying settings. 0 nodes in group - MachineDeployment without nodes until further scaling.

Screenshot: Worker parameters

Basis Dynamix - Worker parameters

ParameterWhy is it necessaryRecommendations
Control PlaneOdd number.Up to 5 knots.
Worker: group defaultNodes for user applications.Default is 3.
Worker: group infraNodes for system services: monitoring, logging, Ingress. Partitioning reduces resource competition with applications.0 or 3 for production.

Recommended resources: client cluster requirements.

Features of Basis Dynamix

  • IP Pool: Not used. Addresses are set through external balancers.
  • External LB: Be sure to configure the Load Balancer in Basis Dynamix after creating the cluster.
  • Templates: Prepared according to single instructions.

API

Method: POST $BACKENDPOINT/api/v1/platform/providers/clusters/capbd

Authorization: header Authorization: Bearer $token. Get token.

Request body: JSON with sections cluster and provider. provider uses the configuration for Basis Dynamix.

More details: API for cluster management.


Master steps common to all providers

After provider-specific steps (master data and nodes), the Create Cluster wizard for all infrastructure types involves installing a certificate, selecting services, and validating data.

Step 5: Install the certificate

Screenshot of the “Certificate” step

Certificate installation step when creating a cluster

OptionWhen to use
Self-signedTest and internal scenarios; the browser shows a warning. No additional configuration required.
IntermediateYour intermediate CA: upload the PEM chain and private key (file or text).
ACMEExternal ACME server: root CA, server URL with port and path. If the ACME server fails, clusters with such a certificate may become unavailable - monitoring is required.
CorporatePEM chain and Ingress key issued by your CA or self-signed under the Ingress domain.
Let’s EncryptAccount email; root Let’s Encrypt is substituted automatically; default server https://acme-v02.api.letsencrypt.org/directory.

For the first cluster, a self-signed certificate is often chosen.

Note: The certificate can be changed after deployment (ClusterIssuer, corporate certificate upload, etc.). Issuers installed when creating a cluster are available in the cluster administration section (ClusterIssuers).

Additional screenshots on certificate types (for reference)

Self-signed certificate

Intermediate certificate

Additional screenshots on certificate types (for reference) in the platform GUI

Corporate certificate

Let&rsquo;s Encrypt

Step 6: Selecting services

Note: Critical services are always enabled and cannot be disabled. These include network components, VIP, local storage, management and update services, key CRDs (for example, shturval-networking, shturval-local-csi, shturval-snapshotter, shturval-node-config, shturval-services, shturval-update, shturval-vip, shturval-vip-provider, shturval-caching-dns, shturval-cert-manager, shturval-trust-manager).

In basic mode services are selected by quick installation groups:

GroupDescriptionBasic services of the group (examples)
MonitoringCollection, export of metricsshturval-metrics-collector, shturval-cert-expiration
LoggingLocal collection and processing of logsshturval-log-collector
Backup and RestoreBackup and working with snapshotsshturval-backup, shturval-snapshotter
Application DeliveryContinuous Delivery and Advanced Deployment Strategiesshturval-cd, shturval-rollouts
Load balancerkiLoad and Traffic Relocation Componentsshturval-gateway-api-crds, shturval-descheduler
Information Security ToolsConfiguration analysis and image scanningshturval-policy-manager, shturval-scanner

In the advanced settings mode, you can select individual services. When you switch between Basic and Advanced mode, the selection you made in the step is reset.

Screenshots: basic and advanced selection of services

Selecting services by group

Extended selection of services

Note: if you enable a service with dependencies, the platform automatically marks the necessary dependent services.

For the full composition of groups and a list of charts, see the page “Shturval Repository Services” and the section “Installing services during cluster deployment”.

At the wizard step, it is recommended to enable Monitoring (Victoria Metrics, Grafana, dashboards) and Logging (Vector). If necessary - Backup and recovery (Velero), Application Delivery (Argo CD), Information Security Tools (Kyverno, Trivy) or Load Balancer (Descheduler, Ingress, CoreHA). Services from the Critical services group (networks, VIP, local storage, cert-manager, shturval-services, etc.) are always enabled and cannot be disabled.

Data verification and cluster creation

The last step displays a summary of all parameters in reading mode. To correct the values, go to the step name in the left panel or click Back. You can check the cluster configuration before creation - start cluster deployment in dry_run mode. After successful verification, click Create Cluster to start the deployment.

When checking the configuration, a namespace with the name of the cluster is created. Once the scan is completed, it is deleted automatically. Removal may take several minutes; in this case, a warning will appear in the GUI when starting cluster creation. Wait until the namespace is completely removed and restart the cluster deployment.

Screenshots: launch and results of checking parameters before creating a cluster

How and where to run the check, see the illustration below.

How and where to run the check

Trying to initiate a cluster without checking, see the illustration below.

Pexperience to initiate a cluster without checking

Waiting for verification, see the illustration below.

Waiting for check

If the test results in an error, you will see it in the upper right corner of the screen, see the illustration below.

Check failed

If the check is successful, see the illustration below.

Check passed

Track deployment status

For a detailed description of the status block, stages, node and service tables, see Cluster deployment status.

  • Cluster creation takes up to 60 minutes.
  • Open Cluster → Client Clusters, select the name of the cluster to be created; before deployment is completed, the status is also on the Administration page → Dashboard (see Dashboard before deployment is completed).
  • The cluster dashboard displays the “Cluster deployment status” block with the stages of creating a VM or preparing hosts, bootstrap, installing Kubernetes, applying NCI and installing services.
  • By clicking on a stage, the “State” block opens with detailed conditions and tables of the selected stage.
  • Status will change to Ready when the infrastructure is ready and all Control Plane and Worker nodes are up. NCI and service installation steps do not affect the final status; when moving to Ready early, check the NCI and services separately (see the Client Cluster section in the status reference).
  • How the platform receives nodes (templates, images or Shturval v2 hosts), how this relates to Cluster API and VIP pools, see Creating nodes when deploying a client cluster and What happens under the hood.

What to expect by time:

  • VM creation: 5–15 min
  • Installation of Kubernetes: 10–20 min
  • Installation of services: 5–15 min

For more information about the stages of installing services, see Installing services during the deployment process (including the section on tracking installation).


What to do if there is an error

  1. View the error message on the cluster dashboard (condition, events).
  2. Check troubleshooting - typical causes and solutions.
  3. Check subnet intersection when creating a cluster - if the error is related to the network.
  4. Check the logs - “Logs” tab of the cluster dashboard or Grafana.

After successful creation

  1. Download kubeconfig - arrow next to the nameuser → Download Kubeconfig (select the created cluster).
  2. Check access: kubectl --kubeconfig=dev-cluster.conf get nodes
  3. Set up monitoring and alerting - see Cluster status monitoring.
  4. Assign access rights to users - Assign access rights.

Help information

TopicPage
Deployment StatusCluster deployment status
Creating nodes (templates, images, hosts, CAPI)Creating nodes when deploying a client cluster
Installing services in the wizardInstalling services during cluster deployment
Cluster APIAPI for cluster management
IP PoolsIP Pools
FQDN and VIPFQDN or VIP Features for KubeAPI and Ingress
Deployment PipelineWhat happens under the hood when deploying a cluster
Deployment without GUIHow to deploy a cluster without GUI
External etcdCreate a cluster with external ETCD
Cluster ProfilesWhat are cluster profiles and how to work with them