在configmap中使用kubernetes机密

在configmap中使用kubernetes机密,kubernetes,kubernetes-helm,Kubernetes,Kubernetes Helm,我正在Kubernetes集群上使用头盔,并安装了马厩。我想将数据从Logstash推送到rabbitmq中的一个交换机。我正试着用这个 rabbitmq ha图表创建了一个包含连接密码的密码。我希望能够获得该密码并将其包含在logstash配置中,以便logstash可以连接到该密码 logstash的ConfigMap使用值文件中的项进行模板化 outputs: main: |- output { rabbitmq { exchan

我正在Kubernetes集群上使用头盔,并安装了马厩。我想将数据从Logstash推送到rabbitmq中的一个交换机。我正试着用这个

rabbitmq ha图表创建了一个包含连接密码的密码。我希望能够获得该密码并将其包含在logstash配置中,以便logstash可以连接到该密码

logstash的ConfigMap使用值文件中的项进行模板化

  outputs:
    main: |-
      output {
        rabbitmq {
          exchange => "exchange_name"
          exchange_type => "fanout"
          host => "rabbitmq-ha.default.svc.cluster.local"
          password => "????"
        }
      }
我不想在values文件中硬编码密码,因为这对安全性没有好处,这意味着为每个环境复制配置。我找不到让logstash从环境变量读取密码的方法

人们通常是怎么做的


我可以用来存储整个
输出
配置,并包括硬编码密码。这将避免在我的存储库中使用纯文本密码,但仍然不是最好的方法。

结果表明,至少从logstash的5.0版开始,可以让logstash从环境变量中读取值

所以我的值文件看起来像

  outputs:
    main: |-
      output {
        rabbitmq {
          exchange => "exchange_name"
          exchange_type => "fanout"
          host => "rabbitmq-ha.default.svc.cluster.local"
          password => "${RMQ_PASSWORD}"
        }
      }
logstash图表允许使用
extranv
值将环境变量添加到statefulset。extraEnv允许值来自机密

  extraEnv:
    - name: RMQ_PASSWORD
      valueFrom:
        secretKeyRef:
          name: rabbitmq-ha
          key: rabbitmq-password

事实证明,至少从logstash的5.0版开始,可以让logstash从环境变量读取值

所以我的值文件看起来像

  outputs:
    main: |-
      output {
        rabbitmq {
          exchange => "exchange_name"
          exchange_type => "fanout"
          host => "rabbitmq-ha.default.svc.cluster.local"
          password => "${RMQ_PASSWORD}"
        }
      }
logstash图表允许使用
extranv
值将环境变量添加到statefulset。extraEnv允许值来自机密

  extraEnv:
    - name: RMQ_PASSWORD
      valueFrom:
        secretKeyRef:
          name: rabbitmq-ha
          key: rabbitmq-password