From 4d60e817e26b7399d9c09466911f9d3c5e832fba Mon Sep 17 00:00:00 2001 From: Olamide Date: Wed, 25 Sep 2024 17:55:11 +0100 Subject: [PATCH] Pass in custom metadata options to the eks launch template --- aws/cluster/modules/eks-node-group/main.tf | 20 ++++++++++++++++--- .../modules/eks-node-group/variables.tf | 6 ++++++ 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/aws/cluster/modules/eks-node-group/main.tf b/aws/cluster/modules/eks-node-group/main.tf index 4f4013d..4ca6a46 100644 --- a/aws/cluster/modules/eks-node-group/main.tf +++ b/aws/cluster/modules/eks-node-group/main.tf @@ -9,7 +9,7 @@ resource "aws_eks_node_group" "this" { subnet_ids = [each.value.id] dynamic "launch_template" { - for_each = var.user_data != null ? [aws_launch_template.this[0]] : [] + for_each = var.metadata_options != {} ? [aws_launch_template.this[0]] : [] content { id = launch_template.value.id @@ -40,10 +40,22 @@ resource "aws_eks_node_group" "this" { } } +# resource "aws_launch_template" "this" { +# count = var.user_data != null ? 1 : 0 + +# user_data = base64encode(var.user_data) +# } + resource "aws_launch_template" "this" { - count = var.user_data != null ? 1 : 0 + count = var.metadata_options != {} ? 1 : 0 - user_data = base64encode(var.user_data) + metadata_options { + http_endpoint = lookup(var.metadata_options, "http_endpoint", "enabled") + http_tokens = lookup(var.metadata_options, "http_tokens", "optional") + http_put_response_hop_limit = lookup(var.metadata_options, "htthttp_put_response_hop_limit", "1") + http_protocol_ipv6 = lookup(var.metadata_options, "http_protocol_ipv6", "disabled") + instance_metadata_tags = lookup(var.metadata_options, "instance_metadata_tags", "disabled") + } } locals { @@ -54,4 +66,6 @@ locals { var.subnets[*].availability_zone, var.subnets ) + + } diff --git a/aws/cluster/modules/eks-node-group/variables.tf b/aws/cluster/modules/eks-node-group/variables.tf index 71d495d..45a1232 100644 --- a/aws/cluster/modules/eks-node-group/variables.tf +++ b/aws/cluster/modules/eks-node-group/variables.tf @@ -75,3 +75,9 @@ variable "user_data" { description = "Optional user data script for the launch template" default = null # Default to an empty string if no user data is provided } + +variable "metadata_options" { + type = map(string) + description = "Customize the metadata options for the cluster nodes" + default = {} +}