@@ -7,14 +7,10 @@ locals {
77 need_ami_id = local. enabled ? local. features_require_ami && length (local. configured_ami_image_id ) == 0 : false
88 need_imds_settings = var. metadata_http_endpoint != " enabled" || var. metadata_http_put_response_hop_limit != 1 || var. metadata_http_tokens != " optional"
99 features_require_launch_template = local. enabled ? length (var. resources_to_tag ) > 0 || local. need_userdata || local. features_require_ami || local. need_imds_settings : false
10-
11- have_ssh_key = var. ec2_ssh_key != null && var. ec2_ssh_key != " "
12-
13- need_remote_access_sg = local. enabled && local. have_ssh_key && local. generate_launch_template
14-
15- get_cluster_data = local. enabled ? (local. need_cluster_kubernetes_version || local. need_bootstrap || local. need_remote_access_sg ) : false
16-
17- autoscaler_enabled = var. enable_cluster_autoscaler != null ? var. enable_cluster_autoscaler : var. cluster_autoscaler_enabled == true
10+ remote_access_enabled = local. enabled && var. remote_access_enabled
11+ need_remote_access_sg = local. generate_launch_template && local. remote_access_enabled
12+ get_cluster_data = local. enabled ? (local. need_cluster_kubernetes_version || local. need_bootstrap || local. need_remote_access_sg ) : false
13+ autoscaler_enabled = var. enable_cluster_autoscaler != null ? var. enable_cluster_autoscaler : var. cluster_autoscaler_enabled == true
1814 #
1915 # Set up tags for autoscaler and other resources
2016 #
@@ -37,6 +33,9 @@ locals {
3733 }
3834 )
3935 node_group_tags = merge (local. node_tags , local. autoscaler_enabled ? local. autoscaler_tags : {})
36+
37+ # hack to prevent failure when var.remote_access_enabled is false
38+ vpc_id = try (data. aws_eks_cluster . this [0 ]. vpc_config [0 ]. vpc_id , null )
4039}
4140
4241module "label" {
@@ -55,7 +54,7 @@ data "aws_eks_cluster" "this" {
5554
5655# Support keeping 2 node groups in sync by extracting common variable settings
5756locals {
58- ng_needs_remote_access = local. have_ssh_key && ! local. use_launch_template
57+ ng_needs_remote_access = local. remote_access_enabled && ! local. use_launch_template
5958 ng = {
6059 cluster_name = var.cluster_name
6160 node_role_arn = join (" " , aws_iam_role. default . * . arn )
@@ -82,10 +81,9 @@ locals {
8281 }
8382
8483 # Configure remote access via Launch Template if we are using one
85- need_remote_access = local.ng_needs_remote_access
86- ec2_ssh_key = local.have_ssh_key ? var.ec2_ssh_key : " none"
87- # Keep sorted so that change in order does not trigger replacement via random_pet
88- source_security_group_ids = local.ng_needs_remote_access ? sort (var. source_security_group_ids ) : []
84+ need_remote_access = local.ng_needs_remote_access
85+ ec2_ssh_key = local.remote_access_enabled ? var.ec2_ssh_key : " none"
86+ source_security_group_ids = local.ng_needs_remote_access ? sort (concat (module. security_group . * . id , var. security_groups )) : []
8987 }
9088}
9189
@@ -96,15 +94,14 @@ resource "random_pet" "cbd" {
9694 length = 1
9795
9896 keepers = {
99- node_role_arn = local.ng.node_role_arn
100- subnet_ids = join (" ," , local. ng . subnet_ids )
101- disk_size = local.ng.disk_size
102- instance_types = join (" ," , local. ng . instance_types )
103- ami_type = local.ng.ami_type
104- release_version = local.ng.release_version
105- version = local.ng.version
106- capacity_type = local.ng.capacity_type
107-
97+ node_role_arn = local.ng.node_role_arn
98+ subnet_ids = join (" ," , local. ng . subnet_ids )
99+ disk_size = local.ng.disk_size
100+ instance_types = join (" ," , local. ng . instance_types )
101+ ami_type = local.ng.ami_type
102+ release_version = local.ng.release_version
103+ version = local.ng.version
104+ capacity_type = local.ng.capacity_type
108105 need_remote_access = local.ng.need_remote_access
109106 ec2_ssh_key = local.ng.need_remote_access ? local.ng.ec2_ssh_key : " handled by launch template"
110107 # Any change in security groups requires a new node group, because you cannot delete a security group while it is in use
@@ -115,8 +112,7 @@ resource "random_pet" "cbd" {
115112 # source_security_group_ids = join(",", local.ng.source_security_group_ids, aws_security_group.remote_access.*.id)
116113 #
117114 source_security_group_ids = local.need_remote_access_sg ? " generated for launch template" : join (" ," , local. ng . source_security_group_ids )
118-
119- launch_template_id = local.use_launch_template ? local.launch_template_id : " none"
115+ launch_template_id = local.use_launch_template ? local.launch_template_id : " none"
120116 }
121117}
122118
@@ -180,7 +176,7 @@ resource "aws_eks_node_group" "default" {
180176 aws_iam_role_policy_attachment . amazon_eks_worker_node_autoscale_policy ,
181177 aws_iam_role_policy_attachment . amazon_eks_cni_policy ,
182178 aws_iam_role_policy_attachment . amazon_ec2_container_registry_read_only ,
183- aws_security_group . remote_access ,
179+ module . security_group ,
184180 # Also allow calling module to create an explicit dependency
185181 # This is useful in conjunction with terraform-aws-eks-cluster to ensure
186182 # the cluster is fully created and configured before creating any node groups
@@ -243,7 +239,7 @@ resource "aws_eks_node_group" "cbd" {
243239 aws_iam_role_policy_attachment . amazon_eks_worker_node_autoscale_policy ,
244240 aws_iam_role_policy_attachment . amazon_eks_cni_policy ,
245241 aws_iam_role_policy_attachment . amazon_ec2_container_registry_read_only ,
246- aws_security_group . remote_access ,
242+ module . security_group ,
247243 # Also allow calling module to create an explicit dependency
248244 # This is useful in conjunction with terraform-aws-eks-cluster to ensure
249245 # the cluster is fully created and configured before creating any node groups
0 commit comments