Merge pull request #6860 from fernando-almeida/main-v4.3
Updated Helm chart to support new features and updated README
This commit is contained in:
commit
a18f3bc971
|
@ -1,9 +1,9 @@
|
||||||
# Introduction
|
# Introduction
|
||||||
This chart bootstraps an emqx deployment on a Kubernetes cluster using the Helm package manager.
|
This chart bootstraps an [EMQ X](https://www.emqx.io/) deployment on a [Kubernetes](https://kubernetes.io/) (K8s) cluster using the [Helm](https://helm.sh/) package manager.
|
||||||
|
|
||||||
# Prerequisites
|
# Prerequisites
|
||||||
+ Kubernetes 1.6+
|
+ [Kubernetes](https://kubernetes.io/) 1.6+
|
||||||
+ Helm
|
+ [Helm](https://helm.sh/)
|
||||||
|
|
||||||
# Installing the Chart
|
# Installing the Chart
|
||||||
To install the chart with the release name `my-emqx`:
|
To install the chart with the release name `my-emqx`:
|
||||||
|
@ -25,55 +25,107 @@ To install the chart with the release name `my-emqx`:
|
||||||
# Uninstalling the Chart
|
# Uninstalling the Chart
|
||||||
To uninstall/delete the `my-emqx` deployment:
|
To uninstall/delete the `my-emqx` deployment:
|
||||||
```
|
```
|
||||||
$ helm del my-emqx
|
$ helm del my-emqx
|
||||||
```
|
```
|
||||||
|
|
||||||
# Configuration
|
# Configuration
|
||||||
The following table lists the configurable parameters of the emqx chart and their default values.
|
The following sections describe the configurable parameters of the chart and their default values.
|
||||||
|
## [K8s]((https://kubernetes.io/)) specific settings
|
||||||
|
The following table lists the configurable K8s parameters of the [EMQ X](https://www.emqx.io/) chart and their default values.
|
||||||
|
Parameter | Description | Default Value
|
||||||
|
--- | --- | ---
|
||||||
|
`replicaCount` | It is recommended to have odd number of nodes in a cluster, otherwise the emqx cluster cannot be automatically healed in case of net-split. | `3`
|
||||||
|
`image.tag` | EMQ X Image tag (defaults to `.Chart.AppVersion`) | `nil`
|
||||||
|
`image.repository` | EMQ X Image repository | `emqx/emqx`
|
||||||
|
`image.pullPolicy` | The image pull policy | `IfNotPresent`
|
||||||
|
`image.pullSecrets ` | The image pull secrets (does not add image pull secrets to deployed pods) |``[]``
|
||||||
|
`recreatePods` | Forces the recreation of pods during upgrades, which can be useful to always apply the most recent configuration. | `false`
|
||||||
|
`persistence.enabled` | Enable EMQ X persistence using PVC | `false`
|
||||||
|
`persistence.storageClass` | Storage class of backing PVC (uses alpha storage class annotation) | `nil`
|
||||||
|
`persistence.existingClaim` | EMQ X data Persistent Volume existing claim name, evaluated as a template | `""`
|
||||||
|
`persistence.accessMode` | PVC Access Mode for EMQ X volume | `ReadWriteOnce`
|
||||||
|
`persistence.size` | PVC Storage Request for EMQ X volume | `20Mi`
|
||||||
|
`initContainers` | Containers that run before the creation of EMQ X containers. They can contain utilities or setup scripts. |`{}`
|
||||||
|
`resources` | CPU/Memory resource requests/limits |`{}`
|
||||||
|
`nodeSelector` | Node labels for pod assignment |`{}`
|
||||||
|
`tolerations` | Toleration labels for pod assignment |``[]``
|
||||||
|
`affinity` | Map of node/pod affinities |`{}`
|
||||||
|
`service.type` | Kubernetes Service type. | `ClusterIP`
|
||||||
|
`service.mqtt` | Port for MQTT. | `1883`
|
||||||
|
`service.mqttssl` | Port for MQTT(SSL). | `8883`
|
||||||
|
`service.mgmt` | Port for mgmt API. | `8081`
|
||||||
|
`service.ws` | Port for WebSocket/HTTP. | `8083`
|
||||||
|
`service.wss` | Port for WSS/HTTPS. | `8084`
|
||||||
|
`service.dashboard` | Port for dashboard. | `18083`
|
||||||
|
`service.nodePorts.mqtt` | Kubernetes node port for MQTT. | `nil`
|
||||||
|
`service.nodePorts.mqttssl` | Kubernetes node port for MQTT(SSL). | `nil`
|
||||||
|
`service.nodePorts.mgmt` | Kubernetes node port for mgmt API. | `nil`
|
||||||
|
`service.nodePorts.ws` | Kubernetes node port for WebSocket/HTTP. | `nil`
|
||||||
|
`service.nodePorts.wss` | Kubernetes node port for WSS/HTTPS. | `nil`
|
||||||
|
`service.nodePorts.dashboard` | Kubernetes node port for dashboard. | `nil`
|
||||||
|
`service.loadBalancerIP` | loadBalancerIP for Service | `nil`
|
||||||
|
`service.loadBalancerSourceRanges` | Address(es) that are allowed when service is LoadBalancer | `[]`
|
||||||
|
`service.externalIPs` | ExternalIPs for the service | `[]`
|
||||||
|
`service.annotations` | Service annotations (evaluated as a template) | `{}`
|
||||||
|
`ingress.dashboard.enabled` | Enable ingress for EMQ X Dashboard | false
|
||||||
|
`ingress.dashboard.ingressClassName` | Set the ingress class for EMQ X Dashboard
|
||||||
|
`ingress.dashboard.path` | Ingress path for EMQ X Dashboard | `/`
|
||||||
|
`ingress.dashboard.hosts` | Ingress hosts for EMQ X Mgmt API | dashboard.emqx.local
|
||||||
|
`ingress.dashboard.tls` | Ingress tls for EMQ X Mgmt API | `[]`
|
||||||
|
`ingress.dashboard.annotations` | Ingress annotations for EMQ X Mgmt API | `{}`
|
||||||
|
`ingress.mgmt.enabled` | Enable ingress for EMQ X Mgmt API | `false`
|
||||||
|
`ingress.mqtt.ingressClassName` | Set the ingress class for EMQ X Mgmt API | `nil`
|
||||||
|
`ingress.mgmt.path` | Ingress path for EMQ X Mgmt API | `/`
|
||||||
|
`ingress.mgmt.hosts` | Ingress hosts for EMQ X Mgmt API | `api.emqx.local`
|
||||||
|
`ingress.mgmt.tls` | Ingress tls for EMQ X Mgmt API | `[]`
|
||||||
|
`ingress.mgmt.annotations` | Ingress annotations for EMQ X Mgmt API | `{}`
|
||||||
|
`ingress.wss.enabled` | Enable ingress for EMQ X Mgmt API | `false`
|
||||||
|
`ingress.wss.ingressClassName` | Set the ingress class for EMQ X Mgmt API | `nil`
|
||||||
|
`ingress.wss.path` | Ingress path for EMQ X WSS | `/`
|
||||||
|
`ingress.wss.hosts` | Ingress hosts for EMQ X WSS | `wss.emqx.local`
|
||||||
|
`ingress.wss.tls` | Ingress tls for EMQ X WSS | `[]`
|
||||||
|
`ingress.wss.annotations` | Ingress annotations for EMQ X WSS | `{}`
|
||||||
|
`extraEnv` | Aditional container env vars | `[]`
|
||||||
|
`extraEnvFrom` | Aditional container env from vars (eg. [config map](https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/), [secrets](https://kubernetes.io/docs/concepts/configuration/secret/) | `[]`
|
||||||
|
`extraArgs` | Additional container executable arguments | `[]`
|
||||||
|
`extraVolumes` | Additional container volumes (eg. for mounting certs from secrets) | `[]`
|
||||||
|
`extraVolumeMounts` | Additional container volume mounts (eg. for mounting certs from secrets) | `[]`
|
||||||
|
|
||||||
| Parameter | Description | Default Value |
|
## EMQ X specific settings
|
||||||
| --- | --- | --- |
|
The following table lists the configurable [EMQ X](https://www.emqx.io/)-specific parameters of the chart and their default values.
|
||||||
| `replicaCount` | It is recommended to have odd number of nodes in a cluster, otherwise the emqx cluster cannot be automatically healed in case of net-split. |3|
|
Parameter | Description | Default Value
|
||||||
| `image.repository` | EMQ X Image name |emqx/emqx|
|
--- | --- | ---
|
||||||
| `image.pullPolicy` | The image pull policy |IfNotPresent|
|
`emqxConfig` | Map of [configuration](https://www.emqx.io/docs/en/latest/configuration/configuration.html) items expressed as [environment variables](https://www.emqx.io/docs/en/v4.3/configuration/environment-variable.html) (prefix can be omitted) or using the configuration files [namespaced dotted notation](https://www.emqx.io/docs/en/latest/configuration/configuration.html) | `nil`
|
||||||
| `image.pullSecrets ` | The image pull secrets |`[]` (does not add image pull secrets to deployed pods)|
|
`emqxLicenseSecretName` | Name of the secret that holds the license information | `nil`
|
||||||
| `recreatePods` | Forces the recreation of pods during upgrades, which can be useful to always apply the most recent configuration. | false |
|
`emqxAclConfig` | [ACL](https://docs.emqx.io/broker/latest/en/advanced/acl-file.html) configuration | `{allow, {user, "dashboard"}, subscribe, ["$SYS/#"]}. {allow, {ipaddr, "127.0.0.1"}, pubsub, ["$SYS/#", "#"]}. {deny, all, subscribe, ["$SYS/#", {eq, "#"}]}. {allow, all}.`
|
||||||
| `persistence.enabled` | Enable EMQX persistence using PVC |false|
|
`emqxLoadedModules` | Modules to load on startup | `{emqx_mod_acl_internal, true}. {emqx_mod_presence, true}. {emqx_mod_delayed, false}. {emqx_mod_rewrite, false}. {emqx_mod_subscription, false}. {emqx_mod_topic_metrics, false}.`
|
||||||
| `persistence.storageClass` | Storage class of backing PVC |`nil` (uses alpha storage class annotation)|
|
`emqxLoadedPlugins` | Plugins to load on startup | `{emqx_management, true}. {emqx_recon, true}. {emqx_retainer, true}. {emqx_dashboard, true}. {emqx_telemetry, true}. {emqx_rule_engine, true}. {emqx_bridge_mqtt, false}.`
|
||||||
| `persistence.existingClaim` | EMQ X data Persistent Volume existing claim name, evaluated as a template |""|
|
|
||||||
| `persistence.accessMode` | PVC Access Mode for EMQX volume |ReadWriteOnce|
|
# Examples
|
||||||
| `persistence.size` | PVC Storage Request for EMQX volume |20Mi|
|
This section provides some examples for the configuration of common scenarios.
|
||||||
| `initContainers` | Containers that run before the creation of EMQX containers. They can contain utilities or setup scripts. |`{}`|
|
## Enable Websockets SSL via [nginx-ingress community controller](https://kubernetes.github.io/ingress-nginx/)
|
||||||
| `resources` | CPU/Memory resource requests/limits |{}|
|
The following settings describe a working scenario for acessing [EMQ X](https://www.emqx.io/) Websockets with SSL termination at the [nginx-ingress community controller](https://kubernetes.github.io/ingress-nginx/).
|
||||||
| `nodeSelector` | Node labels for pod assignment |`{}`|
|
```yaml
|
||||||
| `tolerations` | Toleration labels for pod assignment |`[]`|
|
ingress:
|
||||||
| `affinity` | Map of node/pod affinities |`{}`|
|
wss:
|
||||||
| `service.type` | Kubernetes Service type. |ClusterIP|
|
enabled: true
|
||||||
| `service.mqtt` | Port for MQTT. |1883|
|
# ingressClassName: nginx
|
||||||
| `service.mqttssl` | Port for MQTT(SSL). |8883|
|
annotations:
|
||||||
| `service.mgmt` | Port for mgmt API. |8081|
|
nginx.ingress.kubernetes.io/backend-protocol: "http"
|
||||||
| `service.ws` | Port for WebSocket/HTTP. |8083|
|
nginx.ingress.kubernetes.io/use-forwarded-headers: "true"
|
||||||
| `service.wss` | Port for WSS/HTTPS. |8084|
|
nginx.ingress.kubernetes.io/enable-real-ip: "true"
|
||||||
| `service.dashboard` | Port for dashboard. |18083|
|
nginx.ingress.kubernetes.io/proxy-request-buffering: "off"
|
||||||
| `service.nodePorts.mqtt` | Kubernetes node port for MQTT. |nil|
|
nginx.ingress.kubernetes.io/proxy-connect-timeout: "120"
|
||||||
| `service.nodePorts.mqttssl` | Kubernetes node port for MQTT(SSL). |nil|
|
nginx.ingress.kubernetes.io/proxy-http-version: "1.1"
|
||||||
| `service.nodePorts.mgmt` | Kubernetes node port for mgmt API. |nil|
|
nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
|
||||||
| `service.nodePorts.ws` | Kubernetes node port for WebSocket/HTTP. |nil|
|
nginx.ingress.kubernetes.io/proxy-send-timeout: "3600"
|
||||||
| `service.nodePorts.wss` | Kubernetes node port for WSS/HTTPS. |nil|
|
nginx.ingress.kubernetes.io/use-proxy-protocol: "false"
|
||||||
| `service.nodePorts.dashboard` | Kubernetes node port for dashboard. |nil|
|
nginx.ingress.kubernetes.io/proxy-protocol-header-timeout: "5s"
|
||||||
| `service.loadBalancerIP` | loadBalancerIP for Service | nil |
|
path: /mqtt
|
||||||
| `service.loadBalancerSourceRanges` | Address(es) that are allowed when service is LoadBalancer | [] |
|
hosts:
|
||||||
| `service.externalIPs` | ExternalIPs for the service | [] |
|
- myhost.example.com
|
||||||
| `service.annotations` | Service annotations | {}(evaluated as a template)|
|
tls:
|
||||||
| `ingress.dashboard.enabled` | Enable ingress for EMQX Dashboard | false |
|
- hosts:
|
||||||
| `ingress.dashboard.path` | Ingress path for EMQX Dashboard | / |
|
- myhost.example.com
|
||||||
| `ingress.dashboard.hosts` | Ingress hosts for EMQX Mgmt API | dashboard.emqx.local |
|
secretName: myhost-example-com-tls # Name of the secret that holds the certificates for the domain
|
||||||
| `ingress.dashboard.tls` | Ingress tls for EMQX Mgmt API | [] |
|
```
|
||||||
| `ingress.dashboard.annotations` | Ingress annotations for EMQX Mgmt API | {} |
|
|
||||||
| `ingress.mgmt.enabled` | Enable ingress for EMQX Mgmt API | false |
|
|
||||||
| `ingress.mgmt.path` | Ingress path for EMQX Mgmt API | / |
|
|
||||||
| `ingress.mgmt.hosts` | Ingress hosts for EMQX Mgmt API | api.emqx.local |
|
|
||||||
| `ingress.mgmt.tls` | Ingress tls for EMQX Mgmt API | [] |
|
|
||||||
| `ingress.mgmt.annotations` | Ingress annotations for EMQX Mgmt API | {} |
|
|
||||||
| `emqxConfig` | Emqx configuration item, see the [documentation](https://hub.docker.com/r/emqx/emqx) | |
|
|
||||||
| `emqxAclConfig` | Emqx acl configuration item, see the [documentation](https://docs.emqx.io/broker/latest/en/advanced/acl-file.html) | |
|
|
||||||
|
|
|
@ -1,3 +1,12 @@
|
||||||
|
{{ $configData := printf "%s\n%s\n%s\n%s"
|
||||||
|
(include (print $.Template.BasePath "/configmap.env.yaml") .)
|
||||||
|
(include (print $.Template.BasePath "/configmap.acl.yaml") .)
|
||||||
|
(include (print $.Template.BasePath "/configmap.loadedPlugins.yaml") .)
|
||||||
|
(include (print $.Template.BasePath "/configmap.loadedModules.yaml") .) }}
|
||||||
|
## Compatible with previous misspellings
|
||||||
|
{{ $licenseSecretName := coalesce .Values.emqxLicenseSecretName .Values.emqxLicneseSecretName }}
|
||||||
|
{{ $image := printf "%s:%s" .Values.image.repository (default .Values.image.tag .Chart.AppVersion) }}
|
||||||
|
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: StatefulSet
|
kind: StatefulSet
|
||||||
metadata:
|
metadata:
|
||||||
|
@ -50,28 +59,34 @@ spec:
|
||||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
{{- if .Values.recreatePods }}
|
{{- if .Values.recreatePods }}
|
||||||
annotations:
|
annotations:
|
||||||
checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum | quote }}
|
checksum/config: {{ $configData | sha256sum | quote }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
volumes:
|
volumes:
|
||||||
|
{{- if .Values.emqxLoadedPlugins }}
|
||||||
- name: emqx-loaded-plugins
|
- name: emqx-loaded-plugins
|
||||||
configMap:
|
configMap:
|
||||||
name: {{ include "emqx.fullname" . }}-loaded-plugins
|
name: {{ include "emqx.fullname" . }}-loaded-plugins
|
||||||
items:
|
items:
|
||||||
- key: loaded_plugins
|
- key: loaded_plugins
|
||||||
path: loaded_plugins
|
path: loaded_plugins
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.emqxLoadedModules }}
|
||||||
- name: emqx-loaded-modules
|
- name: emqx-loaded-modules
|
||||||
configMap:
|
configMap:
|
||||||
name: {{ include "emqx.fullname" . }}-loaded-modules
|
name: {{ include "emqx.fullname" . }}-loaded-modules
|
||||||
items:
|
items:
|
||||||
- key: loaded_modules
|
- key: loaded_modules
|
||||||
path: loaded_modules
|
path: loaded_modules
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.emqxAclConfig }}
|
||||||
- name: emqx-acl
|
- name: emqx-acl
|
||||||
configMap:
|
configMap:
|
||||||
name: {{ include "emqx.fullname" . }}-acl
|
name: {{ include "emqx.fullname" . }}-acl
|
||||||
items:
|
items:
|
||||||
- key: acl.conf
|
- key: acl.conf
|
||||||
path: acl.conf
|
path: acl.conf
|
||||||
|
{{- end }}
|
||||||
{{- if not .Values.persistence.enabled }}
|
{{- if not .Values.persistence.enabled }}
|
||||||
- name: emqx-data
|
- name: emqx-data
|
||||||
emptyDir: {}
|
emptyDir: {}
|
||||||
|
@ -82,15 +97,13 @@ spec:
|
||||||
claimName: {{ tpl . $ }}
|
claimName: {{ tpl . $ }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if .Values.emqxLicenseSecretName }}
|
{{- if .Values.extraVolumes }}
|
||||||
|
{{ toYaml .Values.extraVolumes | indent 6 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if $licenseSecretName }}
|
||||||
- name: emqx-license
|
- name: emqx-license
|
||||||
secret:
|
secret:
|
||||||
secretName: {{ .Values.emqxLicenseSecretName }}
|
secretName: {{ $licenseSecretName }}
|
||||||
## Compatible with previous misspellings
|
|
||||||
{{- else if .Values.emqxLicneseSecretName }}
|
|
||||||
- name: emqx-license
|
|
||||||
secret:
|
|
||||||
secretName: {{ .Values.emqxLicneseSecretName }}
|
|
||||||
{{- end }}
|
{{- end }}
|
||||||
serviceAccountName: {{ include "emqx.fullname" . }}
|
serviceAccountName: {{ include "emqx.fullname" . }}
|
||||||
{{- if .Values.podSecurityContext.enabled }}
|
{{- if .Values.podSecurityContext.enabled }}
|
||||||
|
@ -108,7 +121,7 @@ spec:
|
||||||
{{- end }}
|
{{- end }}
|
||||||
containers:
|
containers:
|
||||||
- name: emqx
|
- name: emqx
|
||||||
image: "{{ .Values.image.repository }}:{{ .Chart.AppVersion }}"
|
image: {{ $image }}
|
||||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||||
{{- if .Values.containerSecurityContext.enabled }}
|
{{- if .Values.containerSecurityContext.enabled }}
|
||||||
securityContext: {{- omit .Values.containerSecurityContext "enabled" | toYaml | nindent 12 }}
|
securityContext: {{- omit .Values.containerSecurityContext "enabled" | toYaml | nindent 12 }}
|
||||||
|
@ -137,8 +150,11 @@ spec:
|
||||||
- name: ekka
|
- name: ekka
|
||||||
containerPort: 4370
|
containerPort: 4370
|
||||||
envFrom:
|
envFrom:
|
||||||
- configMapRef:
|
- configMapRef:
|
||||||
name: {{ include "emqx.fullname" . }}-env
|
name: {{ include "emqx.fullname" . }}-env
|
||||||
|
{{- if .Values.extraEnvFrom }}
|
||||||
|
{{ toYaml .Values.extraEnvFrom | indent 10 }}
|
||||||
|
{{- end }}
|
||||||
env:
|
env:
|
||||||
- name: EMQX_NAME
|
- name: EMQX_NAME
|
||||||
value: {{ .Release.Name }}
|
value: {{ .Release.Name }}
|
||||||
|
@ -150,32 +166,41 @@ spec:
|
||||||
value: {{ include "emqx.fullname" . }}-headless
|
value: {{ include "emqx.fullname" . }}-headless
|
||||||
- name: EMQX_CLUSTER__K8S__NAMESPACE
|
- name: EMQX_CLUSTER__K8S__NAMESPACE
|
||||||
value: {{ .Release.Namespace }}
|
value: {{ .Release.Namespace }}
|
||||||
|
{{- if .Values.extraEnv }}
|
||||||
|
{{ toYaml .Values.extraEnv | indent 10 }}
|
||||||
|
{{- end }}
|
||||||
resources:
|
resources:
|
||||||
{{ toYaml .Values.resources | indent 12 }}
|
{{ toYaml .Values.resources | indent 12 }}
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: emqx-data
|
- name: emqx-data
|
||||||
mountPath: "/opt/emqx/data"
|
mountPath: "/opt/emqx/data"
|
||||||
|
{{- if .Values.emqxAclConfig }}
|
||||||
- name: emqx-acl
|
- name: emqx-acl
|
||||||
mountPath: "/opt/emqx/etc/acl.conf"
|
mountPath: "/opt/emqx/etc/acl.conf"
|
||||||
subPath: "acl.conf"
|
subPath: "acl.conf"
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.emqxLoadedPlugins }}
|
||||||
- name: emqx-loaded-plugins
|
- name: emqx-loaded-plugins
|
||||||
mountPath: "/opt/emqx/data/loaded_plugins"
|
mountPath: "/opt/emqx/data/loaded_plugins"
|
||||||
subPath: "loaded_plugins"
|
subPath: "loaded_plugins"
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.emqxLoadedModules }}
|
||||||
- name: emqx-loaded-modules
|
- name: emqx-loaded-modules
|
||||||
mountPath: "/opt/emqx/data/loaded_modules"
|
mountPath: "/opt/emqx/data/loaded_modules"
|
||||||
subPath: "loaded_modules"
|
subPath: "loaded_modules"
|
||||||
{{ if .Values.emqxLicenseSecretName }}
|
{{- end }}
|
||||||
- name: emqx-license
|
{{- if $licenseSecretName }}
|
||||||
mountPath: "/opt/emqx/etc/emqx.lic"
|
|
||||||
subPath: "emqx.lic"
|
|
||||||
readOnly: true
|
|
||||||
## Compatible with previous misspellings
|
|
||||||
{{ else if .Values.emqxLicneseSecretName }}
|
|
||||||
- name: emqx-license
|
- name: emqx-license
|
||||||
mountPath: "/opt/emqx/etc/emqx.lic"
|
mountPath: "/opt/emqx/etc/emqx.lic"
|
||||||
subPath: "emqx.lic"
|
subPath: "emqx.lic"
|
||||||
readOnly: true
|
readOnly: true
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
{{- if and .Values.extraVolumes .Values.extraVolumeMounts }}
|
||||||
|
{{ toYaml .Values.extraVolumeMounts | indent 10 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.extraArgs }}
|
||||||
|
args: {{ toYaml .Values.extraArgs | nindent 10 }}
|
||||||
|
{{- end }}
|
||||||
readinessProbe:
|
readinessProbe:
|
||||||
httpGet:
|
httpGet:
|
||||||
path: /status
|
path: /status
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
{{ if .Values.emqxAclConfig }}
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: {{ include "emqx.fullname" . }}-acl
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
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 }}
|
||||||
|
data:
|
||||||
|
"acl.conf": |
|
||||||
|
{{ .Values.emqxAclConfig }}
|
||||||
|
{{ end }}
|
|
@ -0,0 +1,20 @@
|
||||||
|
{{- if .Values.emqxConfig }}
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: {{ include "emqx.fullname" . }}-env
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
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 }}
|
||||||
|
data:
|
||||||
|
{{- range $index, $value := .Values.emqxConfig }}
|
||||||
|
{{- if ne $value nil }}
|
||||||
|
{{- $key := (regexReplaceAllLiteral "\\." (regexReplaceAllLiteral "EMQX[_\\.]" (upper (trimAll " " $index)) "") "__") }}
|
||||||
|
{{ print "EMQX_" $key }}: {{ $value | quote }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end}}
|
||||||
|
|
||||||
|
{{- end }}
|
|
@ -0,0 +1,15 @@
|
||||||
|
{{ if .Values.emqxLoadedModules }}
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: {{ include "emqx.fullname" . }}-loaded-modules
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
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 }}
|
||||||
|
data:
|
||||||
|
"loaded_modules": |
|
||||||
|
{{ .Values.emqxLoadedModules }}
|
||||||
|
{{ end }}
|
|
@ -0,0 +1,15 @@
|
||||||
|
{{ if .Values.emqxLoadedPlugins }}
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: {{ include "emqx.fullname" . }}-loaded-plugins
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
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 }}
|
||||||
|
data:
|
||||||
|
"loaded_plugins": |
|
||||||
|
{{ .Values.emqxLoadedPlugins }}
|
||||||
|
{{ end }}
|
|
@ -1,59 +0,0 @@
|
||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: {{ include "emqx.fullname" . }}-env
|
|
||||||
namespace: {{ .Release.Namespace }}
|
|
||||||
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 }}
|
|
||||||
data:
|
|
||||||
{{- range $index, $value := .Values.emqxConfig}}
|
|
||||||
{{$index}}: "{{ $value }}"
|
|
||||||
{{- end}}
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: {{ include "emqx.fullname" . }}-acl
|
|
||||||
namespace: {{ .Release.Namespace }}
|
|
||||||
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 }}
|
|
||||||
data:
|
|
||||||
"acl.conf": |
|
|
||||||
{{ .Values.emqxAclConfig }}
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: {{ include "emqx.fullname" . }}-loaded-plugins
|
|
||||||
namespace: {{ .Release.Namespace }}
|
|
||||||
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 }}
|
|
||||||
data:
|
|
||||||
"loaded_plugins": |
|
|
||||||
{{ .Values.emqxLoadedPlugins }}
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: {{ include "emqx.fullname" . }}-loaded-modules
|
|
||||||
namespace: {{ .Release.Namespace }}
|
|
||||||
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 }}
|
|
||||||
data:
|
|
||||||
"loaded_modules": |
|
|
||||||
{{ .Values.emqxLoadedModules }}
|
|
|
@ -14,10 +14,15 @@ metadata:
|
||||||
helm.sh/chart: {{ include "emqx.chart" . }}
|
helm.sh/chart: {{ include "emqx.chart" . }}
|
||||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||||
{{- if .Values.ingress.dashboard.annotations }}
|
{{- if or .Values.ingress.annotations .Values.ingress.dashboard.annotations }}
|
||||||
annotations:
|
annotations:
|
||||||
|
{{- if .Values.ingress.annotations }}
|
||||||
|
{{- toYaml .Values.ingress.annotations | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.ingress.dashboard.annotations }}
|
||||||
{{- toYaml .Values.ingress.dashboard.annotations | nindent 4 }}
|
{{- toYaml .Values.ingress.dashboard.annotations | nindent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
{{- if and .Values.ingress.dashboard.ingressClassName (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }}
|
{{- if and .Values.ingress.dashboard.ingressClassName (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }}
|
||||||
ingressClassName: {{ .Values.ingress.dashboard.ingressClassName }}
|
ingressClassName: {{ .Values.ingress.dashboard.ingressClassName }}
|
||||||
|
@ -48,53 +53,3 @@ spec:
|
||||||
{{- end }}
|
{{- end }}
|
||||||
---
|
---
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if .Values.ingress.mgmt.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" .) "mgmt" }}
|
|
||||||
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.mgmt.annotations }}
|
|
||||||
annotations:
|
|
||||||
{{- toYaml .Values.ingress.mgmt.annotations | nindent 4 }}
|
|
||||||
{{- end }}
|
|
||||||
spec:
|
|
||||||
{{- if and .Values.ingress.mgmt.ingressClassName (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }}
|
|
||||||
ingressClassName: {{ .Values.ingress.mgmt.ingressClassName }}
|
|
||||||
{{- end }}
|
|
||||||
rules:
|
|
||||||
{{- range $host := .Values.ingress.mgmt.hosts }}
|
|
||||||
- host: {{ $host }}
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- path: /
|
|
||||||
{{- if (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }}
|
|
||||||
pathType: ImplementationSpecific
|
|
||||||
{{- end }}
|
|
||||||
backend:
|
|
||||||
{{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }}
|
|
||||||
service:
|
|
||||||
name: {{ include "emqx.fullname" $ }}
|
|
||||||
port:
|
|
||||||
number: {{ $.Values.service.mgmt }}
|
|
||||||
{{- else }}
|
|
||||||
serviceName: {{ include "emqx.fullname" $ }}
|
|
||||||
servicePort: {{ $.Values.service.mgmt }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end -}}
|
|
||||||
{{- if .Values.ingress.mgmt.tls }}
|
|
||||||
tls:
|
|
||||||
{{- toYaml .Values.ingress.mgmt.tls | nindent 4 }}
|
|
||||||
{{- end }}
|
|
||||||
---
|
|
||||||
{{- end }}
|
|
|
@ -0,0 +1,54 @@
|
||||||
|
{{- if .Values.ingress.mgmt.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" .) "mgmt" }}
|
||||||
|
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 or .Values.ingress.annotations .Values.ingress.mgmt.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{- if .Values.ingress.annotations }}
|
||||||
|
{{- toYaml .Values.ingress.annotations | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.ingress.mgmt.annotations }}
|
||||||
|
{{- toYaml .Values.ingress.mgmt.annotations | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
{{- if and .Values.ingress.mgmt.ingressClassName (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }}
|
||||||
|
ingressClassName: {{ .Values.ingress.mgmt.ingressClassName }}
|
||||||
|
{{- end }}
|
||||||
|
rules:
|
||||||
|
{{- range $host := .Values.ingress.mgmt.hosts }}
|
||||||
|
- host: {{ $host }}
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- path: {{ $.Values.ingress.mgmt.path | default "/" }}
|
||||||
|
{{- if (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }}
|
||||||
|
pathType: ImplementationSpecific
|
||||||
|
{{- end }}
|
||||||
|
backend:
|
||||||
|
{{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }}
|
||||||
|
service:
|
||||||
|
name: {{ include "emqx.fullname" $ }}
|
||||||
|
port:
|
||||||
|
number: {{ $.Values.service.mgmt }}
|
||||||
|
{{- else }}
|
||||||
|
serviceName: {{ include "emqx.fullname" $ }}
|
||||||
|
servicePort: {{ $.Values.service.mgmt }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- if .Values.ingress.mgmt.tls }}
|
||||||
|
tls:
|
||||||
|
{{- toYaml .Values.ingress.mgmt.tls | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
|
@ -0,0 +1,54 @@
|
||||||
|
{{- if .Values.ingress.wss.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" .) "wss" }}
|
||||||
|
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 or .Values.ingress.annotations .Values.ingress.wss.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{- if .Values.ingress.annotations }}
|
||||||
|
{{- toYaml .Values.ingress.annotations | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.ingress.wss.annotations }}
|
||||||
|
{{- toYaml .Values.ingress.wss.annotations | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
{{- if and .Values.ingress.wss.ingressClassName (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }}
|
||||||
|
ingressClassName: {{ .Values.ingress.wss.ingressClassName }}
|
||||||
|
{{- end }}
|
||||||
|
rules:
|
||||||
|
{{- range $host := .Values.ingress.wss.hosts }}
|
||||||
|
- host: {{ $host }}
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- path: {{ $.Values.ingress.wss.path | default "/mqtt" }}
|
||||||
|
{{- if (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }}
|
||||||
|
pathType: 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.wss.tls }}
|
||||||
|
tls:
|
||||||
|
{{- toYaml .Values.ingress.wss.tls | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
|
@ -22,6 +22,26 @@ recreatePods: false
|
||||||
# To redeploy a chart with existing PVC(s), the value must be set to Parallel to avoid deadlock
|
# To redeploy a chart with existing PVC(s), the value must be set to Parallel to avoid deadlock
|
||||||
podManagementPolicy: Parallel
|
podManagementPolicy: Parallel
|
||||||
|
|
||||||
|
## Aditional container env vars
|
||||||
|
##
|
||||||
|
extraEnv: []
|
||||||
|
|
||||||
|
## Aditional container env from vars
|
||||||
|
##
|
||||||
|
extraEnvFrom: []
|
||||||
|
|
||||||
|
## Additional container executable args
|
||||||
|
##
|
||||||
|
extraArgs: []
|
||||||
|
|
||||||
|
## Additional container volumes (eg. for mounting certs from secrets)
|
||||||
|
##
|
||||||
|
extraVolumes: []
|
||||||
|
|
||||||
|
## Additional container volume mounts (eg. for mounting certs from secrets)
|
||||||
|
##
|
||||||
|
extraVolumeMounts: []
|
||||||
|
|
||||||
persistence:
|
persistence:
|
||||||
enabled: false
|
enabled: false
|
||||||
size: 20Mi
|
size: 20Mi
|
||||||
|
@ -42,13 +62,13 @@ resources: {}
|
||||||
# cpu: 500m
|
# cpu: 500m
|
||||||
# memory: 512Mi
|
# memory: 512Mi
|
||||||
|
|
||||||
# Containers that run before the creation of EMQX containers. They can contain utilities or setup scripts.
|
# Containers that run before the creation of EMQ X containers. They can contain utilities or setup scripts.
|
||||||
initContainers: {}
|
initContainers: {}
|
||||||
# - name: mysql-probe
|
# - name: mysql-probe
|
||||||
# image: alpine
|
# image: alpine
|
||||||
# command: ["sh", "-c", "for i in $(seq 1 300); do nc -zvw1 mysql 3306 && exit 0 || sleep 3; done; exit 1"]
|
# command: ["sh", "-c", "for i in $(seq 1 300); do nc -zvw1 mysql 3306 && exit 0 || sleep 3; done; exit 1"]
|
||||||
|
|
||||||
## EMQX configuration item, see the documentation (https://hub.docker.com/r/emqx/emqx)
|
## EMQ X configuration item, see the documentation (https://hub.docker.com/r/emqx/emqx)
|
||||||
emqxConfig:
|
emqxConfig:
|
||||||
EMQX_CLUSTER__K8S__APISERVER: "https://kubernetes.default.svc:443"
|
EMQX_CLUSTER__K8S__APISERVER: "https://kubernetes.default.svc:443"
|
||||||
## The address type is used to extract host from k8s service.
|
## The address type is used to extract host from k8s service.
|
||||||
|
@ -99,7 +119,7 @@ emqxLoadedModules: >
|
||||||
{emqx_mod_subscription, false}.
|
{emqx_mod_subscription, false}.
|
||||||
{emqx_mod_topic_metrics, false}.
|
{emqx_mod_topic_metrics, false}.
|
||||||
|
|
||||||
## EMQX Enterprise Edition requires manual creation of a Secret containing the licensed content. Write the name of Secret to the value of "emqxLicenseSecretName"
|
## EMQ X Enterprise Edition requires manual creation of a Secret containing the licensed content. Write the name of Secret to the value of "emqxLicenseSecretName"
|
||||||
## Example:
|
## Example:
|
||||||
## kubectl create secret generic emqx-license-secret-name --from-file=/path/to/emqx.lic
|
## kubectl create secret generic emqx-license-secret-name --from-file=/path/to/emqx.lic
|
||||||
emqxLicenseSecretName:
|
emqxLicenseSecretName:
|
||||||
|
@ -165,7 +185,10 @@ tolerations: []
|
||||||
affinity: {}
|
affinity: {}
|
||||||
|
|
||||||
ingress:
|
ingress:
|
||||||
## ingress for EMQX Dashboard
|
## Ingress shared annotations
|
||||||
|
annotations: {}
|
||||||
|
|
||||||
|
## ingress for EMQ X Dashboard
|
||||||
dashboard:
|
dashboard:
|
||||||
enabled: false
|
enabled: false
|
||||||
annotations: {}
|
annotations: {}
|
||||||
|
@ -176,7 +199,7 @@ ingress:
|
||||||
- dashboard.emqx.local
|
- dashboard.emqx.local
|
||||||
tls: []
|
tls: []
|
||||||
|
|
||||||
## ingress for EMQX Mgmt API
|
## ingress for EMQ X Mgmt API
|
||||||
mgmt:
|
mgmt:
|
||||||
enabled: false
|
enabled: false
|
||||||
annotations: {}
|
annotations: {}
|
||||||
|
@ -187,6 +210,29 @@ ingress:
|
||||||
- api.emqx.local
|
- api.emqx.local
|
||||||
tls: []
|
tls: []
|
||||||
|
|
||||||
|
## ingress for EMQ X Mgmt API
|
||||||
|
wss:
|
||||||
|
enabled: false
|
||||||
|
# ingressClassName: nginx
|
||||||
|
annotations: {}
|
||||||
|
# Sample annotations for nginx-ingress community controller
|
||||||
|
# nginx.ingress.kubernetes.io/rewrite-target: /mqtt$1 # Use to rewrite backend path if needed
|
||||||
|
# nginx.ingress.kubernetes.io/backend-protocol: "http"
|
||||||
|
# nginx.ingress.kubernetes.io/use-forwarded-headers: "true"
|
||||||
|
# nginx.ingress.kubernetes.io/enable-real-ip: "true"
|
||||||
|
# nginx.ingress.kubernetes.io/proxy-request-buffering: "off"
|
||||||
|
# nginx.ingress.kubernetes.io/proxy-connect-timeout: "120"
|
||||||
|
# nginx.ingress.kubernetes.io/proxy-http-version: "1.1"
|
||||||
|
# nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
|
||||||
|
# nginx.ingress.kubernetes.io/proxy-send-timeout: "3600"
|
||||||
|
# nginx.ingress.kubernetes.io/use-proxy-protocol: "false"
|
||||||
|
# nginx.ingress.kubernetes.io/proxy-protocol-header-timeout: "5s"
|
||||||
|
path: /mqtt
|
||||||
|
# path: /wss(\/.*)?
|
||||||
|
hosts:
|
||||||
|
- wss.emqx.local
|
||||||
|
tls: []
|
||||||
|
|
||||||
podSecurityContext:
|
podSecurityContext:
|
||||||
enabled: true
|
enabled: true
|
||||||
fsGroup: 1000
|
fsGroup: 1000
|
||||||
|
|
Loading…
Reference in New Issue