Skip to content

Commit debbcfe

Browse files
committed
Update ingress and service config to support aws ALB
1 parent a351757 commit debbcfe

File tree

14 files changed

+156
-123
lines changed

14 files changed

+156
-123
lines changed

osm-seed/templates/nominatim-api/nominatim-ingress.yaml

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,25 @@ kind: Ingress
44
metadata:
55
name: {{ template "osm-seed.fullname" . }}-ingress-nominatim-api
66
annotations:
7+
## NLB
8+
{{- if eq .Values.ingressClassNameType "nlb" }}
9+
kubernetes.io/ingress.class: nginx
710
cert-manager.io/cluster-issuer: {{ .Release.Name }}-letsencrypt-prod-issuer
8-
nginx.ingress.kubernetes.io/proxy-body-size: 5m
9-
nginx.ingress.kubernetes.io/use-regex: "true"
11+
nginx.ingress.kubernetes.io/proxy-body-size: 200m
12+
nginx.ingress.kubernetes.io/proxy-connect-timeout: "600"
13+
nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
14+
nginx.ingress.kubernetes.io/proxy-send-timeout: "600"
15+
{{- end }}
16+
# ALB
17+
{{- if eq .Values.ingressClassNameType "alb" }}
18+
kubernetes.io/ingress.class: alb
19+
alb.ingress.kubernetes.io/group.name: {{ .Release.Name }}
20+
alb.ingress.kubernetes.io/scheme: {{ .Values.alb.scheme | default "internet-facing" }}
21+
alb.ingress.kubernetes.io/target-type: {{ .Values.alb.targetType | default "ip" }}
22+
alb.ingress.kubernetes.io/listen-ports: '{{ .Values.alb.listenPorts | default "[{\"HTTP\":80},{\"HTTPS\":443}]" }}'
23+
alb.ingress.kubernetes.io/certificate-arn: "{{ .Values.alb.certificateArn }}"
24+
alb.ingress.kubernetes.io/ssl-redirect: '443'
25+
{{- end }}
1026
spec:
1127
ingressClassName: {{ .Values.ingressClassName }}
1228
tls:

osm-seed/templates/nominatim-api/nominatim-service.yaml

Lines changed: 6 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -9,50 +9,27 @@ metadata:
99
environment: {{ .Values.environment }}
1010
release: {{ .Release.Name }}
1111
annotations:
12-
{{- if and (eq .Values.serviceType "LoadBalancer") .Values.AWS_SSL_ARN }}
13-
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: {{ .Values.AWS_SSL_ARN }}
14-
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
15-
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: https
12+
# NLB
13+
{{- if eq .Values.ingressClassNameType "nlb" }}
14+
service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
15+
service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: "ip"
16+
service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "300"
1617
{{- end }}
18+
# ClusterIP
1719
{{- if eq .Values.serviceType "ClusterIP" }}
1820
cert-manager.io/cluster-issuer: {{ .Release.Name }}-letsencrypt-prod-issuer
19-
{{- else }}
20-
fake.annotation: fake
21-
{{- end }}
22-
{{- with .Values.nominatimApi.serviceAnnotations }}
23-
{{- toYaml . | nindent 4 }}
2421
{{- end }}
2522
spec:
26-
{{- if and .Values.nominatimApi.enabled .Values.nominatimApi.externalService.enabled }}
27-
# External service (no selector)
28-
ports:
29-
- name: http
30-
port: 80
31-
targetPort: {{ .Values.nominatimApi.externalService.port | default "80" }}
32-
protocol: TCP
33-
{{- else }}
34-
# Internal service
3523
type: {{ .Values.serviceType }}
3624
ports:
3725
- port: 80
3826
protocol: TCP
3927
name: http
4028
targetPort: api
41-
# - port: 5432
42-
# protocol: TCP
43-
# name: postgres
44-
# targetPort: postgres
45-
{{- if and (eq .Values.serviceType "LoadBalancer") .Values.AWS_SSL_ARN }}
46-
- port: 443
47-
protocol: TCP
48-
name: https
49-
targetPort: apache
50-
{{- end }}
5129
selector:
5230
app: {{ template "osm-seed.name" . }}
5331
release: {{ .Release.Name }}
5432
run: {{ .Release.Name }}-nominatim
55-
{{- end }}
5633
{{- end }}
5734
---
5835
{{- if and .Values.nominatimApi.enabled .Values.nominatimUI.enabled }}
@@ -66,15 +43,6 @@ metadata:
6643
environment: {{ .Values.environment }}
6744
release: {{ .Release.Name }}
6845
spec:
69-
{{- if and .Values.nominatimUI.enabled .Values.nominatimUI.externalService.enabled }}
70-
# External service (no selector)
71-
ports:
72-
- name: http
73-
port: 80
74-
targetPort: {{ .Values.nominatimUI.externalService.port | default "80" }}
75-
protocol: TCP
76-
{{- else }}
77-
# Internal service
7846
type: ClusterIP
7947
ports:
8048
- port: 80
@@ -85,5 +53,4 @@ spec:
8553
app: {{ template "osm-seed.name" . }}
8654
release: {{ .Release.Name }}
8755
run: {{ .Release.Name }}-nominatim
88-
{{- end }}
8956
{{- end }}

