# Урок 7.1 — Интеграция с CI/CD пайплайнами ## Файлы | Файл | Описание | |------|----------| | `.github/workflows/policy-ci.yaml` | GitHub Actions: тест + валидация + деплой | | `argocd-application.yaml` | ArgoCD Application для GitOps деплоя | ## Kyverno CLI — локальная проверка ```bash # Установка brew install kyverno # macOS # или curl -LO https://github.com/kyverno/kyverno/releases/latest/download/kyverno-cli_linux_amd64.tar.gz tar -xzf kyverno-cli_*.tar.gz && sudo mv kyverno /usr/local/bin/ kyverno version # Проверить манифест против политики (без кластера) kyverno apply \ ../../02-validation/01-resource-validation/require-resource-limits.yaml \ --resource ../../02-validation/01-resource-validation/test-resources/pod-no-limits.yaml # Проверить папку политик против папки манифестов kyverno apply ../../02-validation/ \ --resource ./test-k8s-manifests/ \ --table \ --detailed-results # Запустить тесты kyverno test ../../02-validation/01-resource-validation/tests/ ``` ## Локальная симуляция CI pipeline ```bash # 1. Сгенерировать манифесты из Helm helm template my-app ./helm-chart/ \ -f ./helm-chart/values-production.yaml \ > /tmp/manifests.yaml # 2. Запустить Kyverno проверку kyverno apply ../../02-validation/ \ --resource /tmp/manifests.yaml \ --table 2>&1 | tee results.txt # 3. Проверить наличие нарушений if grep -q "^| FAIL" results.txt; then echo "❌ Policy violations found!" cat results.txt exit 1 else echo "✅ All policies passed" fi ``` ## Тестовые манифесты для CI ```bash mkdir -p test-k8s-manifests # Манифест с нарушениями — pipeline должен упасть cat > test-k8s-manifests/bad-deployment.yaml < .github/CODEOWNERS <