相关文档:https://helm.sh/docs/chart_template_guide/functions_and_pipelines/#using-the-lookup-function
我的头盔版本:
$ helm version
version.BuildInfo{Version:"v3.4.1",
GitCommit:"c4e74854886b2efe3321e185578e6db9be0a6e29",
GitTreeState:"dirty", GoVersion:"go1.15.4"}
Run Code Online (Sandbox Code Playgroud)
重现的最小示例:
$ helm create my-chart
$ helm install my-chart ./my-chart
Run Code Online (Sandbox Code Playgroud)
# my-chart/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: my-configmap
data:
someKey: someValue
Run Code Online (Sandbox Code Playgroud)
升级现有图表以便应用 ConfigMap。
$ helm upgrade my-chart ./my-chart
Run Code Online (Sandbox Code Playgroud)
$ kubectl -n default get configmap my-configmap
Run Code Online (Sandbox Code Playgroud)
其返回结果符合预期:
NAME DATA AGE
my-configmap 1 12m
Run Code Online (Sandbox Code Playgroud)
lookup
函数来引用现有的ConfigMap。
# my-chart/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: my-configmap
data:
someKey: someValue
someOtherKey: {{ (lookup "v1" "ConfigMap" "default" "my-configmap").data.someValue }}
Run Code Online (Sandbox Code Playgroud)
然后进行升级试运行。
$ helm upgrade my-chart ./my-chart --dry-run
Run Code Online (Sandbox Code Playgroud)
您将遇到 nil 指针错误:
Error: UPGRADE FAILED: template: my-chart/templates/configmap.yaml:9:54: executing "my-
chart/templates/configmap.yaml" at <"my-configmap">: nil pointer evaluating interface
{}.someValue
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
归档时间: |
|
查看次数: |
5537 次 |
最近记录: |