arrays - Helm : error converting YAML to JSON: yaml: line xx: did not find expected key

标签 arrays list go kubernetes-helm jsondecoder

我的values.yaml 文件中有一个json 编码的字符串 ->

values.yaml

network:
  cidrs : "[\"123.123.123.123/32\",\"123.124.125.125/32\"]"

现在,我想将此值用作我的网络策略导出 ipblock 中的字符串列表。但我无法将其转换为列表。

目前,我正在按照此方法来实现要求,但失败了 -

error converting YAML to JSON: yaml: line xx : did not find expected key

netpol.yaml

spec:
  podSelector:
    matchLabels:
      name: log-forwarder
  policyTypes:
  - Egress
  egress:
  {{- $json := .Values.network.cidrs | fromJson -}}
  {{- range $json }}
  - to:
    - ipBlock:
        cidr: {{- . }}
  {{- end }}
    ports:
    - protocol: TCP
      port: 443

知道如何将编码字符串转换为字符串列表并在我的网络策略中使用它吗?

最佳答案

使用 mustFromJson 而不是 fromJson,最近遇到了同样的问题并修复了它,要查看文档以查看是否找出原因。

编辑:出于某种原因 fromJson 无法处理顶级列表,但 mustFromJson 可以,看起来像一个错误,因为文档中列出的唯一区别是 如果 JSON 无效,mustFromJson 将返回错误。

source

关于arrays - Helm : error converting YAML to JSON: yaml: line xx: did not find expected key,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75438649/

相关文章:

javascript - 使用 Javascript 按属性值拆分对象数组

c# - 从列表中获取不同的参数

go - 在 Go 中,即使 []byte 是按值传递给方法的,但还是会修改原始值?

string - 将多个月份字符串替换为month-ints

java - 线程中的异常 "main"java.lang.ArrayIndexOutOfBoundsException : 1 when trying to access element of Array

c# - 什么是线程安全 (C#)? (字符串,数组,...?)

c++ - 除非所有字段都初始化为 0,否则 int 数组会给出疯狂的值,为什么?

python - 包含列表的递归列表

Python,两个列表之间元素相加的所有组合,有约束

go - 什么会导致 malloc 忽略交换空间?