ingress stable networking api (#590)
* Moved ingress to stable networking api * lower versions support * ingress disabled by default * added tests for old k8s
This commit is contained in:
parent
9758666262
commit
72c485dd2c
3 changed files with 38 additions and 11 deletions
|
@ -8,7 +8,10 @@
|
|||
{{- $serviceName = printf "%s-%s" $serviceName "active" -}}
|
||||
{{- end }}
|
||||
{{- $servicePort := .Values.server.service.port -}}
|
||||
{{ if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }}
|
||||
{{- $kubeVersion := .Capabilities.KubeVersion.Version }}
|
||||
{{ if semverCompare ">= 1.19.0-0" $kubeVersion }}
|
||||
apiVersion: networking.k8s.io/v1
|
||||
{{ else if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }}
|
||||
apiVersion: networking.k8s.io/v1beta1
|
||||
{{ else }}
|
||||
apiVersion: extensions/v1beta1
|
||||
|
@ -48,8 +51,15 @@ spec:
|
|||
{{- range (.paths | default (list "/")) }}
|
||||
- path: {{ . }}
|
||||
backend:
|
||||
{{ if semverCompare ">= 1.19.0-0" $kubeVersion }}
|
||||
service:
|
||||
name: {{ $serviceName }}
|
||||
port:
|
||||
number: {{ $servicePort }}
|
||||
{{ else }}
|
||||
serviceName: {{ $serviceName }}
|
||||
servicePort: {{ $servicePort }}
|
||||
{{ end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
|
|
@ -52,7 +52,7 @@ load _helpers
|
|||
--set 'server.ingress.hosts[0].host=test.com' \
|
||||
--set 'server.ingress.hosts[0].paths[0]=/' \
|
||||
. | tee /dev/stderr |
|
||||
yq -r '.spec.rules[0].http.paths[0].backend.serviceName | length > 0' | tee /dev/stderr)
|
||||
yq -r '.spec.rules[0].http.paths[0].backend.service.name | length > 0' | tee /dev/stderr)
|
||||
[ "${actual}" = "true" ]
|
||||
|
||||
}
|
||||
|
@ -66,9 +66,9 @@ load _helpers
|
|||
--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' \
|
||||
--set 'server.ingress.extraPaths[0].backend.service.name=ssl-redirect' \
|
||||
. | tee /dev/stderr |
|
||||
yq -r '.spec.rules[0].http.paths[0].backend.serviceName' | tee /dev/stderr)
|
||||
yq -r '.spec.rules[0].http.paths[0].backend.service.name' | tee /dev/stderr)
|
||||
[ "${actual}" = 'ssl-redirect' ]
|
||||
|
||||
local actual=$(helm template \
|
||||
|
@ -77,7 +77,7 @@ load _helpers
|
|||
--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' \
|
||||
--set 'server.ingress.extraPaths[0].backend.service.name=ssl-redirect' \
|
||||
. | tee /dev/stderr |
|
||||
yq -r '.spec.rules[0].http.paths[0].path' | tee /dev/stderr)
|
||||
[ "${actual}" = '/annotation-service' ]
|
||||
|
@ -88,7 +88,7 @@ load _helpers
|
|||
--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' \
|
||||
--set 'server.ingress.extraPaths[0].backend.service.name=ssl-redirect' \
|
||||
. | tee /dev/stderr |
|
||||
yq -r '.spec.rules[0].http.paths[1].path' | tee /dev/stderr)
|
||||
[ "${actual}" = '/' ]
|
||||
|
@ -141,7 +141,7 @@ load _helpers
|
|||
--set 'server.ha.enabled=true' \
|
||||
--set 'server.service.enabled=true' \
|
||||
. | tee /dev/stderr |
|
||||
yq -r '.spec.rules[0].http.paths[0].backend.serviceName' | tee /dev/stderr)
|
||||
yq -r '.spec.rules[0].http.paths[0].backend.service.name' | tee /dev/stderr)
|
||||
[ "${actual}" = "RELEASE-NAME-vault-active" ]
|
||||
}
|
||||
|
||||
|
@ -156,7 +156,7 @@ load _helpers
|
|||
--set 'server.ha.enabled=true' \
|
||||
--set 'server.service.enabled=true' \
|
||||
. | tee /dev/stderr |
|
||||
yq -r '.spec.rules[0].http.paths[0].backend.serviceName' | tee /dev/stderr)
|
||||
yq -r '.spec.rules[0].http.paths[0].backend.service.name' | tee /dev/stderr)
|
||||
[ "${actual}" = "RELEASE-NAME-vault" ]
|
||||
}
|
||||
|
||||
|
@ -170,6 +170,21 @@ load _helpers
|
|||
--set 'server.ha.enabled=false' \
|
||||
--set 'server.service.enabled=true' \
|
||||
. | tee /dev/stderr |
|
||||
yq -r '.spec.rules[0].http.paths[0].backend.service.name' | tee /dev/stderr)
|
||||
[ "${actual}" = "RELEASE-NAME-vault" ]
|
||||
}
|
||||
|
||||
@test "server/ingress: k8s 1.18.3 uses regular service when not ha - yaml" {
|
||||
cd `chart_dir`
|
||||
|
||||
local actual=$(helm template \
|
||||
--show-only templates/server-ingress.yaml \
|
||||
--set 'server.ingress.enabled=true' \
|
||||
--set 'server.dev.enabled=false' \
|
||||
--set 'server.ha.enabled=false' \
|
||||
--set 'server.service.enabled=true' \
|
||||
--kube-version 1.18.3 \
|
||||
. | tee /dev/stderr |
|
||||
yq -r '.spec.rules[0].http.paths[0].backend.serviceName' | tee /dev/stderr)
|
||||
[ "${actual}" = "RELEASE-NAME-vault" ]
|
||||
}
|
||||
|
@ -185,6 +200,6 @@ load _helpers
|
|||
--set 'server.ha.enabled=false' \
|
||||
--set 'server.service.enabled=true' \
|
||||
. | tee /dev/stderr |
|
||||
yq -r '.spec.rules[0].http.paths[0].backend.serviceName' | tee /dev/stderr)
|
||||
yq -r '.spec.rules[0].http.paths[0].backend.service.name' | tee /dev/stderr)
|
||||
[ "${actual}" = "RELEASE-NAME-vault" ]
|
||||
}
|
||||
|
|
|
@ -281,8 +281,10 @@ server:
|
|||
extraPaths: []
|
||||
# - path: /*
|
||||
# backend:
|
||||
# serviceName: ssl-redirect
|
||||
# servicePort: use-annotation
|
||||
# service:
|
||||
# name: ssl-redirect
|
||||
# port:
|
||||
# number: use-annotation
|
||||
tls: []
|
||||
# - secretName: chart-example-tls
|
||||
# hosts:
|
||||
|
|
Loading…
Reference in a new issue