Skip to content

Commit 074bc8c

Browse files
authored
Prometheus addon (#39)
* Prometheus Addon upgraded;simplifed kubernetes module * gitallowed added * Fixed amp url for prometheus * Fixed outputs with correct prometheus condition * Added comments
1 parent 6ab0ab2 commit 074bc8c

17 files changed

+358
-2725
lines changed

.gitallowed

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
.*key\s+=\s+"[^/]+/.+"
1+
.*key\s+=\s+"[^/]+/.+"

kubernetes-addons.tf

+141-84
Original file line numberDiff line numberDiff line change
@@ -19,114 +19,174 @@
1919
# ---------------------------------------------------------------------------------------------------------------------
2020
# Invoking Helm Module
2121
# ---------------------------------------------------------------------------------------------------------------------
22-
module "kubernetes_addons" {
23-
count = var.create_eks ? 1 : 0
24-
25-
source = "./kubernetes-addons"
26-
eks_cluster_id = module.aws_eks.cluster_id
27-
public_docker_repo = var.public_docker_repo
28-
private_container_repo_url = var.private_container_repo_url != "" ? var.private_container_repo_url : local.ecr_image_repo_url
22+
module "metrics_server" {
23+
count = var.create_eks && var.metrics_server_enable ? 1 : 0
24+
source = "./kubernetes-addons/metrics-server"
25+
metrics_server_helm_chart = var.metrics_server_helm_chart
2926

30-
# ------- Traefik Ingress Controller
31-
traefik_ingress_controller_enable = var.traefik_ingress_controller_enable
32-
traefik_helm_chart = var.traefik_helm_chart
27+
depends_on = [module.aws_eks]
28+
}
3329

34-
# ------- Cluster Autoscaler
35-
cluster_autoscaler_enable = var.cluster_autoscaler_enable
30+
module "cluster_autoscaler" {
31+
count = var.create_eks && var.cluster_autoscaler_enable ? 1 : 0
32+
source = "./kubernetes-addons/cluster-autoscaler"
33+
eks_cluster_id = module.aws_eks.cluster_id
3634
cluster_autoscaler_helm_chart = var.cluster_autoscaler_helm_chart
3735

38-
# ------- Metric Server
39-
metrics_server_enable = var.metrics_server_enable
40-
metrics_server_helm_chart = var.metrics_server_helm_chart
36+
depends_on = [module.aws_eks]
37+
}
38+
39+
module "traefik_ingress" {
40+
count = var.create_eks && var.traefik_ingress_controller_enable ? 1 : 0
41+
source = "./kubernetes-addons/traefik-ingress"
42+
traefik_helm_chart = var.traefik_helm_chart
4143

42-
# ------- AWS LB Controller
43-
aws_lb_ingress_controller_enable = var.aws_lb_ingress_controller_enable
44-
aws_lb_image_tag = var.aws_lb_image_tag
45-
aws_lb_helm_chart_version = var.aws_lb_helm_chart_version
46-
eks_oidc_issuer_url = module.aws_eks.cluster_oidc_issuer_url
47-
eks_oidc_provider_arn = module.aws_eks.oidc_provider_arn
48-
aws_lb_helm_repo_url = var.aws_lb_helm_repo_url
49-
aws_lb_helm_helm_chart_name = var.aws_lb_helm_helm_chart_name
50-
aws_lb_image_repo_name = var.aws_lb_image_repo_name
51-
52-
# ------- Nginx Ingress Controller
53-
nginx_ingress_controller_enable = var.nginx_ingress_controller_enable
54-
nginx_helm_chart_version = var.nginx_helm_chart_version
55-
nginx_image_tag = var.nginx_image_tag
56-
nginx_helm_chart_url = var.nginx_helm_chart_url
57-
nginx_helm_chart_name = var.nginx_helm_chart_name
58-
nginx_image_repo_name = var.nginx_image_repo_name
59-
60-
# ------- AWS Fluent bit for Node Groups
61-
aws_for_fluent_bit_enable = var.aws_for_fluent_bit_enable
44+
depends_on = [module.aws_eks]
45+
}
46+
47+
module "prometheus" {
48+
count = var.create_eks && var.prometheus_enable ? 1 : 0
49+
source = "./kubernetes-addons/prometheus"
50+
prometheus_helm_chart = var.prometheus_helm_chart
51+
#AWS Managed Prometheus Workspace
52+
aws_managed_prometheus_enable = var.aws_managed_prometheus_enable
53+
amp_workspace_id = var.aws_managed_prometheus_enable ? module.aws_managed_prometheus[0].amp_workspace_id : ""
54+
amp_ingest_role_arn = var.aws_managed_prometheus_enable ? module.aws_managed_prometheus[0].service_account_amp_ingest_role_arn : ""
55+
service_account_amp_ingest_name = local.service_account_amp_ingest_name
56+
57+
depends_on = [module.aws_eks]
58+
}
59+
60+
# TODO Upgrade
61+
module "lb_ingress_controller" {
62+
count = var.create_eks && var.aws_lb_ingress_controller_enable ? 1 : 0
63+
source = "./kubernetes-addons/lb-ingress-controller"
64+
65+
private_container_repo_url = var.private_container_repo_url
66+
clusterName = module.aws_eks.cluster_id
67+
eks_oidc_issuer_url = module.aws_eks.cluster_oidc_issuer_url
68+
eks_oidc_provider_arn = module.aws_eks.oidc_provider_arn
69+
public_docker_repo = var.public_docker_repo
70+
aws_lb_image_tag = var.aws_lb_image_tag
71+
aws_lb_helm_chart_version = var.aws_lb_helm_chart_version
72+
aws_lb_image_repo_name = var.aws_lb_image_repo_name
73+
aws_lb_helm_repo_url = var.aws_lb_helm_repo_url
74+
aws_lb_helm_helm_chart_name = var.aws_lb_helm_helm_chart_name
75+
76+
depends_on = [module.aws_eks]
77+
}
78+
79+
# TODO Upgrade
80+
module "nginx_ingress" {
81+
count = var.create_eks && var.nginx_ingress_controller_enable ? 1 : 0
82+
source = "./kubernetes-addons/nginx-ingress"
83+
84+
private_container_repo_url = var.private_container_repo_url
85+
account_id = data.aws_caller_identity.current.account_id
86+
public_docker_repo = var.public_docker_repo
87+
nginx_helm_chart_version = var.nginx_helm_chart_version
88+
nginx_image_tag = var.nginx_image_tag
89+
nginx_image_repo_name = var.nginx_image_repo_name
90+
depends_on = [module.aws_eks]
91+
}
92+
93+
# TODO Upgrade
94+
module "aws-for-fluent-bit" {
95+
count = var.create_eks && var.aws_for_fluent_bit_enable ? 1 : 0
96+
source = "./kubernetes-addons/aws-for-fluent-bit"
97+
98+
private_container_repo_url = var.private_container_repo_url
99+
cluster_id = module.aws_eks.cluster_id
62100
ekslog_retention_in_days = var.ekslog_retention_in_days
101+
public_docker_repo = var.public_docker_repo
63102
aws_for_fluent_bit_image_tag = var.aws_for_fluent_bit_image_tag
64103
aws_for_fluent_bit_helm_chart_version = var.aws_for_fluent_bit_helm_chart_version
65-
aws_for_fluent_bit_helm_chart_url = var.aws_for_fluent_bit_helm_chart_url
66-
aws_for_fluent_bit_helm_chart_name = var.aws_for_fluent_bit_helm_chart_name
67104
aws_for_fluent_bit_image_repo_name = var.aws_for_fluent_bit_image_repo_name
68105

106+
depends_on = [module.aws_eks]
107+
}
108+
109+
# TODO Upgrade
110+
module "fargate_fluentbit" {
111+
count = var.create_eks && var.fargate_fluent_bit_enable ? 1 : 0
112+
source = "./kubernetes-addons/fargate-fluentbit"
113+
eks_cluster_id = module.aws_eks.cluster_id
114+
115+
depends_on = [module.aws_eks]
116+
}
69117

70-
# ------- AWS Fluentbit for Fargate
71-
fargate_fluent_bit_enable = var.enable_fargate ? var.fargate_fluent_bit_enable : false
118+
# TODO Upgrade
119+
module "agones" {
120+
count = var.create_eks && var.agones_enable ? 1 : 0
121+
source = "./kubernetes-addons/agones"
72122

73-
# ------- Agones Gaming Module ---------
74-
agones_enable = var.agones_enable
123+
public_docker_repo = var.public_docker_repo
124+
private_container_repo_url = var.private_container_repo_url
125+
cluster_id = module.aws_eks.cluster_id
75126
expose_udp = var.expose_udp
76-
eks_security_group_id = module.aws_eks.worker_security_group_id
77-
agones_helm_chart_name = var.agones_helm_chart_name
78-
agones_helm_chart_url = var.agones_helm_chart_url
79-
agones_image_tag = var.agones_image_tag
80-
agones_image_repo = var.agones_image_repo
81-
agones_game_server_minport = var.agones_game_server_minport
82-
agones_game_server_maxport = var.agones_game_server_maxport
83-
84-
# ------- Prometheus Module ---------
85-
prometheus_enable = var.prometheus_enable
86-
alert_manager_image_tag = var.alert_manager_image_tag
87-
configmap_reload_image_tag = var.configmap_reload_image_tag
88-
node_exporter_image_tag = var.node_exporter_image_tag
89-
prometheus_helm_chart_version = var.prometheus_helm_chart_version
90-
prometheus_image_tag = var.prometheus_image_tag
91-
pushgateway_image_tag = var.pushgateway_image_tag
92-
amp_ingest_role_arn = var.prometheus_enable ? module.aws_managed_prometheus[0].service_account_amp_ingest_role_arn : ""
93-
service_account_amp_ingest_name = format("%s-%s", module.aws_eks.cluster_id, "amp-ingest-account")
94-
amp_workspace_id = var.prometheus_enable ? module.aws_managed_prometheus[0].amp_workspace_id : ""
95-
region = data.aws_region.current.id
96-
prometheus_helm_chart_url = var.prometheus_helm_chart_url
97-
prometheus_helm_chart_name = var.prometheus_helm_chart_name
98-
99-
# ------- Cert Manager ---------
100-
# Cert Manager is a pre-requisite for Windows support
101-
cert_manager_enable = var.cert_manager_enable || var.enable_windows_support
102-
cert_manager_image_tag = var.cert_manager_image_tag
127+
eks_sg_id = module.aws_eks.worker_security_group_id
128+
129+
depends_on = [module.aws_eks]
130+
}
131+
132+
# TODO Upgrade
133+
module "cert_manager" {
134+
count = var.create_eks && var.cert_manager_enable ? 1 : 0
135+
source = "./kubernetes-addons/cert-manager"
136+
137+
private_container_repo_url = var.private_container_repo_url
138+
public_docker_repo = var.public_docker_repo
103139
cert_manager_helm_chart_version = var.cert_manager_helm_chart_version
140+
cert_manager_image_tag = var.cert_manager_image_tag
104141
cert_manager_install_crds = var.cert_manager_install_crds
105142
cert_manager_helm_chart_name = var.cert_manager_helm_chart_name
106143
cert_manager_helm_chart_url = var.cert_manager_helm_chart_url
107144
cert_manager_image_repo_name = var.cert_manager_image_repo_name
108145

109-
# ------- Windows VPC Controllers ---------
110-
windows_vpc_controllers_enable = var.enable_windows_support
111-
windows_vpc_resource_controller_image_tag = var.windows_vpc_resource_controller_image_tag
112-
windows_vpc_admission_webhook_image_tag = var.windows_vpc_admission_webhook_image_tag
146+
depends_on = [module.aws_eks]
147+
}
113148

114-
# ------- AWS Distro for OpenTelemetry Collector in EKS Module ---------
115-
aws_open_telemetry_enable = var.aws_open_telemetry_enable
116-
aws_open_telemetry_namespace = var.aws_open_telemetry_namespace
117-
aws_open_telemetry_aws_region = var.aws_open_telemetry_aws_region
118-
aws_open_telemetry_collector_image = var.aws_open_telemetry_collector_image
149+
# TODO Upgrade
150+
module "windows_vpc_controllers" {
151+
count = var.create_eks && var.enable_windows_support ? 1 : 0
152+
source = "./kubernetes-addons/windows-vpc-controllers"
153+
154+
private_container_repo_url = var.private_container_repo_url
155+
public_docker_repo = var.public_docker_repo
156+
resource_controller_image_tag = var.windows_vpc_resource_controller_image_tag
157+
admission_webhook_image_tag = var.windows_vpc_admission_webhook_image_tag
158+
depends_on = [
159+
module.cert_manager, module.aws_eks
160+
]
161+
}
162+
163+
# TODO Upgrade
164+
module "aws_opentelemetry_collector" {
165+
count = var.create_eks && var.aws_open_telemetry_enable ? 1 : 0
166+
source = "./kubernetes-addons/aws-otel-eks"
167+
168+
aws_open_telemetry_aws_region = var.aws_open_telemetry_aws_region == "" ? data.aws_region.current.id : var.aws_open_telemetry_aws_region
119169
aws_open_telemetry_emitter_image = var.aws_open_telemetry_emitter_image
170+
aws_open_telemetry_collector_image = var.aws_open_telemetry_collector_image
120171
aws_open_telemetry_emitter_oltp_endpoint = var.aws_open_telemetry_emitter_oltp_endpoint
121-
aws_open_telemetry_mg_node_iam_role_arns = var.create_eks && var.enable_managed_nodegroups ? values({ for nodes in sort(keys(var.managed_node_groups)) : nodes => join(",", module.aws_eks_managed_node_groups[nodes].managed_nodegroup_iam_role_name) }) : []
122-
aws_open_telemetry_self_mg_node_iam_role_arns = var.create_eks && var.enable_self_managed_nodegroups ? values({ for nodes in sort(keys(var.self_managed_node_groups)) : nodes => join(",", module.aws_eks_self_managed_node_groups[nodes].self_managed_iam_role_name) }) : []
172+
aws_open_telemetry_mg_node_iam_role_arns = var.aws_open_telemetry_mg_node_iam_role_arns
173+
aws_open_telemetry_self_mg_node_iam_role_arns = var.aws_open_telemetry_self_mg_node_iam_role_arns
123174
aws_open_telemetry_emitter_name = var.aws_open_telemetry_emitter_name
124175
aws_open_telemetry_emitter_otel_resource_attributes = var.aws_open_telemetry_emitter_otel_resource_attributes
125176

126-
# ------- OpenTelemetry Module ---------
127-
opentelemetry_enable = var.opentelemetry_enable
177+
depends_on = [module.aws_eks]
178+
}
179+
180+
# TODO Upgrade
181+
module "opentelemetry_collector" {
182+
count = var.create_eks && var.opentelemetry_enable ? 1 : 0
183+
source = "./kubernetes-addons/opentelemetry-collector"
184+
185+
private_container_repo_url = var.private_container_repo_url
186+
public_docker_repo = var.public_docker_repo
128187
opentelemetry_command_name = var.opentelemetry_command_name
129188
opentelemetry_helm_chart = var.opentelemetry_helm_chart
189+
opentelemetry_helm_chart_url = var.opentelemetry_helm_chart_url
130190
opentelemetry_image = var.opentelemetry_image
131191
opentelemetry_image_tag = var.opentelemetry_image_tag
132192
opentelemetry_helm_chart_version = var.opentelemetry_helm_chart_version
@@ -136,9 +196,6 @@ module "kubernetes_addons" {
136196
opentelemetry_enable_container_logs = var.opentelemetry_enable_container_logs
137197
opentelemetry_min_standalone_collectors = var.opentelemetry_min_standalone_collectors
138198
opentelemetry_max_standalone_collectors = var.opentelemetry_max_standalone_collectors
139-
opentelemetry_helm_chart_url = var.opentelemetry_helm_chart_url
140-
141199

142200
depends_on = [module.aws_eks]
143-
144201
}

kubernetes-addons/README.md

-41
This file was deleted.

kubernetes-addons/cluster-autoscaler/README.md

-1
Original file line numberDiff line numberDiff line change
@@ -52,4 +52,3 @@ No modules.
5252

5353
No outputs.
5454
<!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK -->
55-

kubernetes-addons/data.tf

-21
This file was deleted.

0 commit comments

Comments
 (0)