osm-seed/templates/osmcha-app/ingress.yaml

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,25 @@ kind: Ingress
44
metadata:
55
name: {{ template "osm-seed.fullname" . }}-ingress-osmcha-app
66
annotations:
7+
## NLB
8+
{{- if eq .Values.ingressClassNameType "nlb" }}
9+
kubernetes.io/ingress.class: nginx
710
cert-manager.io/cluster-issuer: {{ .Release.Name }}-letsencrypt-prod-issuer
8-
nginx.ingress.kubernetes.io/proxy-body-size: 5m
11+
nginx.ingress.kubernetes.io/proxy-body-size: 200m
12+
nginx.ingress.kubernetes.io/proxy-connect-timeout: "600"
13+
nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
14+
nginx.ingress.kubernetes.io/proxy-send-timeout: "600"
15+
{{- end }}
16+
# ALB
17+
{{- if eq .Values.ingressClassNameType "alb" }}
18+
kubernetes.io/ingress.class: alb
19+
alb.ingress.kubernetes.io/group.name: {{ .Release.Name }}
20+
alb.ingress.kubernetes.io/scheme: {{ .Values.alb.scheme | default "internet-facing" }}
21+
alb.ingress.kubernetes.io/target-type: {{ .Values.alb.targetType | default "ip" }}
22+
alb.ingress.kubernetes.io/listen-ports: '{{ .Values.alb.listenPorts | default "[{\"HTTP\":80},{\"HTTPS\":443}]" }}'
23+
alb.ingress.kubernetes.io/certificate-arn: "{{ .Values.alb.certificateArn }}"
24+
alb.ingress.kubernetes.io/ssl-redirect: '443'
25+
{{- end }}
926
spec:
1027
ingressClassName: {{ .Values.ingressClassName }}
1128
tls:

osm-seed/templates/osmcha-app/service.yaml

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,15 @@ metadata:
99
environment: {{ .Values.environment }}
1010
release: {{ .Release.Name }}
1111
annotations:
12-
{{- if and (eq .Values.serviceType "LoadBalancer") .Values.AWS_SSL_ARN }}
13-
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: {{ .Values.AWS_SSL_ARN }}
14-
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
15-
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: https
12+
# NLB
13+
{{- if eq .Values.ingressClassNameType "nlb" }}
14+
service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
15+
service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: "ip"
16+
service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "300"
1617
{{- end }}
18+
# ClusterIP
1719
{{- if eq .Values.serviceType "ClusterIP" }}
1820
cert-manager.io/cluster-issuer: {{ .Release.Name }}-letsencrypt-prod-issuer
19-
{{- else }}
20-
fake.annotation: fake
21-
{{- end }}
22-
{{- with .Values.osmchaApi.serviceAnnotations }}
23-
{{- toYaml . | nindent 4 }}
2421
{{- end }}
2522
spec:
2623
type: {{ .Values.serviceType }}

osm-seed/templates/overpass-api/overpass-api-ingress.yaml

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,25 @@ kind: Ingress
44
metadata:
55
name: {{ template "osm-seed.fullname" . }}-ingress-overpass-api
66
annotations:
7+
## NLB
8+
{{- if eq .Values.ingressClassNameType "nlb" }}
9+
kubernetes.io/ingress.class: nginx
710
cert-manager.io/cluster-issuer: {{ .Release.Name }}-letsencrypt-prod-issuer
811
nginx.ingress.kubernetes.io/proxy-body-size: 200m
9-
nginx.ingress.kubernetes.io/proxy-connect-timeout: "1200"
10-
nginx.ingress.kubernetes.io/proxy-read-timeout: "1200"
11-
nginx.ingress.kubernetes.io/proxy-send-timeout: "1200"
12+
nginx.ingress.kubernetes.io/proxy-connect-timeout: "600"
13+
nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
14+
nginx.ingress.kubernetes.io/proxy-send-timeout: "600"
15+
{{- end }}
16+
# ALB
17+
{{- if eq .Values.ingressClassNameType "alb" }}
18+
kubernetes.io/ingress.class: alb
19+
alb.ingress.kubernetes.io/group.name: {{ .Release.Name }}
20+
alb.ingress.kubernetes.io/scheme: {{ .Values.alb.scheme | default "internet-facing" }}
21+
alb.ingress.kubernetes.io/target-type: {{ .Values.alb.targetType | default "ip" }}
22+
alb.ingress.kubernetes.io/listen-ports: '{{ .Values.alb.listenPorts | default "[{\"HTTP\":80},{\"HTTPS\":443}]" }}'
23+
alb.ingress.kubernetes.io/certificate-arn: "{{ .Values.alb.certificateArn }}"
24+
alb.ingress.kubernetes.io/ssl-redirect: '443'
25+
{{- end }}
1226
spec:
1327
ingressClassName: {{ .Values.ingressClassName }}
1428
tls:

