Skip to main content

Control Plane Configuration

The Control Plane configuration is a critical component of the cluster setup, specifically designed for self-hosted Kubernetes clusters using the selfHosted provisioner type. It defines the configuration parameters for the control plane of the cluster for the selfHosted provisioner type.

Note

The Control Plane configuration is only required for the selfHosted provisioner type. For managed clusters, the control plane is owned by cloud providers.

Configuration Requirements

  • The controlPlane configuration must contain at least one nodeGroup.
  • The nodeGroup configuration must have a valid name, minNode, maxNode, and machineTypes.
  • The instanceType must be either ondemand or spot.
  • The availabilityZones list must be empty or contain at least one availability zone.

Node Groups

A Node Group represents a group of nodes in the cluster. It has the following configuration options:

  • name: The name of the node group, which must be a valid DNS name and be between 1 and 50 characters long.
  • minNode: The minimum number of nodes in the group.
  • maxNode: The maximum number of nodes in the group.
  • machineTypes: A list of machine types for the nodes in this group. The list must contain at least one machine type.
  • labels: A map of labels to be applied to the nodes in this group. The map must contain at least one label.

For more information please refer the API documentation for the API Reference and look for the controlPlane section in clusterSpec.

Example Node Group Configuration

Here is an example of a NodeGroup configuration:

controlPlane:
nodeGroup:
name: control-plane
machineTypes:
- t3.medium
minNode: 1
maxNode: 1
Note

Only ondemand instance type is supported for the control plane.

Selection of Availability Zones

The platform will select the availability zone based on the region. It will always select the first three availability zones for the region if available. The platform tries to deploy production ready clusters in the selected availability zones.

Retrieving Regions and Availability Zones

To retrieve a list of available regions and availability zones, use the astroctl cloud commands. For example, to list AWS regions:

List AWS regions
astroctl cloud aws regions list
List zones in an AWS region
astroctl cloud aws regions zones list -r us-west-2

Retrieving Machine Types

To retrieve a list of available machine types, use the provider-specific machine command. For example, to get AWS machine types in us-west-2 with 2-4 CPUs:

astroctl cloud aws machines list -r us-west-2 --cpuMin 2 --cpuMax 4

For more information, see the cloud CLI reference.