Skip to content

Commit 49d5e83

Browse files
committed
Consolidated ingress definitions.
1 parent 319a8d8 commit 49d5e83

File tree

4 files changed

+123
-115
lines changed

4 files changed

+123
-115
lines changed

charts/eoapi/templates/networking/ingress-browser.yaml renamed to charts/eoapi/templates/networking/ingress-no-prefix.yaml

Lines changed: 37 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
# We need a separate ingress because browser has the prefix /browser hardcoded in the code
2-
{{- if and .Values.browser.enabled .Values.ingress.enabled (or (not (hasKey .Values.browser "ingress")) .Values.browser.ingress.enabled) }}
1+
{{- if and .Values.ingress.enabled (or (and .Values.stac.enabled (or (not (hasKey .Values.stac "ingress")) .Values.stac.ingress.enabled)) (and .Values.browser.enabled (or (not (hasKey .Values.browser "ingress")) .Values.browser.ingress.enabled))) }}
32
{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion }}
43
apiVersion: networking.k8s.io/v1
54
{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion }}
@@ -9,21 +8,21 @@ apiVersion: extensions/v1beta1
98
{{- end }}
109
kind: Ingress
1110
metadata:
12-
name: {{ .Release.Name }}-ingress-browser
11+
name: {{ .Release.Name }}-ingress-no-prefix
1312
labels:
14-
app: {{ .Release.Name }}-ingress-browser
13+
app: {{ .Release.Name }}-ingress-no-prefix
1514
annotations:
1615
{{- if .Values.ingress.annotations }}
1716
{{ toYaml .Values.ingress.annotations | indent 4 }}
1817
{{- end }}
19-
{{- if eq .Values.ingress.className "nginx" }}
20-
nginx.ingress.kubernetes.io/rewrite-target: /browser/$2
21-
nginx.ingress.kubernetes.io/use-regex: "true"
22-
{{- end }}
23-
# Traefik configuration - services handle their own root paths
18+
# Services handle their own path manipulation - no stripPrefix middleware
2419
{{- if eq .Values.ingress.className "traefik" }}
2520
traefik.ingress.kubernetes.io/router.entrypoints: web
2621
{{- end }}
22+
{{- if eq .Values.ingress.className "nginx" }}
23+
nginx.ingress.kubernetes.io/rewrite-target: /$2
24+
nginx.ingress.kubernetes.io/use-regex: "true"
25+
{{- end }}
2726
spec:
2827
{{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }}
2928
ingressClassName: {{ .Values.ingress.className }}
@@ -34,12 +33,26 @@ spec:
3433
- host: {{ . }}
3534
http:
3635
paths:
36+
{{- if and $.Values.stac.enabled (or (not (hasKey $.Values.stac "ingress")) $.Values.stac.ingress.enabled) }}
37+
- pathType: {{ if eq $.Values.ingress.className "nginx" }}ImplementationSpecific{{ else }}Prefix{{ end }}
38+
path: {{ $.Values.stac.ingress.path }}{{ if eq $.Values.ingress.className "nginx" }}(/|$)(.*){{ end }}
39+
backend:
40+
service:
41+
{{- if index $.Values "stac-auth-proxy" "enabled" }}
42+
name: {{ $.Release.Name }}-stac-auth-proxy
43+
{{- else }}
44+
name: {{ $.Release.Name }}-stac
45+
{{- end }}
46+
port:
47+
number: {{ $.Values.service.port }}
48+
{{- end }}
49+
3750
{{- if and $.Values.browser.enabled (or (not (hasKey $.Values.browser "ingress")) $.Values.browser.ingress.enabled) }}
3851
- pathType: {{ if eq $.Values.ingress.className "nginx" }}ImplementationSpecific{{ else }}Prefix{{ end }}
3952
path: "/browser{{ if eq $.Values.ingress.className "nginx" }}(/|$)(.*){{ end }}"
4053
backend:
4154
service:
42-
name: {{ .Release.Name }}-browser
55+
name: {{ $.Release.Name }}-browser
4356
port:
4457
number: 8080
4558
{{- end }}
@@ -50,6 +63,20 @@ spec:
5063
{{- end }}
5164
http:
5265
paths:
66+
{{- if and .Values.stac.enabled (or (not (hasKey .Values.stac "ingress")) .Values.stac.ingress.enabled) }}
67+
- pathType: {{ if eq .Values.ingress.className "nginx" }}ImplementationSpecific{{ else }}Prefix{{ end }}
68+
path: {{ .Values.stac.ingress.path }}{{ if eq .Values.ingress.className "nginx" }}(/|$)(.*){{ end }}
69+
backend:
70+
service:
71+
{{- if index .Values "stac-auth-proxy" "enabled" }}
72+
name: {{ .Release.Name }}-stac-auth-proxy
73+
{{- else }}
74+
name: {{ .Release.Name }}-stac
75+
{{- end }}
76+
port:
77+
number: {{ .Values.service.port }}
78+
{{- end }}
79+
5380
{{- if and .Values.browser.enabled (or (not (hasKey .Values.browser "ingress")) .Values.browser.ingress.enabled) }}
5481
- pathType: {{ if eq .Values.ingress.className "nginx" }}ImplementationSpecific{{ else }}Prefix{{ end }}
5582
path: "/browser{{ if eq .Values.ingress.className "nginx" }}(/|$)(.*){{ end }}"

