Cosmetic fixes (#131)

* changing syntax when referring to map keys without lookup function

* Replacing map function with actual maps for easier reading

* replacing map function in example

* replacing map function in workers.tf and readme/main

* update changelog
This commit is contained in:
Max Williams
2018-09-25 12:30:56 +02:00
committed by GitHub
parent b623bc234a
commit fdd44c8f38
6 changed files with 70 additions and 60 deletions

View File

@@ -17,6 +17,7 @@ project adheres to [Semantic Versioning](http://semver.org/).
- A subtle but thoughtful change. (Boomshakalaka, @self 🏀) - A subtle but thoughtful change. (Boomshakalaka, @self 🏀)
- fix default worker subnets not working (by @erks) - fix default worker subnets not working (by @erks)
- fix default worker autoscaling_enabled not working (by @erks) - fix default worker autoscaling_enabled not working (by @erks)
- Cosmetic syntax changes to improve readability. (by @max-rocket-internet)
- add `protect_from_scale_in` to solve issue #134 (by @kinghajj) - add `protect_from_scale_in` to solve issue #134 (by @kinghajj)
## [[v1.6.0](https://github.com/terraform-aws-modules/terraform-aws-eks/compare/v1.5.0...v1.6.0)] - 2018-09-04] ## [[v1.6.0](https://github.com/terraform-aws-modules/terraform-aws-eks/compare/v1.5.0...v1.6.0)] - 2018-09-04]

View File

@@ -26,7 +26,7 @@ module "eks" {
source = "terraform-aws-modules/eks/aws" source = "terraform-aws-modules/eks/aws"
cluster_name = "test-eks-cluster" cluster_name = "test-eks-cluster"
subnets = ["subnet-abcde012", "subnet-bcde012a"] subnets = ["subnet-abcde012", "subnet-bcde012a"]
tags = "${map("Environment", "test")}" tags = {Environment = "test"}
vpc_id = "vpc-abcde012" vpc_id = "vpc-abcde012"
} }
``` ```

View File

@@ -77,8 +77,8 @@ data "template_file" "userdata" {
cluster_name = "${aws_eks_cluster.this.name}" cluster_name = "${aws_eks_cluster.this.name}"
endpoint = "${aws_eks_cluster.this.endpoint}" endpoint = "${aws_eks_cluster.this.endpoint}"
cluster_auth_base64 = "${aws_eks_cluster.this.certificate_authority.0.data}" cluster_auth_base64 = "${aws_eks_cluster.this.certificate_authority.0.data}"
pre_userdata = "${lookup(var.worker_groups[count.index], "pre_userdata",lookup(local.workers_group_defaults, "pre_userdata"))}" pre_userdata = "${lookup(var.worker_groups[count.index], "pre_userdata", local.workers_group_defaults["pre_userdata"])}"
additional_userdata = "${lookup(var.worker_groups[count.index], "additional_userdata",lookup(local.workers_group_defaults, "additional_userdata"))}" additional_userdata = "${lookup(var.worker_groups[count.index], "additional_userdata", local.workers_group_defaults["additional_userdata"])}"
kubelet_extra_args = "${lookup(var.worker_groups[count.index], "kubelet_extra_args",lookup(local.workers_group_defaults, "kubelet_extra_args"))}" kubelet_extra_args = "${lookup(var.worker_groups[count.index], "kubelet_extra_args", local.workers_group_defaults["kubelet_extra_args"])}"
} }
} }

View File

