繁体   English   中英

使用 Kong 的嵌套 dbless 配置测试 k8s ConfigMap

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM