kubernetes 如何填写列表中的部署值?

ssm49v7z  于 2023-04-20  发布在  Kubernetes
关注(0)|答案(2)|浏览(97)

values.yaml

S3Catalogs:
  Catalogs:
    - CatalogName: BotVoice
      Url: "http://sandbox5.*.com"
    - CatalogName: WrongVoice
      Url: "http://sandbox5.*.com"

上面指定的结构需要在部署中以某种方式填充.yaml尝试了不同的变体,括号[0]不接受.

- name: S3Catalogs__Catalogs
          value: "{{ .Values.S3Catalogs.Catalogs  }}"
        - name: S3Catalogs__Catalogs__Url
          value: "{{ .Values.S3Catalogs.Catalogs.Url}}"

不是这样的

7cjasjjr

7cjasjjr1#

我认为您使用0(可能还有1)访问values.yaml文件中S3Catalogs数组的元素是正确的。
下面的语法对我有用:
deployment.yaml:

- name: S3Catalogs__Catalogs__CatalogName_0
    value: "{{ index .Values.S3Catalogs.Catalogs 0 "CatalogName" }}"
  - name: S3Catalogs__Catalogs__Url_0
    value: "{{ index .Values.S3Catalogs.Catalogs 0 "Url" }}"
  - name: S3Catalogs__Catalogs__CatalogName_1
    value: "{{ index .Values.S3Catalogs.Catalogs 1 "CatalogName" }}"
  - name: S3Catalogs__Catalogs__Url_1
    value: "{{ index .Values.S3Catalogs.Catalogs 1 "Url" }}"

values.yaml:

S3Catalogs:
  Catalogs:
    - CatalogName: BotVoice
      Url: "http://sandbox5.foo.com"
    - CatalogName: WrongVoice
      Url: "http://sandbox5.bar.com"

当我执行helm template时,结果如下:

- name: S3Catalogs__Catalogs__CatalogName_0
  value: "BotVoice"
- name: S3Catalogs__Catalogs__Url_0
  value: "http://sandbox5.foo.com"
- name: S3Catalogs__Catalogs__CatalogName_1
  value: "WrongVoice"
- name: S3Catalogs__Catalogs__Url_1
  value: "http://sandbox5.bar.com"

这对你有用吗

fzsnzjdm

fzsnzjdm2#

range子句会有帮助吗?
也许这样的东西会起作用:

{{- range .Values.S3Catalogs.Catalogs }}
        - name: S3Catalogs__Catalogs
          value: "{{ .CatalogName  }}"
        - name: S3Catalogs__Catalogs__Url
          value: "{{ .Url }}"
{{- end

相关问题