Create your FREE Codefresh account and start making pipelines fast. Create Account

Codefresh Software Delivery Platform and the Argo Project

8 min read

After we launched the Codefresh Software Delivery Platform (CSDP) in February, we had a lot of questions from current users and the community about the relationship between CDSP and the Argo projects.

We tried to cover most of the important characteristics of the platform in the announcement blog post, but even then, we got feedback about our Argo offering mainly from two groups of people:

  1. Existing Argo users that wanted to know how Codefresh can help them and what they need to change/update in their existing Argo installation
  2. People that have not adopted Argo/GitOps yet and want to know the best possible choice for them.

In this blog post, we will talk about the relationship between the Codefresh platform and the Argo project and dispel some common misconceptions about how they fit together.

Codefresh is an advocate for Open Source and maintains the Argo Project in partnership with the community.

The Argo Project was first started by Applatix (later acquired by Intuit), and donated to the CNCF in April 2020. Since then, the project has been maintained in a partnership between Codefresh, Intuit, RedHat, and others. At the end of 2020, Codefresh launched Codefresh GitOps, an enterprise offering built on Argo CD and became the first commercial vendor for Argo.

In addition to maintaining the codebase, adding features, doing code reviews etc, we’ve also contributed extensively to documentation, the Argo website, project organization, and donated a new project to Argo Labs (discussed later in this post) called Argo CD Autopilot.

As an open-source first company, it’s very important that our contributions are given back to the community, and not only benefit Codefresh users. Of course a subset of the features provide extensibility to our enterprise platform and help improve the management of Argo at scale. All Codefresh contributors work on items that benefit everyone in the community, not just on features directly related to CSDP.

To help the community adopt Argo while following best practices we launched a number of initiatives to educate and train teams on Argo. The first fruits of this effort are now available in the form of our GitOps certification. This is the first ever certification specifically targeted at Argo. The first course is already out and the feedback we had was phenomenal not only for the choice of content (we even cover Progressive Delivery with Argo Rollouts) but also the presentation (the interactive labs can be done in your browser).

Another major contribution to the open source community was the launch of the Codefresh Hub for Argo Workflows. We saw the need for an easy way to catalog/discover/maintain reusable Argo Workflows and realized that a great benefit to the community would be a centralized repository of curated and versioned Argo Workflow steps. The service is free to use for the whole community and has nothing specific for CSDP. You can use it with a plain Argo Workflows installation. The contents of the Hub are open-source as well so anybody can contribute.

Codefresh also led the way to create ArgoCon, the first ever Argo Conference which took place in 2021 and boasted over 6,000 participants! This was a huge success that further reinforced the idea that the Argo project has a bright future ahead.

We are also always present in all community channels (Slack/Reddit/Github discussions) trying to help people with their journey in the GitOps world.

All these initiatives and contributions show just how committed we are to keeping the Argo Project project open. We are here to help the community and help Argo usage skyrocket among all kinds of organizations.

In summary, Codefresh is currently spending time and effort to help the Argo community is several aspects:

  • Active Project maintenance and contributors across all Argo projects
  • Brand-new project Argo Autopilot
  • Launched the first ever Argo/GitOps certification
  • Launched the first ever public repository for Argo Workflow steps
  • Started and organized the first Argo Conference (ArgoCon)
  • Active engagement with the Argo Community.

The Codefresh Platform is powered by Argo

Now that we have seen how Codefresh is involved in the open source community, let’s talk about our commercial offering CSDP (Codefresh Software Delivery Platform).

Platform architecture
Platform architecture

You can see that CSDP is largely open source today with Argo serving as the core with plans to open source additional components already underway. Codefresh enhances the Argo toolset and offers them in several ways (as we will see in the next section), but we haven’t tampered with the Argo Projects in any way.

An important part of the platform is Argo Autopilot. This is our enterprise installer for Argo, that not only offers a streamlined installation experience for all Argo projects but also comes with an opinionated way to upgrade and maintain your Argo instances. Even though this component is a crucial part of the Codefresh platform, we decided to fully open source it at https://argocd-autopilot.readthedocs.io/ so that the whole community can benefit from it (reinforcing our open source commitment as stressed in the previous section).

The major takeaway is that CSDP is fully compatible with all existing Argo installations. We use the Argo projects behind the scenes in their original form. We haven’t changed any of the projects in a backwards incompatible way.

One of the projects we’re currently working on with the community is a conformance program that will ensure compatibility between the community releases and vendor releases, similar to Kubernetes. You can have confidence workflows, applications, or other resources created for Argo will work in Codefresh.

