Helm部署如何传入插件环境变量参数

环境信息

  • EMQ X 版本:4.3.8
  • 操作系统及版本:K8S 1.20
  • 其他

问题描述

helm chart部署的时候可以传入环境变量修改emqx.conf, 例如
emqxConfig:
EMQX_CLUSTER__K8S__ADDRESS_TYPE: hostname
EMQX_CLUSTER__K8S__APISERVER: https://kubernetes.default.svc:443
EMQX_CLUSTER__K8S__SUFFIX: svc.cluster.local

请问如何传入插件的环境变量从而可以修改插件的参数设置,例如emqx_management.conf
修改默认变量值
management.default_application.id = admin

试图通过
emqxConfig:
EMQX_MANAGEMENT__DEFAULT_APPLICATION__ID: “test”

但是修改没有生效。

配置文件及日志

https://hub.docker.com/r/emqx/emqx
可以看下这里的说明,DEFAULT 和 APPLICATION 之前应该是两个下划线:EMQX_MANAGEMENT__DEFAULT__APPLICATION__ID

有试过,还是不能修改。而且根据原始参数 management.default_application.id = admin, default与application之间应该是单个_ 这个按理说不需要变成两个_. 我也去试了其他的参数也不行。甚至通过https://hub.docker.com/r/emqx/emqx 的例子我还改了redis的某些参数也没有成功:

emqxConfig:

  EMQX_CLUSTER__K8S__ADDRESS_TYPE: hostname
  EMQX_CLUSTER__K8S__APISERVER: https://kubernetes.default.svc:443
  EMQX_CLUSTER__K8S__SUFFIX: svc.cluster.local
  EMQX_AUTH__REDIS__PASSWORD: "test"

emqxLoadedPlugins: |
  {emqx_auth_redis, true}. {emqx_management, true}.

打印出来emqx_auth_redis.conf也没有修改参数

bash-5.0$ cat emqx_auth_redis.conf | grep -i password
## Redis password.
## auth.redis.password =

发现环境变量生效了,但是config文件没有改动。所以我觉得机制应该是先读取的环境变量,然后在查的config文件。问题已经基本解决,多谢!

@t1ger
您好,请教一下使用helm部署emqx如果想启用redis acl,只需要修改values.yaml文件是吧?

配置文件

通过helm install . 安装之后就立马生效了吗