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" . }}
|
||||
{{- if ne .mode "external" }}
|
||||
{{- if .Values.server.ingress.enabled -}}
|
||||
{{- $extraPaths := .Values.server.ingress.extraPaths -}}
|
||||
{{- $serviceName := include "vault.fullname" . -}}
|
||||
{{- 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" -}}
|
||||
|
@ -41,6 +42,9 @@ spec:
|
|||
- host: {{ .host | quote }}
|
||||
http:
|
||||
paths:
|
||||
{{ if $extraPaths }}
|
||||
{{ toYaml $extraPaths | indent 10 }}
|
||||
{{- end }}
|
||||
{{- range (.paths | default (list "/")) }}
|
||||
- path: {{ . }}
|
||||
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" {
|
||||
cd `chart_dir`
|
||||
|
||||
|
|
|
@ -222,7 +222,12 @@ server:
|
|||
hosts:
|
||||
- host: chart-example.local
|
||||
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: []
|
||||
# - secretName: chart-example-tls
|
||||
# hosts:
|
||||
|
|
Loading…
Reference in a new issue