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

values.yaml

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

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

目前,我正在遵循这一点来实现要求,但它失败了-

将YAML转换为JSON时出错:YAML:第xx行:未找到所需的键

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可以,看起来像是一个错误,因为文档中列出的唯一区别是mustFromJson在JSON无效的情况下返回错误.

source

Go相关问答推荐

在字符串与字符串子切片上使用len进行位转移产生意外输出

Go Fiber和HTMX—HX—Trigger header被更改为HX—Trigger,这不是HTMX监听的内容

Go源在Goland(IDEA)中以灰色显示.什么意思?我怎么才能让它恢复正常?

从使用Golang otelmux检测的Otel跟踪中获取trace_id

如何在 Go msgraph-sdk-go 中转发消息并包括抄送和/或密送收件人?

如何解决我的 Go 聊天应用程序中 cookie 未在本地主机端口之间传输的问题?

此 Golang 程序中的同步问题

go version -m 输出中的箭头符号=>是什么意思?

go-libp2p - 从流中接收字节

GRPC 元数据未在 Go 中更新

如何在测试中使用自定义标志(使用`testify/suite`)

Golang 数据库/sql 与 SetMaxOpenConns 挂起

golang jwt.MapClaims 获取用户ID

在 Go 中将指针传递给函数的正确方法是什么,以便我可以读取和/或修改指针表示的值?

如何排除溢出矩阵的坐标

GORM GIN 更新查询导致 500 内部服务器错误

为什么 go.mod 中的所有依赖都是间接的?

Golang API 的 HTTPS

如何在 Gorm 中获得特定日期的最大值?

带有 *s3.S3 对象的 Golang 单元测试