values.yaml 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  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. # The name of a secret in the same kubernetes namespace which contains values to
  16. # be added to the environment (must be manually created)
  17. # This can be useful for passwords and logins, etc.
  18. # envFromSecret: "emqx-secrets"
  19. ## Forces the recreation of pods during helm upgrades. This can be useful to update configuration values even if the container image did not change.
  20. recreatePods: false
  21. podAnnotations: {}
  22. # Pod deployment policy
  23. # value: OrderedReady | Parallel
  24. # To redeploy a chart with existing PVC(s), the value must be set to Parallel to avoid deadlock
  25. podManagementPolicy: Parallel
  26. persistence:
  27. enabled: false
  28. size: 20Mi
  29. storageClassName: ""
  30. accessMode: ReadWriteOnce
  31. ## Existing PersistentVolumeClaims
  32. ## The value is evaluated as a template
  33. ## So, for example, the name can depend on .Release or .Chart
  34. # existingClaim: ""
  35. resources: {}
  36. # limits:
  37. # cpu: 500m
  38. # memory: 512Mi
  39. # requests:
  40. # cpu: 500m
  41. # memory: 512Mi
  42. # Containers that run before the creation of EMQX containers. They can contain utilities or setup scripts.
  43. initContainers: {}
  44. # - name: sysctl
  45. # image: busybox
  46. # securityContext:
  47. # runAsUser: 0
  48. # runAsGroup: 0
  49. # capabilities:
  50. # add:
  51. # - SYS_ADMIN
  52. # drop:
  53. # - ALL
  54. # command:
  55. # - /bin/sh
  56. # - -c
  57. # - |
  58. # mount -o remount rw /proc/sys
  59. # sysctl -w net.core.somaxconn=65535
  60. # sysctl -w net.ipv4.ip_local_port_range="1024 65535"
  61. # sysctl -w kernel.core_uses_pid=0
  62. # sysctl -w net.ipv4.tcp_tw_reuse=1
  63. # sysctl -w fs.nr_open=1000000000
  64. # sysctl -w fs.file-max=1000000000
  65. # sysctl -w net.ipv4.ip_local_port_range='1025 65534'
  66. # sysctl -w net.ipv4.udp_mem='74583000 499445000 749166000'
  67. # sysctl -w net.ipv4.tcp_max_sync_backlog=163840
  68. # sysctl -w net.core.netdev_max_backlog=163840
  69. # sysctl -w net.core.optmem_max=16777216
  70. # sysctl -w net.ipv4.tcp_rmem='1024 4096 16777216'
  71. # sysctl -w net.ipv4.tcp_wmem='1024 4096 16777216'
  72. # sysctl -w net.ipv4.tcp_max_tw_buckets=1048576
  73. # sysctl -w net.ipv4.tcp_fin_timeout=15
  74. # sysctl -w net.core.rmem_default=262144000
  75. # sysctl -w net.core.wmem_default=262144000
  76. # sysctl -w net.core.rmem_max=262144000
  77. # sysctl -w net.core.wmem_max=262144000
  78. # sysctl -w net.ipv4.tcp_mem='378150000 504200000 756300000'
  79. # sysctl -w net.netfilter.nf_conntrack_max=1000000
  80. # sysctl -w net.netfilter.nf_conntrack_tcp_timeout_time_wait=30
  81. ## EMQX configuration item, see the documentation (https://hub.docker.com/r/emqx/emqx)
  82. emqxConfig:
  83. EMQX_CLUSTER__DISCOVERY_STRATEGY: "dns"
  84. EMQX_CLUSTER__DNS__NAME: "{{ .Release.Name }}-headless.{{ .Release.Namespace }}.svc.cluster.local"
  85. EMQX_CLUSTER__DNS__RECORD_TYPE: "srv"
  86. # EMQX_CLUSTER__DISCOVERY_STRATEGY: "k8s"
  87. # EMQX_CLUSTER__K8S__APISERVER: "https://kubernetes.default.svc:443"
  88. # EMQX_CLUSTER__K8S__SERVICE_NAME: "{{ .Release.Name }}-headless"
  89. # EMQX_CLUSTER__K8S__NAMESPACE: "{{ .Release.Namespace }}"
  90. ## The address type is used to extract host from k8s service.
  91. ## Value: ip | dns | hostname
  92. ## Note:Hostname is only supported after v4.0-rc.2
  93. EMQX_CLUSTER__K8S__ADDRESS_TYPE: "hostname"
  94. EMQX_CLUSTER__K8S__SUFFIX: "svc.cluster.local"
  95. ## if EMQX_CLUSTER__K8S__ADDRESS_TYPE eq dns
  96. # EMQX_CLUSTER__K8S__SUFFIX: "pod.cluster.local"
  97. EMQX_DASHBOARD__DEFAULT_USERNAME: "admin"
  98. EMQX_DASHBOARD__DEFAULT_PASSWORD: "public"
  99. ## EMQX Enterprise Edition requires manual creation of a Secret containing the licensed content. Write the name of Secret to the value of "emqxLicenseSecretName"
  100. ## Example:
  101. ## kubectl create secret generic emqx-license-secret-name --from-file=/path/to/emqx.lic
  102. emqxLicenseSecretName:
  103. service:
  104. ## Service type
  105. ##
  106. type: ClusterIP
  107. ## Port for MQTT
  108. ##
  109. mqtt: 1883
  110. ## Port for MQTT(SSL)
  111. ##
  112. mqttssl: 8883
  113. ## Port for mgmt API
  114. ##
  115. mgmt: 8081
  116. ## Port for WebSocket/HTTP
  117. ##
  118. ws: 8083
  119. ## Port for WSS/HTTPS
  120. ##
  121. wss: 8084
  122. ## Port for dashboard
  123. ##
  124. dashboard: 18083
  125. ## Port for dashboard HTTPS
  126. ##
  127. # dashboardtls: 18084
  128. ## Specify the nodePort(s) value for the LoadBalancer and NodePort service types.
  129. ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
  130. ##
  131. nodePorts:
  132. mqtt:
  133. mqttssl:
  134. mgmt:
  135. ws:
  136. wss:
  137. dashboard:
  138. dashboardtls:
  139. ## Set the LoadBalancer service type to internal only.
  140. ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
  141. ##
  142. # loadBalancerIP:
  143. ## Load Balancer sources
  144. ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
  145. ## Example:
  146. ## loadBalancerSourceRanges:
  147. ## - 10.10.10.0/24
  148. ##
  149. loadBalancerSourceRanges: []
  150. ## Set the ExternalIPs
  151. ##
  152. externalIPs: []
  153. ## Provide any additional annotations which may be required. Evaluated as a template
  154. ##
  155. annotations: {}
  156. nodeSelector: {}
  157. tolerations: []
  158. affinity: {}
  159. ingress:
  160. ## ingress for EMQX Dashboard
  161. dashboard:
  162. enabled: false
  163. # ingressClassName: nginx
  164. annotations: {}
  165. # kubernetes.io/ingress.class: nginx
  166. # kubernetes.io/tls-acme: "true"
  167. path: /
  168. pathType: ImplementationSpecific
  169. hosts:
  170. - dashboard.emqx.local
  171. tls: []
  172. podSecurityContext:
  173. enabled: true
  174. fsGroup: 1000
  175. fsGroupChangePolicy: Always
  176. runAsUser: 1000
  177. supplementalGroups:
  178. - 1000
  179. containerSecurityContext:
  180. enabled: true
  181. runAsNonRoot: true
  182. runAsUser: 1000
  183. metrics:
  184. enabled: false
  185. type: prometheus
  186. ssl:
  187. enabled: false
  188. useExisting: false
  189. existingName: emqx-tls
  190. dnsnames: {}
  191. issuer:
  192. name: letsencrypt-dns
  193. kind: ClusterIssuer