@@ -18,39 +18,46 @@ locals {
# the commented out worker group list below shows an example of how to define # the commented out worker group list below shows an example of how to define
# multiple worker groups of differing configurations # multiple worker groups of differing configurations
# worker_groups = "${list( # worker_groups = [
# map("asg_desired_capacity", "2", # {
# "asg_max_size", "10", # asg_desired_capacity = 2
# "asg_min_size", "2", # asg_max_size = 10
# "instance_type", "m4.xlarge", # asg_min_size = 2
# "name", "worker_group_a", # instance_type = "m4.xlarge"
# "subnets", "${join(",", module.vpc.private_subnets)}", # name = "worker_group_a"
# ), # additional_userdata = "echo foo bar"
# map("asg_desired_capacity", "1", # subnets = "${join(",", module.vpc.private_subnets)}"
# "asg_max_size", "5", # },
# "asg_min_size", "1", # {
# "instance_type", "m4.2xlarge", # asg_desired_capacity = 1
# "name", "worker_group_b", # asg_max_size = 5
# "subnets", "${join(",", module.vpc.private_subnets)}", # asg_min_size = 1
# ), # instance_type = "m4.2xlarge"
# )}" # name = "worker_group_b"
# additional_userdata = "echo foo bar"
# subnets = "${join(",", module.vpc.private_subnets)}"
# },
# ]
worker_groups = "${list( worker_groups = [
map("instance_type","t2.small", {
"additional_userdata","echo foo bar", instance_type = "t2.small"
"subnets", "${join(",", module.vpc.private_subnets)}", additional_userdata = "echo foo bar"
), subnets = "${join(",", module.vpc.private_subnets)}"
map("instance_type","t2.small", },
"additional_userdata","echo foo bar", {
"subnets", "${join(",", module.vpc.private_subnets)}", instance_type = "t2.small"
"additional_security_group_ids", "${aws_security_group.worker_group_mgmt_one.id},${aws_security_group.worker_group_mgmt_two.id}" additional_userdata = "echo foo bar"
) subnets = "${join(",", module.vpc.private_subnets)}"
)}" additional_security_group_ids = "${aws_security_group.worker_group_mgmt_one.id},${aws_security_group.worker_group_mgmt_two.id}"
tags = "${map("Environment", "test", },
"GithubRepo", "terraform-aws-eks", ]
"GithubOrg", "terraform-aws-modules", tags = {
"Workspace", "${terraform.workspace}", Environment = "test"
)}" GithubRepo = "terraform-aws-eks"
GithubOrg = "terraform-aws-modules"
Workspace = "${terraform.workspace}"
}
} }
resource "random_string" "suffix" { resource "random_string" "suffix" {

View File

@@ -27,7 +27,7 @@
* source = "terraform-aws-modules/eks/aws" * source = "terraform-aws-modules/eks/aws"
* cluster_name = "test-eks-cluster" * cluster_name = "test-eks-cluster"
* subnets = ["subnet-abcde012", "subnet-bcde012a"] * subnets = ["subnet-abcde012", "subnet-bcde012a"]
* tags = "${map("Environment", "test")}" * tags = {Environment = "test"}
* vpc_id = "vpc-abcde012" * vpc_id = "vpc-abcde012"
* } * }
* ``` * ```

View File

