Cluster deployment status

Deployment status on the cluster dashboard until deployment is complete.

Cluster deployment contains several steps, see the illustration below.

Steps under the hood

After you start creating a client cluster or installing the management cluster, progress is shown on the dashboard in the Cluster deployment status block. The data is updated automatically.

The dashboard stays available until deployment is complete. It shows the overall progress and how the details of each stage change. Stages do not run strictly one after another: some checks and operations can run in parallel.

While the cluster is being deployed, conditions that have not succeeded yet are shown next to the cluster name. Click Show details to open the full list of conditions and see the details.

The deployment block shows:

  • the infrastructure provider of the cluster being deployed;
  • the platform version;
  • the Kubernetes version;
  • the time of the last data update, during management cluster installation;
  • the overall deployment progress based on stages that have completed successfully.

During management cluster installation, once the control plane is initialized and the API server address is known, you can access the management cluster with kubeconfig. Download it with Download Kubeconfig.

How stages are displayed

StateDescription
ReadyThe stage has completed successfully.
In progressThe stage is running. Details are updated every 5 seconds.
WaitingThe stage has not started. There are no details for it yet.
Terminal errorThe stage failed, and cluster installation cannot continue. See the error reason and message.

The Show stage details dynamically switch controls how stage details are shown:

  • when the switch is off (the default), only the overall progress and the stage status are shown, and the details stay hidden. Click a stage to expand it and see the details;
  • when the switch is on, stages that are in progress or have a terminal error are expanded. Their details are refreshed as deployment data is updated;
  • in both modes, successfully completed stages are grouped in the Ready block;
  • in both modes, stages that are still waiting stay collapsed.

To show the full details of every deployment stage, click Expand all. To hide them, click Collapse all.

The Cluster ready stage is not included in the shared block of completed stages.

Deployment steps

Resources created

The resources required for deployment are created. For a client cluster, these are its namespace in the management cluster and the ClusterInfo object.

Cluster infrastructure ready

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

Control Plane nodes initialized

This stage shows the Control Plane nodes: their addresses, statuses, and conditions of the Cluster API Machine, InfrastructureMachine, and Node objects.

Details are grouped on two levels: first by group, then by node. Each node is a separate block. Its header shows:

  • name;
  • IP address;
  • hostname;
  • readiness status.

Nodes that are still being prepared for the cluster stay visible in the stage and are updated as deployment data changes. The changes are shown on the screen.

Nodes that have been prepared successfully, and individual objects that are ready, are collapsed automatically and leave the stage view, so you can follow the deployment. You can open the details when you need them.

For each Cluster API Machine, InfrastructureMachine, and Node object, the stage shows the name, state and its status, the reason, a message with the details, and the time of the last state change.

Cluster API Machine and InfrastructureMachine objects are in the management cluster. The Node object appears in the target cluster after the machine is prepared and kubelet registers.

Worker nodes created

This stage shows the Worker nodes: their addresses, statuses, and conditions of the Cluster API Machine, InfrastructureMachine, and Node objects.

Details are grouped on two levels: first by group, then by node. Each node is a separate block. Its header shows:

  • name;
  • IP address;
  • hostname;
  • readiness status.

Nodes that are still being prepared for the cluster stay visible in the stage and are updated as deployment data changes. The changes are visible immediately.

Nodes that have been prepared successfully, and individual objects that are ready, are collapsed automatically and leave the stage view, so you can follow the deployment. You can open the details when you need them.

For each Cluster API Machine, InfrastructureMachine, and Node object, the stage shows the name, state and its status, the reason, a message with the details, and the time of the last state change.

Cluster API Machine and InfrastructureMachine objects are in the management cluster. The Node object appears in the target cluster after the machine is prepared and kubelet registers.

NCI applied

The shturval-node-config operator applies the default NodeConfigItem (NCI) configurations to each cluster node:

ColumnDescription
NameNCI name, for example controlplane-init-config, controlplane-oidc-nci, or generic-init-config.
Configured sectionsConfiguration sections set in the NCI: Files, Users, KubeAPIServer, Packages, RuntimeCfg, Sysctl, SystemdUnits, and other sections.
Node group nameThe group the node belongs to.
Node nameThe node the NCI is applied to.
StateHow the NCI is applied to the node.
ReasonA short reason for the current state.
MessageDetails of the state or error.
Status received atTime of the last state change.

After deployment, the NCI list is available under Administration → Node configuration.

System services installed

The stage lists the Shturval repository services and shows how their installation is progressing.

Cluster Manager creates ShturvalServiceConfig objects and ShturvalServicePatch (SSP) objects according to the selected services and the ClusterProfile settings. Critical services are installed first, then the services selected when the cluster was created. The stage finishes after both groups are installed.

Services are installed in two steps:

  1. Critical services are installed first. They cannot be turned off. For the management cluster these include shturval-backend, shturval-frontend, shturval-auth, network components, shturval-local-csi, and other services from Critical services.
  2. Services selected at Select services are installed after the critical ones.

The stage finishes only after the critical services and the services selected at Select services are installed.

Services not selected during creation

Some service CRDs that were not selected for automatic enablement:

  • are installed in the cluster during deployment;
  • stay disabled;
  • are available under Services and repositories → Installed services.

This prepares the service in advance. When you enable it later, you do not configure it by hand: turn it on in the interface. After the cluster is deployed, you can install more services. See how to deploy a new service.

Parameters of the selected services

Selected services are installed with:

  • Version — latest for this platform version;
  • Mode — automatic management (auto);
  • Instance name — the service instance name from the chart annotation.

The set, versions, and grouping of services depend on the Shturval platform version. The current list of Shturval repository services, their quick-install groups, and their roles is on Shturval repository services.

If a service fails to install or update, the message is shown in the stage conditions.

The stage header shows how many critical services are installed, as installed/total, and the table shows:

ColumnDescription
Service nameName of the service.
Chart nameName of the Helm chart used to deploy the service.
CriticalWhether the service is critical for the platform. See Shturval repository services.
StatusInstallation result: Installed, Not running, Error, or Not installed.
ReasonReason and message from the latest service condition.
Status received atTime of the last condition change.

You can search by text, filter by status and criticality, and sort by the time the state was received. The column settings button can hide optional columns. Service name is always shown.

What the services do is described on Shturval repository services. After deployment, manage them under Services and repositories → Installed services.

Replication

If this stage is part of the deployment, its conditions are shown.

Cluster ready

This is the final deployment state. When the management cluster is being installed, a static kubeconfig is available for download, and a URL opens the platform interface.

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 while the cluster is being installed or created, the stage becomes a terminal error. The reason and message are in the stage conditions. Typical causes: