
اكتب اختبارات ضد بيانات الإعدادات المهيكلة باستخدام لغة الاستعلام Rego الخاصة بـ Open Policy Agent
يساعدك Conftest في كتابة اختبارات للبيانات المهيكلة للتكوين. باستخدام Conftest يمكنك كتابة اختبارات لإعدادات Kubernetes، وتعريفات خطوط أنابيب Tekton، وأكواد Terraform، وإعدادات Serverless أو أي ملفات تكوين أخرى.
يستخدم Conftest لغة Rego من Open Policy Agent لكتابة الافتراضات. يمكنك قراءة المزيد عن Rego في قسم لغة السياسات في توثيق 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.