【问题标题】:How to solve [Error: got "map", expected "array"] while my YAML seems right如何解决 [错误:得到“地图”,预期“数组”] 而我的 YAML 似乎正确
【发布时间】:2021-12-31 23:33:53
【问题描述】:

我有一个这样显示的 yaml 文件:

  volumeClaimTemplates:
    apiVersion: v1
    type: PersistentVolumeClaim
    metadata:
      name: {{.Values.features.persistence.name}}
    spec:
      accessModes: [ "ReadWriteOnce" ]
      resources:
        requests:
          storage: {{.Values.features.persistence.size}}
          storageClassName: {{.Values.features.persistence.storageClass}}
          volumeMode: Filesystem
  {{- end}}

我已尽我所能纠正,但仍然没有取得任何进展。当我尝试部署文件时,出现以下错误:

Error: UPGRADE FAILED: error validating "": error validating data: ValidationError(StatefulSet.spec.volumeClaimTemplates): invalid type for io.k8s.api.apps.v1.StatefulSetSpec.volumeClaimTemplates: got "map", expected "array"
make: *** [upgrade] Error 1

有人可以帮忙吗?

【问题讨论】:

    标签: kubernetes azure-devops yaml devops kubernetes-helm


    【解决方案1】:

    从您收到的消息中可以看出错误很明显:volumeClaimTemplates 必须包含一个数组,但您提供了一个映射。简单的解决方法是在此处添加-

    volumeClaimTemplates:
    - apiVersion: v1
      type: PersistentVolumeClaim
      # ...
    

    现在前面的内容是序列中的一个项目。

    【讨论】:

    • 我已经尝试过了,但它返回了一个关于亲和力的错误。 unknown field "affinity" in io.k8s.api.core.v1.PersistentVolumeClaimSpec@flyx
    • 可能缩进不对。 affinity 字段不应位于 volumeClaimTemplates 中。
    • @Aro 您的输入未显示密钥affinity。看来此错误并非来自您显示的 sn-p。我知道这很令人沮丧,但是如果您询问的错误消失了,您应该将此问题标记为已解决,并创建一个新问题,显示新相关的 sn-p 和错误消息。用一个新的错误评论这个答案会大大减少你接触到的人,而且我可能不够熟练,无法帮助你解决后续错误。
    猜你喜欢
    • 2019-02-05
    • 2018-07-05
    • 2016-06-29
    • 1970-01-01
    • 2022-07-29
    • 1970-01-01
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多