Cluster deployment status

Status block on the cluster dashboard before deployment is completed.

Cluster deployment contains several steps, see the illustration below.

Steps under the hood

After starting creating a client cluster or installing a management cluster, the progress of work is displayed in the “Cluster deployment status” block. Data is updated automatically.

The block is available until deployment is complete. The stages are shown at the top, and below is the “State” block with details of the selected stage. The stages are not necessarily performed strictly sequentially: some checks and operations can occur in parallel.

Screenshots: changing the cluster deployment status

Cluster deployment steps, see the illustration below.

Cluster deployment statuses

For detailed information, click on the step icon. Detailed information will be displayed under the status feed. An example of the step taken, see the illustration below.

Cluster deployment statuses

Example of a stage in the process, see the illustration below.

Cluster deployment statuses

StageWhat is displayed on the dashboard
Resources createdThe initial stage of preparing cluster resources
Cluster infrastructure is readyReadiness of cluster infrastructure resources
Control Plane nodes initializedList of Control Plane nodes and their states
Worker nodes createdList of Worker nodes by groups and their states
NCI appliedApplication of node configurations (NCI) and count of nodes where configuration is applied
System services installedList of Shturval repository services and their installation status
Cluster readyFinal Deployment Status

Color indication of stages

The color indication of the stages shows the current status:

Stage statusIndication
Stage successfully completedGreen color
Stage in progressYellow color
Stage not yet launchedGray color
The stage ended with an errorRed color

Deployment steps

Resources created

At this stage, the namespace of the client cluster in the management cluster and the ClusterInfo object are created.

Cluster infrastructure is ready

At this stage, Cluster Manager waits for condition InfrastructureReady:true to appear in the Cluster API controller. This means that the controller has successfully contacted the infrastructure provider.

Control Plane nodes are initialized

At the “Initializing Control Plane Nodes” stage the Control Plane nodes table is displayed.

ColumnDescription
NameNode name. Filtering is available by column.
IP addressThe host’s IP address, if it has already been obtained.
State Cluster API MachineConditions of the Cluster API Machine resource.
Node StateConditions Kubernetes node. When clicked, additional information opens.
StatusNode Status

The number of raised Control Plane nodes and the total number are displayed.

Cluster API Machine objects are located in the management cluster; the Node object appears in the target cluster after successfully raising the bootstrap machine and registering the kubelet.

Worker nodes created

At the “Creating Worker nodes in groups” stage, Worker nodes are displayed by node groups.

ColumnDescription
NameNode name. Filtering is available by column.
IP addressThe host’s IP address, if it has already been obtained.
State Cluster API MachineConditions of the Cluster API Machine resource.
Node StateConditions Kubernetes node. When clicked, additional information opens.
StatusNode Status

The number of raised and total number of Worker nodes is displayed.

NCI applied

At the “Applying NCI to nodes” stage (in the stage table - NCI applied), a list of default node configurations (NodeConfigItem, NCI) is displayed for use by the operator shturval-node-config.

ColumnDescription
NameNCI object name (for example, controlplane-init-config, controlplane-oidc-nci, generic-init-config).
Customized sectionsList of configured configuration sections within NCI: Files, Users, KubeAPIServer, Packages, RuntimeCfg, Sysctl, SystemdUnits and other configuration sections.
Node selectorLabels by which nodes are selected to apply the configuration.
Applied on nodesThe ratio of the number of nodes on which the configuration has already been applied to the number planned for application, in the format successful/total (for example, 1/1, 4/4).

After deployment is completed, the list of NCIs is available in the Administration section →Node Configuration (see Node Configuration (NCI)).

System services installed

Two installation steps

Cluster Manager installs the ShturvalServiceCofings and ShturvalServicePatches objects according to the service selection and features provided in the ClusterProfile.

Installation of services is carried out in two stages:

  1. Critical services are installed first. They cannot be disabled. For the management cluster, this is, in particular: shturval-backend, shturval-frontend, shturval-auth, network components, shturval-local-csi and other services from the “Critical Services” group.
  2. Selected at the “Select services” step - installed after critical ones.

The “Installing Shturval repository services” stage is considered completed only after installing the critical ones and those selected at the “Selecting services” step.

Services not selected during creation

