【问题标题】:Helm yaml keys from values.yaml来自 values.yaml 的 Helm yaml 键
【发布时间】:2018-05-26 17:20:14
【问题描述】:

我想动态创建一个 yaml KEY(不是值)。

在我的values.yaml

failoverip1: 0.0.0.0` (<- this is only a demo IP)

在我的templates/configmap.yaml 我有这个:

apiVersion: v1
kind: ConfigMap
metadata:
  name: vip-configmap
data:
  {{- .Values.failoverip1 -}}: {{ .Release.Namespace -}}/{{- .Values.target -}}
     ^^^^^^^^^^^^^^^^^^^^^----> here should be an IP address from values.yaml

{{ .Release.Namespace -}}/{{- .Values.target -}} 渲染成功。

但如果我将{{- .Values.failoverip1 -}} 添加到关键部分,它不会呈现任何内容。 (没有什么意思,整个data: 块,不会被渲染。

这是我运行helm install --name hetzner-failover .时的错误信息

Error: YAML parse error on hetzner-failover/templates/configmap-ip.yaml: error converting YAML to JSON: yaml: line 4: mapping values are not allowed in this context

是不是不可以做一个

  • 关键动态?
  • 如果没有,怎么绕过去?

这是我所说的回购:

https://github.com/exocode/helm-charts/blob/master/hetzner-failover/templates/configmap-ip.yaml

【问题讨论】:

  • 尝试时会发生什么?
  • 但要回答您的问题:模板仅被视为标准文本。键和值对于模板引擎来说并不特殊,因此任何东西都可以是动态的。
  • @Flimzy。那么解析任何文本应该没有问题吗?我现在在问题中添加了错误:Error: YAML parse error on hetzner-failover/templates/configmap-ip.yaml: error converting YAML to JSON: yaml: line 4: mapping values are not allowed in this context
  • 模板引擎解析任何文本都没有问题。不过,Helm 仍然希望您生成有效的 YAML(该错误表明您没有这样做)。
  • 我找到了解决方案:它是领先的 - 截断了 intedation :-) {{ .Values.failoverip1 | indent 2 -}}

标签: yaml go-templates kubernetes-helm


【解决方案1】:

错误似乎是,领先的- 被剪掉了。

所以正确的方法是去掉那个减号:

之前:

{{- .Values.failoverip1 | indent 2 -}}

之后:

{{ .Values.failoverip1 | indent 2 -}}

yaml 现在是:

apiVersion: v1
kind: ConfigMap
metadata:
  name: vip-configmap
data:
{{ .Values.failoverip1 | indent 2 -}}: {{ .Release.Namespace -}}/{{- .Values.target -}} # add your config map here. must map the base64 encoded IP in secrets.yaml

而渲染的结果是:

kubectl get configmap -o yaml
apiVersion: v1
items:
- apiVersion: v1
  data:
    0.0.0.0: default/nginx# add your config map here. must map the base64 encoded
      IP in secrets.yaml
  kind: ConfigMap

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-30
    • 2021-12-18
    • 2021-06-17
    • 2022-12-17
    • 2020-03-31
    • 2020-04-15
    • 2022-08-03
    • 1970-01-01
    相关资源
    最近更新 更多