eks-node-group

cloudposse/eks-node-group/aws

Terraform Module HCL AWS

Terraform module to provision a fully managed AWS EKS Node Group

Install
module "eks-node-group" {
source = "cloudposse/eks-node-group/aws"
version = "3.4.0"
}
plain text: /constructs/tfmod-cloudposse-eks-node-group-aws/install.txt
⭐ Source on GitHub 📦 Registry page
README

Terraform module to provision an EKS Managed Node Group for Elastic Kubernetes Service. Instantiate it multiple times to create EKS Managed Node Groups with specific settings such as GPUs, EC2 instance types, or autoscale parameters. IMPORTANT: When SSH access is enabled without specifying a source security group, this module provisions EKS Node Group nodes that are globally accessible by SSH (22) port. Normally, AWS recommends that no security group allows unrestricted ingress access to port 22 . > [!TIP] > #### 👽 Use Atmos with Terraform > Cloud Posse uses atmos to easily orchestrate multiple environments using Terraform. > Works with Github Actions, Atlantis, or Spacelift. > > > Watch demo of using Atmos with Terraform > > Example of running atmos to manage infrastructure from our Quick

Inputs (50)
NameTypeDescriptionDefault
min_sizenumberMinimum number of worker nodes required
cluster_namestringThe name of the EKS cluster required
desired_sizenumberInitial desired number of worker nodes (external changes ignored) required
ssh_access_security_group_idslist(string)Set of EC2 Security Group IDs to allow SSH access (port 22) to the worker nodes.[]
associated_security_group_idslist(string)A list of IDs of Security Groups to associate the node group with, in addition t[]
instance_typeslist(string)Instance types to use for this node group (up to 20). Defaults to ["t3.medium"].[ "t3.medium" ]
kubernetes_labelsmap(string)Key-value mapping of Kubernetes labels. Only labels that are applied with the EK{}
userdata_override_base64list(string)Many features of this module rely on the `bootstrap.sh` provided with Amazon Lin[]
enabledboolSet to false to prevent the module from creating any resourcesnull
kubelet_additional_optionslist(string)Additional flags to pass to kubelet. DO NOT include `--node-labels` or `--node-t[]
resources_to_taglist(string)List of auto-launched resource types to tag. Valid types are "instance", "volume[ "instance", "volume", "network-i
tenantstringID element _(Rarely used, not included by default)_. A customer identifier, indinull
environmentstringID element. Usually used for region e.g. 'uw2', 'us-west-2', OR role 'prod', 'stnull
attributeslist(string)ID element. Additional attributes (e.g. `workers` or `cluster`) to add to `id`, []
block_device_mapmap(object({ no_device Map of block device name specification, see [launch_template.block-devices](http{ "/dev/xvda": { "ebs": {} } }
namespacestringID element. Usually an abbreviation of your organization name, e.g. 'eg' or 'cp'null
node_role_arnlist(string)If provided, assign workers the given role, which this module will not modify[]
ami_image_idlist(string)AMI to use, overriding other AMI specifications, but must match `ami_type`. Igno[]
capacity_typestringType of capacity associated with the EKS Node Group. Valid values: "ON_DEMAND", null
kubernetes_versionlist(string)Kubernetes version. Defaults to EKS Cluster Kubernetes version. Terraform will o[]
bootstrap_additional_optionslist(string)Additional options to bootstrap.sh. DO NOT include `--kubelet-additional-args`, []
node_group_terraform_timeoutslist(object({ create = optConfiguration for the Terraform [`timeouts` Configuration Block](https://www.ter[]
immediately_apply_lt_changesboolWhen `true`, any change to the launch template will be applied immediately. Whennull
… and 10 more inputs
Outputs (13)
eks_node_group_launch_template_id — The ID of the launch template used for this node group
eks_node_group_tags_all — A map of tags assigned to the resource, including those inherited from the provider default_tags con
eks_node_group_ami_id — The ID of the AMI used for the worker nodes, if specified
eks_node_group_role_arn — ARN of the worker nodes IAM role
eks_node_group_id — EKS Cluster name and EKS Node Group name separated by a colon
eks_node_group_arn — Amazon Resource Name (ARN) of the EKS Node Group
eks_node_group_remote_access_security_group_id — The ID of the security group generated to allow SSH access to the nodes, if this module generated on
eks_node_group_launch_template_name — The name of the launch template used for this node group
WARNING_cluster_autoscaler_enabled — WARNING
eks_node_group_role_name — Name of the worker nodes IAM role
eks_node_group_resources — List of objects containing information about underlying resources of the EKS Node Group
eks_node_group_status — Status of the EKS Node Group
eks_node_group_cbd_pet_name — The pet name of this node group, if this module generated one
Resources (7)
aws_eks_node_groupaws_iam_policyaws_iam_roleaws_iam_role_policy_attachmentaws_launch_templatenull_resourcerandom_pet
Details
FrameworkTerraform Module
LanguageHCL
Version3.4.0
Cloud AWS
★ Stars100
Forks134
Total downloads1.1M
Inputs50
Outputs13
Resources7
Examples1
LicenseApache-2.0
Namespacecloudposse
Updated