feat: switch Kyverno to Enforce mode #157

Merged
claude merged 1 commits from feature/kyverno-enforce into main 2026-02-18 10:12:09 +01:00
Owner

All images signed. CI signs automatically. Enforce mode blocks unsigned images.

All images signed. CI signs automatically. Enforce mode blocks unsigned images.
claude added 1 commit 2026-02-18 10:11:41 +01:00
feat: switch Kyverno image verification to Enforce mode
All checks were successful
AI Review / AI Code Review (pull_request) Successful in 1s
PR Checks / Validate & Security Scan (pull_request) Successful in 8s
3992d69c8e
All current images in dev/staging/prod are signed with cosign.
CI pipeline signs new images automatically.
Enforce mode will block unsigned images from our registry.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Author
Owner

AI Code Review

Kyverno Enforce Mode — Review

Одобрено с замечаниями.

Критические вопросы

  • Зависимость от CI/Signing: PR ссылается на «CI signs automatically», но нет ссылки на:

    • Pipeline job, подписывающий образы
    • Cosign public key в кластере (в verify-images.yaml должна быть ссылка на secret или ConfigMap с публичным ключом)
    • Процедура ротации ключей

    Действие: Убедиться, что публичный ключ Cosign развёрнут и policy правильно его использует.

  • Backwards compatibility: Какие образы уже подписаны?

    • Если есть unsigned образы в кластере (сторонние, system-pods, etc.), переключение на Enforce заблокирует их деплой.
    • Рекомендуется: проверить логи ArgoCD при Audit режиме, какие образы падают.

    Действие: Перед мержем — включить Audit в staging, собрать логи нарушений (1–2 дня), убедиться в полноте подписей.

Операционные замечания

  • webhookTimeoutSeconds: 30 — OK, но при большом количестве image-verifications может быть узким местом. Мониторить latency Kyverno webhook.

  • failurePolicy: Ignore — означает, что если webhook недоступен, pod создаётся без проверки. Приемлемо для non-critical, но убедиться:

    • Kyverno pod replicas ≥ 2
    • PDB исключает одновременное удаление обоих pod'ов
  • background: true — хорошо, проверит существующие pod'ы. Но может вызвать волну pod evictions при мерже. Проверить:

    • Есть ли в кластере unsigned pod'ы (особенно в system namespaces)
    • Если да — исключить их via excludeResources в policy

Отсутствующие детали в PR

  • Нет ссылки на документацию Cosign integration / image signing pipeline
  • Нет describe того, как обновлять публичный ключ
  • Нет примера логов из Audit режима

Рекомендация: Перед мержем в main — запустить в dev/staging с Audit минимум 48h, собрать evidence, что все образы подписаны.


Automated review by Claude Haiku | advisory, does not block merge

## AI Code Review ## Kyverno Enforce Mode — Review **Одобрено с замечаниями.** ### Критические вопросы - **Зависимость от CI/Signing:** PR ссылается на «CI signs automatically», но нет ссылки на: - Pipeline job, подписывающий образы - Cosign public key в кластере (в `verify-images.yaml` должна быть ссылка на secret или ConfigMap с публичным ключом) - Процедура ротации ключей **Действие:** Убедиться, что публичный ключ Cosign развёрнут и policy правильно его использует. - **Backwards compatibility:** Какие образы уже подписаны? - Если есть unsigned образы в кластере (сторонние, system-pods, etc.), переключение на `Enforce` заблокирует их деплой. - Рекомендуется: проверить логи ArgoCD при `Audit` режиме, какие образы падают. **Действие:** Перед мержем — включить `Audit` в staging, собрать логи нарушений (1–2 дня), убедиться в полноте подписей. ### Операционные замечания - **webhookTimeoutSeconds: 30** — OK, но при большом количестве image-verifications может быть узким местом. Мониторить latency Kyverno webhook. - **failurePolicy: Ignore** — означает, что если webhook недоступен, pod создаётся без проверки. Приемлемо для non-critical, но убедиться: - Kyverno pod replicas ≥ 2 - PDB исключает одновременное удаление обоих pod'ов - **background: true** — хорошо, проверит существующие pod'ы. Но может вызвать волну pod evictions при мерже. Проверить: - Есть ли в кластере unsigned pod'ы (особенно в system namespaces) - Если да — исключить их via `excludeResources` в policy ### Отсутствующие детали в PR - Нет ссылки на документацию Cosign integration / image signing pipeline - Нет describe того, как обновлять публичный ключ - Нет примера логов из Audit режима **Рекомендация:** Перед мержем в main — запустить в dev/staging с `Audit` минимум 48h, собрать evidence, что все образы подписаны. --- _Automated review by Claude Haiku | advisory, does not block merge_
claude merged commit f93f96c08b into main 2026-02-18 10:12:09 +01:00
claude deleted branch feature/kyverno-enforce 2026-02-18 10:12:09 +01:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: claude/k8s-apps#157
No description provided.