Unified EKS Schema¶
This is the unified EKS schema which is only supported through the GITOPS flow for now.
Cluster YAML¶
apiVersion: infra.k8smgmt.io/v3 | string | |
kind: Cluster | string | |
metadata: | contains general cluster information | |
name: | of the cluster | string |
region: | the AWS region hosting this cluster | string |
version: 1.29 | Valid variants are: "1.23" , "1.24" , "1.25" , "1.26" , "1.27" , "1.28" , "1.29" (default), "1.30" , "1.31" . |
string |
tags: {} | used to tag AWS resources created by the vendor | object |
annotations: {} | arbitrary metadata ignored by the vendor | object |
spec: | Specification associated with the cluster | |
type: eks | Cluster Type | string |
blueprint: myblueprint | Blueprint associated with the cluster | string |
blueprintversion: bpversion | Blueprint version associated with the cluster | string |
cloudprovider: myprovider | Cloud credentials provider used to create and manage the cluster | string |
cniprovider: Calico-v3.19.1 | Cni provider used to specify different cni options for the cluster | string |
proxyconfig: {} | Configure Proxy if your infrastructure uses an Outbound Proxy | object |
config: | a simple config, to be replaced with Cluster API | |
metadata: | contains general cluster information | |
name: | of the cluster | string |
region: | the AWS region hosting this cluster | string |
version: 1.29 | Valid variants are: "1.23" , "1.24" , "1.25" , "1.26" , "1.27" , "1.28" , "1.29" (default), "1.30" , "1.31" . |
string |
tags: {} | used to tag AWS resources created by the vendor | object |
annotations: {} | arbitrary metadata ignored by the vendor | object |
kubernetesNetworkConfig: | contains cluster networking options | |
ipFamily: IPv4 | Valid variants are: "IPv4" defines an IP family of v4 to be used when creating a new VPC and cluster., "IPv6" defines an IP family of v6 to be used when creating a new VPC and cluster.. |
string |
serviceIPv4CIDR: | CIDR range from where ClusterIP s are assigned |
string |
iam: | holds all IAM attributes of a cluster | |
serviceRoleARN: | service role ARN of the cluster | string |
serviceRolePermissionsBoundary: | permissions boundary for all identity-based entities created by the vendor. | string |
fargatePodExecutionRoleARN: | role used by pods to access AWS APIs. This role is added to the Kubernetes RBAC for authorization. | string |
fargatePodExecutionRolePermissionsBoundary: | permissions boundary for the fargate pod execution role. | string |
withOIDC: | enables the IAM OIDC provider as well as IRSA for the Amazon CNI plugin | boolean |
serviceAccounts: | service accounts to create in the cluster. | undefined[] |
- metadata: | holds information we can use to create ObjectMeta for service accounts | |
name: | service account name. | string |
namespace: | service account namespace. | string |
labels: {} | service account labels. | object |
annotations: {} | service account annotations. | object |
attachPolicyARNs: | list of ARNs of the IAM policies to attach | string[] |
wellKnownPolicies: | for attaching common IAM policies | |
imageBuilder: false | allows for full ECR (Elastic Container Registry) access. | boolean |
autoScaler: false | service account annotations. | boolean |
awsLoadBalancerController: false | adds policies for using the aws-load-balancer-controller. | boolean |
externalDNS: false | adds external-dns policies for Amazon Route 53. | boolean |
certManager: false | adds cert-manager policies. | boolean |
ebsCSIController: false | adds policies for using the ebs-csi-controller. | boolean |
efsCSIController: false | adds policies for using the efs-csi-controller. | boolean |
attachPolicy: | holds a policy document to attach to this service account | object |
attachRoleARN: | ARN of the role to attach to the service account | string |
permissionsBoundary: | ARN of the permissions boundary to associate with the service account | string |
status: | holds status of the IAM service account | |
roleARN: | role ARN associated with the service account. | string |
stackName: | string | |
tags: {} | object | |
capabilities: | string[] | |
roleName: | Specific role name instead of the Cloudformation-generated role name | string |
roleOnly: | Specify if only the IAM Service Account role should be created without creating/annotating the service account | boolean |
tags: {} | AWS tags for the service account | object |
podIdentityAssociations: | pod identity associations to create in the cluster. See Pod Identity Associations | undefined[] |
- namespace: | string | |
serviceAccountName: | string | |
roleARN: | string | |
createServiceAccount: false | boolean | |
roleName: | string | |
permissionsBoundaryARN: | string | |
permissionPolicyARNs: | string[] | |
permissionPolicy: | holds any arbitrary JSON/YAML documents, such as extra config parameters or IAM policies | object |
wellKnownPolicies: | for attaching common IAM policies | |
imageBuilder: false | allows for full ECR (Elastic Container Registry) access. | boolean |
autoScaler: false | service account annotations. | boolean |
awsLoadBalancerController: false | adds policies for using the aws-load-balancer-controller. | boolean |
externalDNS: false | adds external-dns policies for Amazon Route 53. | boolean |
certManager: false | adds cert-manager policies. | boolean |
ebsCSIController: false | adds policies for using the ebs-csi-controller. | boolean |
efsCSIController: false | adds policies for using the efs-csi-controller. | boolean |
tags: {} | object | |
vpcResourceControllerPolicy: true | attaches the IAM policy necessary to run the VPC controller in the control plane | boolean |
identityProviders: | holds an identity provider configuration. | undefined[] |
- type: oidc | Valid variants are: "oidc" : OIDC identity provider |
string |
accessConfig: | specifies the access config for a cluster. | |
authenticationMode: | specifies the authentication mode for a cluster. | string |
bootstrapClusterCreatorAdminPermissions: | specifies whether the cluster creator IAM principal was set as a cluster admin access entry during cluster creation time. | boolean |
accessEntries: | specifies a list of access entries for the cluster. | undefined[] |
- principalARN: | existing IAM principal ARN to associate with an access entry | |
type: | EC2_LINUX , EC2_WINDOWS , FARGATE_LINUX or STANDARD |
string |
kubernetesGroups: | set of Kubernetes groups to map to the principal ARN | string[] |
kubernetesUsername: | username to map to the principal ARN | string |
accessPolicies: | set of policies to associate with an access entry | undefined[] |
- policyARN: | ||
accessScope: | defines the scope of an access policy. | |
type: | namespace or cluster |
string |
namespaces: | Scope access to namespace(s) | string[] |
tags: {} | AWS tags to attach to the access entry | object |
vpc: | holds global subnet and all child subnets | |
id: | AWS VPC ID. | string |
cidr: | an IP address in CIDR notation | string |
ipv6Cidr: | string | |
ipv6Pool: | string | |
securityGroup: | (aka the ControlPlaneSecurityGroup) for communication between control plane and nodes | string |
subnets: | keyed by AZ for convenience. | |
private: | holds subnet to AZ mappings. If the key is an AZ, that also becomes the name of the subnet otherwise use the key to refer to this subnet. | object |
public: | holds subnet to AZ mappings. If the key is an AZ, that also becomes the name of the subnet otherwise use the key to refer to this subnet. | object |
hostnameType: | type of hostname to use for EC2 instances. | string |
extraCIDRs: | for additional CIDR associations, e.g. a CIDR for private subnets or any ad-hoc subnets | string[] |
extraIPv6CIDRs: | for additional IPv6 CIDR associations, e.g. a CIDR for private subnets or any ad-hoc subnets | string[] |
sharedNodeSecurityGroup: | for pre-defined shared node SG | string |
manageSharedNodeSecurityGroupRules: true | Automatically add security group rules to and from the default cluster security group and the shared node security group. This allows unmanaged nodes to communicate with the control plane and managed nodes. This option cannot be disabled when using vendor created security groups. | boolean |
autoAllocateIPv6: | AutoAllocateIPV6 requests an IPv6 CIDR block with /56 prefix for the VPC | boolean |
nat: | NAT config | |
gateway: Single | Valid variants are: "HighlyAvailable" configures a highly available NAT gateway, "Single" configures a single NAT gateway (default), "Disable" disables NAT. |
string |
clusterEndpoints: | Manage access to the Kubernetes API server endpoints. | |
privateAccess: | enable private access to the Kubernetes API server endpoints. | boolean |
publicAccess: | enable public access to the Kubernetes API server endpoints. | boolean |
publicAccessCIDRs: | which CIDR blocks to allow access to public k8s API endpoint | string[] |
controlPlaneSubnetIDs: | configures the subnets for the control plane. | string[] |
controlPlaneSecurityGroupIDs: | configures the security groups for the control plane. | string[] |
addons: | holds the EKS addon configuration | undefined[] |
- name: | EKS addon name | string |
version: | EKS addon version | string |
serviceAccountRoleARN: | service account role ARN | string |
attachPolicyARNs: | list of ARNs of the IAM policies to attach | string[] |
attachPolicy: | holds a policy document to attach | object |
permissionsBoundary: | ARN of the permissions' boundary to associate | string |
wellKnownPolicies: | for attaching common IAM policies | |
imageBuilder: false | allows for full ECR (Elastic Container Registry) access. | boolean |
autoScaler: false | service account annotations. | boolean |
awsLoadBalancerController: false | adds policies for using the aws-load-balancer-controller. | boolean |
externalDNS: false | adds external-dns policies for Amazon Route 53. | boolean |
certManager: false | adds cert-manager policies. | boolean |
ebsCSIController: false | adds policies for using the ebs-csi-controller. | boolean |
efsCSIController: false | adds policies for using the efs-csi-controller. | boolean |
tags: {} | The metadata to apply to the cluster to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. | object |
resolveConflicts: | determines how to resolve field value conflicts for an EKS add-on if a value was changed from default | string |
podIdentityAssociations: | holds a list of associations to be configured for the addon | undefined[] |
- namespace: | string | |
serviceAccountName: | string | |
roleARN: | string | |
createServiceAccount: false | boolean | |
roleName: | string | |
permissionsBoundaryARN: | string | |
permissionPolicyARNs: | string[] | |
permissionPolicy: | holds any arbitrary JSON/YAML documents, such as extra config parameters or IAM policies | object |
wellKnownPolicies: | for attaching common IAM policies | |
imageBuilder: false | allows for full ECR (Elastic Container Registry) access. | boolean |
autoScaler: false | service account annotations. | boolean |
awsLoadBalancerController: false | adds policies for using the aws-load-balancer-controller. | boolean |
externalDNS: false | adds external-dns policies for Amazon Route 53. | boolean |
certManager: false | adds cert-manager policies. | boolean |
ebsCSIController: false | adds policies for using the ebs-csi-controller. | boolean |
efsCSIController: false | adds policies for using the efs-csi-controller. | boolean |
tags: {} | object | |
useDefaultPodIdentityAssociations: false | uses the pod identity associations recommended by the EKS API. Defaults to false. | boolean |
configurationValues: | defines the set of configuration properties for add-ons. For now, all properties will be specified as a JSON string and have to respect the schema from DescribeAddonConfiguration. | string |
publishers: | string[] | |
types: | string[] | |
owners: | string[] | |
addonsConfig: | specifies the configuration for addons. | |
autoApplyPodIdentityAssociations: false | specifies whether to automatically apply pod identity associations for supported addons that require IAM permissions. | boolean |
privateCluster: | allows configuring a fully-private cluster in which no node has outbound internet access, and private access to AWS services is enabled via VPC endpoints | |
enabled: false | enables creation of a fully-private cluster. | boolean |
skipEndpointCreation: false | skips the creation process for endpoints completely. This is only used in case of an already provided VPC and if the user decided to set it to true. | boolean |
additionalEndpointServices: | specifies additional endpoint services that must be enabled for private access. Valid entries are "cloudformation", "autoscaling" and "logs". | string[] |
nodeGroups: | holds all nodegroup attributes of a cluster. | undefined[] |
- name: | of the nodegroup | string |
amiFamily: AmazonLinux2 | Valid variants are: "AmazonLinux2" (default), "AmazonLinux2023" , "UbuntuPro2204" , "Ubuntu2204" , "Ubuntu2004" , "Ubuntu1804" , "Bottlerocket" , "WindowsServer2019CoreContainer" , "WindowsServer2019FullContainer" , "WindowsServer2022CoreContainer" , "WindowsServer2022FullContainer" . |
string |
instanceType: | of instances in the nodegroup | string |
availabilityZones: | Limit nodes to specific AZs | string[] |
subnets: | Limit nodes to specific subnets | string[] |
instancePrefix: | for instances in the nodegroup | string |
instanceName: | for instances in the nodegroup | string |
desiredCapacity: | of instances in the nodegroup | integer |
minSize: | of instances in the nodegroup | integer |
maxSize: | of instances in the nodegroup | integer |
volumeSize: 80 | in gigabytes | integer |
ssh: | configures ssh access for this nodegroup | |
allow: | If Allow is true the SSH configuration provided is used, otherwise it is ignored. Only one of PublicKeyPath, PublicKey and PublicKeyName can be configured | boolean |
publicKey: | Public key to be added to the nodes SSH keychain. If Allow is false this value is ignored. | string |
publicKeyName: | Public key name in EC2 to be added to the nodes SSH keychain. If Allow is false this value is ignored. | string |
sourceSecurityGroupIds: | source securitgy group IDs | string[] |
enableSsm: | Enables the ability to SSH onto nodes using SSM | boolean |
labels: {} | on nodes in the nodegroup | object |
privateNetworking: false | Enable private networking for nodegroup | boolean |
tags: {} | Applied to the Autoscaling Group and to the EC2 instances (unmanaged), Applied to the EKS Nodegroup resource and to the EC2 instances (managed) | object |
iam: | holds all IAM attributes of a NodeGroup | |
attachPolicy: | holds a policy document to attach | object |
attachPolicyARNs: | attach policy ARN | string[] |
instanceProfileARN: | instance profile ARN | string |
instanceRoleARN: | instance role ARN | string |
instanceRoleName: | instance role name | string |
instanceRolePermissionsBoundary: | instance role permissions boundary | string |
withAddonPolicies: | holds all IAM addon policies | |
imageBuilder: | allows for full ECR (Elastic Container Registry) access. This is useful for building, for example, a CI server that needs to push images to ECR | boolean |
autoScaler: | enables IAM policy for cluster-autoscaler | boolean |
externalDNS: | adds the external-dns project policies for Amazon Route 53 | boolean |
certManager: | enables the ability to add records to Route 53 in order to solve the DNS01 challenge. | boolean |
appMesh: | enables full access to AppMesh | boolean |
appMeshPreview: | enables full access to AppMesh Preview | boolean |
ebs: | enables the new EBS CSI (Elastic Block Store Container Storage Interface) driver | boolean |
fsx: | enables full access to FSx | boolean |
efs: | enables full access to EFS | boolean |
awsLoadBalancerController: | boolean | |
albIngress: | enables access to ALB Ingress controller | boolean |
xRay: | enables access to XRay | boolean |
cloudWatch: | enables access to CloudWatch | boolean |
ami: | Specify custom AMIs, auto-ssm , auto , or static |
string |
securityGroups: | controls security groups for this nodegroup | |
attachIDs: | attaches additional security groups to the nodegroup | string[] |
withShared: true | attach the security group shared among all nodegroups in the cluster Not supported for managed nodegroups | boolean |
withLocal: true | attach a security group local to this nodegroup Not supported for managed nodegroups | boolean |
maxPodsPerNode: | Maximum pods per node | integer |
asgSuspendProcesses: | See relevant AWS docs | string[] |
ebsOptimized: | enables EBS optimization | boolean |
volumeType: gp3 | Valid variants are: "gp2" is General Purpose SSD, "gp3" is General Purpose SSD which can be optimised for high throughput (default), "io1" is Provisioned IOPS SSD, "sc1" is Cold HDD, "st1" is Throughput Optimized HDD. |
string |
volumeName: | of volumes attached to instances in the nodegroup | string |
volumeEncrypted: | of volumes attached to instances in the nodegroup | boolean |
volumeKmsKeyID: | of volumes attached to instances in the nodegroup | string |
volumeIOPS: | of volumes attached to instances in the nodegroup | integer |
volumeThroughput: | of volumes attached to instances in the nodegroup | integer |
additionalVolumes: | Additional Volume Configurations | undefined[] |
- volumeSize: 80 | gigabytes | integer |
volumeType: gp3 | Valid variants are: "gp2" is General Purpose SSD, "gp3" is General Purpose SSD which can be optimised for high throughput (default), "io1" is Provisioned IOPS SSD, "sc1" is Cold HDD, "st1" is Throughput Optimized HDD. |
string |
volumeName: | string | |
volumeEncrypted: | boolean | |
volumeKmsKeyID: | string | |
volumeIOPS: | integer | |
volumeThroughput: | integer | |
snapshotID: | string | |
preBootstrapCommands: | executed before bootstrapping instances to the cluster | string[] |
overrideBootstrapCommand: | Override the vendor's bootstrapping script | string |
propagateASGTags: | Propagate all taints and labels to the ASG automatically. | boolean |
disableIMDSv1: true | requires requests to the metadata service to use IMDSv2 tokens | boolean |
disablePodIMDS: false | blocks all IMDS requests from non-host networking pods | boolean |
placement: | specifies the placement group in which nodes should be spawned | |
groupName: | Placement group name | string |
efaEnabled: | creates the maximum allowed number of EFA-enabled network cards on nodes in this group. | boolean |
instanceSelector: | specifies options for EC2 instance selector | |
vCPUs: | specifies the number of vCPUs | integer |
memory: | specifies the memory The unit defaults to GiB | string |
gpus: | specifies the number of GPUs. It can be set to 0 to select non-GPU instance types. | integer |
cpuArchitecture: x86_64 | CPU Architecture of the EC2 instance type. Valid variants are: "x86_64" "amd64" "arm64" |
string |
bottlerocket: | specifies settings for Bottlerocket nodes | |
enableAdminContainer: | Enable admin container | boolean |
settings: | contains any bottlerocket settings | object |
enableDetailedMonitoring: | Enable EC2 detailed monitoring | boolean |
capacityReservation: | defines reservation policy for a nodegroup | |
capacityReservationPreference: | defines a nodegroup's Capacity Reservation preferences (either 'open' or 'none') | string |
capacityReservationTarget: | defines a nodegroup's target Capacity Reservation or Capacity Reservation group (not both at the same time). | |
capacityReservationID: | string | |
capacityReservationResourceGroupARN: | string | |
outpostARN: | specifies the Outpost ARN in which the nodegroup should be created. | string |
instancesDistribution: | holds the configuration for spot instances | |
instanceTypes: | specifies a list of instance types | string[] |
maxPrice: on demand price | Maximum bid price in USD | number |
onDemandBaseCapacity: 0 | base number of on-demand instances (non-negative) | integer |
onDemandPercentageAboveBaseCapacity: 100 | Range [0-100] | integer |
spotInstancePools: 2 | Range [1-20] | integer |
spotAllocationStrategy: | allocation strategy for spot instances. Valid values are capacity-optimized and lowest-price |
string |
capacityRebalance: false | Enable capacity rebalancing for spot instances | boolean |
asgMetricsCollection: | used by the scaling config, see cloudformation docs | undefined[] |
- granularity: | of metrics collection | string |
metrics: | specifies a list of metrics | string[] |
cpuCredits: | configures T3 Unlimited, valid only for T-type instances | string |
classicLoadBalancerNames: | Associate load balancers with auto scaling group | string[] |
targetGroupARNs: | Associate target group with auto scaling group | string[] |
taints: | taints to apply to the nodegroup | array |
updateConfig: | configures how to update NodeGroups. | |
maxUnavailable: | sets the max number of nodes that can become unavailable when updating a nodegroup (specified as number) | integer |
maxUnavailablePercentage: | sets the max number of nodes that can become unavailable when updating a nodegroup (specified as percentage) | integer |
clusterDNS: | Custom address used for DNS lookups | string |
kubeletExtraConfig: | Customize kubelet config | object |
containerRuntime: | defines the runtime (CRI) to use for containers on the node | string |
maxInstanceLifetime: | defines the maximum amount of time in seconds an instance stays alive. | integer |
localZones: | specifies a list of local zones where the nodegroup should be launched. The cluster should have been created with all of the local zones specified in this field. | string[] |
version: | Kuberenetes version for the nodegroup | string |
subnetCidr: | Create new subnet from the CIDR block and limit nodes to this subnet (Applicable only for the WavelenghZone nodes) | string |
managedNodeGroups: | holds all managed nodegroup attributes of a cluster | undefined[] |
- name: | of the nodegroup | string |
amiFamily: AmazonLinux2 | Valid variants are: "AmazonLinux2" . |
string |
instanceType: | of instances in the nodegroup | string |
availabilityZones: | Limit nodes to specific AZs | string[] |
subnets: | Limit nodes to specific subnets | string[] |
instancePrefix: | for instances in the nodegroup | string |
instanceName: | for instances in the nodegroup | string |
desiredCapacity: | of instances in the nodegroup | integer |
minSize: | of instances in the nodegroup | integer |
maxSize: | of instances in the nodegroup | integer |
volumeSize: 80 | in gigabytes | integer |
ssh: | configures ssh access for this nodegroup | |
allow: | If Allow is true the SSH configuration provided is used, otherwise it is ignored. Only one of PublicKeyPath, PublicKey and PublicKeyName can be configured | boolean |
publicKey: | Public key to be added to the nodes SSH keychain. If Allow is false this value is ignored. | string |
publicKeyName: | Public key name in EC2 to be added to the nodes SSH keychain. If Allow is false this value is ignored. | string |
sourceSecurityGroupIds: | source securitgy group IDs | string[] |
enableSsm: | Enables the ability to SSH onto nodes using SSM | boolean |
labels: {} | on nodes in the nodegroup | object |
privateNetworking: false | Enable private networking for nodegroup | boolean |
tags: {} | Applied to the Autoscaling Group and to the EC2 instances (unmanaged), Applied to the EKS Nodegroup resource and to the EC2 instances (managed) | object |
iam: | holds all IAM attributes of a NodeGroup | |
attachPolicy: | holds a policy document to attach | object |
attachPolicyARNs: | attach policy ARN | string[] |
instanceProfileARN: | instance profile ARN | string |
instanceRoleARN: | instance role ARN | string |
instanceRoleName: | instance role name | string |
instanceRolePermissionsBoundary: | instance role permissions boundary | string |
withAddonPolicies: | holds all IAM addon policies | |
imageBuilder: | allows for full ECR (Elastic Container Registry) access. This is useful for building, for example, a CI server that needs to push images to ECR | boolean |
autoScaler: | enables IAM policy for cluster-autoscaler | boolean |
externalDNS: | adds the external-dns project policies for Amazon Route 53 | boolean |
certManager: | enables the ability to add records to Route 53 in order to solve the DNS01 challenge. | boolean |
appMesh: | enables full access to AppMesh | boolean |
appMeshPreview: | enables full access to AppMesh Preview | boolean |
ebs: | enables the new EBS CSI (Elastic Block Store Container Storage Interface) driver | boolean |
fsx: | enables full access to FSx | boolean |
efs: | enables full access to EFS | boolean |
awsLoadBalancerController: | boolean | |
albIngress: | enables access to ALB Ingress controller | boolean |
xRay: | enables access to XRay | boolean |
cloudWatch: | enables access to CloudWatch | boolean |
ami: | Specify custom AMIs, auto-ssm , auto , or static |
string |
securityGroups: | controls security groups for this nodegroup | |
attachIDs: | attaches additional security groups to the nodegroup | string[] |
withShared: true | attach the security group shared among all nodegroups in the cluster Not supported for managed nodegroups | boolean |
withLocal: true | attach a security group local to this nodegroup Not supported for managed nodegroups | boolean |
maxPodsPerNode: | Maximum pods per node | integer |
asgSuspendProcesses: | See relevant AWS docs | string[] |
ebsOptimized: | enables EBS optimization | boolean |
volumeType: gp3 | Valid variants are: "gp2" is General Purpose SSD, "gp3" is General Purpose SSD which can be optimised for high throughput (default), "io1" is Provisioned IOPS SSD, "sc1" is Cold HDD, "st1" is Throughput Optimized HDD. |
string |
volumeName: | of volumes attached to instances in the nodegroup | string |
volumeEncrypted: | of volumes attached to instances in the nodegroup | boolean |
volumeKmsKeyID: | of volumes attached to instances in the nodegroup | string |
volumeIOPS: | of volumes attached to instances in the nodegroup | integer |
volumeThroughput: | of volumes attached to instances in the nodegroup | integer |
additionalVolumes: | Additional Volume Configurations | undefined[] |
- volumeSize: 80 | gigabytes | integer |
volumeType: gp3 | Valid variants are: "gp2" is General Purpose SSD, "gp3" is General Purpose SSD which can be optimised for high throughput (default), "io1" is Provisioned IOPS SSD, "sc1" is Cold HDD, "st1" is Throughput Optimized HDD. |
string |
volumeName: | string | |
volumeEncrypted: | boolean | |
volumeKmsKeyID: | string | |
volumeIOPS: | integer | |
volumeThroughput: | integer | |
snapshotID: | string | |
preBootstrapCommands: | executed before bootstrapping instances to the cluster | string[] |
overrideBootstrapCommand: | Override the vendor's bootstrapping script | string |
propagateASGTags: | Propagate all taints and labels to the ASG automatically. | boolean |
disableIMDSv1: true | requires requests to the metadata service to use IMDSv2 tokens | boolean |
disablePodIMDS: false | blocks all IMDS requests from non-host networking pods | boolean |
placement: | specifies the placement group in which nodes should be spawned | |
groupName: | Placement group name | string |
efaEnabled: | creates the maximum allowed number of EFA-enabled network cards on nodes in this group. | boolean |
instanceSelector: | specifies options for EC2 instance selector | |
vCPUs: | specifies the number of vCPUs | integer |
memory: | specifies the memory The unit defaults to GiB | string |
gpus: | specifies the number of GPUs. It can be set to 0 to select non-GPU instance types. | integer |
cpuArchitecture: x86_64 | CPU Architecture of the EC2 instance type. Valid variants are: "x86_64" "amd64" "arm64" |
string |
bottlerocket: | specifies settings for Bottlerocket nodes | |
enableAdminContainer: | Enable admin container | boolean |
settings: | contains any bottlerocket settings | object |
enableDetailedMonitoring: | Enable EC2 detailed monitoring | boolean |
capacityReservation: | defines reservation policy for a nodegroup | |
capacityReservationPreference: | defines a nodegroup's Capacity Reservation preferences (either 'open' or 'none') | string |
capacityReservationTarget: | defines a nodegroup's target Capacity Reservation or Capacity Reservation group (not both at the same time). | |
capacityReservationID: | string | |
capacityReservationResourceGroupARN: | string | |
outpostARN: | specifies the Outpost ARN in which the nodegroup should be created. | string |
instanceTypes: | specifies a list of instance types | string[] |
spot: false | creates a spot nodegroup | boolean |
taints: | taints to apply to the nodegroup | undefined[] |
- key: | of a taint | string |
value: | of a taint | string |
effect: | of a taint | string |
updateConfig: | configures how to update NodeGroups. | |
maxUnavailable: | sets the max number of nodes that can become unavailable when updating a nodegroup (specified as number) | integer |
maxUnavailablePercentage: | sets the max number of nodes that can become unavailable when updating a nodegroup (specified as percentage) | integer |
launchTemplate: | specifies an existing launch template to use for the nodegroup | |
id: | Launch template ID | string |
version: | Launch template version Defaults to the default launch template version TODO support $Default, $Latest | string |
releaseVersion: | the AMI version of the EKS optimized AMI to use | string |
version: | Kuberenetes version for the nodegroup | string |
fargateProfiles: | defines the settings used to schedule workload onto Fargate. | undefined[] |
- name: | of the Fargate profile. | string |
podExecutionRoleARN: | IAM role's ARN to use to run pods onto Fargate. | string |
selectors: | define the rules to select workload to schedule onto Fargate. | undefined[] |
- namespace: | Kubernetes namespace from which to select workload. | string |
labels: {} | Kubernetes label selectors to use to select workload. | object |
subnets: | which Fargate should use to do network placement of the selected workload. If none provided, all subnets for the cluster will be used. | string[] |
tags: {} | Used to tag the AWS resources | object |
status: | The current status of the Fargate profile. | string |
availabilityZones: | availability zones of a cluster | string[] |
localZones: | specifies a list of local zones where the subnets should be created. Only self-managed nodegroups can be launched in local zones. These subnets are not passed to EKS. | string[] |
cloudWatch: | holds all CloudWatch attributes of a cluster | |
clusterLogging: | container config parameters related to cluster logging | |
enableTypes: | Types of logging to enable. Valid entries are: "api" , "audit" , "authenticator" , "controllerManager" , "scheduler" , "all" , "*" . |
string[] |
logRetentionInDays: | sets the number of days to retain the logs for (see CloudWatch docs) . Valid values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1827, and 3653. | integer |
secretsEncryption: | defines the configuration for KMS encryption provider | |
keyARN: | KMS key ARN | string |
encryptExistingSecrets: | boolean | |
karpenter: | specific configuration options. | |
version: | defines the Karpenter version to install | string |
createServiceAccount: | create a service account or not. | boolean |
defaultInstanceProfile: | override the default IAM instance profile | string |
withSpotInterruptionQueue: | if true, adds all required policies and rules for supporting Spot Interruption Queue on Karpenter deployments | boolean |
outpost: | specifies the Outpost configuration. | |
controlPlaneOutpostARN: | specifies the Outpost ARN in which the control plane should be created. | string |
controlPlaneInstanceType: | specifies the instance type to use for creating the control plane instances. | string |
controlPlanePlacement: | specifies the placement configuration for control plane instances on Outposts. | |
groupName: | Placement group name | string |