Rego: как указать отсутствие любого из нескольких условий

Как я могу подтвердить наличие двух отдельных ключей в Rego для OPA? В настоящее время я используюnot оператор так:

deny["Containers must specify readiness and liveness probes"] {
  not container.readinessProbe
  not container.livenessProbe
}

Однако это отрицает только контейнеры без обоих livenessProbe а также readinessProbe. Как мне указать, чтобы запретить контейнеру не хватает одного из двух ключей?

1 ответ

Решение

В этом случае, я думаю, имеет смысл просто иметь правило запрета для каждого:

deny["Containers must specify readiness probes"] {
  not container.readinessProbe
}

deny["Containers must specify liveness probes"] {
  not container.livenessProbe
}

В политиках Rego правила объединяются по ИЛИ, а операторы тела правила объединяются по И. Поэтому, если вы пытаетесь выразить условие ИЛИ, обычно ищите правило для каждого случая.

Другие вопросы по тегам