Skip to content

Commit a351757

Browse files
committed
Support ALB for web service
1 parent fba7033 commit a351757

File tree

2 files changed

+81
-70
lines changed

2 files changed

+81
-70
lines changed

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

Lines changed: 60 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -2,54 +2,71 @@
22
apiVersion: networking.k8s.io/v1
33
kind: Ingress
44
metadata:
5-
name: {{ template "osm-seed.fullname" . }}-ingress
5+
name: {{ .Release.Name }}-ingress-web
66
annotations:
7+
{{- if eq .Values.ingressClassNameType "nlb" }}
8+
kubernetes.io/ingress.class: nginx
79
cert-manager.io/cluster-issuer: {{ .Release.Name }}-letsencrypt-prod-issuer
810
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"
11+
nginx.ingress.kubernetes.io/proxy-connect-timeout: "600"
12+
nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
13+
nginx.ingress.kubernetes.io/proxy-send-timeout: "600"
14+
{{- end }}
15+
16+
{{- if eq .Values.ingressClassNameType "alb" }}
17+
kubernetes.io/ingress.class: alb
18+
alb.ingress.kubernetes.io/scheme: {{ .Values.alb.scheme | default "internet-facing" }}
19+
alb.ingress.kubernetes.io/target-type: {{ .Values.alb.targetType | default "ip" }}
20+
alb.ingress.kubernetes.io/listen-ports: '{{ .Values.alb.listenPorts | default "[{\"HTTP\":80},{\"HTTPS\":443}]" }}'
21+
alb.ingress.kubernetes.io/certificate-arn: "{{ .Values.alb.certificateArn }}"
22+
alb.ingress.kubernetes.io/ssl-redirect: '443'
23+
{{- end }}
1224
spec:
1325
ingressClassName: {{ .Values.ingressClassName }}
26+
{{- if eq .Values.ingressClassNameType "nlb" }}
27+
ingressClassName: {{ .Values.ingressClassNameType }}
1428
tls:
15-
- hosts:
16-
{{- if .Values.web.ingressDomain }}
17-
- {{ .Values.web.ingressDomain }}
18-
{{- else }}
19-
- web.{{ .Values.domain }}
20-
{{- end }}
21-
- api.{{ .Values.domain }}
22-
- {{ .Values.domain }}
23-
secretName: {{ template "osm-seed.fullname" . }}-tls-secret
29+
- hosts:
30+
{{- if .Values.web.ingressDomain }}
31+
- {{ .Values.web.ingressDomain }}
32+
{{- else }}
33+
- web.{{ .Values.domain }}
34+
{{- end }}
35+
- api.{{ .Values.domain }}
36+
- {{ .Values.domain }}
37+
secretName: {{ .Release.Name }}-tls-secret
38+
{{- end }}
2439
rules:
25-
- host: {{ if .Values.web.ingressDomain }}{{ .Values.web.ingressDomain }}{{ else }}web.{{ .Values.domain }}{{ end }}
26-
http:
27-
paths:
28-
- path: /
29-
pathType: Prefix
30-
backend:
31-
service:
32-
name: {{ template "osm-seed.fullname" . }}-web
33-
port:
34-
number: 80
35-
- host: api.{{ .Values.domain }}
36-
http:
37-
paths:
38-
- path: /
39-
pathType: Prefix
40-
backend:
41-
service:
42-
name: {{ template "osm-seed.fullname" . }}-web
43-
port:
44-
number: 80
45-
- host: {{ .Values.domain }}
46-
http:
47-
paths:
48-
- path: /
49-
pathType: Prefix
50-
backend:
51-
service:
52-
name: {{ template "osm-seed.fullname" . }}-web
53-
port:
54-
number: 80
40+
- host: {{ if .Values.web.ingressDomain }}{{ .Values.web.ingressDomain }}{{ else }}web.{{ .Values.domain }}{{ end }}
41+
http:
42+
paths:
43+
- path: /
44+
pathType: Prefix
45+
backend:
46+
service:
47+
name: {{ .Release.Name }}-service-web
48+
port:
49+
number: 80
50+
51+
- host: api.{{ .Values.domain }}
52+
http:
53+
paths:
54+
- path: /
55+
pathType: Prefix
56+
backend:
57+
service:
58+
name: {{ .Release.Name }}-service-web
59+
port:
60+
number: 80
61+
62+
- host: {{ .Values.domain }}
63+
http:
64+
paths:
65+
- path: /
66+
pathType: Prefix
67+
backend:
68+
service:
69+
name: {{ .Release.Name }}-service-web
70+
port:
71+
number: 80
5572
{{- end }}

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

Lines changed: 21 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,46 +2,40 @@
22
apiVersion: v1
33
kind: Service
44
metadata:
5-
name: {{ template "osm-seed.fullname" . }}-web
5+
name: {{ .Release.Name }}-service-web
66
labels:
77
app: {{ template "osm-seed.name" . }}
88
component: web-service
99
environment: {{ .Values.environment }}
1010
release: {{ .Release.Name }}
1111
annotations:
12-
{{- if eq .Values.serviceType "LoadBalancer" }}
12+
{{- if and (eq .Values.serviceType "LoadBalancer") (eq .Values.ingressClassNameType "nlb") }}
13+
# NLB
14+
service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
15+
service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: "ip"
1316
service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "300"
14-
{{- end }}
15-
{{- if and (eq .Values.serviceType "LoadBalancer") .Values.AWS_SSL_ARN }}
17+
{{- if .Values.AWS_SSL_ARN }}
1618
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: {{ .Values.AWS_SSL_ARN }}
17-
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
18-
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: https
19-
{{- end }}
20-
{{- if eq .Values.serviceType "ClusterIP" }}
21-
cert-manager.io/cluster-issuer: {{ .Release.Name }}-letsencrypt-prod-issuer
22-
service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
23-
{{- else }}
24-
fake.annotation: fake
19+
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "443"
20+
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: "tcp"
2521
{{- end }}
26-
{{- with .Values.web.serviceAnnotations }}
27-
{{- toYaml . | nindent 4 }}
2822
{{- end }}
29-
3023
spec:
31-
type: {{ .Values.serviceType }}
24+
# ALB -> should be ClusterIP; NLB -> LoadBalancer
25+
type: {{ if eq .Values.ingressClassNameType "nlb" }}{{ default "LoadBalancer" .Values.serviceType }}{{ else }}ClusterIP{{ end }}
26+
selector:
27+
app: {{ template "osm-seed.name" . }}
28+
release: {{ .Release.Name }}
29+
run: {{ .Release.Name }}-web
3230
ports:
33-
- port: 80
31+
- name: http
32+
port: 80
3433
targetPort: http
3534
protocol: TCP
36-
name: http
37-
{{- if and (eq .Values.serviceType "LoadBalancer") .Values.AWS_SSL_ARN }}
38-
- port: 443
35+
{{- if and (eq .Values.ingressClassNameType "nlb") .Values.AWS_SSL_ARN }}
36+
- name: https
37+
port: 443
3938
targetPort: http
4039
protocol: TCP
41-
name: https
42-
{{- end }}
43-
selector:
44-
app: {{ template "osm-seed.name" . }}
45-
release: {{ .Release.Name }}
46-
run: {{ .Release.Name }}-web
47-
{{- end }}
40+
{{- end }}
41+
{{- end }}

0 commit comments

Comments
 (0)