Helm 迭代对象数组

Ran*_*nna 7 arrays loops kubernetes-helm

我有以下对象数组

--------------------------
customizedFactorImplVolume:
  - name: PasswordAuthn
    customFactorProviderDir: PasswordDir

  - name: FaceIdAuthn
    customFactorProviderDir: FaceIdDir 
--------------
Run Code Online (Sandbox Code Playgroud)

当它作为“helm install --name jenkins -f my-values.yaml”传递时,我可以使用我的deployment.yaml中的“range”对其进行迭代。但是,当我使用“--set”舵选项传递值时无法读取它:

--set customfactor.customizedFactorImplVolume[0].customFactorProviderDir=PasswordAuthentication --set customfactor.customizedFactorImplVolume[0].name=密码 --set customfactor.customizedFactorImplVolume[1].customFactorProviderDir=FaceIdAuthn --set customfactor.customizedFactorImplVolume[1].name =人脸ID

不确定“--set”有什么不好(“range helm api is getting value null)”。任何帮助将不胜感激。

z.x*_*z.x 7

这是对数组元素的引用的问题。

值.yaml

customizedFactorImplVolume:
  - name: PasswordAuthn
    customFactorProviderDir: PasswordDir

  - name: FaceIdAuthn
    customFactorProviderDir: FaceIdDir 
Run Code Online (Sandbox Code Playgroud)

模板/cfg.yaml

apiVersion: v1
kind: ConfigMap
metadata:
  name: test
data:
  {{- range $v := .Values.customizedFactorImplVolume }}
  - name: {{ $v.name }}
    customFactorProviderDir: {{ $v.customFactorProviderDir }}
  {{- end }}
Run Code Online (Sandbox Code Playgroud)

指令

helm template test . --set customizedFactorImplVolume.0.name=n0 --set customizedFactorImplVolume.0.customFactorProviderDir=d0 --set customizedFactorImplVolume.1.name=n1 --set customizedFactorImplVolume.1.customFactorProviderDir=d1
Run Code Online (Sandbox Code Playgroud)

输出

apiVersion: v1
kind: ConfigMap
metadata:
  name: test
data:
  - name: n0
    customFactorProviderDir: d0
  - name: n1
    customFactorProviderDir: d1
Run Code Online (Sandbox Code Playgroud)