Some CRD services that were not selected for automatic inclusion:

  • Installed into the cluster during the deployment process;
  • Remains disabled;
  • Available in the Services and repositories section → Installed services.

This is how the preliminary configuration is performed. The next time you enable the service, you will not need to manually configure it—just enable it in the GUI. After deploying the cluster, you can install additional services. More details in the instructions how to deploy a new service.

Parameters of selected services

The selected services are installed with:

  • Version — latest (for this platform version);
  • Mode — automatic control (auto);
  • Instance name takes the Russian-language name of the service instance specified in the chart annotation.

The composition, versions and grouping of services depend on the version of the Shturval platform. The current list of Shturval repository services, their quick installation groups and roles is given on the page “Shturval Repository Services”.

If an error occurs when installing or updating a service, a message is displayed in the conditions phase of the deployment status.

After deployment

At the “Installing Shturval repository services” stage a list of services is displayed.

ColumnDescription
Service nameService name (for example, shturval-auth, shturval-capi, shturval-capi-crds).
Chart nameThe name of the Helm chart that you for the service is being shut down.
NamespaceNamespace in which the service is installed (for example, shturval-backend, capi-system).
StatusService installation status in the platform.
StateConditions for installing the service. Clicking opens detailed information on condition.
CriticalIndicates whether the service is critical to the operation of the platform. Shturval repository services

Possible values in the “Status” column:

Status labelDescriptionValue in data
InstalledThe service is installed and runningworking
Not startedInstallation not yet startednotstarted
Not installedThe service is not installed; an installation error occurredundefined

Under the hood

Creating nodes

Between clicking Create Cluster and the cluster becoming Ready, the platform gets the cluster nodes: infrastructure machine or host, then installs Kubernetes. For step-by-step wizard fields, see details of installation wizard steps.

The Shturval platform has two models for preparing nodes:

For virtualization and cloud providers, the platform, through the appropriate CAPI provider, requests the environment to create a host infrastructure from the specified template or image (in provider-specific terms). The platform does not prepare templates itself: preparation of the OS and the stc utility, association of the Kubernetes version with the template and adding the template to the instance are described on the page Preparing the provider template.

When creating a VM from a template, the platform autonomously installs Kubernetes of the selected version. The VM template stores the OS and associated disk limits, but **does not store the CPU/RAM resources of the original VM, i.e. when creating a VM from a template, the Cluster API provider requests resources from the infrastructure provider in the amount specified by the administrator when initializing the cluster.

After the cluster is deployed, the administrator can also override the node template settings using the InfraMachineTemplate resource. This resource is stored in the management cluster and does not create a template (image) on the virtualization (or cloud) side.

For the Shturval v2 provider, nodes are already allocated physical hosts or existing VMs with a supported OS and SSH access; cloning template is not used. The platform deploys Kubernetes directly on the hosts selected in the provider instance. In this case, the InfraMachineTemplate of this provider is the association of a group of nodes with the hosts of the provider instance using labels.

Custom resources

Cluster API (CAPI) and infrastructure provider objects describe the desired and actual state of the cluster and nodes; these custom resources are located in the management cluster. The Node object appears in the target cluster after the bootstrap machine is raised and the kubelet is registered.

View in GUI: Custom resources in the platform. The hierarchy and roles of the main types are in the tables below. For owner/dependent relationships in CAPI terms, see Cluster API (owner references) documentation.

Infrastructure machine templates by provider: InfraMachineTemplate. Self-healing of nodes: MachineHealthCheck.

CAPI core in the platform: Cluster API Provider (shturval-capi). Infrastructure providers: vSphere (shturval-capvs), oVirt (shturval-capov), OpenStack (shturval-capos), Shturval v2 (shturval-capsm), Basis Dynamix (shturval-capbd), Yandex Cloud (shturval-capy), vCloud Director (shturval-capvcd). Setting up provider instances in the UI: How to work with providers.

Diagram of node creation using Cluster API resources

Listed below are the API and Kind groups used for the node lifecycle.

cluster.x-k8s.io

