【问题标题】:Helm InterpolationHelm 插值
【发布时间】:2020-10-29 09:32:46
【问题描述】:

我正在像这样在 Helm Deployment 中设置以下环境变量。

name: SERVER_ENDPOINT
value: {{ .Values.server.dev_proxy_endpoint }}

但是想插值变量的环境部分(dev),像这样

name: SERVER_ENDPOINT
value: {{ .Values.server. {{ .Values.environment | lower }} _proxy_endpoint }}

这可能吗?

回复第一条评论

我通过在文件顶部创建一个新定义来尝试这样做:

{{- $value_path_to_endpoint := print ".Values.server." .Values.environment  "_proxy_endpoint" -}}

但这会呈现一个文字值,而不是指向值文件的上下文指针。

name: SERVER_ENDPOINT
value: {{ $value_path_to_endpoint}}

换句话说,$value_path_to_endpoint 返回:

".Values.server.dev_proxy_endpoint"

而不是

.Values.server.dev_proxy_endpoint

【问题讨论】:

标签: kubernetes kubernetes-helm


【解决方案1】:

您可以使用 Go text/template 和 Helm 的 printf function 中的 index 函数

env:
- name: SERVER_ENDPOINT
  value: {{ (index .Values.server (printf "%s_proxy_endpoint" ( .Values.environment | lower ))) }}

【讨论】:

    【解决方案2】:

    我快速环顾四周,看起来这是可能的。这篇文章在这里解释了其他一些人是如何做到这一点的:)

    Kubernetes Helm, combine two variables with a string in the middle

    【讨论】:

      猜你喜欢
      • 2018-08-02
      • 2022-08-11
      • 2021-05-09
      • 2022-01-17
      • 2018-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-16
      相关资源
      最近更新 更多