values.yaml 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283
  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. # Overrides the image tag whose default is the chart appVersion.
  10. tag: ""
  11. ## Optionally specify an array of imagePullSecrets.
  12. ## Secrets must be manually created in the namespace.
  13. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
  14. ##
  15. # pullSecrets:
  16. # - myRegistryKeySecretName
  17. serviceAccount:
  18. # Specifies whether a service account should be created
  19. # If set false, means you need create service account by yourself
  20. create: true
  21. # The name of the service account to use.
  22. # If not set and create is true, a name is generated using the fullname template
  23. name: ""
  24. # Annotations to add to the service account
  25. annotations: {}
  26. # The name of a secret in the same kubernetes namespace which contains values to
  27. # be added to the environment (must be manually created)
  28. # This can be useful for passwords and logins, etc.
  29. # envFromSecret: "emqx-secrets"
  30. ## Forces the recreation of pods during helm upgrades. This can be useful to update configuration values even if the container image did not change.
  31. recreatePods: false
  32. ## Sets the minReadySeconds parameter on the stateful set. This can be used to add delay between restart / updates between the single pods.
  33. minReadySeconds:
  34. ## Sets the priorityClassName parameter on the pods. This can be used to run the pods with increased priority.
  35. priorityClassName:
  36. clusterDomain: cluster.local
  37. ## Custom annotations to be added to the pods
  38. podAnnotations: {}
  39. ## Custom labels to be added to the pods
  40. podLabels: {}
  41. # Pod deployment policy
  42. # value: OrderedReady | Parallel
  43. # To redeploy a chart with existing PVC(s), the value must be set to Parallel to avoid deadlock
  44. podManagementPolicy: Parallel
  45. persistence:
  46. enabled: false
  47. size: 20Mi
  48. storageClassName: ""
  49. accessMode: ReadWriteOnce
  50. ## Existing PersistentVolumeClaims
  51. ## The value is evaluated as a template
  52. ## So, for example, the name can depend on .Release or .Chart
  53. # existingClaim: ""
  54. resources: {}
  55. # limits:
  56. # cpu: 500m
  57. # memory: 512Mi
  58. # requests:
  59. # cpu: 500m
  60. # memory: 512Mi
  61. extraVolumeMounts: []
  62. ## Additional volumeMounts to the default backend container.
  63. # - name: my-owner-acl
  64. # mountPath: /opt/emqx/etc/acl.conf
  65. # subPath: acl.conf
  66. extraVolumes: []
  67. ## Additional volumes to the default backend pod.
  68. # - name: my-owner-acl
  69. # secret: fake-acl-conf
  70. # Containers that run before the creation of EMQX containers. They can contain utilities or setup scripts.
  71. initContainers: {}
  72. # - name: sysctl
  73. # image: busybox
  74. # securityContext:
  75. # runAsUser: 0
  76. # runAsGroup: 0
  77. # capabilities:
  78. # add:
  79. # - SYS_ADMIN
  80. # drop:
  81. # - ALL
  82. # command:
  83. # - /bin/sh
  84. # - -c
  85. # - |
  86. # mount -o remount rw /proc/sys
  87. # sysctl -w net.core.somaxconn=65535
  88. # sysctl -w net.ipv4.ip_local_port_range="1024 65535"
  89. # sysctl -w kernel.core_uses_pid=0
  90. # sysctl -w net.ipv4.tcp_tw_reuse=1
  91. # sysctl -w fs.nr_open=1000000000
  92. # sysctl -w fs.file-max=1000000000
  93. # sysctl -w net.ipv4.ip_local_port_range='1025 65534'
  94. # sysctl -w net.ipv4.udp_mem='74583000 499445000 749166000'
  95. # sysctl -w net.ipv4.tcp_max_sync_backlog=163840
  96. # sysctl -w net.core.netdev_max_backlog=163840
  97. # sysctl -w net.core.optmem_max=16777216
  98. # sysctl -w net.ipv4.tcp_rmem='1024 4096 16777216'
  99. # sysctl -w net.ipv4.tcp_wmem='1024 4096 16777216'
  100. # sysctl -w net.ipv4.tcp_max_tw_buckets=1048576
  101. # sysctl -w net.ipv4.tcp_fin_timeout=15
  102. # sysctl -w net.core.rmem_default=262144000
  103. # sysctl -w net.core.wmem_default=262144000
  104. # sysctl -w net.core.rmem_max=262144000
  105. # sysctl -w net.core.wmem_max=262144000
  106. # sysctl -w net.ipv4.tcp_mem='378150000 504200000 756300000'
  107. # sysctl -w net.netfilter.nf_conntrack_max=1000000
  108. # sysctl -w net.netfilter.nf_conntrack_tcp_timeout_time_wait=30
  109. ## EMQX configuration item, see the documentation (https://hub.docker.com/r/emqx/emqx)
  110. emqxConfig:
  111. EMQX_CLUSTER__DISCOVERY_STRATEGY: "dns"
  112. EMQX_DASHBOARD__DEFAULT_USERNAME: "admin"
  113. EMQX_DASHBOARD__DEFAULT_PASSWORD: "public"
  114. ## EMQX Enterprise Edition requires manual creation of a Secret containing the licensed content. Write the name of Secret to the value of "emqxLicenseSecretName"
  115. ## Example:
  116. ## kubectl create secret generic emqx-license-secret-name --from-file=/path/to/emqx.lic
  117. emqxLicenseSecretName:
  118. service:
  119. ## Service type
  120. ##
  121. type: ClusterIP
  122. ## The cluster IP if one wants to customize it to a fixed value
  123. ##
  124. clusterIP: None
  125. ## Port for MQTT
  126. ##
  127. mqtt: 1883
  128. ## Port for MQTT(SSL)
  129. ##
  130. mqttssl: 8883
  131. ## Port for WebSocket/HTTP
  132. ##
  133. ws: 8083
  134. ## Port for WSS/HTTPS
  135. ##
  136. wss: 8084
  137. ## Port for dashboard and API
  138. ##
  139. dashboard: 18083
  140. ## Port for dashboard and API over HTTPS
  141. ##
  142. # dashboardtls: 18084
  143. ## Specify the nodePort(s) value for the LoadBalancer and NodePort service types.
  144. ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
  145. ##
  146. nodePorts:
  147. mqtt:
  148. mqttssl:
  149. mgmt:
  150. ws:
  151. wss:
  152. dashboard:
  153. dashboardtls:
  154. ## Specifies the load balancer implementation this Service belongs to.
  155. ## Once set, it can not be changed.
  156. ##
  157. # loadBalancerClass:
  158. ## Set the LoadBalancer service type to internal only.
  159. ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
  160. ##
  161. # loadBalancerIP:
  162. ## Load Balancer sources
  163. ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
  164. ## Example:
  165. ## loadBalancerSourceRanges:
  166. ## - 10.10.10.0/24
  167. ##
  168. loadBalancerSourceRanges: []
  169. ## Set the ExternalIPs
  170. ##
  171. externalIPs: []
  172. ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints.
  173. ## There are two available options: Cluster (default) and Local.
  174. ## Cluster obscures the client source IP and may cause a second hop to another node, but should have good overall load-spreading.
  175. ## Local preserves the client source IP and avoids a second hop for LoadBalancer and NodePort type Services, but risks potentially imbalanced traffic spreading.
  176. ##
  177. externalTrafficPolicy: "Cluster"
  178. ## Provide any additional annotations which may be required. Evaluated as a template
  179. ##
  180. annotations: {}
  181. labels: {}
  182. nodeSelector: {}
  183. tolerations: []
  184. affinity: {}
  185. topologySpreadConstraints: []
  186. ingress:
  187. ## ingress for EMQX Dashboard
  188. dashboard:
  189. enabled: false
  190. # ingressClassName: nginx
  191. annotations: {}
  192. # kubernetes.io/ingress.class: nginx
  193. # kubernetes.io/tls-acme: "true"
  194. path: /
  195. pathType: ImplementationSpecific
  196. hosts:
  197. - dashboard.emqx.local
  198. tls: []
  199. ## ingress for MQTT
  200. mqtt:
  201. enabled: false
  202. # ingressClassName: haproxy
  203. annotations: {}
  204. # kubernetes.io/ingress.class: haproxy
  205. # kubernetes.io/tls-acme: "true"
  206. # haproxy-ingress.github.io/tcp-service-port: "8883"
  207. # haproxy-ingress.github.io/proxy-protocol: "v2"
  208. path: /
  209. pathType: ImplementationSpecific
  210. hosts:
  211. - mqtt.emqx.local
  212. tls: []
  213. ws:
  214. enabled: false
  215. # ingressClassName: haproxy
  216. annotations: {}
  217. # kubernetes.io/ingress.class: haproxy
  218. # kubernetes.io/tls-acme: "true"
  219. # haproxy-ingress.github.io/tcp-service-port: "8883"
  220. # haproxy-ingress.github.io/proxy-protocol: "v2"
  221. path: /mqtt
  222. pathType: ImplementationSpecific
  223. hosts:
  224. - mqtt.emqx.local
  225. tls: []
  226. podSecurityContext:
  227. enabled: true
  228. fsGroup: 1000
  229. fsGroupChangePolicy: Always
  230. runAsUser: 1000
  231. supplementalGroups:
  232. - 1000
  233. containerSecurityContext:
  234. enabled: true
  235. runAsNonRoot: true
  236. runAsUser: 1000
  237. metrics:
  238. enabled: false
  239. type: prometheus
  240. ssl:
  241. enabled: false
  242. useExisting: false
  243. existingName: emqx-tls
  244. dnsnames: []
  245. commonName:
  246. issuer:
  247. name: letsencrypt-dns
  248. kind: ClusterIssuer
  249. ## Setting PodDisruptionBudget.
  250. ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
  251. ##
  252. pdb:
  253. enabled: false
  254. maxUnavailable: 1