// the find
akuity/kargo
Application lifecycle orchestration
Kargo is a Kubernetes-native CD orchestration tool that manages multi-stage promotion pipelines on top of GitOps/ArgoCD. It introduces first-class concepts like Freight (versioned artifact bundles), Warehouses, and Stages to track what's deployed where and automate or gate promotions between environments. Target audience is platform/DevOps teams already running ArgoCD who need structured promotion workflows beyond what ArgoCD provides natively.
- The core data model (Freight → Warehouse → Stage) is well-thought-out and solves a real gap in ArgoCD: knowing exactly which image/chart/commit combination is deployed where and gating its progression through environments.
- Promotion steps are composable and extensible — built-in steps cover git-commit, kustomize, helm-update, argocd-update, etc., and custom steps via container images mean you're not stuck waiting for upstream features.
- The project structure is clean Go with a separate api module, generated protobuf types, and a proper Helm chart with separate component deployments (controller, webhooks, garbage-collector) — this is production-grade scaffolding, not a weekend hack.
- Active development cadence with CI badges showing green, Dependabot configured, backport workflows, and a public roadmap doc — signs of a maintainer team that isn't abandoning the project.
- Hard ArgoCD dependency is a significant constraint — if you're using Flux or plain Kubernetes manifests without ArgoCD, Kargo is largely not useful to you, and this isn't always obvious upfront.
- The CRD surface area is large and the promotion step DSL has a learning curve; the YAML you write to express a non-trivial pipeline gets verbose fast, and there's no strong typing or IDE tooling to catch mistakes before applying.
- Still v1alpha1 across all core APIs, meaning breaking changes are expected and upgrades between minor versions have historically required manual migration steps — risky for teams that need stability.
- Observability story is thin out of the box: no built-in metrics exporter for promotion success rates or stage health, so you're left correlating Kubernetes events and logs yourself.