Merge pull request #13411 from Altair-Bueno/master

new(helm): websocket ingress (fixes #13309)
This commit is contained in:
zmstone 2024-07-09 11:39:07 +02:00 committed by GitHub
commit 91fd01ed21
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 134 additions and 8 deletions

View File

@ -105,18 +105,18 @@ spec:
{{- end }} {{- end }}
ports: ports:
- name: mqtt - name: mqtt
containerPort: {{ .Values.emqxConfig.EMQX_LISTENERS__TCP__DEFAULT__BIND | default 1883 }} containerPort: {{ splitList ":" ( .Values.emqxConfig.EMQX_LISTENERS__TCP__DEFAULT__BIND | default "1883" ) | last }}
- name: mqttssl - name: mqttssl
containerPort: {{ .Values.emqxConfig.EMQX_LISTENERS__SSL__DEFAULT__BIND | default 8883 }} containerPort: {{ splitList ":" ( .Values.emqxConfig.EMQX_LISTENERS__SSL__DEFAULT__BIND | default "8883" ) | last }}
- name: ws - name: ws
containerPort: {{ .Values.emqxConfig.EMQX_LISTENERS__WS__DEFAULT__BIND | default 8083 }} containerPort: {{ splitList ":" ( .Values.emqxConfig.EMQX_LISTENERS__WS__DEFAULT__BIND | default "8083" ) | last }}
- name: wss - name: wss
containerPort: {{ .Values.emqxConfig.EMQX_LISTENERS__WSS__DEFAULT__BIND | default 8084 }} containerPort: {{ splitList ":" ( .Values.emqxConfig.EMQX_LISTENERS__WSS__DEFAULT__BIND | default "8084" ) | last }}
- name: dashboard - name: dashboard
containerPort: {{ .Values.emqxConfig.EMQX_DASHBOARD__LISTENERS__HTTP__BIND | default 18083 }} containerPort: {{ splitList ":" ( .Values.emqxConfig.EMQX_DASHBOARD__LISTENERS__HTTP__BIND | default "18083" ) | last }}
{{- if not (empty .Values.emqxConfig.EMQX_DASHBOARD__LISTENERS__HTTPS__BIND) }} {{- if not (empty .Values.emqxConfig.EMQX_DASHBOARD__LISTENERS__HTTPS__BIND) }}
- name: dashboardtls - name: dashboardtls
containerPort: {{ .Values.emqxConfig.EMQX_DASHBOARD__LISTENERS__HTTPS__BIND }} containerPort: {{ splitList ":" .Values.emqxConfig.EMQX_DASHBOARD__LISTENERS__HTTPS__BIND | last }}
{{- end }} {{- end }}
- name: ekka - name: ekka
containerPort: 4370 containerPort: 4370
@ -151,14 +151,14 @@ spec:
readinessProbe: readinessProbe:
httpGet: httpGet:
path: /status path: /status
port: {{ .Values.emqxConfig.EMQX_DASHBOARD__LISTENERS__HTTP__BIND | default 18083 }} port: {{ splitList ":" ( .Values.emqxConfig.EMQX_DASHBOARD__LISTENERS__HTTP__BIND | default "18083" ) | last }}
initialDelaySeconds: 10 initialDelaySeconds: 10
periodSeconds: 5 periodSeconds: 5
failureThreshold: 30 failureThreshold: 30
livenessProbe: livenessProbe:
httpGet: httpGet:
path: /status path: /status
port: {{ .Values.emqxConfig.EMQX_DASHBOARD__LISTENERS__HTTP__BIND | default 18083 }} port: {{ splitList ":" ( .Values.emqxConfig.EMQX_DASHBOARD__LISTENERS__HTTP__BIND | default "18083" ) | last }}
initialDelaySeconds: 60 initialDelaySeconds: 60
periodSeconds: 30 periodSeconds: 30
failureThreshold: 10 failureThreshold: 10

View File

@ -98,3 +98,53 @@ spec:
{{- end }} {{- end }}
--- ---
{{- end }} {{- end }}
{{- if .Values.ingress.ws.enabled -}}
{{- 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: {{ printf "%s-%s" (include "emqx.fullname" .) "ws" }}
labels:
app.kubernetes.io/name: {{ include "emqx.name" . }}
helm.sh/chart: {{ include "emqx.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- if .Values.ingress.ws.annotations }}
annotations:
{{- toYaml .Values.ingress.ws.annotations | nindent 4 }}
{{- end }}
spec:
{{- if and .Values.ingress.ws.ingressClassName (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }}
ingressClassName: {{ .Values.ingress.ws.ingressClassName }}
{{- end }}
rules:
{{- range $host := .Values.ingress.ws.hosts }}
- host: {{ $host }}
http:
paths:
- path: {{ $.Values.ingress.ws.path | default "/mqtt" }}
{{- if (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }}
pathType: {{ $.Values.ingress.ws.pathType | default "ImplementationSpecific" }}
{{- end }}
backend:
{{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }}
service:
name: {{ include "emqx.fullname" $ }}
port:
number: {{ $.Values.service.ws }}
{{- else }}
serviceName: {{ include "emqx.fullname" $ }}
servicePort: {{ $.Values.service.ws }}
{{- end }}
{{- end -}}
{{- if .Values.ingress.ws.tls }}
tls:
{{- toYaml .Values.ingress.ws.tls | nindent 4 }}
{{- end }}
---
{{- end }}

View File

@ -230,6 +230,19 @@ ingress:
hosts: hosts:
- mqtt.emqx.local - mqtt.emqx.local
tls: [] tls: []
ws:
enabled: false
# ingressClassName: haproxy
annotations: {}
# kubernetes.io/ingress.class: haproxy
# kubernetes.io/tls-acme: "true"
# haproxy-ingress.github.io/tcp-service-port: "8883"
# haproxy-ingress.github.io/proxy-protocol: "v2"
path: /mqtt
pathType: ImplementationSpecific
hosts:
- mqtt.emqx.local
tls: []
podSecurityContext: podSecurityContext:
enabled: true enabled: true

View File

@ -98,3 +98,53 @@ spec:
{{- end }} {{- end }}
--- ---
{{- end }} {{- end }}
{{- if .Values.ingress.ws.enabled -}}
{{- 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: {{ printf "%s-%s" (include "emqx.fullname" .) "ws" }}
labels:
app.kubernetes.io/name: {{ include "emqx.name" . }}
helm.sh/chart: {{ include "emqx.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- if .Values.ingress.ws.annotations }}
annotations:
{{- toYaml .Values.ingress.ws.annotations | nindent 4 }}
{{- end }}
spec:
{{- if and .Values.ingress.ws.ingressClassName (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }}
ingressClassName: {{ .Values.ingress.ws.ingressClassName }}
{{- end }}
rules:
{{- range $host := .Values.ingress.ws.hosts }}
- host: {{ $host }}
http:
paths:
- path: {{ $.Values.ingress.ws.path | default "/mqtt" }}
{{- if (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }}
pathType: {{ $.Values.ingress.ws.pathType | default "ImplementationSpecific" }}
{{- end }}
backend:
{{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }}
service:
name: {{ include "emqx.fullname" $ }}
port:
number: {{ $.Values.service.ws }}
{{- else }}
serviceName: {{ include "emqx.fullname" $ }}
servicePort: {{ $.Values.service.ws }}
{{- end }}
{{- end -}}
{{- if .Values.ingress.ws.tls }}
tls:
{{- toYaml .Values.ingress.ws.tls | nindent 4 }}
{{- end }}
---
{{- end }}

View File

@ -230,6 +230,19 @@ ingress:
hosts: hosts:
- mqtt.emqx.local - mqtt.emqx.local
tls: [] tls: []
ws:
enabled: false
# ingressClassName: haproxy
annotations: {}
# kubernetes.io/ingress.class: haproxy
# kubernetes.io/tls-acme: "true"
# haproxy-ingress.github.io/tcp-service-port: "8883"
# haproxy-ingress.github.io/proxy-protocol: "v2"
path: /mqtt
pathType: ImplementationSpecific
hosts:
- mqtt.emqx.local
tls: []
podSecurityContext: podSecurityContext:
enabled: true enabled: true