Skip to content

Commit 0bba0f8

Browse files
vitaliimdp1gmale0n
authored andcommitted
enh: Feat/upgrade terraform terragrunt providers modules (#330)
* feat: Upgrade terraform, terragrunt, providers, modules * feat: Upgrade terraform, terragrunt, providers, modules and terraform-docs * update provider in layer2 * fixed mistake version module
1 parent 1260aff commit 0bba0f8

File tree

15 files changed

+85
-319
lines changed

15 files changed

+85
-319
lines changed

terraform/.terraform-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.1.8
1+
1.4.4

terraform/layer1-aws/README.md

Lines changed: 32 additions & 163 deletions
Large diffs are not rendered by default.

terraform/layer1-aws/aws-acm.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ data "aws_acm_certificate" "main" {
1010

1111
module "acm" {
1212
source = "terraform-aws-modules/acm/aws"
13-
version = "3.3.0"
13+
version = "4.3.2"
1414

1515
create_certificate = var.create_acm_certificate
1616

terraform/layer1-aws/aws-cis-benchmark-alerts.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module "eventbridge" {
22
count = var.aws_cis_benchmark_alerts.enabled ? 1 : 0
33
source = "terraform-aws-modules/eventbridge/aws"
4-
version = "1.14.0"
4+
version = "1.17.3"
55

66
create_bus = false
77

terraform/layer1-aws/aws-eks.tf

Lines changed: 28 additions & 118 deletions
Original file line numberDiff line numberDiff line change
@@ -4,42 +4,13 @@ locals {
44
"k8s.io/cluster-autoscaler/${local.name}" = "owned"
55
}
66

7-
eks_addons = merge({
8-
vpc-cni = {
9-
resolve_conflicts = "OVERWRITE"
10-
addon_version = data.aws_eks_addon_version.vpc_cni.version
11-
service_account_role_arn = module.vpc_cni_irsa.iam_role_arn
12-
},
13-
aws-ebs-csi-driver = {
14-
resolve_conflicts = "OVERWRITE"
15-
addon_version = data.aws_eks_addon_version.aws_ebs_csi_driver.version
16-
service_account_role_arn = module.aws_ebs_csi_driver.iam_role_arn
17-
},
18-
coredns = {
19-
resolve_conflicts = "OVERWRITE"
20-
addon_version = data.aws_eks_addon_version.coredns.version
21-
},
22-
kube-proxy = {
23-
resolve_conflicts = "OVERWRITE"
24-
addon_version = data.aws_eks_addon_version.kube_proxy.version
25-
}
26-
})
27-
287
eks_map_roles = [
298
{
309
rolearn = "arn:aws:iam::${data.aws_caller_identity.current.account_id}:role/administrator"
3110
username = "administrator"
3211
groups = ["system:masters"]
3312
}
3413
]
35-
eks_map_users = []
36-
37-
aws_auth_configmap_yaml = <<-CONTENT
38-
${chomp(module.eks.aws_auth_configmap_yaml)}
39-
${indent(4, yamlencode(local.eks_map_roles))}
40-
mapUsers: |
41-
${indent(4, yamlencode(local.eks_map_users))}
42-
CONTENT
4314
}
4415

4516
data "aws_ami" "eks_default_bottlerocket" {
@@ -55,12 +26,32 @@ data "aws_ami" "eks_default_bottlerocket" {
5526
#tfsec:ignore:aws-vpc-no-public-egress-sgr tfsec:ignore:aws-eks-enable-control-plane-logging tfsec:ignore:aws-eks-encrypt-secrets tfsec:ignore:aws-eks-no-public-cluster-access tfsec:ignore:aws-eks-no-public-cluster-access-to-cidr
5627
module "eks" {
5728
source = "terraform-aws-modules/eks/aws"
58-
version = "18.9.0"
59-
60-
cluster_name = local.name
61-
cluster_version = var.eks_cluster_version
62-
subnet_ids = module.vpc.intra_subnets
63-
enable_irsa = true
29+
version = "19.12.0"
30+
31+
cluster_name = local.name
32+
cluster_version = var.eks_cluster_version
33+
subnet_ids = module.vpc.private_subnets
34+
control_plane_subnet_ids = module.vpc.intra_subnets
35+
enable_irsa = true
36+
manage_aws_auth_configmap = true
37+
create_aws_auth_configmap = false
38+
aws_auth_roles = local.eks_map_roles
39+
cluster_addons = {
40+
coredns = {
41+
most_recent = true
42+
}
43+
kube-proxy = {
44+
most_recent = true
45+
}
46+
vpc-cni = {
47+
most_recent = true
48+
service_account_role_arn = module.vpc_cni_irsa.iam_role_arn
49+
}
50+
aws-ebs-csi-driver = {
51+
most_recent = true
52+
service_account_role_arn = module.aws_ebs_csi_driver.iam_role_arn
53+
}
54+
}
6455

6556
cluster_enabled_log_types = var.eks_cluster_enabled_log_types
6657
cloudwatch_log_group_retention_in_days = var.eks_cloudwatch_log_group_retention_in_days
@@ -72,60 +63,10 @@ module "eks" {
7263

7364
vpc_id = module.vpc.vpc_id
7465

75-
cluster_addons = local.eks_addons
76-
77-
cluster_encryption_config = var.eks_cluster_encryption_config_enable ? [
78-
{
79-
provider_key_arn = aws_kms_key.eks[0].arn
80-
resources = ["secrets"]
81-
}
82-
] : []
83-
8466
cluster_endpoint_public_access = var.eks_cluster_endpoint_public_access
8567
cluster_endpoint_private_access = var.eks_cluster_endpoint_private_access
8668
cluster_endpoint_public_access_cidrs = var.eks_cluster_endpoint_only_pritunl ? ["${module.pritunl[0].pritunl_endpoint}/32"] : ["0.0.0.0/0"]
8769

88-
# Extend cluster security group rules
89-
cluster_security_group_additional_rules = {
90-
egress_nodes_ephemeral_ports_tcp = {
91-
description = "To node 1025-65535"
92-
protocol = "tcp"
93-
from_port = 1025
94-
to_port = 65535
95-
type = "egress"
96-
source_node_security_group = true
97-
}
98-
}
99-
100-
# Extend node-to-node security group rules
101-
node_security_group_additional_rules = {
102-
ingress_self_all = {
103-
description = "Node to node all ports/protocols"
104-
protocol = "-1"
105-
from_port = 0
106-
to_port = 0
107-
type = "ingress"
108-
self = true
109-
}
110-
ingress_cluster_all = {
111-
description = "Cluster to nodes all ports/protocols"
112-
protocol = "-1"
113-
from_port = 1025
114-
to_port = 65535
115-
type = "ingress"
116-
source_cluster_security_group = true
117-
}
118-
egress_all = {
119-
description = "Node all egress"
120-
protocol = "-1"
121-
from_port = 0
122-
to_port = 0
123-
type = "egress"
124-
cidr_blocks = ["0.0.0.0/0"]
125-
ipv6_cidr_blocks = ["::/0"]
126-
}
127-
}
128-
12970
self_managed_node_group_defaults = {
13071
block_device_mappings = {
13172
xvda = {
@@ -148,7 +89,6 @@ module "eks" {
14889
}
14990
iam_role_attach_cni_policy = false
15091
}
151-
15292
self_managed_node_groups = {
15393
spot = {
15494
name = "${local.name}-spot"
@@ -227,7 +167,6 @@ module "eks" {
227167
tags = merge(local.eks_worker_tags, { "k8s.io/cluster-autoscaler/node-template/label/nodegroup" = "bottlerocket" })
228168
}
229169
}
230-
231170
fargate_profiles = {
232171
default = {
233172
name = "fargate"
@@ -250,7 +189,7 @@ module "eks" {
250189

251190
module "vpc_cni_irsa" {
252191
source = "terraform-aws-modules/iam/aws//modules/iam-role-for-service-accounts-eks"
253-
version = "4.14.0"
192+
version = "5.17.0"
254193

255194
role_name = "${local.name}-vpc-cni"
256195
attach_vpc_cni_policy = true
@@ -268,7 +207,7 @@ module "vpc_cni_irsa" {
268207

269208
module "aws_ebs_csi_driver" {
270209
source = "terraform-aws-modules/iam/aws//modules/iam-role-for-service-accounts-eks"
271-
version = "4.14.0"
210+
version = "5.17.0"
272211

273212
role_name = "${local.name}-aws-ebs-csi-driver"
274213
attach_ebs_csi_policy = true
@@ -282,32 +221,3 @@ module "aws_ebs_csi_driver" {
282221

283222
tags = local.tags
284223
}
285-
286-
resource "aws_kms_key" "eks" {
287-
count = var.eks_cluster_encryption_config_enable ? 1 : 0
288-
description = "EKS Secret Encryption Key"
289-
}
290-
291-
resource "kubectl_manifest" "aws_auth_configmap" {
292-
yaml_body = local.aws_auth_configmap_yaml
293-
}
294-
295-
data "aws_eks_addon_version" "aws_ebs_csi_driver" {
296-
addon_name = "aws-ebs-csi-driver"
297-
kubernetes_version = var.eks_cluster_version
298-
}
299-
300-
data "aws_eks_addon_version" "coredns" {
301-
addon_name = "coredns"
302-
kubernetes_version = var.eks_cluster_version
303-
}
304-
305-
data "aws_eks_addon_version" "kube_proxy" {
306-
addon_name = "kube-proxy"
307-
kubernetes_version = var.eks_cluster_version
308-
}
309-
310-
data "aws_eks_addon_version" "vpc_cni" {
311-
addon_name = "vpc-cni"
312-
kubernetes_version = var.eks_cluster_version
313-
}

terraform/layer1-aws/aws-r53.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ data "aws_route53_zone" "main" {
77

88
module "r53_zone" {
99
source = "terraform-aws-modules/route53/aws//modules/zones"
10-
version = "2.5.0"
10+
version = "2.10.2"
1111

1212
create = var.create_r53_zone
1313

terraform/layer1-aws/aws-vpc.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ data "aws_security_group" "default" {
1717
#tfsec:ignore:aws-ec2-require-vpc-flow-logs-for-all-vpcs
1818
module "vpc" {
1919
source = "terraform-aws-modules/vpc/aws"
20-
version = "3.12.0"
20+
version = "4.0.1"
2121

2222
name = local.name
2323
cidr = var.cidr
@@ -89,7 +89,7 @@ module "vpc" {
8989

9090
module "vpc_gateway_endpoints" {
9191
source = "terraform-aws-modules/vpc/aws//modules/vpc-endpoints"
92-
version = "3.12.0"
92+
version = "4.0.1"
9393

9494
vpc_id = module.vpc.vpc_id
9595

terraform/layer1-aws/main.tf

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,14 @@
11
terraform {
2-
required_version = "1.1.8"
2+
required_version = "1.4.4"
33

44
required_providers {
55
aws = {
66
source = "aws"
7-
version = "4.10.0"
7+
version = "4.62.0"
88
}
99
kubernetes = {
1010
source = "kubernetes"
11-
version = "2.10.0"
12-
}
13-
kubectl = {
14-
source = "gavinbunney/kubectl"
15-
version = "1.14.0"
11+
version = "2.19.0"
1612
}
1713
}
1814
}

terraform/layer1-aws/outputs.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,13 +90,13 @@ output "eks_cluster_security_group_id" {
9090
}
9191

9292
output "eks_kubectl_console_config" {
93-
value = "aws eks update-kubeconfig --name ${module.eks.cluster_id} --region ${var.region}"
93+
value = "aws eks update-kubeconfig --name ${module.eks.cluster_name} --region ${var.region}"
9494
description = "description"
9595
depends_on = []
9696
}
9797

9898
output "eks_cluster_id" {
99-
value = module.eks.cluster_id
99+
value = module.eks.cluster_name
100100
}
101101

102102
output "eks_oidc_provider_arn" {

terraform/layer1-aws/providers.tf

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,11 @@ provider "aws" {
44
}
55

66
provider "kubernetes" {
7-
host = data.aws_eks_cluster.main.endpoint
8-
cluster_ca_certificate = base64decode(data.aws_eks_cluster.main.certificate_authority.0.data)
7+
host = module.eks.cluster_endpoint
8+
cluster_ca_certificate = base64decode(module.eks.cluster_certificate_authority_data)
99
token = data.aws_eks_cluster_auth.main.token
1010
}
1111

12-
provider "kubectl" {
13-
host = data.aws_eks_cluster.main.endpoint
14-
cluster_ca_certificate = base64decode(data.aws_eks_cluster.main.certificate_authority.0.data)
15-
token = data.aws_eks_cluster_auth.main.token
16-
}
17-
18-
data "aws_eks_cluster" "main" {
19-
name = module.eks.cluster_id
20-
}
21-
2212
data "aws_eks_cluster_auth" "main" {
23-
name = module.eks.cluster_id
13+
name = module.eks.cluster_name
2414
}

0 commit comments

Comments
 (0)