Custom resourcePurposeRole in the node life cycleWhere more details
ClusterRoot CAPI object representing the client Kubernetes clusterStores links to the infrastructure cluster, Control Plane and groups of Worker nodesCluster API
ClusterClassTemplate model for describing clusters of the same typeNot used in the Shturval platformCluster API documentation
MachineRepresentation of a single machine/node in a CAPI modelLinks the bootstrap configuration and the infrastructure machine; after bootstrap gets a connection with Kubernetes NodeCluster API
MachineDeploymentDeclarative management of a group of Worker nodesSets the desired number of Worker nodes and templates for creating Machine, BootstrapConfig and InfraMachineCluster API
MachineDrainRuleRules for draining machines during maintenance or removalAffects the order of evacuation of workloads from the node; details depend on CAPI versionCluster API documentation
MachineHealthCheckPolicy for automatic recovery of inoperative MachineMonitors the status of nodes and can initiate replacement MachineMachineHealthChecks
MachinePoolModel of a group of machines as a single poolNot used in the Shturval platformCluster API documentation
MachineSetSet of similar Machines according to templateMachineDeployment is created and supports the required number of Worker MachinesCluster API

controlplane.cluster.x-k8s.io

Custom resourcePurposeRole in the node life cycleWhere more details
KubeadmControlPlaneControl Plane control object based on kubeadmCreates and maintains Machine for Control Plane nodesCluster API
KubeadmControlPlaneTemplateKubeadmControlPlane TemplateUsed to create a KubeadmControlPlane from a templateCluster API documentation

bootstrap.cluster.x-k8s.io

Custom resourcePurposeRole in the node life cycleWhere more details
KubeadmConfigBootstrap configuration for one MachineGenerates data for kubeadm init / kubeadm join and a secret that is used when preparing the nodeCluster API
KubeadmConfigTemplateBootstrap configuration templateUsed by MachineDeployment and other objects to create KubeadmConfig when new MachineCluster API

infrastructure.cluster.x-k8s.io

Below are infrastructure CRs for the providers supplied in the platform. Detailed help on oVirt and Shturval v2 is provided on the service pages shturval-capov and shturval-capsm.

Basis Dynamix

Custom resourcePurposeRoleWhere more details
BasisProviderBasis Dynamix Connection/Provider ConfigurationUsed to work with a specific environment Basis Dynamixshturval-capbd
BasisClusterCluster infrastructure object in Basis DynamixAssociates a Cluster object with a provider infrastructure contextshturval-capbd
BasisMachineOne VM/machine in Basis DynamixInfrastructure part Machine; the provider creates or maintains a VM on itshturval-capbd, InfraMachineTemplate
BasisMachineTemplateBasisMachine Parameter TemplateUsed CAPI to create new BasisMachines in node groupsInfraMachineTemplate

oVirt

Also relevant for zVirt, oVirt, HostVM, RED Virtualization, ROSA Virtualization

Custom resourcePurposeRoleWhere more details
OVirtProviderConnection parameters to oVirt EngineGives access to the oVirt API for creating and maintaining VMsshturval-capov (CRD directory)
OVirtClusterCluster infrastructure object in oVirtStores the endpoint control plane and connects the Cluster with the oVirt infrastructureshturval-capov
OVirtMachineOne VM in oVirtInfrastructure part Machine; creates a VM from a template and sets ProviderIDshturval-capov
OVirtMachineTemplateOVirtMachine Parameter TemplateUsed by MachineDeployment or KubeadmControlPlane to create OVirtMachineInfraMachineTemplate

OpenStack

Also relevant for VK Cloud, Selectel

Custom resourcePurposeRoleWhere more details
OpenStackClusterCluster infrastructure object in OpenStackAssociates CAPI Cluster with project, network and endpoint in OpenStackshturval-capos
OpenStackClusterTemplateOpenStackCluster TemplateUsed when creating a template infrastructure clustershturval-capos
OpenStackMachineOne VM in OpenStackInfrastructure part Machine; the provider creates and maintains the instanceshturval-capos
OpenStackMachineTemplateOpenStackMachine Options TemplateUsed CAPI to create new OpenStackMachines in node groupsInfraMachineTemplate
OpenStackFloatingIPPoolFloating IP pool in the OpenStack provider modelCan be used by the provider to manage external addresses; details depend on CAPOS versionshturval-capos
OpenStackServerOpenStack server/instance object in the provider modelReflects the infrastructure essence of the provider; details - in the CRD of the specific version of CAPOSshturval-capos

Shturval v2

