feat(ingress): Extra paths to prepend to the ingress host configuration for annotation based services (#460)
Refs #361
This commit is contained in:
parent
6e46bcf529
commit
bfbeba256a
3 changed files with 47 additions and 1 deletions
|
@ -2,6 +2,7 @@
|
||||||
{{ template "vault.mode" . }}
|
{{ template "vault.mode" . }}
|
||||||
{{- if ne .mode "external" }}
|
{{- if ne .mode "external" }}
|
||||||
{{- if .Values.server.ingress.enabled -}}
|
{{- if .Values.server.ingress.enabled -}}
|
||||||
|
{{- $extraPaths := .Values.server.ingress.extraPaths -}}
|
||||||
{{- $serviceName := include "vault.fullname" . -}}
|
{{- $serviceName := include "vault.fullname" . -}}
|
||||||
{{- if and (eq .mode "ha" ) (and (eq (.Values.server.service.enabled | toString) "true" ) (eq (.Values.global.enabled | toString) "true")) }}
|
{{- if and (eq .mode "ha" ) (and (eq (.Values.server.service.enabled | toString) "true" ) (eq (.Values.global.enabled | toString) "true")) }}
|
||||||
{{- $serviceName = printf "%s-%s" $serviceName "active" -}}
|
{{- $serviceName = printf "%s-%s" $serviceName "active" -}}
|
||||||
|
@ -41,6 +42,9 @@ spec:
|
||||||
- host: {{ .host | quote }}
|
- host: {{ .host | quote }}
|
||||||
http:
|
http:
|
||||||
paths:
|
paths:
|
||||||
|
{{ if $extraPaths }}
|
||||||
|
{{ toYaml $extraPaths | indent 10 }}
|
||||||
|
{{- end }}
|
||||||
{{- range (.paths | default (list "/")) }}
|
{{- range (.paths | default (list "/")) }}
|
||||||
- path: {{ . }}
|
- path: {{ . }}
|
||||||
backend:
|
backend:
|
||||||
|
|
|
@ -57,6 +57,43 @@ load _helpers
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@test "server/ingress: extra paths prepend host configuration" {
|
||||||
|
cd `chart_dir`
|
||||||
|
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/server-ingress.yaml \
|
||||||
|
--set 'server.ingress.enabled=true' \
|
||||||
|
--set 'server.ingress.hosts[0].host=test.com' \
|
||||||
|
--set 'server.ingress.hosts[0].paths[0]=/' \
|
||||||
|
--set 'server.ingress.extraPaths[0].path=/annotation-service' \
|
||||||
|
--set 'server.ingress.extraPaths[0].backend.serviceName=ssl-redirect' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.rules[0].http.paths[0].backend.serviceName' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = 'ssl-redirect' ]
|
||||||
|
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/server-ingress.yaml \
|
||||||
|
--set 'server.ingress.enabled=true' \
|
||||||
|
--set 'server.ingress.hosts[0].host=test.com' \
|
||||||
|
--set 'server.ingress.hosts[0].paths[0]=/' \
|
||||||
|
--set 'server.ingress.extraPaths[0].path=/annotation-service' \
|
||||||
|
--set 'server.ingress.extraPaths[0].backend.serviceName=ssl-redirect' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.rules[0].http.paths[0].path' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = '/annotation-service' ]
|
||||||
|
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/server-ingress.yaml \
|
||||||
|
--set 'server.ingress.enabled=true' \
|
||||||
|
--set 'server.ingress.hosts[0].host=test.com' \
|
||||||
|
--set 'server.ingress.hosts[0].paths[0]=/' \
|
||||||
|
--set 'server.ingress.extraPaths[0].path=/annotation-service' \
|
||||||
|
--set 'server.ingress.extraPaths[0].backend.serviceName=ssl-redirect' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.rules[0].http.paths[1].path' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = '/' ]
|
||||||
|
}
|
||||||
|
|
||||||
@test "server/ingress: labels gets added to object" {
|
@test "server/ingress: labels gets added to object" {
|
||||||
cd `chart_dir`
|
cd `chart_dir`
|
||||||
|
|
||||||
|
|
|
@ -222,7 +222,12 @@ server:
|
||||||
hosts:
|
hosts:
|
||||||
- host: chart-example.local
|
- host: chart-example.local
|
||||||
paths: []
|
paths: []
|
||||||
|
## Extra paths to prepend to the host configuration. This is useful when working with annotation based services.
|
||||||
|
extraPaths: []
|
||||||
|
# - path: /*
|
||||||
|
# backend:
|
||||||
|
# serviceName: ssl-redirect
|
||||||
|
# servicePort: use-annotation
|
||||||
tls: []
|
tls: []
|
||||||
# - secretName: chart-example-tls
|
# - secretName: chart-example-tls
|
||||||
# hosts:
|
# hosts:
|
||||||
|
|
Loading…
Reference in a new issue