【问题标题】:Helm chart upgrade throws "error calling index: index of untyped nil"Helm 图表升级抛出“错误调用索引:未键入 nil 的索引”
【发布时间】:2021-08-13 19:13:56
【问题描述】:

我有以下秘密定义:

apiVersion: v1
kind: Secret
metadata:
    name: "{{ .Release.Name }}-psql"
type: Opaque
stringData:
  {{ if not .Release.IsUpgrade }}
  dbReplPassword: {{ (randAlphaNum 23) | quote }}
  {{ else  }}
  dbReplPassword: {{ index (lookup "v1" "Secret" .Release.Namespace "{{ .Release.Name }}-psql").data "dbReplPassword" | b64dec | quote }}
  {{ end }}

在初次安装我的 helm chart 时,一切正常。但是当我升级我的掌舵图时,它显示了以下错误:

pgsql.yaml:11:21: 在执行“helm-chart/templates/pgsql.yaml” :错误调用索引:索引 无类型无

我猜问题是查找函数的“{{ .Release.Name }}-psql”部分,但我不知道如何解决这个问题。有人知道我该如何解决吗?

【问题讨论】:

    标签: kubernetes kubernetes-helm


    【解决方案1】:

    你不能像这样嵌套 Helm 模板。标准的Go text/template language 包含一个printf 函数,您可以使用该函数从参数构造字符串,因此请改用它:

    ... (lookup "v1" "Secret" .Release.Namespace (printf "%s-psql" .Release.Name)) ...
    

    将这个复杂的表达式分解为多个变量会更清楚:

    {{- $secretName := printf "%s-psql" .Release.Name }}
    {{- $secret := lookup "v1" "Secret" .Release.Namespace $secretName }}
    dbReplPassword: {{ $secret.data.dbReplPassword | b64dec | quote }}
    

    【讨论】:

      猜你喜欢
      • 2022-07-26
      • 2022-11-07
      • 1970-01-01
      • 2011-10-15
      • 2013-11-09
      • 2020-12-15
      • 2014-06-01
      • 1970-01-01
      • 2021-08-31
      相关资源
      最近更新 更多