gpt4 book ai didi

yaml - 在 Helm 中将 YAML 转换为字符串

转载 作者:行者123 更新时间:2023-12-05 08:50:16 29 4
gpt4 key购买 nike

我有一个 helm chart,用于部署具有 YAML 格式配置文件的应用程序。目前,我的 helm 图表使用以下代码:

values.yaml

databaseUser: "dbuser"

configFiles:
db_config_file.yaml: |-
databaseUser: {{ .Values.databaseUser }}
databasePort: 1234
[...]

[...]

templates/configmap.yaml

data:
{{- range $name, $config := .Values.configFiles }}
{{ $name }}: |-
{{ tpl $config $ | indent 4 }}
{{- end }}

这段代码让我可以很容易地改变 databaseUser 的值,但问题是如果我想改变 databasePort 的值,我必须重写整个像这样的配置:

configFiles:
db_config_file.yaml: |-
databaseUser: {{ .Values.databaseUser }}
databasePort: 9876

这很不方便。它是这样工作的,因为 db_config_file.yaml 内容被解释为字符串,因为我将它提供给仅接受字符串的 tpl 函数。

所以我的问题是,有没有办法在 Helm 模板中将 YAML 转换为字符串并获得以下内容:

databaseUser: "dbuser"

configFiles:
db_config_file.yaml: # Content is not a string block
databaseUser: {{ .Values.databaseUser }}
databasePort: 1234
[...]

[...]
data:
{{- range $name, $config := .Values.configFiles }}
{{ $name }}: |-
{{ tpl (<a toString function> $config) $ | indent 4 }}
{{- end }}

最佳答案

我能够使用下面的代码解决类似的问题

values.yaml

databaseUser: "dbuser"

configFiles: # Content is not a string block
db_config_file_yaml:
databaseUser: {{ .Values.databaseUser }}
databasePort: 1234
[...]

templates/configmap.yaml

data:
db_config_file.yaml: |
{{ .Values.configFiles.db_config_file_yaml | toYaml | indent 4 }}

引用:https://helm.sh/docs/chart_template_guide/yaml_techniques/#strings-in-yaml

关于yaml - 在 Helm 中将 YAML 转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62432632/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com