Skip to content

Commit 8ee51c3

Browse files
Merge pull request #1 from garutilorenzo/new_features
New features
2 parents 82ba253 + 9962639 commit 8ee51c3

25 files changed

+1784
-800
lines changed

README.md

Lines changed: 238 additions & 322 deletions
Large diffs are not rendered by default.

asg.tf

Lines changed: 20 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
resource "aws_autoscaling_group" "k8s_servers_asg" {
2-
name = "k8s_servers"
2+
name = "${var.common_prefix}-servers-asg-${var.environment}"
33
wait_for_capacity_timeout = "5m"
44
vpc_zone_identifier = var.vpc_private_subnets
55

@@ -28,7 +28,6 @@ resource "aws_autoscaling_group" "k8s_servers_asg" {
2828
weighted_capacity = "1"
2929
}
3030
}
31-
3231
}
3332
}
3433

@@ -39,15 +38,18 @@ resource "aws_autoscaling_group" "k8s_servers_asg" {
3938
health_check_type = "EC2"
4039
force_delete = true
4140

42-
tag {
43-
key = "provisioner"
44-
value = "terraform"
45-
propagate_at_launch = true
41+
dynamic "tag" {
42+
for_each = local.global_tags
43+
content {
44+
key = tag.key
45+
value = tag.value
46+
propagate_at_launch = true
47+
}
4648
}
4749

4850
tag {
49-
key = "environment"
50-
value = var.environment
51+
key = "Name"
52+
value = "${var.common_prefix}-server-${var.environment}"
5153
propagate_at_launch = true
5254
}
5355

@@ -57,24 +59,6 @@ resource "aws_autoscaling_group" "k8s_servers_asg" {
5759
propagate_at_launch = true
5860
}
5961

60-
tag {
61-
key = "uuid"
62-
value = var.uuid
63-
propagate_at_launch = true
64-
}
65-
66-
tag {
67-
key = "scope"
68-
value = "k8s-cluster"
69-
propagate_at_launch = true
70-
}
71-
72-
tag {
73-
key = "Name"
74-
value = "k8s-server-${var.environment}"
75-
propagate_at_launch = true
76-
}
77-
7862
tag {
7963
key = "k8s.io/cluster-autoscaler/enabled"
8064
value = ""
@@ -89,7 +73,7 @@ resource "aws_autoscaling_group" "k8s_servers_asg" {
8973
}
9074

9175
resource "aws_autoscaling_group" "k8s_workers_asg" {
92-
name = "k8s_workers"
76+
name = "${var.common_prefix}-workers-asg-${var.environment}"
9377
vpc_zone_identifier = var.vpc_private_subnets
9478

9579
lifecycle {
@@ -127,15 +111,18 @@ resource "aws_autoscaling_group" "k8s_workers_asg" {
127111
health_check_type = "EC2"
128112
force_delete = true
129113

130-
tag {
131-
key = "provisioner"
132-
value = "terraform"
133-
propagate_at_launch = true
114+
dynamic "tag" {
115+
for_each = local.global_tags
116+
content {
117+
key = tag.key
118+
value = tag.value
119+
propagate_at_launch = true
120+
}
134121
}
135122

136123
tag {
137-
key = "environment"
138-
value = var.environment
124+
key = "Name"
125+
value = "${var.common_prefix}-worker-${var.environment}"
139126
propagate_at_launch = true
140127
}
141128

@@ -145,24 +132,6 @@ resource "aws_autoscaling_group" "k8s_workers_asg" {
145132
propagate_at_launch = true
146133
}
147134

148-
tag {
149-
key = "uuid"
150-
value = var.uuid
151-
propagate_at_launch = true
152-
}
153-
154-
tag {
155-
key = "scope"
156-
value = "k8s-cluster"
157-
propagate_at_launch = true
158-
}
159-
160-
tag {
161-
key = "Name"
162-
value = "k8s-worker-${var.environment}"
163-
propagate_at_launch = true
164-
}
165-
166135
tag {
167136
key = "k8s.io/cluster-autoscaler/enabled"
168137
value = ""

bucket.tf

Lines changed: 0 additions & 19 deletions
This file was deleted.

data.tf

Lines changed: 45 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@ data "aws_iam_policy" "AmazonEC2ReadOnlyAccess" {
22
arn = "arn:aws:iam::aws:policy/AmazonEC2ReadOnlyAccess"
33
}
44

5+
data "aws_iam_policy" "AmazonSSMManagedInstanceCore" {
6+
arn = "arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore"
7+
}
8+
59
data "template_cloudinit_config" "k8s_server" {
610
gzip = true
711
base64_encode = true
@@ -14,25 +18,40 @@ data "template_cloudinit_config" "k8s_server" {
1418

1519
part {
1620
content_type = "text/x-shellscript"
17-
content = templatefile("${path.module}/files/install_k8s_utils.sh", { k8s_version = var.k8s_version, install_longhorn = var.install_longhorn, })
21+
content = templatefile("${path.module}/files/install_k8s_utils.sh", {
22+
k8s_version = var.k8s_version
23+
})
1824
}
1925

2026
part {
2127
content_type = "text/x-shellscript"
2228
content = templatefile("${path.module}/files/install_k8s.sh", {
23-
is_k8s_server = true,
24-
k8s_version = var.k8s_version,
25-
k8s_dns_domain = var.k8s_dns_domain,
26-
k8s_pod_subnet = var.k8s_pod_subnet,
27-
k8s_service_subnet = var.k8s_service_subnet,
28-
s3_bucket_name = var.s3_bucket_name,
29-
kube_api_port = var.kube_api_port,
30-
control_plane_url = aws_lb.k8s-server-lb.dns_name,
31-
install_longhorn = var.install_longhorn,
32-
longhorn_release = var.longhorn_release,
33-
install_nginx_ingress = var.install_nginx_ingress,
34-
extlb_listener_http_port = var.extlb_listener_http_port,
35-
extlb_listener_https_port = var.extlb_listener_https_port,
29+
is_k8s_server = true,
30+
k8s_version = var.k8s_version,
31+
k8s_dns_domain = var.k8s_dns_domain,
32+
k8s_pod_subnet = var.k8s_pod_subnet,
33+
k8s_service_subnet = var.k8s_service_subnet,
34+
kubeadm_ca_secret_name = local.kubeadm_ca_secret_name,
35+
kubeadm_token_secret_name = local.kubeadm_token_secret_name,
36+
kubeadm_cert_secret_name = local.kubeadm_cert_secret_name,
37+
kubeconfig_secret_name = local.kubeconfig_secret_name,
38+
kube_api_port = var.kube_api_port,
39+
control_plane_url = aws_lb.k8s_server_lb.dns_name,
40+
install_nginx_ingress = var.install_nginx_ingress,
41+
nginx_ingress_release = var.nginx_ingress_release,
42+
efs_persistent_storage = var.efs_persistent_storage,
43+
efs_csi_driver_release = var.efs_csi_driver_release,
44+
efs_filesystem_id = var.efs_persistent_storage ? aws_efs_file_system.k8s_persistent_storage[0].id : "",
45+
install_certmanager = var.install_certmanager,
46+
certmanager_release = var.certmanager_release,
47+
install_node_termination_handler = var.install_node_termination_handler,
48+
node_termination_handler_release = var.node_termination_handler_release,
49+
certmanager_email_address = var.certmanager_email_address,
50+
extlb_listener_http_port = var.extlb_listener_http_port,
51+
extlb_listener_https_port = var.extlb_listener_https_port,
52+
default_secret_placeholder = var.default_secret_placeholder,
53+
expose_kubeapi = var.expose_kubeapi,
54+
k8s_tls_san_public = local.k8s_tls_san_public
3655
})
3756
}
3857
}
@@ -49,16 +68,21 @@ data "template_cloudinit_config" "k8s_worker" {
4968

5069
part {
5170
content_type = "text/x-shellscript"
52-
content = templatefile("${path.module}/files/install_k8s_utils.sh", { k8s_version = var.k8s_version, install_longhorn = var.install_longhorn })
71+
content = templatefile("${path.module}/files/install_k8s_utils.sh", {
72+
k8s_version = var.k8s_version
73+
})
5374
}
5475

5576
part {
5677
content_type = "text/x-shellscript"
5778
content = templatefile("${path.module}/files/install_k8s_worker.sh", {
58-
is_k8s_server = false,
59-
s3_bucket_name = var.s3_bucket_name,
60-
kube_api_port = var.kube_api_port,
61-
control_plane_url = aws_lb.k8s-server-lb.dns_name,
79+
is_k8s_server = false,
80+
kubeadm_ca_secret_name = local.kubeadm_ca_secret_name,
81+
kubeadm_token_secret_name = local.kubeadm_token_secret_name,
82+
kubeadm_cert_secret_name = local.kubeadm_cert_secret_name,
83+
kube_api_port = var.kube_api_port,
84+
control_plane_url = aws_lb.k8s_server_lb.dns_name,
85+
default_secret_placeholder = var.default_secret_placeholder,
6286
})
6387
}
6488
}
@@ -70,11 +94,7 @@ data "aws_instances" "k8s_servers" {
7094
]
7195

7296
instance_tags = {
73-
k8s-instance-type = "k8s-server"
74-
provisioner = "terraform"
75-
environment = var.environment
76-
uuid = var.uuid
77-
scope = "k8s-cluster"
97+
for tag, value in merge(local.global_tags, { k8s-instance-type = "k8s-server" }) : tag => value
7898
}
7999

80100
instance_state_names = ["running"]
@@ -87,11 +107,7 @@ data "aws_instances" "k8s_workers" {
87107
]
88108

89109
instance_tags = {
90-
k8s-instance-type = "k8s-worker"
91-
provisioner = "terraform"
92-
environment = var.environment
93-
uuid = var.uuid
94-
scope = "k8s-cluster"
110+
for tag, value in merge(local.global_tags, { k8s-instance-type = "k8s-worker" }) : tag => value
95111
}
96112

97113
instance_state_names = ["running"]

0 commit comments

Comments
 (0)