@@ -1,18 +1,20 @@
resource "aws_autoscaling_group" "workers" { resource "aws_autoscaling_group" "workers" {
name_prefix = "${aws_eks_cluster.this.name}-${lookup(var.worker_groups[count.index], "name", count.index)}" name_prefix = "${aws_eks_cluster.this.name}-${lookup(var.worker_groups[count.index], "name", count.index)}"
desired_capacity = "${lookup(var.worker_groups[count.index], "asg_desired_capacity", lookup(local.workers_group_defaults, "asg_desired_capacity"))}" desired_capacity = "${lookup(var.worker_groups[count.index], "asg_desired_capacity", local.workers_group_defaults["asg_desired_capacity"])}"
max_size = "${lookup(var.worker_groups[count.index], "asg_max_size",lookup(local.workers_group_defaults, "asg_max_size"))}" max_size = "${lookup(var.worker_groups[count.index], "asg_max_size", local.workers_group_defaults["asg_max_size"])}"
min_size = "${lookup(var.worker_groups[count.index], "asg_min_size",lookup(local.workers_group_defaults, "asg_min_size"))}" min_size = "${lookup(var.worker_groups[count.index], "asg_min_size", local.workers_group_defaults["asg_min_size"])}"
launch_configuration = "${element(aws_launch_configuration.workers.*.id, count.index)}" launch_configuration = "${element(aws_launch_configuration.workers.*.id, count.index)}"
vpc_zone_identifier = ["${split(",", coalesce(lookup(var.worker_groups[count.index], "subnets", ""), lookup(local.workers_group_defaults, "subnets")))}"] vpc_zone_identifier = ["${split(",", coalesce(lookup(var.worker_groups[count.index], "subnets", ""), local.workers_group_defaults["subnets"]))}"]
protect_from_scale_in = "${lookup(var.worker_groups[count.index], "protect_from_scale_in", local.workers_group_defaults["protect_from_scale_in"])}"
count = "${var.worker_group_count}" count = "${var.worker_group_count}"
protect_from_scale_in = "${lookup(var.worker_groups[count.index], "protect_from_scale_in", lookup(local.workers_group_defaults, "protect_from_scale_in"))}"
tags = ["${concat( tags = ["${concat(
list( list(
map("key", "Name", "value", "${aws_eks_cluster.this.name}-${lookup(var.worker_groups[count.index], "name", count.index)}-eks_asg", "propagate_at_launch", true), map("key", "Name", "value", "${aws_eks_cluster.this.name}-${lookup(var.worker_groups[count.index], "name", count.index)}-eks_asg", "propagate_at_launch", true),
map("key", "kubernetes.io/cluster/${aws_eks_cluster.this.name}", "value", "owned", "propagate_at_launch", true), map("key", "kubernetes.io/cluster/${aws_eks_cluster.this.name}", "value", "owned", "propagate_at_launch", true),
map("key", "k8s.io/cluster-autoscaler/${lookup(var.worker_groups[count.index], "autoscaling_enabled", lookup(local.workers_group_defaults, "autoscaling_enabled")) == 1 ? "enabled" : "disabled" }", "value", "true", "propagate_at_launch", false), map("key", "k8s.io/cluster-autoscaler/${lookup(var.worker_groups[count.index], "autoscaling_enabled", local.workers_group_defaults["autoscaling_enabled"]) == 1 ? "enabled" : "disabled" }", "value", "true", "propagate_at_launch", false),
), ),
local.asg_tags) local.asg_tags)
}"] }"]
@@ -24,16 +26,16 @@ resource "aws_autoscaling_group" "workers" {
resource "aws_launch_configuration" "workers" { resource "aws_launch_configuration" "workers" {
name_prefix = "${aws_eks_cluster.this.name}-${lookup(var.worker_groups[count.index], "name", count.index)}" name_prefix = "${aws_eks_cluster.this.name}-${lookup(var.worker_groups[count.index], "name", count.index)}"
associate_public_ip_address = "${lookup(var.worker_groups[count.index], "public_ip", lookup(local.workers_group_defaults, "public_ip"))}" associate_public_ip_address = "${lookup(var.worker_groups[count.index], "public_ip", local.workers_group_defaults["public_ip"])}"
security_groups = ["${local.worker_security_group_id}", "${var.worker_additional_security_group_ids}", "${compact(split(",",lookup(var.worker_groups[count.index],"additional_security_group_ids",lookup(local.workers_group_defaults, "additional_security_group_ids"))))}"] security_groups = ["${local.worker_security_group_id}", "${var.worker_additional_security_group_ids}", "${compact(split(",",lookup(var.worker_groups[count.index],"additional_security_group_ids", local.workers_group_defaults["additional_security_group_ids"])))}"]
iam_instance_profile = "${element(aws_iam_instance_profile.workers.*.id, count.index)}" iam_instance_profile = "${aws_iam_instance_profile.workers.id}"
image_id = "${lookup(var.worker_groups[count.index], "ami_id", lookup(local.workers_group_defaults, "ami_id"))}" image_id = "${lookup(var.worker_groups[count.index], "ami_id", local.workers_group_defaults["ami_id"])}"
instance_type = "${lookup(var.worker_groups[count.index], "instance_type", lookup(local.workers_group_defaults, "instance_type"))}" instance_type = "${lookup(var.worker_groups[count.index], "instance_type", local.workers_group_defaults["instance_type"])}"
key_name = "${lookup(var.worker_groups[count.index], "key_name", lookup(local.workers_group_defaults, "key_name"))}" key_name = "${lookup(var.worker_groups[count.index], "key_name", local.workers_group_defaults["key_name"])}"
user_data_base64 = "${base64encode(element(data.template_file.userdata.*.rendered, count.index))}" user_data_base64 = "${base64encode(element(data.template_file.userdata.*.rendered, count.index))}"
ebs_optimized = "${lookup(var.worker_groups[count.index], "ebs_optimized", lookup(local.ebs_optimized, lookup(var.worker_groups[count.index], "instance_type", lookup(local.workers_group_defaults, "instance_type")), false))}" ebs_optimized = "${lookup(var.worker_groups[count.index], "ebs_optimized", lookup(local.ebs_optimized, lookup(var.worker_groups[count.index], "instance_type", local.workers_group_defaults["instance_type"]), false))}"
enable_monitoring = "${lookup(var.worker_groups[count.index], "enable_monitoring", lookup(local.workers_group_defaults, "enable_monitoring"))}" enable_monitoring = "${lookup(var.worker_groups[count.index], "enable_monitoring", local.workers_group_defaults["enable_monitoring"])}"
spot_price = "${lookup(var.worker_groups[count.index], "spot_price", lookup(local.workers_group_defaults, "spot_price"))}" spot_price = "${lookup(var.worker_groups[count.index], "spot_price", local.workers_group_defaults["spot_price"])}"
count = "${var.worker_group_count}" count = "${var.worker_group_count}"
lifecycle { lifecycle {
@@ -41,9 +43,9 @@ resource "aws_launch_configuration" "workers" {
} }
root_block_device { root_block_device {
volume_size = "${lookup(var.worker_groups[count.index], "root_volume_size", lookup(local.workers_group_defaults, "root_volume_size"))}" volume_size = "${lookup(var.worker_groups[count.index], "root_volume_size", local.workers_group_defaults["root_volume_size"])}"
volume_type = "${lookup(var.worker_groups[count.index], "root_volume_type", lookup(local.workers_group_defaults, "root_volume_type"))}" volume_type = "${lookup(var.worker_groups[count.index], "root_volume_type", local.workers_group_defaults["root_volume_type"])}"
iops = "${lookup(var.worker_groups[count.index], "root_iops", lookup(local.workers_group_defaults, "root_iops"))}" iops = "${lookup(var.worker_groups[count.index], "root_iops", local.workers_group_defaults["root_iops"])}"
delete_on_termination = true delete_on_termination = true
} }
} }
@@ -119,11 +121,11 @@ resource "aws_iam_role_policy_attachment" "workers_AmazonEC2ContainerRegistryRea
resource "null_resource" "tags_as_list_of_maps" { resource "null_resource" "tags_as_list_of_maps" {
count = "${length(keys(var.tags))}" count = "${length(keys(var.tags))}"
triggers = "${map( triggers = {
"key", "${element(keys(var.tags), count.index)}", key = "${element(keys(var.tags), count.index)}"
"value", "${element(values(var.tags), count.index)}", value = "${element(values(var.tags), count.index)}"
"propagate_at_launch", "true" propagate_at_launch = "true"
)}" }
} }
resource "aws_iam_role_policy_attachment" "workers_autoscaling" { resource "aws_iam_role_policy_attachment" "workers_autoscaling" {