General format
To create an AWSNodePool from this template, copy the following YAML and replace the highlighted values as defined in the field specifications.
apiVersion: multicloud.cluster.gke.io/v1
kind: AWSNodePool
metadata:
name: NODE_POOL_NAME
spec:
clusterName: AWSCLUSTER_NAME
version: CLUSTER_VERSION # latest version is 1.25.5-gke.2100
region: AWS_REGION
subnetID: AWS_SUBNET_ID
minNodeCount: MINIMUM_NODE_COUNT
maxNodeCount: MAXIMUM_NODE_COUNT
maxPodsPerNode: MAXIMUM_PODS_PER_NODE_COUNT
instanceType: AWS_NODE_TYPE
keyName: KMS_KEY_PAIR_NAME
iamInstanceProfile: NODE_IAM_PROFILE
proxySecretName: PROXY_SECRET_NAME
rootVolume:
sizeGiB: ROOT_VOLUME_SIZE
volumeType: VOLUME_TYPE # Optional
iops: IOPS # Optional
kmsKeyARN: NODE_VOLUME_KEY # Optional
labels: # Optional
LABEL_NAME: LABEL_VALUE
taints:
- key: KEY1
value: VALUE1
effect: PREFERNOSCHEDULE
- key: KEY2
effect: NOSCHEDULE
tags:
TAG_NAME: TAG_VALUE
Field specifications
You can define the following fields in a AWSNodePool's spec.
| Name | Description | Type | Example | Required |
|---|---|---|---|---|
| clusterName | Your AWSCluster's name. | string |
my-cluster |
yes |
| region | An AWS region for the node pool. This value must match the region of the parent cluster. | string |
us-east-1 |
yes |
| version | The node pool's cluster version. See Versioning and upgrades and upgrading a user cluster for more information. | string |
1.25.5-gke.2100 |
|
| minNodeCount | The minimum number of worker nodes in the node pool. | integer |
3 |
yes |
| maxNodeCount | The maximum number of worker nodes in the node pool. | integer |
3 |
yes |
| maxPodsPerNode | The maximum number of pods that GKE on AWS will allocate to a node. | integer |
100 |
yes |
| instanceType | An AWS EC2 instance type for each node pool worker. See Supported instance types. | string |
m5.large |
yes |
| keyName | The AWS KMS key pair assigned to each node pool worker. | string |
my-key-pair |
yes |
| securityGroupIDs | The IDs of additional security groups to add to nodes in this pool. Note that GKE on AWS automatically creates security groups with minimum rules needed for a functioning node pool. | list(string) |
[sg-0ec06559d997a796f] |
no |
| iamInstanceProfile | The name of the AWS EC2 instance profile assigned to nodes in the pool. | string |
my-node-pool-profile |
yes |
| proxySecretName | The name of a proxy secret to configure custom proxy settings | string |
proxy-secret-1 |
no |
| rootVolume | Parameters for node pool's root volumes. For more information, see spec.RootVolume. | object |
{sizeGiB: 10} |
yes |
| subnetId | The private subnet in the node pool's region | string |
subnet-1234567890abcdef |
yes |
| labels | Labels applied to nodes in the node pool | object |
{billing: some-account, owner: dev} |
no |
| taints | Taints applied to the node pool | object |
key: key1 |
no |
| tags | Key/value metadata assigned to each AWS resource supporting the node pool. | map(string) |
{Environment: Production, Team: Analytics} | no |
spec.rootVolume
| Name | Description | Type | Example | Required |
|---|---|---|---|---|
| sizeGiB | Size of the control plane node's root volume in Gigabytes. You might need to increase this for large clusters. | integer |
10 |
yes |
| volumeType | The node's AWS EBS volume type. Can be gp2 (default) or gp3. |
string |
gp2 |
no |
| iops | The amount of provisioned IO operations per second (IOPS) for volumes. Only valid when volumeType is gp3. For more information, see General Purpose SSD volumes (gp3). |
integer |
5000 |
no |
| kmsKeyARN | The ARN of the AWS KMS key used to encrypt the EBS volume. For more information, see Using a customer managed CMK to encrypt volumes. | string |
arn:aws:kms:us-west-1:123456789:key/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee |
no |