Skip to content

Commit 99b69ae

Browse files
committed
feat: Add metadata_options for node_groups
1 parent be71ef2 commit 99b69ae

File tree

3 files changed

+37
-25
lines changed

3 files changed

+37
-25
lines changed

modules/node_groups/README.md

+3
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ The role ARN specified in `var.default_iam_role_arn` will be used by default. In
5050
| taints | Kubernetes node taints | list(map) | empty |
5151
| timeouts | A map of timeouts for create/update/delete operations. | `map(string)` | Provider default behavior |
5252
| update_default_version | Whether or not to set the new launch template version the Default | bool | `true` |
53+
| metadata_http_endpoint | The state of the instance metadata service. Requires `create_launch_template` to be `true` | string | `var.workers_group_defaults[metadata_http_endpoint]` |
54+
| metadata_http_tokens | If session tokens are required. Requires `create_launch_template` to be `true` | string | `var.workers_group_defaults[metadata_http_tokens]` |
55+
| metadata_http_put_response_hop_limit | The desired HTTP PUT response hop limit for instance metadata requests. Requires `create_launch_template` to be `true` | number | `var.workers_group_defaults[metadata_http_put_response_hop_limit]` |
5356

5457
<!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK -->
5558
## Requirements

modules/node_groups/launch_template.tf

+6
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,12 @@ resource "aws_launch_template" "workers" {
7575

7676
key_name = lookup(each.value, "key_name", null)
7777

78+
metadata_options {
79+
http_endpoint = lookup(each.value, "metadata_http_endpoint", null)
80+
http_tokens = lookup(each.value, "metadata_http_tokens", null)
81+
http_put_response_hop_limit = lookup(each.value, "metadata_http_put_response_hop_limit", null)
82+
}
83+
7884
# Supplying custom tags to EKS instances is another use-case for LaunchTemplates
7985
tag_specifications {
8086
resource_type = "instance"

modules/node_groups/locals.tf

+28-25
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,34 @@ locals {
22
# Merge defaults and per-group values to make code cleaner
33
node_groups_expanded = { for k, v in var.node_groups : k => merge(
44
{
5-
desired_capacity = var.workers_group_defaults["asg_desired_capacity"]
6-
iam_role_arn = var.default_iam_role_arn
7-
instance_types = [var.workers_group_defaults["instance_type"]]
8-
key_name = var.workers_group_defaults["key_name"]
9-
launch_template_id = var.workers_group_defaults["launch_template_id"]
10-
launch_template_version = var.workers_group_defaults["launch_template_version"]
11-
set_instance_types_on_lt = false
12-
max_capacity = var.workers_group_defaults["asg_max_size"]
13-
min_capacity = var.workers_group_defaults["asg_min_size"]
14-
subnets = var.workers_group_defaults["subnets"]
15-
create_launch_template = false
16-
kubelet_extra_args = var.workers_group_defaults["kubelet_extra_args"]
17-
disk_size = var.workers_group_defaults["root_volume_size"]
18-
disk_type = var.workers_group_defaults["root_volume_type"]
19-
disk_encrypted = var.workers_group_defaults["root_encrypted"]
20-
disk_kms_key_id = var.workers_group_defaults["root_kms_key_id"]
21-
enable_monitoring = var.workers_group_defaults["enable_monitoring"]
22-
eni_delete = var.workers_group_defaults["eni_delete"]
23-
public_ip = var.workers_group_defaults["public_ip"]
24-
pre_userdata = var.workers_group_defaults["pre_userdata"]
25-
additional_security_group_ids = var.workers_group_defaults["additional_security_group_ids"]
26-
taints = []
27-
timeouts = var.workers_group_defaults["timeouts"]
28-
update_default_version = true
29-
ebs_optimized = null
5+
desired_capacity = var.workers_group_defaults["asg_desired_capacity"]
6+
iam_role_arn = var.default_iam_role_arn
7+
instance_types = [var.workers_group_defaults["instance_type"]]
8+
key_name = var.workers_group_defaults["key_name"]
9+
launch_template_id = var.workers_group_defaults["launch_template_id"]
10+
launch_template_version = var.workers_group_defaults["launch_template_version"]
11+
set_instance_types_on_lt = false
12+
max_capacity = var.workers_group_defaults["asg_max_size"]
13+
min_capacity = var.workers_group_defaults["asg_min_size"]
14+
subnets = var.workers_group_defaults["subnets"]
15+
create_launch_template = false
16+
kubelet_extra_args = var.workers_group_defaults["kubelet_extra_args"]
17+
disk_size = var.workers_group_defaults["root_volume_size"]
18+
disk_type = var.workers_group_defaults["root_volume_type"]
19+
disk_encrypted = var.workers_group_defaults["root_encrypted"]
20+
disk_kms_key_id = var.workers_group_defaults["root_kms_key_id"]
21+
enable_monitoring = var.workers_group_defaults["enable_monitoring"]
22+
eni_delete = var.workers_group_defaults["eni_delete"]
23+
public_ip = var.workers_group_defaults["public_ip"]
24+
pre_userdata = var.workers_group_defaults["pre_userdata"]
25+
additional_security_group_ids = var.workers_group_defaults["additional_security_group_ids"]
26+
taints = []
27+
timeouts = var.workers_group_defaults["timeouts"]
28+
update_default_version = true
29+
ebs_optimized = null
30+
metadata_http_endpoint = var.workers_group_defaults["metadata_http_endpoint"]
31+
metadata_http_tokens = var.workers_group_defaults["metadata_http_tokens"]
32+
metadata_http_put_response_hop_limit = var.workers_group_defaults["metadata_http_put_response_hop_limit"]
3033
},
3134
var.node_groups_defaults,
3235
v,

0 commit comments

Comments
 (0)