【问题标题】:helm values.yaml - use value from another nodehelm values.yaml - 使用来自另一个节点的值
【发布时间】:2019-08-07 16:09:20
【问题描述】:

所以例如我有

database:
  name: x-a2d9f4
  replicaCount: 1
  repository: mysql
  tag: 5.7
  pullPolicy: IfNotPresent
  tier: database

app:
  name: x-576a77
  replicaCount: 1
  repository: wordpress
  tag: 5.2-php7.3
  pullPolicy: IfNotPresent
  tier: frontend

global:
  namespace: x-c0ecdb9f

env:
  name: WORDPRESS_DB_HOST
  value:

我想做这样的事情

env:
  name: WORDPRESS_DB_HOST
  value: {{ .Values.database.name | lower }}

所有这些都是来自同一个values.yaml的示例

这在 Helm 中可行吗?

【问题讨论】:

    标签: kubernetes-helm


    【解决方案1】:

    是的,你可以做到这一点using the 'tpl' function

    tpl 函数允许开发人员将字符串作为模板内的模板进行评估。这对于将模板字符串作为值传递给图表或呈现外部配置文件很有用。语法:{{ tpl TEMPLATE_STRING VALUES }}

    values.yaml

    database:
      name: x-a2d9f4
    
    env:
      name: WORDPRESS_DB_HOST
      value: "{{ .Values.database.name | upper }}"
    

    configmap.yaml

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: {{ .Release.Name }}-configmap
    data:
      some: {{ tpl .Values.env.value . }}
    

    输出:

    > helm template .

    # Source: mychart/templates/configmap.yaml
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: release-name-configmap
    data:
      some: X-A2D9F4
    

    【讨论】:

    • values.yaml 你有{{ .Values.database ... }} 会访问一个名为database 的邻居节点吗?
    • 是的,它将访问上面的数据库部分,但是您需要将其包含在“”之间并在您的服务/部署定义中调用 tpl。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-15
    • 2020-04-15
    • 2020-03-31
    • 2016-09-17
    • 2022-11-30
    • 2018-04-11
    • 2021-12-18
    相关资源
    最近更新 更多