charts/eoapi/templates/networking/ingress-stac.yaml

Lines changed: 0 additions & 66 deletions
This file was deleted.

charts/eoapi/tests/ingress_tests.yaml

Lines changed: 25 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,13 @@ tests:
3333
path: spec.ingressClassName
3434
value: "nginx"
3535

36-
- it: "stac ingress with traefik controller"
36+
- it: "raster ingress with traefik controller"
3737
set:
3838
ingress.className: "traefik"
3939
ingress.pathType: "Prefix"
4040
ingress.host: "eoapi.local"
41-
raster.enabled: false
42-
stac.enabled: true
41+
raster.enabled: true
42+
stac.enabled: false
4343
vector.enabled: false
4444
multidim.enabled: false
4545
browser.enabled: false
@@ -48,15 +48,15 @@ tests:
4848
of: Ingress
4949
- equal:
5050
path: spec.rules[0].http.paths[0].path
51-
value: "/stac"
51+
value: "/raster"
5252
- equal:
5353
path: spec.rules[0].http.paths[0].pathType
5454
value: "Prefix"
5555
- equal:
5656
path: metadata.annotations
5757
value:
5858
traefik.ingress.kubernetes.io/router.entrypoints: web
59-
traefik.ingress.kubernetes.io/router.middlewares: RELEASE-NAME-strip-prefix-middleware@kubernetescrd
59+
traefik.ingress.kubernetes.io/router.middlewares: NAMESPACE-RELEASE-NAME-strip-prefix-middleware@kubernetescrd
6060
- equal:
6161
path: spec.ingressClassName
6262
value: "traefik"
@@ -95,8 +95,7 @@ tests:
9595
ingress.className: "nginx"
9696
raster.enabled: true
9797
raster.ingress.path: "/titiler"
98-
stac.enabled: true
99-
stac.ingress.path: "/api"
98+
stac.enabled: false
10099
vector.enabled: true
101100
vector.ingress.path: "/features"
102101
multidim.enabled: false
@@ -109,19 +108,13 @@ tests:
109108
value: "/titiler(/|$)(.*)"
110109
- equal:
111110
path: spec.rules[0].http.paths[1].path
112-
value: "/api(/|$)(.*)"
113-
- equal:
114-
path: spec.rules[0].http.paths[2].path
115111
value: "/features(/|$)(.*)"
116112
- equal:
117113
path: spec.rules[0].http.paths[0].pathType
118114
value: "ImplementationSpecific"
119115
- equal:
120116
path: spec.rules[0].http.paths[1].pathType
121117
value: "ImplementationSpecific"
122-
- equal:
123-
path: spec.rules[0].http.paths[2].pathType
124-
value: "ImplementationSpecific"
125118
- equal:
126119
path: metadata.annotations
127120
value:
@@ -131,9 +124,9 @@ tests:
131124
- it: "custom paths with traefik controller"
132125
set:
133126
ingress.className: "traefik"
134-
raster.enabled: false
135-
stac.enabled: true
136-
stac.ingress.path: "/api"
127+
raster.enabled: true
128+
raster.ingress.path: "/titiler"
129+
stac.enabled: false
137130
vector.enabled: false
138131
multidim.enabled: false
139132
browser.enabled: false
@@ -142,15 +135,15 @@ tests:
142135
of: Ingress
143136
- equal:
144137
path: spec.rules[0].http.paths[0].path
145-
value: "/api"
138+
value: "/titiler"
146139
- equal:
147140
path: spec.rules[0].http.paths[0].pathType
148141
value: "Prefix"
149142
- equal:
150143
path: metadata.annotations
151144
value:
152145
traefik.ingress.kubernetes.io/router.entrypoints: web
153-
traefik.ingress.kubernetes.io/router.middlewares: RELEASE-NAME-strip-prefix-middleware@kubernetescrd
146+
traefik.ingress.kubernetes.io/router.middlewares: NAMESPACE-RELEASE-NAME-strip-prefix-middleware@kubernetescrd
154147