Custom resourcePurposeRoleWhere more details
ShturvalProviderGlobal SSH host configuration, version, registry and credentialsCreates and maintains ShturvalHost for addresses from the provider’s configurationshturval-capsm
ShturvalHostDescription of the physical host or existing VMValidated and provisioned via SSH, then can be linked to ShturvalMachineshturval-capsm
ShturvalClusterCluster infrastructure object for Shturval v2Associates CAPI Cluster with provider configuration and cluster endpointshturval-capsm
ShturvalMachineInfrastructure machine Shturval v2Selects the appropriate ShturvalHost, executes bootstrap and sets ProviderIDshturval-capsm
ShturvalMachineTemplateShturvalMachine Parameter TemplateDescribes a host selector for a group of hostsInfraMachineTemplate
ShturvalManualClusterReinfrastructure provider resource Shturval v2The purpose depends on the CRD version; use the provider’s service helpshturval-capsm
ShturvalManualMachineInfrastructure provider resource Shturval v2The purpose depends on the CRD version; use the provider’s service helpshturval-capsm

VMware vCloud Director

Custom resourcePurposeRoleWhere more details
VCDClusterCluster infrastructure object in vCloud DirectorAssociates CAPI Cluster with vCD contextshturval-capvcd
VCDClusterTemplateVCDCluster TemplateUsed when creating a template infrastructure clustershturval-capvcd
VCDMachineOne VM in vCloud DirectorInfrastructure part Machine; the provider creates and maintains the VMshturval-capvcd
VCDMachineTemplateVCDMachine Parameters TemplateUsed CAPI to create new VCDMachines in node groupsInfraMachineTemplate

VMware vSphere

Custom resourcePurposeRoleWhere more details
VSphereClusterCluster Infrastructure Object in vSphereLinks CAPI Cluster to VMware vSphere infrastructureshturval-capvs
VSphereClusterIdentityCredentials or identity for accessing VMware vSphereUsed by the provider for authentication in vCentershturval-capvs
VSphereClusterTemplateVSphereCluster TemplateUsed when creating a template infrastructure clustershturval-capvs
VSphereDeploymentZonePlacement area in the CAPVS modelHelps describe where to place machines; details depend on CRD providershturval-capvs
VSphereFailureDomainFailure Domain in the CAPVS ModelUsed to distribute machines across fault-tolerant domains, if configuredshturval-capvs
VSphereMachineOne VM in VMware vSphereInfrastructure part Machine; the provider creates and maintains the VMshturval-capvs
VSphereMachineTemplateVSphereMachine Options TemplateUsed CAPI to create new VSphereMachines in node groupsInfraMachineTemplate
VSphereVMVM objectin the CAPVS modelReflects VMware vSphere VMs at the provider level; details - in the CRD of the specific CAPV versionshturval-capvs

Yandex Cloud

Custom resourcePurposeRoleWhere more details
YandexClusterCluster infrastructure object in Yandex CloudLinks CAPI Cluster to cloud infrastructureshturval-capy
YandexIdentityAccount/identification data for Yandex CloudUsed by the provider to access the cloudshturval-capy
YandexMachineOne VM in Yandex CloudInfrastructure part Machine; the provider creates and maintains the VMshturval-capy
YandexMachineTemplateYandexMachine parameters templateUsed CAPI to create new YandexMachines in node groupsInfraMachineTemplate

IPAM (CAPI)

Custom resourcePurposeRoleWhere more details
IPAddressIndividual IP Address Object in the IPAM CAPI ModelCan be used by CAPI/providers to keep track of issued addresses; details depend on IPAM providerCluster API Provider, Cluster API documentation
IPPoolIP address pool in the IPAM CAPI modelSource of addresses for IPAddress objects, if the corresponding IPAM provider is usedCluster API Provider

Built-in resources Kubernetes

API groupResourcePurposeRoleWhere more details
coreNodeBuilt-in Kubernetes registered node objectAppears in the target cluster after bootstrap; CAPI Machine receives a link to NodeCluster API (Machine ↔ Node connection)
node.k8s.ioRuntimeClassBuilt-in Kubernetes selection object container runtime handlerNot used in the Shturval platformKubernetes documentation

Deployment errors

If an error occurs during the installation or cluster creation stage, the corresponding stage goes into error state (red indicatorand I). Details are in the conditions of the stage. Typical causes of errors: