values.yaml 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. ## Default values for emqx.
  2. ## This is a YAML-formatted file.
  3. ## Declare variables to be passed into your templates.
  4. ## 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.
  5. replicaCount: 3
  6. image:
  7. repository: emqx/emqx
  8. pullPolicy: IfNotPresent
  9. ## Optionally specify an array of imagePullSecrets.
  10. ## Secrets must be manually created in the namespace.
  11. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
  12. ##
  13. # pullSecrets:
  14. # - myRegistryKeySecretName
  15. ## Forces the recreation of pods during helm upgrades. This can be useful to update configuration values even if the container image did not change.
  16. recreatePods: false
  17. # Pod deployment policy
  18. # value: OrderedReady | Parallel
  19. # To redeploy a chart with existing PVC(s), the value must be set to Parallel to avoid deadlock
  20. podManagementPolicy: Parallel
  21. ## Aditional container env vars
  22. ##
  23. extraEnv: []
  24. ## Aditional container env from vars
  25. ##
  26. extraEnvFrom: []
  27. ## Additional container executable args
  28. ##
  29. extraArgs: []
  30. ## Additional container volumes (eg. for mounting certs from secrets)
  31. ##
  32. extraVolumes: []
  33. ## Additional container volume mounts (eg. for mounting certs from secrets)
  34. ##
  35. extraVolumeMounts: []
  36. persistence:
  37. enabled: false
  38. size: 20Mi
  39. ## If defined, volume.beta.kubernetes.io/storage-class: <storageClass>
  40. ## Default: volume.alpha.kubernetes.io/storage-class: default
  41. # storageClass: "-"
  42. accessMode: ReadWriteOnce
  43. ## Existing PersistentVolumeClaims
  44. ## The value is evaluated as a template
  45. ## So, for example, the name can depend on .Release or .Chart
  46. # existingClaim: ""
  47. resources: {}
  48. # limits:
  49. # cpu: 500m
  50. # memory: 512Mi
  51. # requests:
  52. # cpu: 500m
  53. # memory: 512Mi
  54. # Containers that run before the creation of EMQX containers. They can contain utilities or setup scripts.
  55. initContainers: {}
  56. # - name: mysql-probe
  57. # image: alpine
  58. # command: ["sh", "-c", "for i in $(seq 1 300); do nc -zvw1 mysql 3306 && exit 0 || sleep 3; done; exit 1"]
  59. ## EMQX configuration item, see the documentation (https://hub.docker.com/r/emqx/emqx)
  60. emqxConfig:
  61. EMQX_CLUSTER__K8S__APISERVER: "https://kubernetes.default.svc:443"
  62. ## The address type is used to extract host from k8s service.
  63. ## Value: ip | dns | hostname
  64. ## Note:Hostname is only supported after v4.0-rc.2
  65. EMQX_CLUSTER__K8S__ADDRESS_TYPE: "hostname"
  66. EMQX_CLUSTER__K8S__SUFFIX: "svc.cluster.local"
  67. ## if EMQX_CLUSTER__K8S__ADDRESS_TYPE eq dns
  68. # EMQX_CLUSTER__K8S__SUFFIX: "pod.cluster.local"
  69. ## --------------------------------------------------------------------
  70. ## [ACL](https://docs.emqx.io/broker/latest/en/advanced/acl-file.html)
  71. ## -type(who() :: all | binary() |
  72. ## {ipaddr, esockd_access:cidr()} |
  73. ## {client, binary()} |
  74. ## {user, binary()}).
  75. ## -type(access() :: subscribe | publish | pubsub).
  76. ## -type(topic() :: binary()).
  77. ## -type(rule() :: {allow, all} |
  78. ## {allow, who(), access(), list(topic())} |
  79. ## {deny, all} |
  80. ## {deny, who(), access(), list(topic())}).
  81. ## --------------------------------------------------------------------
  82. emqxAclConfig: >
  83. {allow, {user, "dashboard"}, subscribe, ["$SYS/#"]}.
  84. {allow, {ipaddr, "127.0.0.1"}, pubsub, ["$SYS/#", "#"]}.
  85. {deny, all, subscribe, ["$SYS/#", {eq, "#"}]}.
  86. {allow, all}.
  87. emqxLoadedPlugins: >
  88. {emqx_management, true}.
  89. {emqx_recon, true}.
  90. {emqx_retainer, true}.
  91. {emqx_dashboard, true}.
  92. {emqx_telemetry, true}.
  93. {emqx_rule_engine, true}.
  94. {emqx_bridge_mqtt, false}.
  95. emqxLoadedModules: >
  96. {emqx_mod_acl_internal, true}.
  97. {emqx_mod_presence, true}.
  98. {emqx_mod_delayed, false}.
  99. {emqx_mod_rewrite, false}.
  100. {emqx_mod_subscription, false}.
  101. {emqx_mod_topic_metrics, false}.
  102. ## EMQX Enterprise Edition requires manual creation of a Secret containing the licensed content. Write the name of Secret to the value of "emqxLicenseSecretName"
  103. ## Example:
  104. ## kubectl create secret generic emqx-license-secret-name --from-file=/path/to/emqx.lic
  105. emqxLicenseSecretName:
  106. service:
  107. ## Service type
  108. ##
  109. type: ClusterIP
  110. ## Port for MQTT
  111. ##
  112. mqtt: 1883
  113. ## Port for MQTT(SSL)
  114. ##
  115. mqttssl: 8883
  116. ## Port for mgmt API
  117. ##
  118. mgmt: 8081
  119. ## Port for WebSocket/HTTP
  120. ##
  121. ws: 8083
  122. ## Port for WSS/HTTPS
  123. ##
  124. wss: 8084
  125. ## Port for dashboard
  126. ##
  127. dashboard: 18083
  128. ## Port for dashboard HTTPS
  129. ##
  130. # dashboardtls: 18084
  131. ## Specify the nodePort(s) value for the LoadBalancer and NodePort service types.
  132. ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
  133. ##
  134. nodePorts:
  135. mqtt:
  136. mqttssl:
  137. mgmt:
  138. ws:
  139. wss:
  140. dashboard:
  141. dashboardtls:
  142. ## Set the LoadBalancer service type to internal only.
  143. ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
  144. ##
  145. # loadBalancerIP:
  146. ## Load Balancer sources
  147. ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
  148. ## Example:
  149. ## loadBalancerSourceRanges:
  150. ## - 10.10.10.0/24
  151. ##
  152. loadBalancerSourceRanges: []
  153. ## Set the ExternalIPs
  154. ##
  155. externalIPs: []
  156. ## Provide any additional annotations which may be required. Evaluated as a template
  157. ##
  158. annotations: {}
  159. nodeSelector: {}
  160. tolerations: []
  161. affinity: {}
  162. ingress:
  163. ## Ingress shared annotations
  164. annotations: {}
  165. ## ingress for EMQX Dashboard
  166. dashboard:
  167. enabled: false
  168. annotations: {}
  169. # kubernetes.io/ingress.class: nginx
  170. # kubernetes.io/tls-acme: "true"
  171. path: /
  172. hosts:
  173. - dashboard.emqx.local
  174. tls: []
  175. ## ingress for EMQX Mgmt API
  176. mgmt:
  177. enabled: false
  178. annotations: {}
  179. # kubernetes.io/ingress.class: nginx
  180. # kubernetes.io/tls-acme: "true"
  181. path: /
  182. hosts:
  183. - api.emqx.local
  184. tls: []
  185. ## ingress for EMQX Mgmt API
  186. wss:
  187. enabled: false
  188. # ingressClassName: nginx
  189. annotations: {}
  190. # Sample annotations for nginx-ingress community controller
  191. # nginx.ingress.kubernetes.io/rewrite-target: /mqtt$1 # Use to rewrite backend path if needed
  192. # nginx.ingress.kubernetes.io/backend-protocol: "http"
  193. # nginx.ingress.kubernetes.io/use-forwarded-headers: "true"
  194. # nginx.ingress.kubernetes.io/enable-real-ip: "true"
  195. # nginx.ingress.kubernetes.io/proxy-request-buffering: "off"
  196. # nginx.ingress.kubernetes.io/proxy-connect-timeout: "120"
  197. # nginx.ingress.kubernetes.io/proxy-http-version: "1.1"
  198. # nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
  199. # nginx.ingress.kubernetes.io/proxy-send-timeout: "3600"
  200. # nginx.ingress.kubernetes.io/use-proxy-protocol: "false"
  201. # nginx.ingress.kubernetes.io/proxy-protocol-header-timeout: "5s"
  202. path: /mqtt
  203. # path: /wss(\/.*)?
  204. hosts:
  205. - wss.emqx.local
  206. tls: []
  207. podSecurityContext:
  208. enabled: true
  209. fsGroup: 1000
  210. fsGroupChangePolicy: Always
  211. runAsUser: 1000
  212. supplementalGroups:
  213. - 1000
  214. containerSecurityContext:
  215. enabled: true
  216. runAsNonRoot: true
  217. runAsUser: 1000