155148
- it: "multiple hosts with nginx controller"
156149
set:
@@ -159,8 +152,8 @@ tests:
159152
- "2.eoapi.dev"
160153
- "1.eoapi.dev"
161154
raster.enabled: true
162-
stac.enabled: true
163-
vector.enabled: false
155+
stac.enabled: false
156+
vector.enabled: true
164157
multidim.enabled: false
165158
browser.enabled: false
166159
asserts:
@@ -177,22 +170,22 @@ tests:
177170
value: "/raster(/|$)(.*)"
178171
- equal:
179172
path: spec.rules[0].http.paths[1].path
180-
value: "/stac(/|$)(.*)"
173+
value: "/vector(/|$)(.*)"
181174
- equal:
182175
path: spec.rules[1].http.paths[0].path
183176
value: "/raster(/|$)(.*)"
184177
- equal:
185178
path: spec.rules[1].http.paths[1].path
186-
value: "/stac(/|$)(.*)"
179+
value: "/vector(/|$)(.*)"
187180

188181
- it: "multiple hosts with traefik controller"
189182
set:
190183
ingress.className: "traefik"
191184
ingress.hosts:
192185
- "2.eoapi.dev"
193186
- "1.eoapi.dev"
194-
raster.enabled: false
195-
stac.enabled: true
187+
raster.enabled: true
188+
stac.enabled: false
196189
vector.enabled: false
197190
multidim.enabled: false
198191
browser.enabled: false
@@ -207,13 +200,13 @@ tests:
207200
value: "1.eoapi.dev"
208201
- equal:
209202
path: spec.rules[0].http.paths[0].path
210-
value: "/stac"
203+
value: "/raster"
211204
- equal:
212205
path: spec.rules[0].http.paths[0].pathType
213206
value: "Prefix"
214207
- equal:
215208
path: spec.rules[1].http.paths[0].path
216-
value: "/stac"
209+
value: "/raster"
217210
- equal:
218211
path: spec.rules[1].http.paths[0].pathType
219212
value: "Prefix"
@@ -226,8 +219,8 @@ tests:
226219
- "1.eoapi.dev"
227220
ingress.tls.enabled: true
228221
ingress.tls.secretName: "eoapi-tls"
229-
raster.enabled: false
230-
stac.enabled: true
222+
raster.enabled: true
223+
stac.enabled: false
231224
vector.enabled: false
232225
multidim.enabled: false
233226
browser.enabled: false
@@ -250,8 +243,8 @@ tests:
250243
ingress.host: "1.eoapi.dev"
251244
ingress.tls.enabled: true
252245
ingress.tls.secretName: "eoapi-tls"
253-
raster.enabled: false
254-
stac.enabled: true
246+
raster.enabled: true
247+
stac.enabled: false
255248
vector.enabled: false
256249
multidim.enabled: false
257250
browser.enabled: false
@@ -274,8 +267,8 @@ tests:
274267
ingress.host: "should-be-ignored.com"
275268
ingress.hosts:
276269
- "1.eoapi.dev"
277-
raster.enabled: false
278-
stac.enabled: true
270+
raster.enabled: true
271+
stac.enabled: false
279272
vector.enabled: false
280273
multidim.enabled: false
281274
browser.enabled: false

0 commit comments

Comments
 (0)