kubernetes - Ingress.yaml 模板抛出 nil 指针评估接口 {}.enabled
问题描述
当我尝试做helm install <chartname> . -f values.yaml -n namespace
时,我得到:
Error: template: pid-dm-rd-guacamole/templates/ingress.yaml:1:8: executing "pid-dm-rd-guacamole/templates/ingress.yaml" at <$.Values.ingress.enabled>: nil pointer evaluating interface {}.enabled
谁能建议我们如何避免这个错误,在这里我附上了我的ingress.yaml
和入口部分values.yaml
{{- if .Values.ingress.enabled -}}
{{- $fullName := include "device-management.fullname" . -}}
{{- $svcPort := .Values.service.port -}}
{{- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
apiVersion: networking.k8s.io/v1beta1
{{- else -}}
apiVersion: extensions/v1beta1
{{- end }}
kind: Ingress
metadata:
name: {{ $fullName }}
labels:
{{- include "device-management.labels" . | nindent 4 }}
{{- with .Values.ingress.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
{{- if .Values.ingress.tls }}
tls:
{{- range .Values.ingress.tls }}
- hosts:
{{- range .hosts }}
- {{ . | quote }}
{{- end }}
secretName: {{ .secretName }}
{{- end }}
{{- end }}
rules:
{{- range .Values.ingress.hosts }}
- host: {{ .host | quote }}
http:
paths:
{{- range .paths }}
- path: {{ . }}
backend:
serviceName: {{ $fullName }}
servicePort: {{ $svcPort }}
{{- end }}
{{- end }}
{{- end }}
ingress:
enabled: true
annotations:
ingress.kubernetes.io/ssl-redirect: "true"
kubernetes.io/tls-acme: "true"
certmanager.k8s.io/cluster-issuer: letsencrypt-prod
paths: []
# - backend:
# serviceName: ssl-redirect
# servicePort: use-annotation
# - backend:
# # Don't use string here, use only integer value!
# servicePort: 443
#nginx.ingress.kubernetes.io/proxy-buffering: "off"
path: /
hosts:
#what is the hostname?
- host: guacamole.****.corp.com
paths:
- path: /
backend:
serviceName: guacamole.****.corp.com
servicePort: 80
tls:
- hosts:
- guacamole.danaher.corp.com
解决方案
正如@Ramanichandran 在评论部分提到的那样,问题是通过在入口 yaml 的第一行添加缺失值来解决的。行应如下所示: .Values.guacamole.ingress.enabled
. guacamole
未添加该值。
推荐阅读
- javascript - vue 单选框返回字符串而不是布尔值
- javascript - 无法专注于 TextInput React Native - Amazon Fire Stick
- python - 在 Python 中 feed(input()) 有什么用?
- python - 如何从 API 的 JSON 数据中提取字典?我尝试了 Stackoverflow 的一些解决方案
- python - 为什么python构造函数接收错误的默认值?
- swiftui - 是否可以使用 GridItem 在 SwiftUI 中忽略 LazyVGrid 中的“空”项?
- flutter - Flutter/Dart:get_cli 为页面添加更多视图
- apache-camel - 未能执行目标 cxf-codegen-plugin:3.2.4:wsdl2java (generate-sources) 项目 OAS: org.apache.cxf.helpers.JavaUtils.isJava9Compatible()Z
- node.js - 如果我有 URL 和端点以及请求和响应,我如何使用 get 方法通过 API 从服务器访问数据
- mysql - 如何在 Laravel 5.8 中输入相同标题时创建独特的 slug