AWSNodePool

This topic describes the configuration options of the AWSNodePool Custom Resource Definition.

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
value: value1
effect: PreferNoSchedule
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