eks-workers
cloudposse/eks-workers/aws
Terraform module to provision an AWS AutoScaling Group, IAM Role, and Security Group for EKS Workers
Terraform module to provision AWS resources to run EC2 worker nodes for Elastic Kubernetes Service. Instantiate it multiple times to create many EKS worker node pools with specific settings such as GPUs, EC2 instance types, or autoscale parameters. > [!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 Start tutorial. > Introduction The module provisions the following resources: - IAM Role and Instance Profile to allow Kubernetes nodes to access other AWS services - Security Group with rules for EKS workers to allow networking traffic - AutoScaling Gr
| Name | Type | Description | Default |
|---|---|---|---|
| cluster_endpoint | string | EKS cluster endpoint | required |
| cluster_name | string | The name of the EKS cluster | required |
| vpc_id | string | VPC ID for the EKS cluster | required |
| scale_down_cooldown_seconds | number | The amount of time, in seconds, after a scaling activity completes and before th | 300 |
| scale_down_scaling_adjustment | number | The number of instances by which to scale. `scale_down_scaling_adjustment` deter | -1 |
| use_existing_security_group | bool | If set to `true`, will use variable `workers_security_group_id` to run EKS worke | false |
| use_existing_aws_iam_instance_profile | bool | If set to `true`, will use variable `aws_iam_instance_profile_name` to run EKS w | false |
| use_custom_image_id | bool | If set to `true`, will use variable `image_id` for the EKS workers inside autosc | false |
| suspended_processes | list(string) | A list of processes to suspend for the AutoScaling Group. The allowed values are | [] |
| metrics_granularity | string | The granularity to associate with the metrics to collect. The only valid value i | "1Minute" |
| allowed_security_groups | list(string) | List of Security Group IDs to be allowed to connect to the worker nodes | [] |
| key_name | string | SSH key name that should be used for the instance | "" |
| health_check_grace_period | number | Time (in seconds) after instance comes into service before checking health | 300 |
| force_delete | bool | Allows deleting the autoscaling group without waiting for all instances in the p | false |
| cpu_utilization_high_statistic | string | The statistic to apply to the alarm's associated metric. Either of the following | "Average" |
| cpu_utilization_low_statistic | string | The statistic to apply to the alarm's associated metric. Either of the following | "Average" |
| eks_worker_ami_name_regex | string | A regex string to apply to the AMI list returned by AWS | "^amazon-eks-node-[0-9,.]+-v[0-9]{8}$" |
| target_group_arns | list(string) | A list of aws_alb_target_group ARNs, for use with Application Load Balancing | [] |
| min_elb_capacity | number | Setting this causes Terraform to wait for this number of instances to show up he | 0 |
| scale_down_adjustment_type | string | Specifies whether the adjustment is an absolute number or a percentage of the cu | "ChangeInCapacity" |
| after_cluster_joining_userdata | string | Additional commands to execute on each worker node after joining the EKS cluster | "" |
| additional_tag_map | map(string) | Additional key-value pairs to add to each map in `tags_as_list_of_maps`. Not add | {} |
| id_length_limit | number | Limit `id` to this many characters (minimum 6). Set to `0` for unlimited length. | null |
| … and 10 more inputs | |||
autoscaling_group_id — The AutoScaling Group IDautoscaling_group_min_size — The minimum size of the AutoScaling Groupautoscaling_group_arn — ARN of the AutoScaling Groupautoscaling_group_desired_capacity — The number of Amazon EC2 instances that should be running in the groupautoscaling_group_health_check_grace_period — Time after instance comes into service before checking healthsecurity_group_id — ID of the worker nodes Security Grouplaunch_template_id — The ID of the launch templatelaunch_template_arn — ARN of the launch templateworkers_role_name — Name of the worker nodes IAM roleautoscaling_group_name — The AutoScaling Group nameautoscaling_group_default_cooldown — Time between a scaling activity and the succeeding scaling activityautoscaling_group_health_check_type — `EC2` or `ELB`. Controls how health checking is donesecurity_group_arn — ARN of the worker nodes Security Groupsecurity_group_name — Name of the worker nodes Security Groupworkers_role_arn — ARN of the worker nodes IAM roleautoscaling_group_tags — A list of tag settings associated with the AutoScaling Groupautoscaling_group_max_size — The maximum size of the AutoScaling GroupAzure landing zones Terraform module
Terraform supermodule for the Terraform platform engineering for Azure
Terraform module to deploy landing zone subscriptions (and much more) in Azure
Terraform Module to define a consistent naming convention by (namespace, stage,