mirror of
https://github.com/ysoftdevs/terraform-aws-eks.git
synced 2026-04-01 06:53:06 +02:00
feat: Remove dependency on deprecated hashicorp/template provider (#1297)
BREAKING CHANGES: We remove the dependency on the deprecated `hashicorp/template` provider and use the Terraform built in `templatefile` function. This will broke some workflows due to previously being able to pass in the raw contents of a template file for processing. The `templatefile` function requires a template file that exists before running a plan.
This commit is contained in:
92
data.tf
92
data.tf
@@ -55,98 +55,6 @@ data "aws_iam_policy_document" "cluster_assume_role_policy" {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
data "template_file" "userdata" {
|
|
||||||
count = var.create_eks ? local.worker_group_count : 0
|
|
||||||
template = lookup(
|
|
||||||
var.worker_groups[count.index],
|
|
||||||
"userdata_template_file",
|
|
||||||
file(
|
|
||||||
lookup(var.worker_groups[count.index], "platform", local.workers_group_defaults["platform"]) == "windows"
|
|
||||||
? "${path.module}/templates/userdata_windows.tpl"
|
|
||||||
: "${path.module}/templates/userdata.sh.tpl"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
vars = merge({
|
|
||||||
platform = lookup(var.worker_groups[count.index], "platform", local.workers_group_defaults["platform"])
|
|
||||||
cluster_name = coalescelist(aws_eks_cluster.this[*].name, [""])[0]
|
|
||||||
endpoint = coalescelist(aws_eks_cluster.this[*].endpoint, [""])[0]
|
|
||||||
cluster_auth_base64 = coalescelist(aws_eks_cluster.this[*].certificate_authority[0].data, [""])[0]
|
|
||||||
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",
|
|
||||||
local.workers_group_defaults["additional_userdata"],
|
|
||||||
)
|
|
||||||
bootstrap_extra_args = lookup(
|
|
||||||
var.worker_groups[count.index],
|
|
||||||
"bootstrap_extra_args",
|
|
||||||
local.workers_group_defaults["bootstrap_extra_args"],
|
|
||||||
)
|
|
||||||
kubelet_extra_args = lookup(
|
|
||||||
var.worker_groups[count.index],
|
|
||||||
"kubelet_extra_args",
|
|
||||||
local.workers_group_defaults["kubelet_extra_args"],
|
|
||||||
)
|
|
||||||
},
|
|
||||||
lookup(
|
|
||||||
var.worker_groups[count.index],
|
|
||||||
"userdata_template_extra_args",
|
|
||||||
local.workers_group_defaults["userdata_template_extra_args"]
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
data "template_file" "launch_template_userdata" {
|
|
||||||
count = var.create_eks ? local.worker_group_launch_template_count : 0
|
|
||||||
template = lookup(
|
|
||||||
var.worker_groups_launch_template[count.index],
|
|
||||||
"userdata_template_file",
|
|
||||||
file(
|
|
||||||
lookup(var.worker_groups_launch_template[count.index], "platform", local.workers_group_defaults["platform"]) == "windows"
|
|
||||||
? "${path.module}/templates/userdata_windows.tpl"
|
|
||||||
: "${path.module}/templates/userdata.sh.tpl"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
vars = merge({
|
|
||||||
platform = lookup(var.worker_groups_launch_template[count.index], "platform", local.workers_group_defaults["platform"])
|
|
||||||
cluster_name = coalescelist(aws_eks_cluster.this[*].name, [""])[0]
|
|
||||||
endpoint = coalescelist(aws_eks_cluster.this[*].endpoint, [""])[0]
|
|
||||||
cluster_auth_base64 = coalescelist(aws_eks_cluster.this[*].certificate_authority[0].data, [""])[0]
|
|
||||||
pre_userdata = lookup(
|
|
||||||
var.worker_groups_launch_template[count.index],
|
|
||||||
"pre_userdata",
|
|
||||||
local.workers_group_defaults["pre_userdata"],
|
|
||||||
)
|
|
||||||
additional_userdata = lookup(
|
|
||||||
var.worker_groups_launch_template[count.index],
|
|
||||||
"additional_userdata",
|
|
||||||
local.workers_group_defaults["additional_userdata"],
|
|
||||||
)
|
|
||||||
bootstrap_extra_args = lookup(
|
|
||||||
var.worker_groups_launch_template[count.index],
|
|
||||||
"bootstrap_extra_args",
|
|
||||||
local.workers_group_defaults["bootstrap_extra_args"],
|
|
||||||
)
|
|
||||||
kubelet_extra_args = lookup(
|
|
||||||
var.worker_groups_launch_template[count.index],
|
|
||||||
"kubelet_extra_args",
|
|
||||||
local.workers_group_defaults["kubelet_extra_args"],
|
|
||||||
)
|
|
||||||
},
|
|
||||||
lookup(
|
|
||||||
var.worker_groups_launch_template[count.index],
|
|
||||||
"userdata_template_extra_args",
|
|
||||||
local.workers_group_defaults["userdata_template_extra_args"]
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
data "aws_iam_role" "custom_cluster_iam_role" {
|
data "aws_iam_role" "custom_cluster_iam_role" {
|
||||||
count = var.manage_cluster_iam_resources ? 0 : 1
|
count = var.manage_cluster_iam_resources ? 0 : 1
|
||||||
name = var.cluster_iam_role_name
|
name = var.cluster_iam_role_name
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ terraform {
|
|||||||
aws = ">= 3.22.0"
|
aws = ">= 3.22.0"
|
||||||
local = ">= 1.4"
|
local = ">= 1.4"
|
||||||
null = ">= 2.1"
|
null = ">= 2.1"
|
||||||
template = ">= 2.1"
|
|
||||||
random = ">= 2.1"
|
random = ">= 2.1"
|
||||||
kubernetes = "~> 1.11"
|
kubernetes = "~> 1.11"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ terraform {
|
|||||||
aws = ">= 3.22.0"
|
aws = ">= 3.22.0"
|
||||||
local = ">= 1.4"
|
local = ">= 1.4"
|
||||||
null = ">= 2.1"
|
null = ">= 2.1"
|
||||||
template = ">= 2.1"
|
|
||||||
random = ">= 2.1"
|
random = ">= 2.1"
|
||||||
kubernetes = "~> 1.11"
|
kubernetes = "~> 1.11"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ terraform {
|
|||||||
aws = ">= 3.22.0"
|
aws = ">= 3.22.0"
|
||||||
local = ">= 1.4"
|
local = ">= 1.4"
|
||||||
null = ">= 2.1"
|
null = ">= 2.1"
|
||||||
template = ">= 2.1"
|
|
||||||
random = ">= 2.1"
|
random = ">= 2.1"
|
||||||
kubernetes = "~> 1.11"
|
kubernetes = "~> 1.11"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ terraform {
|
|||||||
aws = ">= 3.22.0"
|
aws = ">= 3.22.0"
|
||||||
local = ">= 1.4"
|
local = ">= 1.4"
|
||||||
null = ">= 2.1"
|
null = ">= 2.1"
|
||||||
template = ">= 2.1"
|
|
||||||
random = ">= 2.1"
|
random = ">= 2.1"
|
||||||
kubernetes = "~> 1.11"
|
kubernetes = "~> 1.11"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ terraform {
|
|||||||
aws = ">= 3.22.0"
|
aws = ">= 3.22.0"
|
||||||
local = ">= 1.4"
|
local = ">= 1.4"
|
||||||
null = ">= 2.1"
|
null = ">= 2.1"
|
||||||
template = ">= 2.1"
|
|
||||||
random = ">= 2.1"
|
random = ">= 2.1"
|
||||||
kubernetes = "~> 1.11"
|
kubernetes = "~> 1.11"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ terraform {
|
|||||||
aws = ">= 3.22.0"
|
aws = ">= 3.22.0"
|
||||||
local = ">= 1.4"
|
local = ">= 1.4"
|
||||||
null = ">= 2.1"
|
null = ">= 2.1"
|
||||||
template = ">= 2.1"
|
|
||||||
random = ">= 2.1"
|
random = ">= 2.1"
|
||||||
kubernetes = "~> 1.11"
|
kubernetes = "~> 1.11"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ terraform {
|
|||||||
aws = ">= 3.22.0"
|
aws = ">= 3.22.0"
|
||||||
local = ">= 1.4"
|
local = ">= 1.4"
|
||||||
null = ">= 2.1"
|
null = ">= 2.1"
|
||||||
template = ">= 2.1"
|
|
||||||
random = ">= 2.1"
|
random = ">= 2.1"
|
||||||
kubernetes = "~> 1.11"
|
kubernetes = "~> 1.11"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ terraform {
|
|||||||
aws = ">= 3.22.0"
|
aws = ">= 3.22.0"
|
||||||
local = ">= 1.4"
|
local = ">= 1.4"
|
||||||
null = ">= 2.1"
|
null = ">= 2.1"
|
||||||
template = ">= 2.1"
|
|
||||||
random = ">= 2.1"
|
random = ">= 2.1"
|
||||||
kubernetes = "~> 1.11"
|
kubernetes = "~> 1.11"
|
||||||
}
|
}
|
||||||
|
|||||||
88
local.tf
88
local.tf
@@ -150,4 +150,92 @@ locals {
|
|||||||
aws_authenticator_additional_args = var.kubeconfig_aws_authenticator_additional_args
|
aws_authenticator_additional_args = var.kubeconfig_aws_authenticator_additional_args
|
||||||
aws_authenticator_env_variables = var.kubeconfig_aws_authenticator_env_variables
|
aws_authenticator_env_variables = var.kubeconfig_aws_authenticator_env_variables
|
||||||
}) : ""
|
}) : ""
|
||||||
|
|
||||||
|
userdata_rendered = [
|
||||||
|
for index in range(var.create_eks ? local.worker_group_count : 0) : templatefile(
|
||||||
|
lookup(
|
||||||
|
var.worker_groups[index],
|
||||||
|
"userdata_template_file",
|
||||||
|
lookup(var.worker_groups[index], "platform", local.workers_group_defaults["platform"]) == "windows"
|
||||||
|
? "${path.module}/templates/userdata_windows.tpl"
|
||||||
|
: "${path.module}/templates/userdata.sh.tpl"
|
||||||
|
),
|
||||||
|
merge({
|
||||||
|
platform = lookup(var.worker_groups[index], "platform", local.workers_group_defaults["platform"])
|
||||||
|
cluster_name = coalescelist(aws_eks_cluster.this[*].name, [""])[0]
|
||||||
|
endpoint = coalescelist(aws_eks_cluster.this[*].endpoint, [""])[0]
|
||||||
|
cluster_auth_base64 = coalescelist(aws_eks_cluster.this[*].certificate_authority[0].data, [""])[0]
|
||||||
|
pre_userdata = lookup(
|
||||||
|
var.worker_groups[index],
|
||||||
|
"pre_userdata",
|
||||||
|
local.workers_group_defaults["pre_userdata"],
|
||||||
|
)
|
||||||
|
additional_userdata = lookup(
|
||||||
|
var.worker_groups[index],
|
||||||
|
"additional_userdata",
|
||||||
|
local.workers_group_defaults["additional_userdata"],
|
||||||
|
)
|
||||||
|
bootstrap_extra_args = lookup(
|
||||||
|
var.worker_groups[index],
|
||||||
|
"bootstrap_extra_args",
|
||||||
|
local.workers_group_defaults["bootstrap_extra_args"],
|
||||||
|
)
|
||||||
|
kubelet_extra_args = lookup(
|
||||||
|
var.worker_groups[index],
|
||||||
|
"kubelet_extra_args",
|
||||||
|
local.workers_group_defaults["kubelet_extra_args"],
|
||||||
|
)
|
||||||
|
},
|
||||||
|
lookup(
|
||||||
|
var.worker_groups[index],
|
||||||
|
"userdata_template_extra_args",
|
||||||
|
local.workers_group_defaults["userdata_template_extra_args"]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
]
|
||||||
|
|
||||||
|
launch_template_userdata_rendered = [
|
||||||
|
for index in range(var.create_eks ? local.worker_group_launch_template_count : 0) : templatefile(
|
||||||
|
lookup(
|
||||||
|
var.worker_groups_launch_template[index],
|
||||||
|
"userdata_template_file",
|
||||||
|
lookup(var.worker_groups_launch_template[index], "platform", local.workers_group_defaults["platform"]) == "windows"
|
||||||
|
? "${path.module}/templates/userdata_windows.tpl"
|
||||||
|
: "${path.module}/templates/userdata.sh.tpl"
|
||||||
|
),
|
||||||
|
merge({
|
||||||
|
platform = lookup(var.worker_groups_launch_template[index], "platform", local.workers_group_defaults["platform"])
|
||||||
|
cluster_name = coalescelist(aws_eks_cluster.this[*].name, [""])[0]
|
||||||
|
endpoint = coalescelist(aws_eks_cluster.this[*].endpoint, [""])[0]
|
||||||
|
cluster_auth_base64 = coalescelist(aws_eks_cluster.this[*].certificate_authority[0].data, [""])[0]
|
||||||
|
pre_userdata = lookup(
|
||||||
|
var.worker_groups_launch_template[index],
|
||||||
|
"pre_userdata",
|
||||||
|
local.workers_group_defaults["pre_userdata"],
|
||||||
|
)
|
||||||
|
additional_userdata = lookup(
|
||||||
|
var.worker_groups_launch_template[index],
|
||||||
|
"additional_userdata",
|
||||||
|
local.workers_group_defaults["additional_userdata"],
|
||||||
|
)
|
||||||
|
bootstrap_extra_args = lookup(
|
||||||
|
var.worker_groups_launch_template[index],
|
||||||
|
"bootstrap_extra_args",
|
||||||
|
local.workers_group_defaults["bootstrap_extra_args"],
|
||||||
|
)
|
||||||
|
kubelet_extra_args = lookup(
|
||||||
|
var.worker_groups_launch_template[index],
|
||||||
|
"kubelet_extra_args",
|
||||||
|
local.workers_group_defaults["kubelet_extra_args"],
|
||||||
|
)
|
||||||
|
},
|
||||||
|
lookup(
|
||||||
|
var.worker_groups_launch_template[index],
|
||||||
|
"userdata_template_extra_args",
|
||||||
|
local.workers_group_defaults["userdata_template_extra_args"]
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -109,8 +109,8 @@ output "workers_asg_names" {
|
|||||||
output "workers_user_data" {
|
output "workers_user_data" {
|
||||||
description = "User data of worker groups"
|
description = "User data of worker groups"
|
||||||
value = concat(
|
value = concat(
|
||||||
data.template_file.userdata.*.rendered,
|
local.userdata_rendered,
|
||||||
data.template_file.launch_template_userdata.*.rendered,
|
local.launch_template_userdata_rendered,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ terraform {
|
|||||||
required_providers {
|
required_providers {
|
||||||
aws = ">= 3.37.0"
|
aws = ">= 3.37.0"
|
||||||
local = ">= 1.4"
|
local = ">= 1.4"
|
||||||
template = ">= 2.1"
|
|
||||||
random = ">= 2.1"
|
random = ">= 2.1"
|
||||||
kubernetes = ">= 1.11.1"
|
kubernetes = ">= 1.11.1"
|
||||||
http = {
|
http = {
|
||||||
|
|||||||
@@ -205,7 +205,7 @@ resource "aws_launch_configuration" "workers" {
|
|||||||
"key_name",
|
"key_name",
|
||||||
local.workers_group_defaults["key_name"],
|
local.workers_group_defaults["key_name"],
|
||||||
)
|
)
|
||||||
user_data_base64 = base64encode(data.template_file.userdata.*.rendered[count.index])
|
user_data_base64 = base64encode(local.userdata_rendered[count.index])
|
||||||
ebs_optimized = lookup(
|
ebs_optimized = lookup(
|
||||||
var.worker_groups[count.index],
|
var.worker_groups[count.index],
|
||||||
"ebs_optimized",
|
"ebs_optimized",
|
||||||
|
|||||||
@@ -318,7 +318,7 @@ resource "aws_launch_template" "workers_launch_template" {
|
|||||||
local.workers_group_defaults["key_name"],
|
local.workers_group_defaults["key_name"],
|
||||||
)
|
)
|
||||||
user_data = base64encode(
|
user_data = base64encode(
|
||||||
data.template_file.launch_template_userdata.*.rendered[count.index],
|
local.launch_template_userdata_rendered[count.index],
|
||||||
)
|
)
|
||||||
|
|
||||||
ebs_optimized = lookup(
|
ebs_optimized = lookup(
|
||||||
|
|||||||
Reference in New Issue
Block a user