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 |