首页 > 解决方案 > 舵图。如何传递带有多个点的环境值?

问题描述

在 deployment.yaml 中包含条件:

          {{- if or $.Values.env $.Values.envSecrets }}
          env:
            {{- range $key, $value := $.Values.env }}
            - name: {{ $key }}
              value: {{ $value | quote }}
            {{- end }}
            {{- range $key, $secret := $.Values.envSecrets }}
            - name: {{ $key }}
              valueFrom:
                secretKeyRef:
                  name: {{ $secret }}
                  key: {{ $key | quote }}
            {{- end }}
          {{- end }}

如果我通过 $key = helm install NAME nexus/stand --set env.server.servlet.context-path=/bpm/router-app,那么我不会得到我所期望的:

Containers:

...

    Environment:
      server:   map[servlet:map[context-path:/bpm/router-app]]

我怎样才能解决这个问题并获得如下环境:

    Environment:
      server.servlet.context-path:   /bpm/router-app

标签: kuberneteskubernetes-helm

解决方案


使用双反斜杠。

helm install NAME nexus/stand --set env.server\\.servlet\\.context-path=/bpm/router-app

这相当于:

env:
  server.servlet.context-path: /bpm/router-app

这对于注释特别有用。

或者,您应该能够使用引号和单反斜杠。

helm install NAME nexus/stand --set 'env.server\.servlet\.context-path'=/bpm/router-app

推荐阅读