values.yaml 5.7 KB

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