首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >YTT覆盖:使用来自该数组的数据修改数组

YTT覆盖:使用来自该数组的数据修改数组
EN

Stack Overflow用户
提问于 2022-01-06 21:31:35
回答 1查看 61关注 0票数 2

这个问题是关于YTT的。是否可以通过覆盖修改来自该项的数据的YAML项目列表?

例如,我们有一个模板:

代码语言:javascript
复制
---
vlans:
- vlan-id: 10
- vlan-id: 20
- vlan-id: 30
some_other_configuration: #! some other config here

使用覆盖,我们需要将上面的模板转换为:

代码语言:javascript
复制
---
vlans:
- vlan-id: 10
  vlan-name: vlan10
- vlan-id: 20
  vlan-name: vlan20
- vlan-id: 30
  vlan-name: vlan30
some_other_configuration: #! some other config here
EN

回答 1

Stack Overflow用户

发布于 2022-05-22 17:06:49

是。可以在覆盖层中使用覆盖层。

代码语言:javascript
复制
#@ load("@ytt:overlay", "overlay")

#@ def with_name(vlan):
#@overlay/match missing_ok=True
vlan-name: #@ "vlan{}".format(vlan["vlan-id"])
#@ end

#@overlay/match by=overlay.all
---
vlans:
#@overlay/match by=lambda idx, left, right: "vlan-id" in left, expects="1+"
#@overlay/replace via=lambda left, right: overlay.apply(left, with_name(left))
- 

它可以读到:

  • 对于所有文件,
  • vlans:地图上..。
    • 对于它包含的每个数组项,都有一个包含键“vland”的映射.
      • 用vlan名称覆盖的地图替换地图

https://carvel.dev/ytt/#gist:https://gist.github.com/pivotaljohn/33cbc52e808422e68c5ec1dc2ca38354

另请参阅:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70613862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档