当前位置: 首页 > 知识库问答 >
问题:

:无法计算字符串类型中的字段Chart

曹理
2023-03-14

当我部署以下内容时,我收到了这个错误:

{{- if .Values.front.ingress.enabled -}}
{{- $fullName := include "marketplace.fullname" . -}}
{{- $ingressPaths := .Values.front.ingress.paths -}}
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: {{ $fullName }}-{{ .Values.environment }}-front
  labels:
    app.kubernetes.io/name: {{ include "marketplace.name" . }}-{{ .Values.front.name }}
    helm.sh/chart: {{ include "marketplace.chart" . }}
    app.kubernetes.io/instance: {{ .Release.Name }}-{{ .Values.front.name }}
    app.kubernetes.io/managed-by: {{ .Release.Service }}
  {{- with .Values.front.ingress.annotations }}
  annotations:
    {{- toYaml . | nindent 4 }}
  {{- end }}
spec:
{{- if .Values.front.ingress.tls }}
  tls:
  {{- range .Values.front.ingress.tls }}
    - hosts:
      {{- range .hosts }}
        - {{ . | quote }}
      {{- end }}
      secretName: {{ .secretName }}
  {{- end }}
{{- end }}
  rules:
  {{- range .Values.front.ingress.hosts }}
    - host: {{ . | quote }}
      http:
        paths:
    {{- range $ingressPaths }}
          - path: /
            backend:
              serviceName: {{ include "marketplace.name" . }}-{{ $.Values.front.name }}
              servicePort: 3000
    {{- end }}
  {{- end }}
{{- end }}

错误:

  Error: UPGRADE FAILED: render error in "marketplace/templates/front-ingress.yaml": template: marketplace/templates/front-ingress.yaml:36:30: executing "marketplace/templates/front-ingress.yaml" at <include "marketplace...>: error calling include: template: marketplace/templates/_helpers.tpl:6:18: executing "marketplace.name" at <.Chart.Name>: can't evaluate field Chart in type string

marketplace.name在_helpers.tpl中定义:

{{- define "marketplace.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}

<code>。图表。名称是一个内部变量,这里解释了首选顺序,但即使设置nameOverride

奇怪的是,如果我删除这个模板,<code>.Chart。名称在任何其他模板中都很好,所以我认为问题与所使用的范围的范围有关。

使用的值:

front:
  ingress:
    enabled: true
    annotations:
      kubernetes.io/ingress.class: nginx-int
      nginx.ingress.kubernetes.io/rewrite-target: /
      nginx.ingress.kubernetes.io/force-ssl-redirect: "false"
    paths:
      - /
    hosts:
      - myhost.mydomain.cloud
    tls: []

共有1个答案

冉伯寅
2023-03-14

请看相关问题。

根据此解决方法,您可以将 . 存储在变量中,因为在范围循环中,. 是指路径的实际

此外,您可能需要将-path:/替换为-path:{{.}}

{{- if .Values.front.ingress.enabled -}}
{{- $fullName := include "bchart.fullname" . -}}
{{- $ingressPaths := .Values.front.ingress.paths -}}
{{- $dot := . }}
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
...
...
    {{- range $ingressPaths }}
          - path: {{ . }}
            backend:
              serviceName: {{ include "bchart.name" $dot }}-{{ $.Values.front.name }}
              servicePort: 3000
    {{- end }}
 类似资料:
  • 这章我们来着重介绍一下字符串。 刚刚学习Rust的同学可能会被Rust的字符串搞混掉,比如str,String, OsStr, CStr,CString等等…… 事实上,如果你不做FFI的话,常用的字符串类型就只有前两种。我们就来着重研究一下Rust的前两种字符串。 你要明白的是,Rust中的字符串实际上是被编码成UTF-8的一个字节数组。这么说比较拗口,简单来说,Rust字符串内部存储的是一个u

  • 问题内容: 我有一张这样的桌子: 我试图弄清楚如何返回在每个DESCRIPTION中出现一个字符串的次数。 因此,如果我想计算“值”出现的次数,则sql语句将返回以下内容: 有什么办法吗?我根本不想使用php,而只是mysql。 问题答案: 这应该可以解决问题:

  • 我有一张这样的桌子: 我试图找出如何返回字符串在每个描述中出现的次数。 因此,如果我想计算value出现的次数,sql语句将返回以下内容: 有没有办法做到这一点?我根本不想使用php,只想使用mysql。

  • 请帮助解决此错误... 因为我在该对象上使用了bigdecimal类型,而没有添加一个操作@字段(type=FieldType.Double) 有没有办法配置默认的FieldType。大十进制加倍?或者我们需要在每个大十进制中添加字段注释

  • 问题内容: 我正在做一个作业,在该作业中,我必须编写程序以读取用户的字符串,并打印出字符串中出现次数的字母。 例如,“ Hello world”应该打印出“ h = 1 e = 1 l = 3 o = 2 …等”,但是我只写“ hello world”和字母总数。 我不能使用hashmap函数,只能使用数组。有人可以给我一两个提示,提示如何从下面的书面代码继续进行操作以获得我的首选功能?我不完全了

  • 本章讲解 Rust 中的类型相关基础知识、运算符相关知识、和字符串的基本知识。