nodegroups
Creates, updates, deletes or gets a nodegroup
resource or lists nodegroups
in a region
Overview
Name | nodegroups |
Type | Resource |
Description | Resource schema for AWS::EKS::Nodegroup |
Id | aws.eks.nodegroups |
Fields
Name | Datatype | Description |
---|---|---|
ami_type | string | The AMI type for your node group. |
capacity_type | string | The capacity type of your managed node group. |
cluster_name | string | Name of the cluster to create the node group in. |
disk_size | integer | The root device disk size (in GiB) for your node group instances. |
force_update_enabled | boolean | Force the update if the existing node group's pods are unable to be drained due to a pod disruption budget issue. |
instance_types | array | Specify the instance types for a node group. |
labels | object | The Kubernetes labels to be applied to the nodes in the node group when they are created. |
launch_template | object | An object representing a node group's launch template specification. |
nodegroup_name | string | The unique name to give your node group. |
node_role | string | The Amazon Resource Name (ARN) of the IAM role to associate with your node group. |
release_version | string | The AMI version of the Amazon EKS-optimized AMI to use with your node group. |
remote_access | object | The remote access (SSH) configuration to use with your node group. |
scaling_config | object | The scaling configuration details for the Auto Scaling group that is created for your node group. |
subnets | array | The subnets to use for the Auto Scaling group that is created for your node group. |
tags | object | The metadata, as key-value pairs, to apply to the node group to assist with categorization and organization. Follows same schema as Labels for consistency. |
taints | array | The Kubernetes taints to be applied to the nodes in the node group when they are created. |
update_config | object | The node group update configuration. |
version | string | The Kubernetes version to use for your managed nodes. |
id | string | |
arn | string | |
region | string | AWS region. |
Methods
Name | Accessible by | Required Params |
---|---|---|
create_resource | INSERT | ClusterName, NodeRole, Subnets, region |
delete_resource | DELETE | data__Identifier, region |
update_resource | UPDATE | data__Identifier, data__PatchDocument, region |
list_resources | SELECT | region |
get_resource | SELECT | data__Identifier, region |
SELECT
examples
Gets all nodegroups
in a region.
SELECT
region,
ami_type,
capacity_type,
cluster_name,
disk_size,
force_update_enabled,
instance_types,
labels,
launch_template,
nodegroup_name,
node_role,
release_version,
remote_access,
scaling_config,
subnets,
tags,
taints,
update_config,
version,
id,
arn
FROM aws.eks.nodegroups
WHERE region = 'us-east-1';
Gets all properties from an individual nodegroup
.
SELECT
region,
ami_type,
capacity_type,
cluster_name,
disk_size,
force_update_enabled,
instance_types,
labels,
launch_template,
nodegroup_name,
node_role,
release_version,
remote_access,
scaling_config,
subnets,
tags,
taints,
update_config,
version,
id,
arn
FROM aws.eks.nodegroups
WHERE region = 'us-east-1' AND data__Identifier = '<Id>';
INSERT
example
Use the following StackQL query and manifest file to create a new nodegroup
resource, using stack-deploy
.
- Required Properties
- All Properties
- Manifest
/*+ create */
INSERT INTO aws.eks.nodegroups (
ClusterName,
NodeRole,
Subnets,
region
)
SELECT
'{{ ClusterName }}',
'{{ NodeRole }}',
'{{ Subnets }}',
'{{ region }}';
/*+ create */
INSERT INTO aws.eks.nodegroups (
AmiType,
CapacityType,
ClusterName,
DiskSize,
ForceUpdateEnabled,
InstanceTypes,
Labels,
LaunchTemplate,
NodegroupName,
NodeRole,
ReleaseVersion,
RemoteAccess,
ScalingConfig,
Subnets,
Tags,
Taints,
UpdateConfig,
Version,
region
)
SELECT
'{{ AmiType }}',
'{{ CapacityType }}',
'{{ ClusterName }}',
'{{ DiskSize }}',
'{{ ForceUpdateEnabled }}',
'{{ InstanceTypes }}',
'{{ Labels }}',
'{{ LaunchTemplate }}',
'{{ NodegroupName }}',
'{{ NodeRole }}',
'{{ ReleaseVersion }}',
'{{ RemoteAccess }}',
'{{ ScalingConfig }}',
'{{ Subnets }}',
'{{ Tags }}',
'{{ Taints }}',
'{{ UpdateConfig }}',
'{{ Version }}',
'{{ region }}';
version: 1
name: stack name
description: stack description
providers:
- aws
globals:
- name: region
value: '{{ vars.AWS_REGION }}'
resources:
- name: nodegroup
props:
- name: AmiType
value: '{{ AmiType }}'
- name: CapacityType
value: '{{ CapacityType }}'
- name: ClusterName
value: '{{ ClusterName }}'
- name: DiskSize
value: '{{ DiskSize }}'
- name: ForceUpdateEnabled
value: '{{ ForceUpdateEnabled }}'
- name: InstanceTypes
value:
- '{{ InstanceTypes[0] }}'
- name: Labels
value: {}
- name: LaunchTemplate
value:
Id: '{{ Id }}'
Version: '{{ Version }}'
Name: '{{ Name }}'
- name: NodegroupName
value: '{{ NodegroupName }}'
- name: NodeRole
value: '{{ NodeRole }}'
- name: ReleaseVersion
value: '{{ ReleaseVersion }}'
- name: RemoteAccess
value:
SourceSecurityGroups:
- '{{ SourceSecurityGroups[0] }}'
Ec2SshKey: '{{ Ec2SshKey }}'
- name: ScalingConfig
value:
MinSize: '{{ MinSize }}'
DesiredSize: '{{ DesiredSize }}'
MaxSize: '{{ MaxSize }}'
- name: Subnets
value:
- '{{ Subnets[0] }}'
- name: Tags
value: {}
- name: Taints
value:
- Key: '{{ Key }}'
Value: '{{ Value }}'
Effect: '{{ Effect }}'
- name: UpdateConfig
value:
MaxUnavailable: null
MaxUnavailablePercentage: null
- name: Version
value: '{{ Version }}'
DELETE
example
/*+ delete */
DELETE FROM aws.eks.nodegroups
WHERE data__Identifier = '<Id>'
AND region = 'us-east-1';
Permissions
To operate on the nodegroups
resource, the following permissions are required:
Create
eks:CreateNodegroup,
eks:DescribeNodegroup,
eks:TagResource,
ec2:DescribeSubnets,
ec2:DescribeVpcs,
ec2:DescribeSecurityGroups,
ec2:DescribeKeyPairs,
ec2:CreateTags,
ec2:DeleteTags,
ec2:DescribeRouteTables,
ec2:DescribeLaunchTemplates,
ec2:DescribeLaunchTemplateVersions,
ec2:RunInstances,
iam:CreateServiceLinkedRole,
iam:GetRole,
iam:PassRole,
iam:ListAttachedRolePolicies
Read
eks:DescribeNodegroup
Delete
eks:DeleteNodegroup,
eks:DescribeNodegroup
List
eks:ListNodegroups
Update
iam:GetRole,
iam:PassRole,
eks:DescribeNodegroup,
eks:DescribeUpdate,
eks:ListUpdates,
eks:TagResource,
eks:UntagResource,
eks:UpdateNodegroupConfig,
eks:UpdateNodegroupVersion