Introducing Kargo

Introducing Kargo blog post cover image

We are thrilled to announce Kargo, a multi-stage application lifecycle orchestrator for continuously delivering and promoting changes through environments. Kargo, brought to you by the creators of the Argo Project, is a reimagining of CD pipelines for the cloud-native era, with first-class GitOps support, progressive delivery features, and is 100% open source.

Kargo, as the name implies, is about transporting “freight” (what we call build and configuration artifacts) to multiple environments with a first-class GitOps approach. GitOps has been transformational in how it has elevated the practice of infrastructure-as-code to the next level. However, the practice of GitOps has created new challenges for traditional CI/CD pipelines. Pull-based GitOps operators, such as Argo CD, meant CI pipelines no longer had direct access to production environments. The async nature of Kubernetes declarative APIs and eventual consistency resulted in imperative processes like testing and analysis difficult to coordinate. Argo CD improved the situation by providing convenient interfaces to Kubernetes clusters, such as health assessments, sync hooks, and waved deployments, but it has not been enough.

As soon as there is a need to coordinate deployments over multiple environments, GitOps falls short. One of our most common conversations with customers is what to do after Argo CD is up and running. How can platform teams provide a user experience to their application developers and give them the autonomy to move their changes safely into production?

Until now, the answer to this question has been: cobbled-up scripts and bespoke, fragile automation. If we were to ask ten different organizations how they handle environment promotion, we would get ten different responses, everyone repeating the same patterns and even anti-patterns. Invariably, CI systems are over-leveraged to handle the job of CD.

At its core, the goals of CI are markedly different from the goals of CD. CI aims to build and produce an artifact as efficiently as possible. On the other hand, the objective of CD is to carry an artifact as safely as possible to production. Whereas CI is generally a short-lived job, CD is often a long, drawn-out process where promoting something from dev to production might take hours, if not days. And until now, adequate tooling has yet to reflect those needs.

Kargo aims to change all of that. 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.

Instead, Kargo Stages are used to model your environments and are the basic building blocks of your deployment pipeline. Stages are independently defined and loosely coupled with other Stages, linked together via subscriptions. They have their own lifecycle, testing, analysis, and conditions for deployment. Artifacts, which we call Freight, are promotable units of deployment that become qualified as they move from Stage to Stage. The final result is a deployment pipeline that is both easier to manage and more powerful than a Jenkinsfile or GitHub action could ever hope to be.

Kargo User Interface
Kargo User Interface

Drawing from our experience with Argo CD, we recognize the crucial importance of a positive developer experience. As a result, we are dedicating significant focus to enhancing Kargo's user interface. We anticipate end-user developers to visit Kargo’s interface on a daily basis, as they promote, manage, and observe their environments. Within Kargo’s user interface, developers can understand their environments at a glance: what is running, where artifacts have been deployed, and how things are progressing through the pre-defined Stages.

What we’re announcing today barely scratches the surface of the problems a tool like Kargo can solve. We’re excited about its future and are looking for key design partners as well as fostering a community around the project. Check out the recording of our live webinar where together with Kelsey Hightower we demoed Kargo and talked about its core concepts. You can also get involved and help shape our roadmap by joining us on GitHub or our Discord server.

Kargo will soon be a part of the many features of the Akuity Platform, so if you're interested in testing it out in Beta, please reach out and let us know.

Share this blog:

Latest Blog Posts

What's New in Kargo v0.5.0

What's New in Kargo v0.5.0

We're back from Kubecon EU '24 in Paris, and there was a lot of buzz around Kargo! We had many conversations with folks talking about their struggles with how…...

Argo CD CDK8S Config Management Plugin

Argo CD CDK8S Config Management Plugin

If you haven't stored raw kubernetes YAML files in your GitOps repository, you most probably used some sort of tooling that generates YAML files, for example…...

Application Dependencies with Argo CD

Application Dependencies with Argo CD

With Argo CD and GitOps gaining wide adoption, many organizations are starting to deploy more and more applications using Argo CD and GitOps in their workflows…...

Leverage the industry-leading suite

Contact our team to learn more about Akuity Cloud