
Пишите тесты для проверки структурированных конфигурационных данных с помощью языка запросов Open Policy Agent Rego
Conftest помогает вам писать тесты для структурированных конфигурационных данных. С помощью Conftest вы можете писать тесты для вашей конфигурации Kubernetes, определений конвейеров Tekton, кода Terraform, конфигураций Serverless или любых других конфигурационных файлов.
Conftest использует язык Rego из Open Policy Agent для написания утверждений. Вы можете узнать больше о Rego в разделе Policy Language документации Open Policy Agent.
Вот быстрый пример. Сохраните следующее как policy/deployment.rego:
package main
deny contains msg if {
input.kind == "Deployment"
not input.spec.template.spec.securityContext.runAsNonRoot
msg := "Containers must not run as root"
}
deny contains msg if {
input.kind == "Deployment"
not input.spec.selector.matchLabels.app
msg := "Containers must provide app label for pod selectors"
}
Предположим, у вас есть развертывание Kubernetes в deployment.yaml, вы можете запустить Conftest следующим образом:
$ conftest test deployment.yaml
FAIL - deployment.yaml - Containers must not run as root
FAIL - deployment.yaml - Containers must provide app label for pod selectors
2 tests, 0 passed, 0 warnings, 2 failures, 0 exceptions
Conftest не ограничивается Kubernetes. Он позволяет писать тесты для любых конфигурационных файлов в различных форматах. См. документацию с инструкциями по установке и более подробную информацию о возможностях.
Для обсуждений и вопросов присоединяйтесь к нам в Open Policy Agent Slack в канале #opa-conftest.