在我的Helm模板中,为什么拔值为float64?



作为后续问题到我的职位Helm函数设置基于变量的值?,并修改给出的答案动态访问值取决于在一个舵机图表的变量值,我正在尝试这个

$ helm version --short
v3.5.2+g167aac7
values.yaml
-----------
env: sandbox
environments:
sandbox: 0
staging: 1
production: 2
replicaCount:
- 1
- 2
- 4
templates/deployments.yaml
--------------------------
apiVersion: apps/v1
kind: Deployment
metadata:
...
spec:
{{- if not .Values.autoscaling.enabled }}
replicas: {{ index .Values.replicaCount (pluck .Values.env .Values.environments | first | default .Values.environments.sandbox) }}

但是我得到

$ helm template . --dry-run
Error: template: guestbook/templates/deployment.yaml:10:15: executing "guestbook/templates/deployment.yaml" at <index .Values.replicaCount (pluck .Values.env .Values.environments | first | default .Values.environments.sandbox)>: error calling index: cannot index slice/array with type float64

为什么pluck返回一个float64而不是一个整数,这是我期望的,因为我的environments字典值是整数?

如果我这样做,也就是说,用int转换器管道pluck,它可以工作,但它不能解释为什么pluck返回float64值。

templates/deployments.yaml
--------------------------
apiVersion: apps/v1
kind: Deployment
metadata:
...
spec:
{{- if not .Values.autoscaling.enabled }}
replicas: {{ index .Values.replicaCount ((pluck .Values.env .Values.environments | first | default .Values.environments.sandbox) | int) }}

更新:这是一个已知的bug。见https://github.com/kubernetes-sigs/yaml/issues/45

相关内容

  • 没有找到相关文章

最新更新