osm-seed/templates/overpass-api/overpass-api-service.yaml

Lines changed: 6 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,29 +9,17 @@ metadata:
99
environment: {{ .Values.environment }}
1010
release: {{ .Release.Name }}
1111
annotations:
12-
{{- if and (eq .Values.serviceType "LoadBalancer") .Values.AWS_SSL_ARN }}
13-
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: {{ .Values.AWS_SSL_ARN }}
14-
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
15-
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: https
12+
# NLB
13+
{{- if eq .Values.ingressClassNameType "nlb" }}
14+
service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
15+
service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: "ip"
16+
service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "300"
1617
{{- end }}
18+
# ClusterIP
1719
{{- if eq .Values.serviceType "ClusterIP" }}
1820
cert-manager.io/cluster-issuer: {{ .Release.Name }}-letsencrypt-prod-issuer
19-
{{- else }}
20-
fake.annotation: fake
21-
{{- end }}
22-
{{- with .Values.overpassApi.serviceAnnotations }}
23-
{{- toYaml . | nindent 4 }}
2421
{{- end }}
2522
spec:
26-
{{- if and .Values.overpassApi.enabled .Values.overpassApi.externalService.enabled }}
27-
# External service (no selector)
28-
ports:
29-
- name: http
30-
port: 80
31-
targetPort: {{ .Values.overpassApi.externalService.port | default "80" }}
32-
protocol: TCP
33-
{{- else }}
34-
# Internal service
3523
type: {{ .Values.serviceType }}
3624
ports:
3725
- port: 80
@@ -48,5 +36,4 @@ spec:
4836
app: {{ template "osm-seed.name" . }}
4937
release: {{ .Release.Name }}
5038
run: {{ .Release.Name }}-overpass-api
51-
{{- end }}
5239
{{- end }}

osm-seed/templates/taginfo/taginfo-ingress.yaml

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,28 @@ kind: Ingress
44
metadata:
55
name: {{ template "osm-seed.fullname" . }}-ingress-taginfo-api
66
annotations:
7+
## NLB
8+
{{- if eq .Values.ingressClassNameType "nlb" }}
9+
kubernetes.io/ingress.class: nginx
710
cert-manager.io/cluster-issuer: {{ .Release.Name }}-letsencrypt-prod-issuer
8-
nginx.ingress.kubernetes.io/proxy-body-size: 5m
11+
nginx.ingress.kubernetes.io/proxy-body-size: 200m
12+
nginx.ingress.kubernetes.io/proxy-connect-timeout: "600"
13+
nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
14+
nginx.ingress.kubernetes.io/proxy-send-timeout: "600"
15+
{{- end }}
16+
# ALB
17+
{{- if eq .Values.ingressClassNameType "alb" }}
18+
kubernetes.io/ingress.class: alb
19+
alb.ingress.kubernetes.io/group.name: {{ .Release.Name }}
20+
alb.ingress.kubernetes.io/scheme: {{ .Values.alb.scheme | default "internet-facing" }}
21+
alb.ingress.kubernetes.io/target-type: {{ .Values.alb.targetType | default "ip" }}
22+
alb.ingress.kubernetes.io/listen-ports: '{{ .Values.alb.listenPorts | default "[{\"HTTP\":80},{\"HTTPS\":443}]" }}'
23+
alb.ingress.kubernetes.io/certificate-arn: "{{ .Values.alb.certificateArn }}"
24+
alb.ingress.kubernetes.io/ssl-redirect: '443'
25+
{{- end }}
926
spec:
1027
ingressClassName: {{ .Values.ingressClassName }}
28+
{{- if eq .Values.ingressClassNameType "nlb" }}
1129
tls:
1230
- hosts:
1331
{{- if .Values.taginfo.ingressDomain }}
@@ -16,6 +34,7 @@ spec:
1634
- taginfo.{{ .Values.domain }}
1735
{{- end }}
1836
secretName: {{ template "osm-seed.fullname" . }}-secret-taginfo
37+
{{- end }}
1938
rules:
2039
- host: {{ if .Values.taginfo.ingressDomain }}{{ .Values.taginfo.ingressDomain }}{{ else }}taginfo.{{ .Values.domain }}{{ end }}
2140
http:

osm-seed/templates/taginfo/taginfo-service.yaml

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,15 @@ metadata:
99
environment: {{ .Values.environment }}
1010
release: {{ .Release.Name }}
1111
annotations:
12-
{{- if and (eq .Values.serviceType "LoadBalancer") .Values.AWS_SSL_ARN }}
13-
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: {{ .Values.AWS_SSL_ARN }}
14-
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
15-
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: https
12+
# NLB
13+
{{- if eq .Values.ingressClassNameType "nlb" }}
14+
service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
15+
service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: "ip"
16+
service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "300"
1617
{{- end }}
18+
# ClusterIP
1719
{{- if eq .Values.serviceType "ClusterIP" }}
1820
cert-manager.io/cluster-issuer: {{ .Release.Name }}-letsencrypt-prod-issuer
19-
{{- else }}
20-
fake.annotation: fake
21-
{{- end }}
22-
{{- with .Values.taginfo.serviceAnnotations }}
23-
{{- toYaml . | nindent 4 }}
2421
{{- end }}
2522
spec:
2623
type: {{ .Values.serviceType }}

osm-seed/templates/tasking-manager-api/tm-ingress.yaml

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,28 @@ kind: Ingress
44
metadata:
55
name: {{ template "osm-seed.fullname" . }}-ingress-tm-api
66
annotations:
7+
## NLB
8+
{{- if eq .Values.ingressClassNameType "nlb" }}
9+
kubernetes.io/ingress.class: nginx
710
cert-manager.io/cluster-issuer: {{ .Release.Name }}-letsencrypt-prod-issuer
8-
nginx.ingress.kubernetes.io/proxy-body-size: 5m
11+
nginx.ingress.kubernetes.io/proxy-body-size: 200m
12+
nginx.ingress.kubernetes.io/proxy-connect-timeout: "600"
13+
nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
14+
nginx.ingress.kubernetes.io/proxy-send-timeout: "600"
15+
{{- end }}
16+
# ALB
17+
{{- if eq .Values.ingressClassNameType "alb" }}
18+
kubernetes.io/ingress.class: alb
19+
alb.ingress.kubernetes.io/group.name: {{ .Release.Name }}
20+
alb.ingress.kubernetes.io/scheme: {{ .Values.alb.scheme | default "internet-facing" }}
21+
alb.ingress.kubernetes.io/target-type: {{ .Values.alb.targetType | default "ip" }}
22+
alb.ingress.kubernetes.io/listen-ports: '{{ .Values.alb.listenPorts | default "[{\"HTTP\":80},{\"HTTPS\":443}]" }}'
23+
alb.ingress.kubernetes.io/certificate-arn: "{{ .Values.alb.certificateArn }}"
24+
alb.ingress.kubernetes.io/ssl-redirect: '443'
25+
{{- end }}
926
spec:
1027
ingressClassName: {{ .Values.ingressClassName }}
28+
{{- if eq .Values.ingressClassNameType "nlb" }}
1129
tls:
1230
- hosts:
1331
{{- if .Values.tmApi.ingressDomain }}
@@ -16,6 +34,7 @@ spec:
1634
- tm-api.{{ .Values.domain }}
1735
{{- end }}
1836
secretName: {{ template "osm-seed.fullname" . }}-secret-tm-api
37+
{{- end }}
1938
rules:
2039
- host: {{ if .Values.tmApi.ingressDomain }}{{ .Values.tmApi.ingressDomain }}{{ else }}tm-api.{{ .Values.domain }}{{ end }}
2140
http:

osm-seed/templates/tasking-manager-api/tm-service.yaml

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,18 @@ metadata:
99
environment: {{ .Values.environment }}
1010
release: {{ .Release.Name }}
1111
annotations:
12-
{{- if and (eq .Values.serviceType "LoadBalancer") .Values.AWS_SSL_ARN }}
13-
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: {{ .Values.AWS_SSL_ARN }}
14-
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
15-
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: https
12+
# NLB
13+
{{- if eq .Values.ingressClassNameType "nlb" }}
14+
service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
15+
service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: "ip"
16+
service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "300"
1617
{{- end }}
18+
# ClusterIP
1719
{{- if eq .Values.serviceType "ClusterIP" }}
1820
cert-manager.io/cluster-issuer: {{ .Release.Name }}-letsencrypt-prod-issuer
19-
{{- else }}
20-
fake.annotation: fake
21-
{{- end }}
22-
{{- with .Values.tmApi.serviceAnnotations }}
23-
{{- toYaml . | nindent 4 }}
2421
{{- end }}
2522
spec:
26-
type: {{ .Values.serviceType }}
23+
type: {{ if eq .Values.ingressClassNameType "nlb" }}{{ default "LoadBalancer" .Values.serviceType }}{{ else }}ClusterIP{{ end }}
2724
ports:
2825
- port: 80
2926
targetPort: http

0 commit comments

Comments
 (0)