我将编写“pseudo-python-jsonnet”代码来展示我想要实现的目标。我真的不知道如何在 jsonnet 中做类似的事情。
local createCopy(gname, rname, kp) =
for topLvlKey in std.objectFieldsAll(kp):
for subKey in std.objectFieldsAll(kp[topLvlKey]):
if kp[topLvlKey][subKey].get("kind", "") == "PrometheusRule":
for group in kp[topLvlKey][subKey]["spec"]["groups"]:
if group["name"] == gname:
for rule in group["rules"]:
if rule.get("alert", "") == rname:
return rule
return null
return null
所以基本上我想在深层对象结构中搜索特定的子对象并将其返回,如果找不到则返回 null/None。
https://jsonnet.org/learning/tutorial.html有点好,但只显示“简单”的部分,如果你想用 jsonnet 做更复杂的事情,似乎你只能靠自己了。我是 jsonnet 的新手,它真的让我很头疼,所以我希望有人能帮助我。