Skip to content

Commit c5a16fa

Browse files
committed
add ingress nginx and fix some bugs
1 parent 32a996a commit c5a16fa

File tree

14 files changed

+647
-64
lines changed

14 files changed

+647
-64
lines changed

example/main.tf

Lines changed: 21 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ locals {
77
admin_email = "[email protected]"
88
ingress_domain = "cluster.local"
99
ingress_class_name = "apisix" # or "nginx"
10-
cert_manager_issuer = ""
10+
cert_manager_issuer = "" # you can set to "letsencrypt-staging" or "letsencrypt-prod" after configuring dns records
1111

1212
cluster_version = "1.29"
1313

@@ -42,15 +42,16 @@ locals {
4242
"node.kubernetes.io/purpose" = "management"
4343
}
4444

45-
# multiple pods don't have tolerations yet
46-
# including snapshot-controller plugin that can't be changed at all
47-
# taints = {
48-
# purpose = {
49-
# key = "node.kubernetes.io/purpose"
50-
# value = "management"
51-
# effect = "NO_SCHEDULE"
52-
# }
53-
# }
45+
# multiple pods don't have tolerations yet
46+
# including snapshot-controller plugin that can't be changed at all
47+
# taints = {
48+
# purpose = {
49+
# key = "node.kubernetes.io/purpose"
50+
# value = "management"
51+
# effect = "NO_SCHEDULE"
52+
# }
53+
# }
54+
5455
}
5556
}
5657

@@ -70,28 +71,16 @@ locals {
7071
# aws-node-termination-handler = {}
7172
}
7273

73-
# or in all cluster networks and availability zones
74-
self_managed_node_groups = {}
75-
76-
eks_managed_node_groups = {
77-
# management = {
78-
# min_size = 0
79-
# desired_size = 0
80-
#
81-
# labels = {
82-
# "node.kubernetes.io/purpose" = "management"
83-
# }
84-
#
85-
# taints = {
86-
# purpose = {
87-
# key = "node.kubernetes.io/purpose"
88-
# value = "management"
89-
# effect = "NO_SCHEDULE"
90-
# }
91-
# }
74+
# Groups in all cluster networks and availability zones
75+
self_managed_node_groups = {
76+
# nth_test = {
77+
# min_size = 0
78+
# desired_size = 0
79+
# max_size = 1
80+
# instance_types = ["t3.nano"]
9281
# }
9382
}
94-
83+
eks_managed_node_groups = {}
9584
fargate_profiles = {}
9685

9786
tags = {
@@ -137,6 +126,7 @@ module "eks" {
137126
cluster_version = local.cluster_version
138127
admin_email = local.admin_email
139128
ingress_domain = local.ingress_domain
129+
ingress_class_name = local.ingress_class_name
140130
cert_manager_issuer = local.cert_manager_issuer
141131
vpc_id = module.vpc.vpc_id
142132
number_of_multi_az = local.number_of_multi_az
@@ -158,6 +148,7 @@ module "eks" {
158148
enable_metrics_server = true
159149
enable_vpa = true
160150
enable_ingress_apisix = true
151+
enable_ingress_nginx = false
161152
enable_victoriametrics_operator = true
162153
enable_opentelemetry_operator = true
163154
enable_clickhouse_operator = true

main.tf

Lines changed: 85 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,8 @@ locals {
260260
aws_efs_csi_driver_config = merge(
261261
local.universal_addon_config,
262262
{
263-
reset_values = true
263+
chart_version = null
264+
reset_values = true
264265
values = [
265266
<<-EOT
266267
controller:
@@ -274,20 +275,23 @@ locals {
274275
# https://github.com/aws/aws-node-termination-handler/blob/main/config/helm/aws-node-termination-handler/values.yaml
275276
aws_node_termination_handler_config = merge(
276277
local.universal_addon_config,
277-
{reset_values = true},
278+
{
279+
chart_version = null
280+
reset_values = true
281+
},
278282
var.aws_node_termination_handler_config
279283
)
280284
aws_node_termination_handler_asg_arns = concat(
281285
[for asg in module.eks.self_managed_node_groups : asg.autoscaling_group_arn],
282-
[for asg in module.eks.eks_managed_node_groups : asg.autoscaling_group_arn],
283286
var.aws_node_termination_handler_asg_arns
284287
)
285288

286289
# https://github.com/cert-manager/cert-manager/blob/master/deploy/charts/cert-manager/values.yaml
287290
cert_manager_config = merge(
288291
local.universal_addon_config,
289292
{
290-
reset_values = true
293+
chart_version = null
294+
reset_values = true
291295
values = [
292296
<<-EOT
293297
webhook:
@@ -305,22 +309,29 @@ locals {
305309
# https://github.com/kubernetes/autoscaler/blob/master/charts/cluster-autoscaler/values.yaml
306310
cluster_autoscaler_config = merge(
307311
local.universal_addon_config,
308-
{reset_values = true},
312+
{
313+
chart_version = null
314+
reset_values = true
315+
},
309316
var.cluster_autoscaler_config
310317
)
311318

312319
# https://github.com/kubernetes-sigs/metrics-server/blob/master/charts/metrics-server/values.yaml
313320
metrics_server_config = merge(
314321
local.universal_addon_config,
315-
{reset_values = true},
322+
{
323+
chart_version = null
324+
reset_values = true
325+
},
316326
var.metrics_server_config
317327
)
318328

319329
# https://github.com/FairwindsOps/charts/blob/master/stable/vpa/values.yaml
320330
vpa_config = merge(
321331
local.universal_addon_config,
322332
{
323-
reset_values = true
333+
chart_version = null
334+
reset_values = true
324335
values = [
325336
<<-EOT
326337
recommender:
@@ -549,6 +560,7 @@ module "opentelemetry_operator" {
549560
depends_on = [
550561
#module.eks,
551562
#module.addons
563+
module.victoriametrics_operator
552564
]
553565

554566
create = var.enable_opentelemetry_operator
@@ -614,7 +626,7 @@ module "clickhouse_operator" {
614626
)
615627
}
616628

617-
# INGRESS APISIX
629+
# INGRESS
618630

619631
module "ingress_apisix" {
620632
source = "./modules/apisix"
@@ -627,7 +639,7 @@ module "ingress_apisix" {
627639
]
628640

629641
create = var.enable_ingress_apisix
630-
chart_version = can(var.ingress_apisix_chart_version) ? var.ingress_apisix_chart_version : null
642+
chart_version = var.ingress_apisix_chart_version
631643
namespace = var.ingress_apisix_namespace
632644
set = var.ingress_apisix_set
633645
tags = var.tags
@@ -647,6 +659,47 @@ module "ingress_apisix" {
647659
)
648660
}
649661

662+
module "ingress_nginx" {
663+
source = "./modules/nginx"
664+
count = var.enable_ingress_nginx ? 1 : 0
665+
666+
depends_on = [
667+
#module.eks,
668+
#module.addons
669+
module.victoriametrics_operator
670+
]
671+
672+
create = var.enable_ingress_nginx
673+
chart_version = var.ingress_nginx_chart_version
674+
namespace = var.ingress_nginx_namespace
675+
set = var.ingress_nginx_set
676+
tags = var.tags
677+
678+
values = concat(
679+
[
680+
<<-EOT
681+
controller:
682+
${replace(local.universal_values_string, "\n", "\n ")}
683+
defaultBackend:
684+
${replace(local.universal_values_string, "\n", "\n ")}
685+
EOT
686+
],
687+
[
688+
<<-EOT
689+
%{ if var.enable_victoriametrics_operator == true }
690+
controller:
691+
metrics:
692+
serviceMonitor:
693+
enabled: true
694+
namespace: "${var.ingress_nginx_namespace}"
695+
scrapeInterval: 30s # default
696+
%{ endif }
697+
EOT
698+
],
699+
var.ingress_nginx_values
700+
)
701+
}
702+
650703
# MONITORING
651704

652705
module "victoriametrics" {
@@ -717,28 +770,27 @@ module "victoriametrics" {
717770
- secretName: grafana-${var.victoriametrics_namespace}-tls
718771
hosts:
719772
- grafana.${var.ingress_domain}
773+
%{ else }
774+
tls: []
720775
%{ endif }
721776
%{ endif }
722777
%{ endif }
723778
EOT
724779
,
725780
<<-EOT
726-
%{ if var.enable_uptrace == true }
781+
%{ if var.enable_uptrace == true || var.enable_qryn == true }
727782
vmagent:
728783
# https://docs.victoriametrics.com/operator/api/#vmagentremotewritespec
729784
# https://uptrace.dev/get/ingest/prometheus.html#prometheus-remote-write
730785
additionalRemoteWrites:
786+
%{ if var.enable_uptrace == true }
731787
- url: "http://${module.uptrace[0].chart.uptrace}.${module.uptrace[0].namespace.uptrace}.svc:14318/api/v1/prometheus/write"
732788
headers:
733789
- "uptrace-dsn: http://${module.uptrace[0].project_tokens[1]}@${module.uptrace[0].chart.uptrace}.${module.uptrace[0].namespace.uptrace}.svc:14318/2?grpc=14317"
734-
%{ endif }
735-
EOT
736-
,
737-
<<-EOT
738-
%{ if var.enable_qryn == true }
739-
vmagent:
740-
additionalRemoteWrites:
790+
%{ endif }
791+
%{ if var.enable_qryn == true }
741792
- url: "http://${var.admin_email}:${module.qryn[0].root_password}@${module.qryn[0].chart.qryn}.${module.qryn[0].namespace.qryn}.svc:3100/api/v1/write"
793+
%{ endif }
742794
%{ endif }
743795
EOT
744796
],
@@ -789,6 +841,8 @@ module "victoriametrics" {
789841
- vmalertmanager.${var.ingress_domain}
790842
- vmagent.${var.ingress_domain}
791843
- vmalert.${var.ingress_domain}
844+
%{ else }
845+
tls: []
792846
%{ endif }
793847
%{ endif }
794848
EOT
@@ -803,8 +857,8 @@ module "grafana" {
803857
count = var.enable_grafana ? 1 : 0
804858

805859
depends_on = [
806-
# module.eks,
807-
# module.addons,
860+
#module.eks,
861+
#module.addons,
808862
module.grafana_operator,
809863
module.victoriametrics_operator
810864
]
@@ -847,6 +901,8 @@ module "grafana" {
847901
- secretName: grafana-${var.grafana_namespace}-tls
848902
hosts:
849903
- grafana.${var.ingress_domain}
904+
%{ else }
905+
tls: []
850906
%{ endif }
851907
%{ endif }
852908
EOT
@@ -909,6 +965,8 @@ module "uptrace" {
909965
- secretName: uptrace-${var.uptrace_namespace}-tls
910966
hosts:
911967
- uptrace.${var.ingress_domain}
968+
%{ else }
969+
tls: []
912970
%{ endif }
913971
%{ endif }
914972
EOT
@@ -985,6 +1043,8 @@ module "qryn" {
9851043
- secretName: qryn-${var.qryn_namespace}-tls
9861044
hosts:
9871045
- qryn.${var.ingress_domain}
1046+
%{ else }
1047+
tls: []
9881048
%{ endif }
9891049
%{ endif }
9901050
EOT
@@ -1047,6 +1107,8 @@ module "openobserve" {
10471107
- secretName: openobserve-${var.openobserve_namespace}-tls
10481108
hosts:
10491109
- openobserve.${var.ingress_domain}
1110+
%{ else }
1111+
tls: []
10501112
%{ endif }
10511113
%{ endif }
10521114
EOT
@@ -1145,6 +1207,8 @@ module "vector_agent" {
11451207
type: "loki"
11461208
inputs:
11471209
- kubernetes_logs
1210+
encoding:
1211+
codec: "json"
11481212
endpoint: "http://${module.qryn[0].chart.qryn}.${module.qryn[0].namespace.qryn}.svc:3100"
11491213
auth:
11501214
strategy: "basic"
@@ -1199,6 +1263,8 @@ module "kubernetes_dashboard" {
11991263
- secretName: kubernetes-dashboard-${var.kubernetes_dashboard_namespace}-tls
12001264
hosts:
12011265
- k8s-dashboard.${var.ingress_domain}
1266+
%{ else }
1267+
tls: []
12021268
%{ endif }
12031269
%{ endif }
12041270
EOT

modules/grafana/variables.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ variable "chart" {
7777
variable "chart_version" {
7878
description = "Specify the exact chart version to install. If this is not specified, the latest version is installed"
7979
type = string
80-
default = ""
80+
default = null
8181
}
8282

8383
variable "repository" {

0 commit comments

Comments
 (0)