Summary “Unit Testing Your Kubernetes Configurations Using Open Policy Agent — Gareth Rushgrove”, KubeCon + CloudNativeCon Europe 2019

Nicolai Antiferov
1 min readMay 21, 2019

Страница доклада, слайды.

Open Policy Agent https://www.openpolicyagent.org

Вы описываете полиси и применяете ее к коду. И получаете результат удовлетворяет ли он полиси.

Не только для кубера. Уже используется в Istio, Ceph. Gatekeeper для кубера https://github.com/open-policy-agent/gatekeeper.

Зачем нужны полиси?

Для более раннего тестирования.

Чем раньше тесты, тем быстрее фидбек.

Обычно OPA используется на уровне кластера, но что если применять его раньше?

И поэтому Gareth создал conftest

Он позволяет описывать полиси для конфигурационных файлов кубера, например деплойментов на языке Rego.

conftest is a utility to help you write tests against structured configuration data. For instance you could write tests for your Kubernetes configurations, or Tekton pipeline definitions, Terraform code, Serverless configs or any other structured data.

Rego — язык для описания политик (DSL), используемый в Open Policy Agent. На сайте есть песочница для тестов. https://play.openpolicyagent.org

В итоге мы получаем юнит тесты для конфигурационных файлов Kubernetes.

С помощью conftest можно также делится политиками, выгружая их в режистри.

Также вы можете тестировать с помощью conftest уже запущенные ресурсы. И есть плагин для kubectl.

Можно тестировать не только Kubernetes, но и Terraform code, Serverless configs и любую структурированую дату.

--

--