[英]Testing k8s ConfigMap with nested dbless config for Kong
我发现测试嵌套在此类 ConfigMap 中的 Kong 配置确实有问题(它是此 ConfigMap 的简短版本):
apiVersion: v1
kind: ConfigMap
metadata:
name: "some_name"
data:
kong_config.yml: |
_format_version: "2.1"
_transform: true
services:
- name: health-check
url: http://localhost/non-existent
plugins:
- name: request-termination
config:
status_code: 200
message: ok
routes:
- name: admin-status
paths:
- /healthz$
我要做的是使用conftest测试这个 ConfigMap,所以我从 ConfigMap 中“取出”Kong 的配置 YML 文件,如下所示:
deny[msg] {
kong_config := input.data["kong.yml"]
service_1_name := kong_config.services[0].name
....some other code....
msg := sprintf("Service '%v' failed name validation.", [service_1_name])
}
kong_config变量是字符串类型,我找不到将其转换为类型object或任何其他允许我引用 YML 键的类型的正确方法。 Rego 的内置 function cast_object似乎不起作用。
有没有人已经遇到这个问题并有一些提示?
好的,所以我找到了答案;)
解决方案是使用内置的 function: yaml.unmarshal 。
起初我误解了rego参考: https://www.openpolicyagent.org/docs/v0.12.2/language-reference/#encoding
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.