Skip to content

Commit 5aaddce

Browse files
authored
Only Create Fargate Profile On Deployed Fargate Task (#437)
1 parent 4fb5944 commit 5aaddce

File tree

4 files changed

+37
-26
lines changed

4 files changed

+37
-26
lines changed

terraform/eks/container_insights_agent.tf

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,37 @@
11
data "template_file" "cluster_role_file" {
2+
count = 1
23
template = file("./container-insights-agent/cluster_role.tpl")
34
vars = {
4-
NAMESPACE = var.deployment_type == "fargate" ? tolist(aws_eks_fargate_profile.test_profile.selector)[0].namespace : kubernetes_namespace.aoc_ns.metadata[0].name
5+
NAMESPACE = var.deployment_type == "fargate" ? tolist(aws_eks_fargate_profile.test_profile[count.index].selector)[0].namespace : kubernetes_namespace.aoc_ns.metadata[0].name
56
}
67
depends_on = [aws_eks_fargate_profile.test_profile]
78
}
89

910
data "template_file" "cluster_role_binding_file" {
11+
count = 1
1012
template = file("./container-insights-agent/cluster_role_binding.tpl")
1113
vars = {
12-
NAMESPACE = var.deployment_type == "fargate" ? tolist(aws_eks_fargate_profile.test_profile.selector)[0].namespace : kubernetes_namespace.aoc_ns.metadata[0].name,
13-
SERVICE_ACCOUNT = kubernetes_service_account.aoc-agent-role.metadata[0].name
14+
NAMESPACE = var.deployment_type == "fargate" ? tolist(aws_eks_fargate_profile.test_profile[count.index].selector)[0].namespace : kubernetes_namespace.aoc_ns.metadata[0].name,
15+
SERVICE_ACCOUNT = kubernetes_service_account.aoc-agent-role[count.index].metadata[0].name
1416
}
1517
depends_on = [aws_eks_fargate_profile.test_profile]
1618
}
1719

1820
data "template_file" "config_map_file" {
21+
count = 1
1922
template = file("./container-insights-agent/config_map.tpl")
2023
vars = {
21-
NAMESPACE = var.deployment_type == "fargate" ? tolist(aws_eks_fargate_profile.test_profile.selector)[0].namespace : kubernetes_namespace.aoc_ns.metadata[0].name
24+
NAMESPACE = var.deployment_type == "fargate" ? tolist(aws_eks_fargate_profile.test_profile[count.index].selector)[0].namespace : kubernetes_namespace.aoc_ns.metadata[0].name
2225
}
2326
depends_on = [aws_eks_fargate_profile.test_profile]
2427
}
2528

2629
data "template_file" "daemonset_file" {
30+
count = 1
2731
template = file("./container-insights-agent/daemonset.tpl")
2832
vars = {
29-
NAMESPACE = var.deployment_type == "fargate" ? tolist(aws_eks_fargate_profile.test_profile.selector)[0].namespace : kubernetes_namespace.aoc_ns.metadata[0].name
30-
SERVICE_ACCOUNT = kubernetes_service_account.aoc-agent-role.metadata[0].name
33+
NAMESPACE = var.deployment_type == "fargate" ? tolist(aws_eks_fargate_profile.test_profile[count.index].selector)[0].namespace : kubernetes_namespace.aoc_ns.metadata[0].name
34+
SERVICE_ACCOUNT = kubernetes_service_account.aoc-agent-role[count.index].metadata[0].name
3135
OTELIMAGE = module.common.aoc_image
3236
REGION = var.region
3337
}
@@ -39,7 +43,7 @@ resource "kubectl_manifest" "service_account" {
3943
yaml_body = templatefile("./container-insights-agent/service_account_fargate.yml",
4044
{
4145
RoleArn : module.iam_assumable_role_admin.iam_role_arn,
42-
Namespace : tolist(aws_eks_fargate_profile.test_profile.selector)[0].namespace
46+
Namespace : tolist(aws_eks_fargate_profile.test_profile[count.index].selector)[0].namespace
4347
})
4448
depends_on = [
4549
module.iam_assumable_role_admin,
@@ -48,34 +52,37 @@ resource "kubectl_manifest" "service_account" {
4852
}
4953

5054
resource "kubectl_manifest" "cluster_role" {
51-
yaml_body = var.deployment_type == "fargate" ? file("./container-insights-agent/cluster_role_fargate.yml") : data.template_file.cluster_role_file.rendered
55+
count = 1
56+
yaml_body = var.deployment_type == "fargate" ? file("./container-insights-agent/cluster_role_fargate.yml") : data.template_file.cluster_role_file[count.index].rendered
5257
}
5358

5459
resource "kubectl_manifest" "cluster_role_binding" {
55-
yaml_body = var.deployment_type == "fargate" ? templatefile("./container-insights-agent/cluster_role_binding_fargate.yml", { Namespace : tolist(aws_eks_fargate_profile.test_profile.selector)[0].namespace }) : data.template_file.cluster_role_binding_file.rendered
60+
count = 1
61+
yaml_body = var.deployment_type == "fargate" ? templatefile("./container-insights-agent/cluster_role_binding_fargate.yml", { Namespace : tolist(aws_eks_fargate_profile.test_profile[count.index].selector)[0].namespace }) : data.template_file.cluster_role_binding_file[count.index].rendered
5662
depends_on = [
5763
kubectl_manifest.cluster_role,
5864
aws_eks_fargate_profile.test_profile
5965
]
6066
}
6167

6268
resource "kubectl_manifest" "config_map" {
63-
yaml_body = var.deployment_type == "fargate" ? templatefile("./container-insights-agent/config_map_fargate.yml", { Namespace : tolist(aws_eks_fargate_profile.test_profile.selector)[0].namespace }) : data.template_file.config_map_file.rendered
69+
count = 1
70+
yaml_body = var.deployment_type == "fargate" ? templatefile("./container-insights-agent/config_map_fargate.yml", { Namespace : tolist(aws_eks_fargate_profile.test_profile[count.index].selector)[0].namespace }) : data.template_file.config_map_file[count.index].rendered
6471
depends_on = [aws_eks_fargate_profile.test_profile]
6572
}
6673

6774
resource "kubectl_manifest" "daemonset" {
6875
count = var.aoc_base_scenario == "infra" && var.deployment_type != "fargate" ? 1 : 0
6976

70-
yaml_body = data.template_file.daemonset_file.rendered
77+
yaml_body = data.template_file.daemonset_file[count.index].rendered
7178
depends_on = [
7279
kubectl_manifest.config_map
7380
]
7481
}
7582

7683
resource "kubectl_manifest" "aoc_service_deploy" {
7784
count = var.aoc_base_scenario == "infra" && var.deployment_type == "fargate" ? 1 : 0
78-
yaml_body = templatefile("./container-insights-agent/aoc_service_fargate.yml", { Namespace : tolist(aws_eks_fargate_profile.test_profile.selector)[0].namespace })
85+
yaml_body = templatefile("./container-insights-agent/aoc_service_fargate.yml", { Namespace : tolist(aws_eks_fargate_profile.test_profile[count.index].selector)[0].namespace })
7986
depends_on = [
8087
kubectl_manifest.config_map,
8188
aws_eks_fargate_profile.test_profile
@@ -85,7 +92,7 @@ resource "kubectl_manifest" "aoc_service_deploy" {
8592
resource "kubectl_manifest" "aoc_fargate_deploy" {
8693
count = var.aoc_base_scenario == "infra" && var.deployment_type == "fargate" ? 1 : 0
8794
yaml_body = templatefile("./container-insights-agent/stateful_set_fargate.yml",
88-
{ ClusterName : var.eks_cluster_name, AocRepo : var.aoc_image_repo, AocTag : var.aoc_version, Namespace : tolist(aws_eks_fargate_profile.test_profile.selector)[0].namespace })
95+
{ ClusterName : var.eks_cluster_name, AocRepo : var.aoc_image_repo, AocTag : var.aoc_version, Namespace : tolist(aws_eks_fargate_profile.test_profile[count.index].selector)[0].namespace })
8996
depends_on = [
9097
kubectl_manifest.aoc_service_deploy,
9198
aws_eks_fargate_profile.test_profile
@@ -94,7 +101,7 @@ resource "kubectl_manifest" "aoc_fargate_deploy" {
94101

95102
resource "kubectl_manifest" "logs_sample_fargate_deploy" {
96103
count = var.aoc_base_scenario == "infra" && var.deployment_type == "fargate" ? 1 : 0
97-
yaml_body = templatefile("./container-insights-agent/logs_sample_fargate.yml", { Namespace : tolist(aws_eks_fargate_profile.test_profile.selector)[0].namespace })
104+
yaml_body = templatefile("./container-insights-agent/logs_sample_fargate.yml", { Namespace : tolist(aws_eks_fargate_profile.test_profile[count.index].selector)[0].namespace })
98105
depends_on = [
99106
kubectl_manifest.aoc_fargate_deploy,
100107
aws_eks_fargate_profile.test_profile

terraform/eks/main.tf

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ data "aws_subnet_ids" "private_subnets" {
138138
}
139139

140140
resource "aws_eks_fargate_profile" "test_profile" {
141+
count = var.deployment_type == "fargate" ? 1 : 0
141142
cluster_name = var.eks_cluster_name
142143
fargate_profile_name = "fp-aoc-${module.common.testing_id}"
143144
pod_execution_role_arn = aws_iam_role.fargate_profile_file.arn
@@ -160,9 +161,10 @@ resource "kubernetes_service_account" "aoc-role" {
160161
}
161162

162163
resource "kubernetes_service_account" "aoc-fargate-role" {
164+
count = var.deployment_type == "fargate" ? 1 : 0
163165
metadata {
164166
name = "aoc-fargate-role-${module.common.testing_id}"
165-
namespace = tolist(aws_eks_fargate_profile.test_profile.selector)[0].namespace
167+
namespace = tolist(aws_eks_fargate_profile.test_profile[count.index].selector)[0].namespace
166168
annotations = {
167169
"eks.amazonaws.com/role-arn" : module.iam_assumable_role_admin.iam_role_arn
168170
}
@@ -189,6 +191,7 @@ module "iam_assumable_role_admin" {
189191
}
190192

191193
resource "kubernetes_cluster_role_binding" "aoc-role-binding" {
194+
count = 1
192195
metadata {
193196
name = "aoc-role-binding-${module.common.testing_id}"
194197
}
@@ -200,15 +203,16 @@ resource "kubernetes_cluster_role_binding" "aoc-role-binding" {
200203
subject {
201204
kind = "ServiceAccount"
202205
name = var.deployment_type == "fargate" ? "aoc-fargate-role-${module.common.testing_id}" : "aoc-role-${module.common.testing_id}"
203-
namespace = var.deployment_type == "fargate" ? tolist(aws_eks_fargate_profile.test_profile.selector)[0].namespace : kubernetes_namespace.aoc_ns.metadata[0].name
206+
namespace = var.deployment_type == "fargate" ? tolist(aws_eks_fargate_profile.test_profile[count.index].selector)[0].namespace : kubernetes_namespace.aoc_ns.metadata[0].name
204207
}
205208
depends_on = [aws_eks_fargate_profile.test_profile]
206209
}
207210

208211
resource "kubernetes_service_account" "aoc-agent-role" {
212+
count = 1
209213
metadata {
210214
name = "aoc-agent-${module.common.testing_id}"
211-
namespace = var.deployment_type == "fargate" ? tolist(aws_eks_fargate_profile.test_profile.selector)[0].namespace : kubernetes_namespace.aoc_ns.metadata[0].name
215+
namespace = var.deployment_type == "fargate" ? tolist(aws_eks_fargate_profile.test_profile[count.index].selector)[0].namespace : kubernetes_namespace.aoc_ns.metadata[0].name
212216
}
213217

214218
automount_service_account_token = true

terraform/eks/otlp.tf

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ module "aoc_oltp" {
4343
listen_address_ip = module.common.sample_app_listen_address_ip
4444
listen_address_port = module.common.sample_app_listen_address_port
4545
}
46-
aoc_namespace = var.deployment_type == "fargate" ? tolist(aws_eks_fargate_profile.test_profile.selector)[0].namespace : kubernetes_namespace.aoc_ns.metadata[0].name
46+
aoc_namespace = var.deployment_type == "fargate" ? tolist(aws_eks_fargate_profile.test_profile[count.index].selector)[0].namespace : kubernetes_namespace.aoc_ns.metadata[0].name
4747
aoc_service = {
4848
name = module.common.otel_service_name
4949
grpc_port = module.common.grpc_port
@@ -64,7 +64,7 @@ resource "kubernetes_config_map" "aoc_config_map" {
6464

6565
metadata {
6666
name = "otel-config"
67-
namespace = var.deployment_type == "fargate" ? tolist(aws_eks_fargate_profile.test_profile.selector)[0].namespace : kubernetes_namespace.aoc_ns.metadata[0].name
67+
namespace = var.deployment_type == "fargate" ? tolist(aws_eks_fargate_profile.test_profile[count.index].selector)[0].namespace : kubernetes_namespace.aoc_ns.metadata[0].name
6868
}
6969

7070
data = {
@@ -79,7 +79,7 @@ resource "kubernetes_config_map" "mocked_server_cert" {
7979

8080
metadata {
8181
name = "mocked-server-cert"
82-
namespace = var.deployment_type == "fargate" ? tolist(aws_eks_fargate_profile.test_profile.selector)[0].namespace : kubernetes_namespace.aoc_ns.metadata[0].name
82+
namespace = var.deployment_type == "fargate" ? tolist(aws_eks_fargate_profile.test_profile[count.index].selector)[0].namespace : kubernetes_namespace.aoc_ns.metadata[0].name
8383
}
8484

8585
data = {
@@ -94,7 +94,7 @@ resource "kubernetes_deployment" "aoc_deployment" {
9494

9595
metadata {
9696
name = "aoc"
97-
namespace = var.deployment_type == "fargate" ? tolist(aws_eks_fargate_profile.test_profile.selector)[0].namespace : kubernetes_namespace.aoc_ns.metadata[0].name
97+
namespace = var.deployment_type == "fargate" ? tolist(aws_eks_fargate_profile.test_profile[count.index].selector)[0].namespace : kubernetes_namespace.aoc_ns.metadata[0].name
9898
labels = {
9999
app = "aoc"
100100
}
@@ -186,7 +186,7 @@ resource "kubernetes_service" "mocked_server_service" {
186186

187187
metadata {
188188
name = "mocked-server"
189-
namespace = var.deployment_type == "fargate" ? tolist(aws_eks_fargate_profile.test_profile.selector)[0].namespace : kubernetes_namespace.aoc_ns.metadata[0].name
189+
namespace = var.deployment_type == "fargate" ? tolist(aws_eks_fargate_profile.test_profile[count.index].selector)[0].namespace : kubernetes_namespace.aoc_ns.metadata[0].name
190190
}
191191
spec {
192192
selector = {
@@ -207,7 +207,7 @@ data "template_file" "adot_collector_config_file" {
207207
template = file("./adot-operator/adot_collector_deployment.tpl")
208208

209209
vars = {
210-
AOC_NAMESPACE = var.deployment_type == "fargate" ? tolist(aws_eks_fargate_profile.test_profile.selector)[0].namespace : kubernetes_namespace.aoc_ns.metadata[0].name
210+
AOC_NAMESPACE = var.deployment_type == "fargate" ? tolist(aws_eks_fargate_profile.test_profile[count.index].selector)[0].namespace : kubernetes_namespace.aoc_ns.metadata[0].name
211211
AOC_IMAGE = module.common.aoc_image
212212
AOC_DEPLOY_MODE = var.aoc_deploy_mode
213213
AOC_SERVICEACCOUNT = "aoc-role-${module.common.testing_id}"
@@ -241,7 +241,7 @@ resource "kubernetes_service" "sample_app_service" {
241241

242242
metadata {
243243
name = "sample-app"
244-
namespace = var.deployment_type == "fargate" ? tolist(aws_eks_fargate_profile.test_profile.selector)[0].namespace : kubernetes_namespace.aoc_ns.metadata[0].name
244+
namespace = var.deployment_type == "fargate" ? tolist(aws_eks_fargate_profile.test_profile[count.index].selector)[0].namespace : kubernetes_namespace.aoc_ns.metadata[0].name
245245
}
246246
spec {
247247
selector = {
@@ -263,7 +263,7 @@ resource "kubernetes_ingress" "app" {
263263
wait_for_load_balancer = true
264264
metadata {
265265
name = "sample-app-ingress"
266-
namespace = tolist(aws_eks_fargate_profile.test_profile.selector)[0].namespace
266+
namespace = tolist(aws_eks_fargate_profile.test_profile[count.index].selector)[0].namespace
267267
annotations = {
268268
"kubernetes.io/ingress.class" = "alb"
269269
"alb.ingress.kubernetes.io/scheme" = "internet-facing"

terraform/eks/prometheus.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ resource "kubernetes_deployment" "standalone_aoc_deployment" {
22
count = var.aoc_base_scenario == "prometheus" ? 1 : 0
33
metadata {
44
name = "aoc"
5-
namespace = var.deployment_type == "fargate" ? tolist(aws_eks_fargate_profile.test_profile.selector)[0].namespace : kubernetes_namespace.aoc_ns.metadata[0].name
5+
namespace = var.deployment_type == "fargate" ? tolist(aws_eks_fargate_profile.test_profile[count.index].selector)[0].namespace : kubernetes_namespace.aoc_ns.metadata[0].name
66
labels = {
77
app = "aoc"
88
}

0 commit comments

Comments
 (0)