Skip to main content

Data Plane Configuration

The Data Plane configuration is a crucial part of the cluster setup. It defines the configuration for the data plane of the cluster.

Configuration Requirements

  • The dataPlane 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 default value is ondemand.
  • The availabilityZones list must be empty or contain at least one availability zone. This is optional field and not required for EKS clusters.

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.
  • 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.
  • labels: A map of labels to be applied to the nodes in this group. This is optional field.
  • taints: A list of taints to be applied to the nodes in this group. This is optional field.
  • instanceType: The type of instance, which can be either ondemand or spot. The default value is ondemand.
  • availabilityZones: A list of availability zones. If empty, the platform will select the availability zones based on the region and provider.

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

Example Node Group Configuration

Here is an example of a NodeGroup configuration:

dataPlane:
nodeGroups:
- name: example-group
minNode: 3
maxNode: 5
machineTypes: ["m5.xlarge", "m5.2xlarge"]
labels:
"example-label": "example-value"
instanceType: ondemand

Supported Instance Types

The following instance types are supported:

  • ondemand: On-demand instances. For self-hosted clusters.
  • spot: Spot instances.

Retrieving Regions and Availability Zones

To retrieve a list of available regions and availability zones, you can use the astroctl command. For example, to get regions on AWS, you can run the following command:

Command to get all the regions for a AWS provider
$ astroctl providers regions get -p aws
astroctl providers regions list -p aws
ap-northeast-1
ap-northeast-2
ap-northeast-3
ap-south-1
ap-southeast-1
ap-southeast-2
ca-central-1
eu-central-1
eu-north-1
eu-west-1
eu-west-2
eu-west-3
sa-east-1
us-east-1
us-east-2
us-west-1
us-west-2
Command to get all the zones for a region for AWS provider
$ astroctl providers regions zones list -r us-west-2 -p aws
us-west-2a
us-west-2b
us-west-2c

Retrieving Machine Types

To retrieve a list of available machine types, you can use the astroctl command. For example, to get machine types in the us-west-2 region on AWS with a minimum of 2 CPUs and a maximum of 4 CPUs, you can run the following command:

$ astroctl providers machinetypes get -r us-west-2 -p aws --cpuMax 4  --cpuMin 2
MACHINE_TYPE CATEGORY VCPU MEMORY (MB) SPOT_PRICE/HOUR ON_DEMAND_PRICE/HOUR PERCENTAGE_DIFFERENCE
m1.large generalpurpose 2 7680 0.073600 0.1750000000 57.94285714285714
m1.xlarge generalpurpose 4 15360 0.131900 0.3500000000 62.31428571428571
m2.2xlarge generalpurpose 4 35020 0.113600 0.4900000000 76.81632653061223
m2.xlarge generalpurpose 2 17510 0.092000 0.2450000000 62.44897959183674
m3.large generalpurpose 2 7680 0.056300 0.1330000000 57.669172932330824
m3.xlarge generalpurpose 4 15360 0.106800 0.2660000000 59.849624060150376
m4.large generalpurpose 2 8192 0.049600 0.1000000000 50.4
m4.xlarge generalpurpose 4 16384 0.081000 0.2000000000 59.5
m5.large generalpurpose 2 8192 0.039700 0.0960000000 58.64583333333333

For more information, see the astroctl providers machinetypes get command.