gpt4 book ai didi

open-policy-agent - 如何做 || "b"在 rego

转载 作者:行者123 更新时间:2023-12-01 13:11:25 28 4
gpt4 key购买 nike

我们验证有和没有命名空间的对象,我总是想打印当前命名空间是什么......但是当没有设置命名空间时回退到“”或其他一些默认值。

使用天真的 input.review.object.metadata.namespace 直接失败了规则,所以我求助于

namespace := [input.review.object.metadata.namespace | ""]

它打印一个数组,有点难看,但它有效……有更好的解决方案吗?

最佳答案

虽然正在讨论添加一个,但没有适合它的运算符。

通常,模式是使用具有访问器的辅助规则/函数和具有默认值的否定规则/函数。例如:

https://play.openpolicyagent.org/p/RhZVyJjqOJ用途..

# If the namespace exists, use it
input_namespace = ns {
ns := input.review.object.metadata.namespace
}

# or if it doesn't, use the string defined here
input_namespace = "whatever-default-value-i-want" {
not input.review.object.metadata.namespace
}

这种相同类型的模式也可以在野外看到,例如在 Gatekeeper 库中:https://github.com/open-policy-agent/gatekeeper/blob/master/library/general/requiredlabels/src.rego#L3-L10

关于open-policy-agent - 如何做 || "b"在 rego,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59688239/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com