mirror of
https://github.com/ysoftdevs/terraform-aws-eks.git
synced 2026-03-22 09:29:06 +01:00
fix: More compatibility fixes for Terraform v0.13 and aws v3 (#976)
Additional support for Terraform v0.13 and aws v3! - The update to the vpc module in examples was, strictly speaking, unnecessary but it adds the terraform block with supported versions. - Update for iam module in the example was very necessary to support new versions - Workaround for "Provider produced inconsistent final plan" when creating ASGs at the same time as the cluster. See https://github.com/terraform-providers/terraform-provider-aws/issues/14085 for full details. - Blacklist 0.13.0 as it was too strict when migrating from aws v2 to v3 about dropped attributes.
This commit is contained in:
@@ -144,7 +144,7 @@ MIT Licensed. See [LICENSE](https://github.com/terraform-aws-modules/terraform-a
|
|||||||
|
|
||||||
| Name | Version |
|
| Name | Version |
|
||||||
|------|---------|
|
|------|---------|
|
||||||
| terraform | >= 0.12.9 |
|
| terraform | >= 0.12.9, != 0.13.0 |
|
||||||
| aws | >= 2.55.0 |
|
| aws | >= 2.55.0 |
|
||||||
| kubernetes | >= 1.11.1 |
|
| kubernetes | >= 1.11.1 |
|
||||||
| local | >= 1.4 |
|
| local | >= 1.4 |
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ resource "aws_security_group" "all_worker_mgmt" {
|
|||||||
|
|
||||||
module "vpc" {
|
module "vpc" {
|
||||||
source = "terraform-aws-modules/vpc/aws"
|
source = "terraform-aws-modules/vpc/aws"
|
||||||
version = "2.6.0"
|
version = "2.47.0"
|
||||||
|
|
||||||
name = "test-vpc"
|
name = "test-vpc"
|
||||||
cidr = "10.0.0.0/16"
|
cidr = "10.0.0.0/16"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
module "iam_assumable_role_admin" {
|
module "iam_assumable_role_admin" {
|
||||||
source = "terraform-aws-modules/iam/aws//modules/iam-assumable-role-with-oidc"
|
source = "terraform-aws-modules/iam/aws//modules/iam-assumable-role-with-oidc"
|
||||||
version = "~> v2.6.0"
|
version = "2.14.0"
|
||||||
create_role = true
|
create_role = true
|
||||||
role_name = "cluster-autoscaler"
|
role_name = "cluster-autoscaler"
|
||||||
provider_url = replace(module.eks.cluster_oidc_issuer_url, "https://", "")
|
provider_url = replace(module.eks.cluster_oidc_issuer_url, "https://", "")
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ data "aws_caller_identity" "current" {}
|
|||||||
|
|
||||||
module "vpc" {
|
module "vpc" {
|
||||||
source = "terraform-aws-modules/vpc/aws"
|
source = "terraform-aws-modules/vpc/aws"
|
||||||
version = "2.6.0"
|
version = "2.47.0"
|
||||||
name = "test-vpc"
|
name = "test-vpc"
|
||||||
cidr = "10.0.0.0/16"
|
cidr = "10.0.0.0/16"
|
||||||
azs = data.aws_availability_zones.available.names
|
azs = data.aws_availability_zones.available.names
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ resource "random_string" "suffix" {
|
|||||||
|
|
||||||
module "vpc" {
|
module "vpc" {
|
||||||
source = "terraform-aws-modules/vpc/aws"
|
source = "terraform-aws-modules/vpc/aws"
|
||||||
version = "2.6.0"
|
version = "2.47.0"
|
||||||
|
|
||||||
name = "test-vpc-lt"
|
name = "test-vpc-lt"
|
||||||
cidr = "10.0.0.0/16"
|
cidr = "10.0.0.0/16"
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ resource "random_string" "suffix" {
|
|||||||
|
|
||||||
module "vpc" {
|
module "vpc" {
|
||||||
source = "terraform-aws-modules/vpc/aws"
|
source = "terraform-aws-modules/vpc/aws"
|
||||||
version = "~> 2.6"
|
version = "2.47.0"
|
||||||
|
|
||||||
name = "test-vpc"
|
name = "test-vpc"
|
||||||
cidr = "172.16.0.0/16"
|
cidr = "172.16.0.0/16"
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ resource "aws_kms_key" "eks" {
|
|||||||
|
|
||||||
module "vpc" {
|
module "vpc" {
|
||||||
source = "terraform-aws-modules/vpc/aws"
|
source = "terraform-aws-modules/vpc/aws"
|
||||||
version = "2.6.0"
|
version = "2.47.0"
|
||||||
|
|
||||||
name = "test-vpc"
|
name = "test-vpc"
|
||||||
cidr = "10.0.0.0/16"
|
cidr = "10.0.0.0/16"
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ resource "random_string" "suffix" {
|
|||||||
|
|
||||||
module "vpc" {
|
module "vpc" {
|
||||||
source = "terraform-aws-modules/vpc/aws"
|
source = "terraform-aws-modules/vpc/aws"
|
||||||
version = "2.6.0"
|
version = "2.47.0"
|
||||||
|
|
||||||
name = "test-vpc-spot"
|
name = "test-vpc-spot"
|
||||||
cidr = "10.0.0.0/16"
|
cidr = "10.0.0.0/16"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
terraform {
|
terraform {
|
||||||
required_version = ">= 0.12.9"
|
required_version = ">= 0.12.9, != 0.13.0"
|
||||||
|
|
||||||
required_providers {
|
required_providers {
|
||||||
aws = ">= 2.55.0"
|
aws = ">= 2.55.0"
|
||||||
|
|||||||
55
workers.tf
55
workers.tf
@@ -102,31 +102,38 @@ resource "aws_autoscaling_group" "workers" {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
tags = concat(
|
dynamic "tag" {
|
||||||
[
|
for_each = concat(
|
||||||
{
|
[
|
||||||
"key" = "Name"
|
{
|
||||||
"value" = "${aws_eks_cluster.this[0].name}-${lookup(var.worker_groups[count.index], "name", count.index)}-eks_asg"
|
"key" = "Name"
|
||||||
"propagate_at_launch" = true
|
"value" = "${aws_eks_cluster.this[0].name}-${lookup(var.worker_groups[count.index], "name", count.index)}-eks_asg"
|
||||||
},
|
"propagate_at_launch" = true
|
||||||
{
|
},
|
||||||
"key" = "kubernetes.io/cluster/${aws_eks_cluster.this[0].name}"
|
{
|
||||||
"value" = "owned"
|
"key" = "kubernetes.io/cluster/${aws_eks_cluster.this[0].name}"
|
||||||
"propagate_at_launch" = true
|
"value" = "owned"
|
||||||
},
|
"propagate_at_launch" = true
|
||||||
{
|
},
|
||||||
"key" = "k8s.io/cluster/${aws_eks_cluster.this[0].name}"
|
{
|
||||||
"value" = "owned"
|
"key" = "k8s.io/cluster/${aws_eks_cluster.this[0].name}"
|
||||||
"propagate_at_launch" = true
|
"value" = "owned"
|
||||||
},
|
"propagate_at_launch" = true
|
||||||
],
|
},
|
||||||
local.asg_tags,
|
],
|
||||||
lookup(
|
local.asg_tags,
|
||||||
var.worker_groups[count.index],
|
lookup(
|
||||||
"tags",
|
var.worker_groups[count.index],
|
||||||
local.workers_group_defaults["tags"]
|
"tags",
|
||||||
|
local.workers_group_defaults["tags"]
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
content {
|
||||||
|
key = tag.value.key
|
||||||
|
value = tag.value.value
|
||||||
|
propagate_at_launch = tag.value.propagate_at_launch
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
lifecycle {
|
lifecycle {
|
||||||
create_before_destroy = true
|
create_before_destroy = true
|
||||||
|
|||||||
@@ -151,6 +151,7 @@ resource "aws_autoscaling_group" "workers_launch_template" {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dynamic launch_template {
|
dynamic launch_template {
|
||||||
iterator = item
|
iterator = item
|
||||||
for_each = (lookup(var.worker_groups_launch_template[count.index], "override_instance_types", null) != null) || (lookup(var.worker_groups_launch_template[count.index], "on_demand_allocation_strategy", local.workers_group_defaults["on_demand_allocation_strategy"]) != null) ? [] : list(var.worker_groups_launch_template[count.index])
|
for_each = (lookup(var.worker_groups_launch_template[count.index], "override_instance_types", null) != null) || (lookup(var.worker_groups_launch_template[count.index], "on_demand_allocation_strategy", local.workers_group_defaults["on_demand_allocation_strategy"]) != null) ? [] : list(var.worker_groups_launch_template[count.index])
|
||||||
@@ -178,30 +179,37 @@ resource "aws_autoscaling_group" "workers_launch_template" {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
tags = concat(
|
dynamic "tag" {
|
||||||
[
|
for_each = concat(
|
||||||
{
|
[
|
||||||
"key" = "Name"
|
{
|
||||||
"value" = "${aws_eks_cluster.this[0].name}-${lookup(
|
"key" = "Name"
|
||||||
var.worker_groups_launch_template[count.index],
|
"value" = "${aws_eks_cluster.this[0].name}-${lookup(
|
||||||
"name",
|
var.worker_groups_launch_template[count.index],
|
||||||
count.index,
|
"name",
|
||||||
)}-eks_asg"
|
count.index,
|
||||||
"propagate_at_launch" = true
|
)}-eks_asg"
|
||||||
},
|
"propagate_at_launch" = true
|
||||||
{
|
},
|
||||||
"key" = "kubernetes.io/cluster/${aws_eks_cluster.this[0].name}"
|
{
|
||||||
"value" = "owned"
|
"key" = "kubernetes.io/cluster/${aws_eks_cluster.this[0].name}"
|
||||||
"propagate_at_launch" = true
|
"value" = "owned"
|
||||||
},
|
"propagate_at_launch" = true
|
||||||
],
|
},
|
||||||
local.asg_tags,
|
],
|
||||||
lookup(
|
local.asg_tags,
|
||||||
var.worker_groups_launch_template[count.index],
|
lookup(
|
||||||
"tags",
|
var.worker_groups_launch_template[count.index],
|
||||||
local.workers_group_defaults["tags"]
|
"tags",
|
||||||
|
local.workers_group_defaults["tags"]
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
content {
|
||||||
|
key = tag.value.key
|
||||||
|
value = tag.value.value
|
||||||
|
propagate_at_launch = tag.value.propagate_at_launch
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
lifecycle {
|
lifecycle {
|
||||||
create_before_destroy = true
|
create_before_destroy = true
|
||||||
|
|||||||
Reference in New Issue
Block a user