fix: trivy node-collector toleration + argo-rollouts CRD sync #230

Merged
claude merged 1 commits from fix/cleanup-phase2 into main 2026-02-23 09:21:59 +01:00
Owner

Summary

  • Add control-plane toleration to trivy nodeCollector (stuck Pending)
  • Add ignoreDifferences + ServerSideApply for argo-rollouts CRDs (perpetual OutOfSync)

Part of

Infrastructure cleanup Phase 2 — fix broken services

## Summary - Add control-plane toleration to trivy nodeCollector (stuck Pending) - Add ignoreDifferences + ServerSideApply for argo-rollouts CRDs (perpetual OutOfSync) ## Part of Infrastructure cleanup Phase 2 — fix broken services
claude added 1 commit 2026-02-23 09:20:54 +01:00
fix: trivy node-collector toleration + argo-rollouts CRD sync
All checks were successful
AI Review / AI Code Review (pull_request) Successful in 1s
PR Checks / Validate & Security Scan (pull_request) Successful in 11s
3b6195d698
- Add control-plane toleration to trivy nodeCollector so it can
  schedule on k8s-master (was stuck Pending indefinitely)
- Add ignoreDifferences for CRDs + ServerSideApply to argo-rollouts
  to resolve perpetual OutOfSync caused by Helm CRD management gap

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

AI Code Review

Обзор PR — оценка изменений:

Что хорошо

  • Toleration в trivy: правильно добавляет toleration для control-plane узлов (ключ и эффект соответствуют стандартному Kubernetes)
  • **ignoreDifferences для CRDs:**解决 perpetual OutOfSync при Helm обновлениях CRD (правильный паттерн)
  • ServerSideApply: снижает конфликты с kubectl apply, хороший выбор для CRDs
  • RespectIgnoreDifferences: обеспечивает, что ArgoCD учитывает ignoreDifferences при syncing

⚠️ Потенциальные проблемы

  1. trivy nodeCollector — неполная конфигурация

    • Добавляется toleration, но нет nodeSelector/affinity, чтобы гарантировать, что pod попадёт на control-plane
    • Без affinity pod может быть scheduled на worker-узел и всё равно остаться Pending (toleration не помогает, если pod не выбирает узел)
    • Рекомендация: добавить nodeSelector: node-role.kubernetes.io/control-plane: "" или affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution
  2. ignoreDifferences для /spec — риск

    • Игнорирование /spec для CRD означает, что ArgoCD не будет синхронизировать изменения в схеме
    • Если Helm обновит версию argo-rollouts с другой CRD структурой, ArgoCD не применит обновление
    • Скорее всего нужен более узкий путь (только /spec/names или /spec/versions, не весь /spec)
    • Рекомендация: уточнить, какие именно поля в /spec вызывают OutOfSync (проверить argocd app diff argo-rollouts)
  3. Тестирование

    • PR не содержит доказательства, что fix устраняет OutOfSync (логи diff перед/после)
    • Для CRD игнорирования нужна проверка, что обновления Helm всё ещё применяются корректно

🔍 Дополнительные замечания

  • Namespace isolation: argo-rollouts и trivy-operator в своих namespaces ✓
  • RBAC/SecurityContext: не видно изменений, но если были проблемы, нужно проверить существующие ограничения
  • Labels/annotations: ignoreDifferences корректно включает metadata.labels/annotations (правильный паттерн для Helm)

Итог: Fix решает проблему, но триви нужен nodeSelector для гарантии и CRD ignoreDifferences нужна доработка (уточнить паттерн /spec).


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

## AI Code Review Обзор PR — оценка изменений: ## ✅ Что хорошо - **Toleration в trivy:** правильно добавляет toleration для control-plane узлов (ключ и эффект соответствуют стандартному Kubernetes) - **ignoreDifferences для CRDs:**解决 perpetual OutOfSync при Helm обновлениях CRD (правильный паттерн) - **ServerSideApply:** снижает конфликты с kubectl apply, хороший выбор для CRDs - **RespectIgnoreDifferences:** обеспечивает, что ArgoCD учитывает ignoreDifferences при syncing --- ## ⚠️ Потенциальные проблемы 1. **trivy nodeCollector — неполная конфигурация** - Добавляется toleration, но **нет nodeSelector/affinity**, чтобы гарантировать, что pod попадёт на control-plane - Без affinity pod может быть scheduled на worker-узел и всё равно остаться Pending (toleration не помогает, если pod не выбирает узел) - **Рекомендация:** добавить `nodeSelector: node-role.kubernetes.io/control-plane: ""` или `affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution` 2. **ignoreDifferences для /spec — риск** - Игнорирование `/spec` для CRD означает, что ArgoCD **не будет синхронизировать изменения в схеме** - Если Helm обновит версию argo-rollouts с другой CRD структурой, ArgoCD не применит обновление - Скорее всего нужен более узкий путь (только `/spec/names` или `/spec/versions`, не весь /spec) - **Рекомендация:** уточнить, какие именно поля в /spec вызывают OutOfSync (проверить `argocd app diff argo-rollouts`) 3. **Тестирование** - PR не содержит доказательства, что fix устраняет OutOfSync (логи diff перед/после) - Для CRD игнорирования нужна проверка, что обновления Helm всё ещё применяются корректно --- ## 🔍 Дополнительные замечания - **Namespace isolation:** argo-rollouts и trivy-operator в своих namespaces ✓ - **RBAC/SecurityContext:** не видно изменений, но если были проблемы, нужно проверить существующие ограничения - **Labels/annotations:** ignoreDifferences корректно включает metadata.labels/annotations (правильный паттерн для Helm) --- **Итог:** Fix решает проблему, но **триви нужен nodeSelector для гарантии** и **CRD ignoreDifferences нужна доработка** (уточнить паттерн /spec). --- _Automated review by Claude Haiku | advisory, does not block merge_
claude merged commit 9d79db71d9 into main 2026-02-23 09:21:59 +01:00
claude deleted branch fix/cleanup-phase2 2026-02-23 09:21:59 +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#230
No description provided.