From 26d40d2f1dd29cee1f4c05354b4b1afcc2b38ceb Mon Sep 17 00:00:00 2001 From: Rucha Kulkarni <41280208+rucha3@users.noreply.github.com> Date: Tue, 20 Apr 2021 02:16:17 +0530 Subject: [PATCH] feat: Add support for specifying elastic inference accelerator (#1176) --- examples/launch_templates/main.tf | 7 +++++++ local.tf | 1 + workers_launch_template.tf | 12 ++++++++++++ 3 files changed, 20 insertions(+) diff --git a/examples/launch_templates/main.tf b/examples/launch_templates/main.tf index 2501d6da..98cac244 100644 --- a/examples/launch_templates/main.tf +++ b/examples/launch_templates/main.tf @@ -60,5 +60,12 @@ module "eks" { asg_desired_capacity = 1 public_ip = true }, + { + name = "worker-group-3" + instance_type = "t2.large" + asg_desired_capacity = 1 + public_ip = true + elastic_inference_accelerator = "eia2.medium" + }, ] } diff --git a/local.tf b/local.tf index 517fe7ab..f60ef1c3 100644 --- a/local.tf +++ b/local.tf @@ -94,6 +94,7 @@ locals { spot_instance_pools = 10 # "Number of Spot pools per availability zone to allocate capacity. EC2 Auto Scaling selects the cheapest Spot pools and evenly allocates Spot capacity across the number of Spot pools that you specify." spot_max_price = "" # Maximum price per unit hour that the user is willing to pay for the Spot instances. Default is the on-demand price max_instance_lifetime = 0 # Maximum number of seconds instances can run in the ASG. 0 is unlimited. + elastic_inference_accelerator = null # Type of elastic inference accelerator to be attached. Example values are eia1.medium, eia2.large, etc. } workers_group_defaults = merge( diff --git a/workers_launch_template.tf b/workers_launch_template.tf index c9626f49..bdf07afd 100644 --- a/workers_launch_template.tf +++ b/workers_launch_template.tf @@ -290,6 +290,18 @@ resource "aws_launch_template" "workers_launch_template" { "instance_type", local.workers_group_defaults["instance_type"], ) + + dynamic "elastic_inference_accelerator" { + for_each = lookup( + var.worker_groups_launch_template[count.index], + "elastic_inference_accelerator", + local.workers_group_defaults["elastic_inference_accelerator"] + ) != null ? [lookup(var.worker_groups_launch_template[count.index], "elastic_inference_accelerator", local.workers_group_defaults["elastic_inference_accelerator"])] : [] + content { + type = elastic_inference_accelerator.value + } + } + key_name = lookup( var.worker_groups_launch_template[count.index], "key_name",