问题标签 [rego]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
open-policy-agent - 在 OPA rego 中使用 OR 条件
我想对以下内容进行 OR 操作,其中我的 arr 计数不等于 0,并且我的电子邮件不包含“test.com”,但是我的规则正在产生错误,有关如何改进它的任何帮助一行非常感谢!先感谢您
open-policy-agent - 在 Rego 中加入两个列表
如何在 Rego 中将两个列表连接在一起?
我尝试了以下但它不起作用,不太确定语法是什么
先感谢您 (:
docker - OPA Envoy - 带有 http.send 的策略在负载下失败
预期行为
http.send 在负载下应该可以正常工作
实际行为
在给定分钟内处理 1000 个请求后,它会因打开文件描述符错误过多而失败,并在特定分钟后恢复
重现问题的步骤
- OPA 版本:openpolicyagent/opa:0.31.0-envoy
- 给出 OPA 的示例查询、输入、数据和策略:
policy_response := http_response { http_response := http.send({ "method" : "POST", "url": opa.runtime()["env"]["URL"], "headers": { "authorization": token }, "raise_error": false, "timeout": "3s", }) }
- OPA 返回的示例输出
{"code":"eval_http_send_network_error","message":"Post \"{url}\": dial tcp: lookup {hostname} on x.x.x.x:53: dial udp x.x.x.x:53: socket: too many open files","status_code":0,"x-request-id":"b643f986-44ca-44c4-95a6-fc4cbe1f5639"}}
我相信 http.send 正在为导致问题的每个请求创建一个新的 HTTP 客户端。是否有任何替代方案来克服这个问题。先感谢您!
kubernetes - Kubernetes Open Policy Agent (OPA) If Else
我正在尝试在这样的变异规则中实现 if else 子句...
什么是正确的语法?
kubernetes - 打开策略代理 rego 读取 configmap
我正在尝试从 rego 中的配置映射中获取值。
对于kube-mgmt
,在部署中,我有:
在我的配置图中,我有:
现在这一切都很好,如果我删除"subnet": subnet,
, 意味着创建的入口会根据需要进行注释。
我尝试关注以下信息: https ://github.com/open-policy-agent/kube-mgmt
我不知道还有什么可以尝试从 configmap 中获取信息,也不知道除了重新编辑 configmap 之外如何以任何其他方式对其进行测试。
这是我的配置图的样子:
opa - 如何检查给定的字符串是否包含在标签中
假设我有以下测试输入,我希望能够编写一个测试来检查字符串Application
是否包含在任何标签键中。这个想法是这个检查将能够跨资源匹配具有不同命名约定的标签。
知道如何做到这一点吗?
string - Concat 2 在 rego 中串在一起
如何连接 2 个字符串?
在这里,我尝试定义一个将“f”连接到提供的字符串末尾的函数:
但是当我尝试使用它时(传入bar
as "123"
):
我得到这hello
等于false
这是为什么?以及如何正确连接字符串?
policy - Rego - 将数组分配给现有数组
我在 Rego 出现了一种奇怪的行为,我想知道为什么会这样。
链接到 Rego 游乐场
当我创建一个空数组并为其分配新数组时,第一个数组的计数仍然为零:
输出是:
所以,我有两个问题:
为什么我在行数(c)> 0 中得到错误?
如何将数组分配给现有数组?(我需要它,因为我有返回数组的函数,并且我正在尝试返回 2 个数组的串联。例如:
func[{"msg": msg}] = c{ a := [1,2] b := [3,4] c = array.concat(a,b) }
谢谢!