使用 gloo dvpe-helm chart 的证书部分出现错误“nil pointer evaluating interface {}.overwrite”

问题描述 投票:0回答:1

在使用 helm chart dvpe-helm 定义我的证书部分时,我使用 ArgoCD 收到以下错误:https://github.com/DVPE-cloud/dvpe-helm

错误:模板:dvpe-helm/templates/certificate.yaml:6:24: executing “dvpe-helm/templates/certificate.yaml”在 <.Values.release.overwrite.name>: 空指针评估接口 {}.覆盖

我的存储库中的证书部分如下所示:

# -------------------------------------#
# Certificate value section            #
# -------------------------------------#
  certificate:
    commonName: cert.api.net
    secretName: private-tls-by-issuer
    issuerRef:
      name: certificate-issuer
      group: controller-manager.dvpe-cloud.github.io
      kind: Issuer
      subject:
        organizations: {}
        countries: {}
        localities: {}
        provinces: {}
        organizationalUnits: {}
        emailAddresses: {}
        dnsNames:
          - gloo-system.api.net
          # Note: We just added this domain to have a handy name for our auth-flows example.
          - auth-flows.api.net

我对此比较陌生,我真的无法从这个错误消息中得到任何东西。它没有告诉我发生了什么问题。有人知道如何处理这个吗?

我检查了我的 yaml 文件,它是有效的。

kubernetes-helm argocd
1个回答
0
投票

nil 指针表示该值不存在。在您的情况下,请搜索您的图表以查找使用 .Values.release.overwrite.name 的位置。

接下来,nil指针可能是由于两种情况

  1. 层次结构 .Values.release.overwrite.name 未在您的值文件中定义
  2. 如果 .Values.release.overwrite.name 出现在您的值中,那么这意味着 "." 您用来访问值的不是您期望的值。

例如**.**Values.release.overwrite.name

  1. range(loop) 内访问,然后 "." 指的是迭代中的当前项目,这会让你失望,因为 **.**Values.release.overwrite.name 将不再存在在您当前的迭代项目中
  2. 同样,如果您使用 "with" 块,则 "." 表示您尝试使用“with”查找的项目

因此,请根据这些检查 .Values.release.overwrite.name 的使用方式并更正 "." 的上下文

您可以使用不同的方式来确保您访问的是正确的值

  1. $ 引用全局范围以按预期访问值 $.Values.release.overwrite.name
  2. 将值分配给变量并使用变量代替

所有这些选项将取决于 .Values.release.overwrite.name 在图表中的使用方式

查看https://helm.sh/docs/chart_template_guide/variables/了解更多详情

© www.soinside.com 2019 - 2024. All rights reserved.