Skip to main content
This page is the implementation-level reference for Radar’s Argo CD and Flux integrations. Start with the GitOps workspace for the shared workflow and controller capability comparison, or the FluxCD integration for a screenshot-led Flux walkthrough and setup guidance. See the main README for the user-facing overview. This section covers integration coverage and capabilities.

FluxCD

Workflow operations: Reconcile, Reconcile-with-source (Kustomization/HelmRelease), Suspend/Resume. Diagnosis: Conditions extracted to issues (Ready=False, Stalled=True, Reconciling=True). Per-resource diff and recent events not yet available for Flux (HelmRelease-installed resources don’t carry last-applied-configuration; tracked in #601).

ArgoCD

Workflow operations: Sync (with options dialog: prune, dry-run, apply-only, force, replace, server-side apply, sync-options), Refresh, Hard refresh, Terminate, Suspend/Resume auto-sync, Rollback to historical revision, Selective sync of marked resources. Diagnosis:
  • Per-resource field diff computed from each resource’s kubectl.kubernetes.io/last-applied-configuration annotation vs live spec - works for any Argo client-side-applied resource without calling the Argo API
  • Recent events surfaced inline per managed resource (5 most recent, namespace-RBAC-filtered)
  • Stuck-drift-loop detector - flags sync=OutOfSync ∧ opPhase=Succeeded ∧ auto-sync on ∧ reconciledAt<30min with the likely cause (mutating webhook, sibling controller, schema migration)
  • Manual-drift detector - calls out OutOfSync apps with auto-sync disabled
  • Argo Application conditions extracted to issues (ComparisonError, OrphanedResourceWarning, etc.) with type-aware severity and per-condition action text
  • Operation-failure parser recognizes 11 patterns: annotation-too-large, label-too-long, hook failure, admission webhook denial, RBAC, conflict, immutable field, schema migration, connectivity, etc.
Limitations:
  • SSA-applied resources (ServerSideApply=true sync-option) lack the last-applied-configuration annotation, so the local diff described above is unavailable for those rows. Configuring the Argo CD API integration covers them: Radar then asks argocd-server for the Git-rendered desired state and diffs against that, which is canonical rather than annotation-derived. An annotation-free local fallback via metadata.managedFields is still tracked in #601.
  • Single-cluster only: Application↔resource edges only render when Radar is connected to the cluster where the managed resources live (not necessarily the cluster running the Argo controller).