如何从 helm 模板中的 json 文件中读取键的值

问题描述 投票:0回答:0

我正在创建一个 github 操作步骤

.
.
.
steps:
  name: export-secrets
  run: |
    echo '${{ toJSON(secrets) }}' >> gh-secrets.json
.
.
.

假设 gh-secrets.json 文件如下:

# gh-secrets.json
{"A": "a1", "B": "b1", "C": "c1"}

然后我将拉出 helm charts 并解压它们,然后将

gh-secrets.json
移动到解压目录中。我这样做的原因是根据 helm 文档,“无法访问 helm 应用程序子图之外的文件,包括父图的文件”

假设我在解压目录中有这些文件

# values.yaml
secrets:
  - A
  - B

我有

templates/secrets.yaml

apiVersion: v1
kind: Secret
metadata:
  name: {{ .Release.Name }}-secret
data:
    {{- range .Values.secrtes }}
      {{ . }}: {{ $.Files.Get "gh-secrets.json" | toJson }}
    {{- end }}

这是结果:

# Source: mktplc-catalog/templates/secret.yaml
apiVersion: v1
kind: Secret
metadata:
  name: release-name-secret
data:
      A: "'{\"A\": \"a1\", \"B\": \"b1\", \"C\": \"c1\"}'"
      B: "'{\"A\": \"a1\", \"B\": \"b1\", \"C\": \"c1\"}'"

但我希望它成为

# Source: mktplc-catalog/templates/secret.yaml
apiVersion: v1
kind: Secret
metadata:
  name: release-name-secret
data:
      A: "a1"
      B: "b1"

我怎样才能做到这一点?

go kubernetes github-actions kubernetes-helm
© www.soinside.com 2019 - 2024. All rights reserved.