root-app: add ignoreDifferences for Application finalizers #213

Merged
admin merged 1 commits from fix/root-app-ignore-finalizers into main 2026-02-22 10:03:50 +01:00
Owner

ArgoCD child apps (e.g. kyverno) get extra finalizers added at runtime, causing root app-of-apps to show OutOfSync perpetually.

Ignore /metadata/finalizers drift on Application resources.

ArgoCD child apps (e.g. kyverno) get extra finalizers added at runtime, causing root app-of-apps to show OutOfSync perpetually. Ignore /metadata/finalizers drift on Application resources.
claude added 1 commit 2026-02-22 10:02:49 +01:00
root-app: add ignoreDifferences for Application finalizers
All checks were successful
AI Review / AI Code Review (pull_request) Successful in 13s
PR Checks / Validate & Security Scan (pull_request) Successful in 20s
d047481de0
ArgoCD child apps (e.g. kyverno) get extra finalizers added at runtime,
causing root app-of-apps to show OutOfSync perpetually. Ignore
/metadata/finalizers drift on Application resources.

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

AI Code Review

Обзор PR

Вердикт: Хорошо. Это узкое, целевое исправление известной проблемы ArgoCD.


Анализ

Что меняется:

  • Добавляется ignoreDifferences для Application ресурсов root-app
  • Игнорируются изменения в /metadata/finalizers (ArgoCD добавляет finalizer-ы в runtime на child-приложениях)
  • Это предотвращает вечный OutOfSync статус

Безопасность:

  • Не связано с security policies, RBAC или сетевыми правилами
  • ignoreDifferences — это конфигурация синхронизации, не инфраструктурная уязвимость
  • Application объекты находятся в argocd-namespace (restricted PSS)

Надёжность:

  • Finalizers игнорируются, но сами объекты остаются под контролем ArgoCD
  • Не блокирует удаление (finalizer-ы всё ещё управляются ArgoCD корректно)
  • Типичный паттерн для App-of-Apps архитектуры

Best Practices:

  • group: argoproj.io — явно указан API group
  • kind: Application — целевой ресурс
  • jsonPointers — стандартный способ игнорирования полей

Потенциальные замечания

⚠️ Minor: Убедиться, что этот drift действительно вызван только finalizer-ами, а не другими полями Application. Если позже появятся другие дрифты — может потребоваться расширить ignoreDifferences.

Проверено ли:

  • Root-app ещё синхронизирует важные поля (spec)?
  • Child-приложения нормально удаляются при удалении root-app?

Рекомендация: Merge. Стандартное исправление ArgoCD race condition.


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

## AI Code Review ## Обзор PR **Вердикт:** ✅ Хорошо. Это узкое, целевое исправление известной проблемы ArgoCD. --- ### Анализ **Что меняется:** - Добавляется `ignoreDifferences` для Application ресурсов root-app - Игнорируются изменения в `/metadata/finalizers` (ArgoCD добавляет finalizer-ы в runtime на child-приложениях) - Это предотвращает вечный OutOfSync статус **Безопасность:** ✅ - Не связано с security policies, RBAC или сетевыми правилами - `ignoreDifferences` — это конфигурация синхронизации, не инфраструктурная уязвимость - Application объекты находятся в argocd-namespace (restricted PSS) **Надёжность:** ✅ - Finalizers игнорируются, но сами объекты остаются под контролем ArgoCD - Не блокирует удаление (finalizer-ы всё ещё управляются ArgoCD корректно) - Типичный паттерн для App-of-Apps архитектуры **Best Practices:** ✅ - `group: argoproj.io` — явно указан API group - `kind: Application` — целевой ресурс - `jsonPointers` — стандартный способ игнорирования полей --- ### Потенциальные замечания ⚠️ **Minor:** Убедиться, что этот drift действительно вызван только finalizer-ами, а не другими полями Application. Если позже появятся другие дрифты — может потребоваться расширить ignoreDifferences. ✅ **Проверено ли:** - Root-app ещё синхронизирует важные поля (spec)? - Child-приложения нормально удаляются при удалении root-app? --- **Рекомендация:** Merge. Стандартное исправление ArgoCD race condition. --- _Automated review by Claude Haiku | advisory, does not block merge_
admin merged commit 4e82b6df55 into main 2026-02-22 10:03:50 +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#213
No description provided.