Kargo is a multi-stage application lifecycle orchestrator designed to help with continuous delivery and deployment of changes across various environments.
Kargo, created by the developers behind the Argo Project, represents a novel approach to CD pipelines, tailored for the cloud-native landscape, featuring robust GitOps support, progressive delivery capabilities, and complete open-source accessibility.
The name “Kargo” reflects its core function of transporting build and configuration artifacts (referred to as “freight”) to multiple environments through a GitOps approach. GitOps has played a pivotal role in elevating infrastructure-as-code practices, yet it has introduced challenges for traditional CI/CD pipelines, according to the maintainers.
Pull-based GitOps operators, such as Argo CD, have disrupted the direct access of CI pipelines to production environments. The asynchronous nature of Kubernetes declarative APIs and the eventual consistency have made it challenging to coordinate imperative processes like testing and analysis.
Argo CD has addressed some of these issues by providing interfaces to Kubernetes clusters, including health assessments, sync hooks, and waved deployments, but there is room for improvement, says the maintainers.
“Fundamentally, Kargo takes an entirely different approach to the problem of effecting change to multiple environments. Unlike CI, Kargo deployment pipelines are not generic “jobs” with a beginning, a middle, and an end, relying on executing shell commands against each environment,” Jesse Suen, co-founder and CTO at Akuity, the developers of the project, wrote in a blog post.