The Codefresh Platform has several exciting features for new and existing Argo users, but every capability you see is backed in a Git repository according to GitOps principles.

Everything is stored in Git
Everything is stored in Git

This means that if you are already an expert user of Argo, you will be instantly familiar with the internals of the Codefresh platform.

That being said, even though the Codefresh platform is internally powered by Argo, you don’t need to be an Argo expert to adopt CSDP. In fact, we have made the installation of the platform even easier than manually installing the individual Argo projects.

Therefore the Codefresh platform is appropriate for any kind of organization

  • If you already use Argo, then there will be a natural migration path to the Codefresh platform
  • If you are not familiar with the Argo projects, you don’t need to become an expert on them. Codefresh will take care of all the implementation details for you and offer a single control plane for all the individual components with minimal effort on your part

It is also important to stress that the Codefresh platform will also be open source as we already announced.

Codefresh Brings Additional Features to Argo

In the previous section we have seen that the Codefresh Software Delivery platform is based on the Argo projects internally. The next natural question would be what exactly do we add on top of the Argo projects?

The answer is very simple. The Codefresh Software Delivery Platform adds everything else that you need to cover the FULL software lifecycle as can be seen in the diagram below.

Platform components
Platform components

The Argo projects are great at what they do, but they only cover a part of the software lifecycle. Argo CD covers deployment, Rollouts covers progressive Delivery, Workflows/Events cover basic workflows. But what about secret management, release insight, artifact handling, etc?
This is where CSDP comes in. We keep the existing Argo projects for their respective strengths, and we enhance them with all the additional functionality needed by any software enterprise.

Modern Enterprises have come to expect an ever increasing list of features from their delivery platform such as:

  • Artifact storage and management (i.e. containers or binaries) to track all your digital assets
  • Secret management and credentials rotation for secure access to external services
  • Security gates and manual approvals for any enterprise workflows
  • Source code compilation to cover the continuous integration part
  • Project features and issue reporting so what you always know which feature is deployed where
  • Environment promotions and release management for deployments with minimal downtime
  • Insights and analytics to understand your development velocity and release trends
  • Annotations and metadata so you can simply mark and track your digital assets across the whole software lifecycle

All these components must be created from scratch by your organization if you are using just the Argo projects and nothing else. If you adopt CSDP, you get all this out of the box:

Codefresh dashboard
Codefresh dashboard

It is also worth noting that the Codefresh Platform is adding extra integration points between the existing Argo Projects and also fine tunes their functionality specifically for CI/CD scenarios. As a quick example, Argo Workflows is a great project but it is currently designed as a generic workflow engine.

If you are trying to build an in-house CI/CD platform with just Argo Workflows, you will have to spend hundreds of hours to customize the generic workflow engine in order to create a pipeline component that can handle your basic tasks (code compilation, unit testing, security scans). The Codefresh platform does this out of the box. It gives you a turn-key solution for running CI pipelines that are powered by Argo Workflows/Events under the hood.

Offering the features needed by an enterprise

The last point to remember is that apart from adding new features on top of the Argo projects, we also want to offer a turn-key solution for enterprises who want to adopt GitOps. Normally open source support is offered on a best-effort basis, and we realized that several organizations want a single platform that is secure, validated, and supported in an enterprise environment.

This has also guided us to offer extra features that are specifically for enterprises who want to adopt GitOps at scale. As a quick example, the Argo CD dashboard is only managing a single Argo CD instance. If you have 5 installations of Argo CD in your organization, you need to jump around 5 dashboards to understand what is going on. This is very cumbersome and time consuming for big enterprises. The Codefresh platform adds a single control plane which groups and aggregates all your Argo CD instances in a single dashboard.

Argo at Scale
Argo at Scale

To summarize, the Codefresh Software Delivery Platform includes all 4 Argo projects at its core but at the same time:

  • Unifies all of them with common integration points
  • Customizes individual components specifically for CI/CD/GitOps
  • Introduces a unified way to install and manage them
  • Provides a single control and view plane for all of them
  • Adds the extra integrations missing in order to handle the full application lifecycle
  • Augments the basic capability with extra dashboards for full traceability
  • Provides frequent security updates with a well-defined schedule
  • Satisfies all the expectations of Enterprise software such as SSO, support, auditing, etc.

Essentially the Codefresh Software Delivery Platform not only enhances the existing Argo projects but also adds brand new functionality for a full deployment solution.

Try the Community edition for free at https://codefresh.io/product/

Kostis Kapelonis

Kostis is a software engineer/technical-writer dual class character. He lives and breathes automation, good testing practices and stress-free deployments with GitOps.

Leave a Reply

* All fields are required. Your email address will not be published.