这个问题是关于YTT的。是否可以通过覆盖修改来自该项的数据的YAML项目列表?
例如,我们有一个模板:
---
vlans:
- vlan-id: 10
- vlan-id: 20
- vlan-id: 30
some_other_configuration: #! some other config here使用覆盖,我们需要将上面的模板转换为:
---
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发布于 2022-05-22 17:06:49
是。可以在覆盖层中使用覆盖层。
#@ 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:地图上..。https://carvel.dev/ytt/#gist:https://gist.github.com/pivotaljohn/33cbc52e808422e68c5ec1dc2ca38354
另请参阅:
https://stackoverflow.com/questions/70613862
复制相似问题