【问题标题】:Testing k8s ConfigMap with nested dbless config for Kong使用 Kong 的嵌套 dbless 配置测试 k8s ConfigMap
【发布时间】:2022-01-22 06:47:40
【问题描述】:

我发现测试嵌套在此类 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 变量是 string 类型,我找不到将其转换为 object 类型的正确方法> 或任何其他允许我引用 YML 键的类型。 Rego 的内置函数 cast_object 似乎不起作用。

有没有人遇到过这个问题并有一些提示?

【问题讨论】:

    标签: kubernetes rego conftest


    【解决方案1】:

    好的,所以我找到了答案;)

    解决方案是使用内置函数:yaml.unmarshal

    一开始我误解了rego references

    【讨论】:

      猜你喜欢
      • 2021-09-25
      • 1970-01-01
      • 2020-06-22
      • 2019-06-18
      • 1970-01-01
      • 2021-06-01
      • 1970-01-01
      • 2020-11-28
      • 2013-03-30
      相关资源
      最近更新 更多