@@ -4,27 +4,80 @@ locals {
44 enabled = local.helm_releases[index (local. helm_releases . * . id , " ingress-nginx" )].enabled
55 chart = local.helm_releases[index (local. helm_releases . * . id , " ingress-nginx" )].chart
66 repository = local.helm_releases[index (local. helm_releases . * . id , " ingress-nginx" )].repository
7- chart_version = local.helm_releases[index (local. helm_releases . * . id , " ingress-nginx" )].version
7+ chart_version = local.helm_releases[index (local. helm_releases . * . id , " ingress-nginx" )].chart_version
88 namespace = local.helm_releases[index (local. helm_releases . * . id , " ingress-nginx" )].namespace
99 }
10- ssl_certificate_arn = var. nginx_ingress_ssl_terminator == " lb" ? data. terraform_remote_state . layer1-aws . outputs . ssl_certificate_arn : " "
10+ ssl_certificate_arn = var. nginx_ingress_ssl_terminator == " lb" ? data. terraform_remote_state . layer1-aws . outputs . ssl_certificate_arn : " ssl-certificate"
11+ ingress_nginx_general_values = << VALUES
12+ rbac:
13+ create: true
14+ controller:
15+ metrics:
16+ enabled: true
17+ serviceMonitor:
18+ enabled: true
19+ podAnnotations:
20+ co.elastic.logs/module: nginx
21+ co.elastic.logs/fileset.stdout: ingress_controller
22+ co.elastic.logs/fileset.stderr: error
1123
12- template_name = (
13- var. nginx_ingress_ssl_terminator == " lb" ? " nginx-ingress-values.yaml" : (
14- var. nginx_ingress_ssl_terminator == " nginx" ? " nginx-ingress-certmanager-ssl-termination-values.yaml" : " " )
15- )
16- }
17-
18- data "template_file" "ingress_nginx" {
19- count = local. ingress_nginx . enabled ? 1 : 0
20-
21- template = file (" ${ path . module } /templates/${ local . template_name } " )
22- vars = {
23- hostname = local.domain_name
24- ssl_cert = local.ssl_certificate_arn
25- proxy_real_ip_cidr = local.vpc_cidr
26- namespace = module.ingress_nginx_namespace[count.index].name
27- }
24+ affinity:
25+ nodeAffinity:
26+ requiredDuringSchedulingIgnoredDuringExecution:
27+ nodeSelectorTerms:
28+ - matchExpressions:
29+ - key: eks.amazonaws.com/capacityType
30+ operator: In
31+ values:
32+ - ON_DEMAND
33+ VALUES
34+ ingress_loadbalancer_ssl_termination_values = << VALUES
35+ controller:
36+ service:
37+ targetPorts:
38+ http: http
39+ https: http
40+ annotations:
41+ service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
42+ service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: '60'
43+ service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "https"
44+ service.beta.kubernetes.io/aws-load-balancer-ssl-cert: ${ local . ssl_certificate_arn }
45+ service.beta.kubernetes.io/aws-load-balancer-ssl-negotiation-policy: ELBSecurityPolicy-TLS-1-2-2017-01
46+ external-dns.alpha.kubernetes.io/hostname: ${ local . domain_name } .
47+ publishService:
48+ enabled: true
49+ config:
50+ server-tokens: "false"
51+ use-forwarded-headers: "true"
52+ set-real-ip-from: "${ local . vpc_cidr } "
53+ VALUES
54+ ingress_pod_ssl_termination_values = << VALUES
55+ controller:
56+ extraArgs:
57+ default-ssl-certificate: "${ local . ingress_nginx . enabled ? module . ingress_nginx_namespace [0 ]. name : " default" } /nginx-tls"
58+ containerPort:
59+ http: 80
60+ https: 443
61+ service:
62+ targetPorts:
63+ http: http
64+ https: https
65+ annotations:
66+ service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp
67+ service.beta.kubernetes.io/aws-load-balancer-proxy-protocol: "*"
68+ service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: '60'
69+ service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "https"
70+ # service.beta.kubernetes.io/aws-load-balancer-type: nlb
71+ external-dns.alpha.kubernetes.io/hostname: ${ local . domain_name } .
72+ publishService:
73+ enabled: true
74+ config:
75+ server-tokens: "false"
76+ use-forwarded-headers: "true"
77+ use-proxy-protocol: "true"
78+ set-real-ip-from: "${ local . vpc_cidr } "
79+ real-ip-header: "proxy_protocol"
80+ VALUES
2881}
2982
3083# tfsec:ignore:kubernetes-network-no-public-egress tfsec:ignore:kubernetes-network-no-public-ingress
@@ -170,7 +223,8 @@ resource "helm_release" "ingress_nginx" {
170223 max_history = var. helm_release_history_size
171224
172225 values = [
173- data . template_file . ingress_nginx [count . index ]. rendered ,
226+ local . ingress_nginx_general_values ,
227+ var . nginx_ingress_ssl_terminator == " lb" ? local . ingress_loadbalancer_ssl_termination_values : local . ingress_pod_ssl_termination_values
174228 ]
175229
176230 depends_on = [helm_release . prometheus_operator ]
0 commit comments