values.yaml 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  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. persistence:
  18. enabled: false
  19. size: 20Mi
  20. ## If defined, volume.beta.kubernetes.io/storage-class: <storageClass>
  21. ## Default: volume.alpha.kubernetes.io/storage-class: default
  22. # storageClass: "-"
  23. accessMode: ReadWriteOnce
  24. ## Existing PersistentVolumeClaims
  25. ## The value is evaluated as a template
  26. ## So, for example, the name can depend on .Release or .Chart
  27. # existingClaim: ""
  28. resources: {}
  29. # limits:
  30. # cpu: 500m
  31. # memory: 512Mi
  32. # requests:
  33. # cpu: 500m
  34. # memory: 512Mi
  35. # Containers that run before the creation of EMQX containers. They can contain utilities or setup scripts.
  36. initContainers: {}
  37. # - name: mysql-probe
  38. # image: alpine
  39. # command: ["sh", "-c", "for i in $(seq 1 300); do nc -zvw1 mysql 3306 && exit 0 || sleep 3; done; exit 1"]
  40. ## EMQX configuration item, see the documentation (https://hub.docker.com/r/emqx/emqx)
  41. emqxConfig:
  42. EMQX_CLUSTER__K8S__APISERVER: "https://kubernetes.default.svc:443"
  43. ## The address type is used to extract host from k8s service.
  44. ## Value: ip | dns | hostname
  45. ## Note:Hostname is only supported after v4.0-rc.2
  46. EMQX_CLUSTER__K8S__ADDRESS_TYPE: "hostname"
  47. EMQX_CLUSTER__K8S__SUFFIX: "svc.cluster.local"
  48. ## if EMQX_CLUSTER__K8S__ADDRESS_TYPE eq dns
  49. # EMQX_CLUSTER__K8S__SUFFIX: "pod.cluster.local"
  50. ## --------------------------------------------------------------------
  51. ## [ACL](https://docs.emqx.io/broker/latest/en/advanced/acl-file.html)
  52. ## -type(who() :: all | binary() |
  53. ## {ipaddr, esockd_access:cidr()} |
  54. ## {client, binary()} |
  55. ## {user, binary()}).
  56. ## -type(access() :: subscribe | publish | pubsub).
  57. ## -type(topic() :: binary()).
  58. ## -type(rule() :: {allow, all} |
  59. ## {allow, who(), access(), list(topic())} |
  60. ## {deny, all} |
  61. ## {deny, who(), access(), list(topic())}).
  62. ## --------------------------------------------------------------------
  63. emqxAclConfig: >
  64. {allow, {user, "dashboard"}, subscribe, ["$SYS/#"]}.
  65. {allow, {ipaddr, "127.0.0.1"}, pubsub, ["$SYS/#", "#"]}.
  66. {deny, all, subscribe, ["$SYS/#", {eq, "#"}]}.
  67. {allow, all}.
  68. emqxLoadedPlugins: >
  69. {emqx_management, true}.
  70. {emqx_recon, true}.
  71. {emqx_retainer, true}.
  72. {emqx_dashboard, true}.
  73. {emqx_telemetry, true}.
  74. {emqx_rule_engine, true}.
  75. {emqx_bridge_mqtt, false}.
  76. emqxLoadedModules: >
  77. {emqx_mod_presence, true}.
  78. {emqx_mod_delayed, false}.
  79. {emqx_mod_rewrite, false}.
  80. {emqx_mod_subscription, false}.
  81. {emqx_mod_topic_metrics, false}.
  82. ## EMQX Enterprise Edition requires manual creation of a Secret containing the licensed content. Write the name of Secret to the value of "emqxLicneseSecretName"
  83. ## Example:
  84. ## kubectl create secret generic emqx-license-secret-name --from-file=/path/to/emqx.lic
  85. emqxLicneseSecretName:
  86. service:
  87. ## Service type
  88. ##
  89. type: ClusterIP
  90. ## Port for MQTT
  91. ##
  92. mqtt: 1883
  93. ## Port for MQTT(SSL)
  94. ##
  95. mqttssl: 8883
  96. ## Port for mgmt API
  97. ##
  98. mgmt: 8081
  99. ## Port for WebSocket/HTTP
  100. ##
  101. ws: 8083
  102. ## Port for WSS/HTTPS
  103. ##
  104. wss: 8084
  105. ## Port for dashboard
  106. ##
  107. dashboard: 18083
  108. ## Port for dashboard HTTPS
  109. ##
  110. # dashboardtls: 18084
  111. ## Specify the nodePort(s) value for the LoadBalancer and NodePort service types.
  112. ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
  113. ##
  114. nodePorts:
  115. mqtt:
  116. mqttssl:
  117. mgmt:
  118. ws:
  119. wss:
  120. dashboard:
  121. dashboardtls:
  122. ## Set the LoadBalancer service type to internal only.
  123. ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
  124. ##
  125. # loadBalancerIP:
  126. ## Load Balancer sources
  127. ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
  128. ## Example:
  129. ## loadBalancerSourceRanges:
  130. ## - 10.10.10.0/24
  131. ##
  132. loadBalancerSourceRanges: []
  133. ## Provide any additional annotations which may be required. Evaluated as a template
  134. ##
  135. annotations: {}
  136. nodeSelector: {}
  137. tolerations: []
  138. affinity: {}
  139. ingress:
  140. ## ingress for EMQX Dashboard
  141. dashboard:
  142. enabled: false
  143. annotations: {}
  144. # kubernetes.io/ingress.class: nginx
  145. # kubernetes.io/tls-acme: "true"
  146. path: /
  147. hosts:
  148. - dashboard.emqx.local
  149. tls: []
  150. ## ingress for EMQX Mgmt API
  151. mgmt:
  152. enabled: false
  153. annotations: {}
  154. # kubernetes.io/ingress.class: nginx
  155. # kubernetes.io/tls-acme: "true"
  156. path: /
  157. hosts:
  158. - api.emqx.local
  159. tls: []
  160. podSecurityContext:
  161. enabled: true
  162. fsGroup: 1000
  163. fsGroupChangePolicy: Always
  164. runAsUser: 1000
  165. supplementalGroups:
  166. - 1000
  167. containerSecurityContext:
  168. enabled: true
  169. runAsNonRoot: true
  170. runAsUser: 1000