🔧(helm) create ingress_ws
The ingress was the same for the frontend, the backend and the websocket, but the websocket needs to be handled differently, so we created a new ingress specifically for the websocket.
This commit is contained in:
@@ -97,6 +97,10 @@ ingress:
|
|||||||
enabled: true
|
enabled: true
|
||||||
host: impress.127.0.0.1.nip.io
|
host: impress.127.0.0.1.nip.io
|
||||||
|
|
||||||
|
ingressWS:
|
||||||
|
enabled: true
|
||||||
|
host: impress.127.0.0.1.nip.io
|
||||||
|
|
||||||
ingressAdmin:
|
ingressAdmin:
|
||||||
enabled: true
|
enabled: true
|
||||||
host: impress.127.0.0.1.nip.io
|
host: impress.127.0.0.1.nip.io
|
||||||
|
|||||||
@@ -130,6 +130,13 @@ ingress:
|
|||||||
annotations:
|
annotations:
|
||||||
cert-manager.io/cluster-issuer: letsencrypt-prod
|
cert-manager.io/cluster-issuer: letsencrypt-prod
|
||||||
|
|
||||||
|
ingressWS:
|
||||||
|
enabled: true
|
||||||
|
host: impress-preprod.beta.numerique.gouv.fr
|
||||||
|
className: nginx
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/cluster-issuer: letsencrypt-prod
|
||||||
|
|
||||||
ingressAdmin:
|
ingressAdmin:
|
||||||
enabled: true
|
enabled: true
|
||||||
host: impress-preprod.beta.numerique.gouv.fr
|
host: impress-preprod.beta.numerique.gouv.fr
|
||||||
|
|||||||
@@ -130,6 +130,13 @@ ingress:
|
|||||||
annotations:
|
annotations:
|
||||||
cert-manager.io/cluster-issuer: letsencrypt
|
cert-manager.io/cluster-issuer: letsencrypt
|
||||||
|
|
||||||
|
ingressWS:
|
||||||
|
enabled: true
|
||||||
|
host: docs.numerique.gouv.fr
|
||||||
|
className: nginx
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/cluster-issuer: letsencrypt
|
||||||
|
|
||||||
ingressAdmin:
|
ingressAdmin:
|
||||||
enabled: true
|
enabled: true
|
||||||
host: docs.numerique.gouv.fr
|
host: docs.numerique.gouv.fr
|
||||||
|
|||||||
@@ -130,6 +130,13 @@ ingress:
|
|||||||
annotations:
|
annotations:
|
||||||
cert-manager.io/cluster-issuer: letsencrypt-prod
|
cert-manager.io/cluster-issuer: letsencrypt-prod
|
||||||
|
|
||||||
|
ingressWS:
|
||||||
|
enabled: true
|
||||||
|
host: impress-staging.beta.numerique.gouv.fr
|
||||||
|
className: nginx
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/cluster-issuer: letsencrypt-prod
|
||||||
|
|
||||||
ingressAdmin:
|
ingressAdmin:
|
||||||
enabled: true
|
enabled: true
|
||||||
host: impress-staging.beta.numerique.gouv.fr
|
host: impress-staging.beta.numerique.gouv.fr
|
||||||
|
|||||||
@@ -46,24 +46,6 @@ spec:
|
|||||||
- host: {{ .Values.ingress.host | quote }}
|
- host: {{ .Values.ingress.host | quote }}
|
||||||
http:
|
http:
|
||||||
paths:
|
paths:
|
||||||
- path: /ws
|
|
||||||
{{- if semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion }}
|
|
||||||
pathType: ImplementationSpecific
|
|
||||||
{{- end }}
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: {{ include "impress.webrtc.fullname" . }}
|
|
||||||
port:
|
|
||||||
number: {{ .Values.webrtc.service.port }}
|
|
||||||
{{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }}
|
|
||||||
service:
|
|
||||||
name: {{ include "impress.webrtc.fullname" . }}
|
|
||||||
port:
|
|
||||||
number: {{ .Values.webrtc.service.port }}
|
|
||||||
{{- else }}
|
|
||||||
serviceName: {{ include "impress.webrtc.fullname" . }}
|
|
||||||
servicePort: {{ .Values.webrtc.service.port }}
|
|
||||||
{{- end }}
|
|
||||||
- path: {{ .Values.ingress.path | quote }}
|
- path: {{ .Values.ingress.path | quote }}
|
||||||
{{- if semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion }}
|
{{- if semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion }}
|
||||||
pathType: Prefix
|
pathType: Prefix
|
||||||
|
|||||||
72
src/helm/impress/templates/ingress_ws.yaml
Normal file
72
src/helm/impress/templates/ingress_ws.yaml
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
{{- if .Values.ingressWS.enabled -}}
|
||||||
|
{{- $fullName := include "impress.fullname" . -}}
|
||||||
|
{{- if and .Values.ingressWS.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }}
|
||||||
|
{{- if not (hasKey .Values.ingressWS.annotations "kubernetes.io/ingress.class") }}
|
||||||
|
{{- $_ := set .Values.ingressWS.annotations "kubernetes.io/ingress.class" .Values.ingressWS.className}}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}}
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
|
||||||
|
apiVersion: networking.k8s.io/v1beta1
|
||||||
|
{{- else -}}
|
||||||
|
apiVersion: extensions/v1beta1
|
||||||
|
{{- end }}
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: {{ $fullName }}-ws
|
||||||
|
namespace: {{ .Release.Namespace | quote }}
|
||||||
|
labels:
|
||||||
|
{{- include "impress.labels" . | nindent 4 }}
|
||||||
|
{{- with .Values.ingressWS.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{- toYaml . | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
{{- if and .Values.ingressWS.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }}
|
||||||
|
ingressClassName: {{ .Values.ingressWS.className }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.ingressWS.tls.enabled }}
|
||||||
|
tls:
|
||||||
|
{{- if .Values.ingressWS.host }}
|
||||||
|
- secretName: {{ $fullName }}-tls
|
||||||
|
hosts:
|
||||||
|
- {{ .Values.ingressWS.host | quote }}
|
||||||
|
{{- end }}
|
||||||
|
{{- range .Values.ingressWS.tls.additional }}
|
||||||
|
- hosts:
|
||||||
|
{{- range .hosts }}
|
||||||
|
- {{ . | quote }}
|
||||||
|
{{- end }}
|
||||||
|
secretName: {{ .secretName }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
rules:
|
||||||
|
{{- if .Values.ingressWS.host }}
|
||||||
|
- host: {{ .Values.ingressWS.host | quote }}
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- path: {{ .Values.ingressWS.path | quote }}
|
||||||
|
{{- if semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion }}
|
||||||
|
pathType: ImplementationSpecific
|
||||||
|
{{- end }}
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: {{ include "impress.webrtc.fullname" . }}
|
||||||
|
port:
|
||||||
|
number: {{ .Values.webrtc.service.port }}
|
||||||
|
{{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }}
|
||||||
|
service:
|
||||||
|
name: {{ include "impress.webrtc.fullname" . }}
|
||||||
|
port:
|
||||||
|
number: {{ .Values.webrtc.service.port }}
|
||||||
|
{{- else }}
|
||||||
|
serviceName: {{ include "impress.webrtc.fullname" . }}
|
||||||
|
servicePort: {{ .Values.webrtc.service.port }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.ingressWS.customBackends }}
|
||||||
|
{{- toYaml . | nindent 10 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
@@ -48,6 +48,29 @@ ingress:
|
|||||||
## @param ingress.customBackends Add custom backends to ingress
|
## @param ingress.customBackends Add custom backends to ingress
|
||||||
customBackends: []
|
customBackends: []
|
||||||
|
|
||||||
|
## @param ingressWS.enabled whether to enable the Ingress or not
|
||||||
|
## @param ingressWS.className IngressClass to use for the Ingress
|
||||||
|
## @param ingressWS.host Host for the Ingress
|
||||||
|
## @param ingressWS.path Path to use for the Ingress
|
||||||
|
ingressWS:
|
||||||
|
enabled: false
|
||||||
|
className: null
|
||||||
|
host: impress.example.com
|
||||||
|
path: /ws
|
||||||
|
## @param ingress.hosts Additional host to configure for the Ingress
|
||||||
|
hosts: []
|
||||||
|
# - chart-example.local
|
||||||
|
## @param ingressWS.tls.enabled Weather to enable TLS for the Ingress
|
||||||
|
## @skip ingressWS.tls.additional
|
||||||
|
## @extra ingressWS.tls.additional[].secretName Secret name for additional TLS config
|
||||||
|
## @extra ingressWS.tls.additional[].hosts[] Hosts for additional TLS config
|
||||||
|
tls:
|
||||||
|
enabled: true
|
||||||
|
additional: []
|
||||||
|
|
||||||
|
## @param ingressWS.customBackends Add custom backends to ingress
|
||||||
|
customBackends: []
|
||||||
|
|
||||||
annotations:
|
annotations:
|
||||||
nginx.ingress.kubernetes.io/enable-websocket: "true"
|
nginx.ingress.kubernetes.io/enable-websocket: "true"
|
||||||
nginx.ingress.kubernetes.io/upstream-hash-by: "$request_uri"
|
nginx.ingress.kubernetes.io/upstream-hash-by: "$request_uri"
|
||||||
|
|||||||
Reference in New Issue
Block a user