Using GitOps, Multiple Argo Instances, and Environments with Argo CD at Scale
As open-source software evolves and grows, it’s important that organizations, both large and small, can scale to keep up with their end user’s needs.
At Codefresh, we are announcing a new release of our platform, Codefresh Software Delivery Platform, powered by Argo (CSDP) which delivers a scalable deployment management platform with Argo. Some of the major new features include the following support:
- Argo CD
- Argo Workflow Creation
- Argo Events
- Argo Rollouts Visualization
- Codefresh Argo Runtime
- Deployment Traceability and Visibility
- Multi-OS and Architecture Support
- Multi-Cluster Support
- Images Dashboard
- GitOps Pipelines
- Pipeline Metrics Dashboard
- Applications Dashboard (previously the Codefresh GitOps dashboard)
These are some of the major new features in Codefresh’s new platform. However, within this post, we’ll only be focusing on the Argo CD support and Applications Dashboard built within the platform and its capabilities.
Argo CD
Argo CD is a declarative tool that can help you enable GitOps for application deployments. Its primary function is continuous delivery for any Kubernetes resource, and this includes Argo events, services, and deployments across multiple clusters.
The application’s UI enables you to view the status of deployments and monitor applications and user access. However, using Argo CD’s UI only allows us to view a single instance of a project. For example, if there are multiple instances, then you have multiple dashboards you need to reference and keep track of.
So, how do you tell Argo CD how to find your multiple applications within various instances of Argo? Well, this is why Codefresh is so helpful because it allows you and your organization to view multiple Argo CD installations from different Argo CD instances within one single dashboard!
Codefresh Software Delivery Platform’s Argo CD Support
With the Codefresh Software Delivery Platform, you have the ability to execute a pipeline on multiple clusters, with different environments on the same pipeline. You can also maintain multiple instances of Argo CD, allowing you to collect data from more than just a single instance.
So, as more and more organizations begin to adopt containers and Kubernetes, it results in running and maintaining several clusters, applications, and environments. Some of these applications and clusters could be used in production environments, while others are using non-production environments. Such applications and clusters could even be running across multiple different operating systems or cloud environments. Within each environment comes different restrictions and expectations that are challenging to manage efficiently.
This widespread adoption of containers and Kubernetes creates a lot of complexity when installing, updating, and trying to maintain everything. However, there are ways to manage this complexity by resorting to a template tool when deploying. Yet, it still only works on a much smaller scale. So, what does an organization do as more and more clusters and applications are added to an organization?
Applications Dashboard
A solution to the problem we mentioned above is the new Codefresh Software Delivery Platform, powered by Argo. By utilizing Codefresh’s new platform, you now have the ability to view any Argo CD installation with different Argo CD instances in one place.
With the Codefresh Software Delivery Platform, you can answer a lot of important questions within your organization, whether you’re a developer or a product manager. Some of the common questions the new Applications dashboard can answer for you and your team are:
- What features are deployed right now in any of your environments?
- What features are waiting in Staging?
- What features were deployed last Thursday?
- Where is feature #53.6 in our environment chain?
What’s great is that you can answer all of these questions by viewing one single dashboard. This is a feature that saves you time, especially for those of you who are current Argo CD users. Within our new platform, you can view the following information in one place:
- Different Argo CD instances
- Services affected by each deployment
- The current state of Kubernetes components
- Deployment history and log of who deployed what and when and the pull request or Jira ticket associated with each deployment
This allows not only your developers to view and better understand your deployments, but it also allows the business to answer important questions within an organization. For example, if you are a product manager, you can view when a new feature is deployed or not and who was it deployed by, but with Argo alone, you don’t have this capability. So, for example, you not only can view multiple Argo CD instances, but you can also view a new feature in QA last week on Thursday and that it’s being promoted and released into another Argo CD instance for Production today. The dashboard is a combination of multiple Argo CD instances and individual features Codefresh offers for your deployments.
Before Codefresh Software Delivery Platform powered by Argo
Currently, most organizations are utilizing several tools similar to the ones below to gather all the necessary deployment data.
- Jira — First, a team may need to reference their Jira board to identify a feature and its reference number, who worked on it, and its status.
- Git — Second, a team will need to reference their Git changes within their source control repository.
- Jenkins — Third, a team will need to reference an automation tool for their builds, testing, and deployments.
- Argo CD — Fourth, an instance of Argo CD for the correct application, cluster, service, and environment would need to be referred to, to identify the deployment and any sort of issues.
This entire process could take up to 2 hours, as opposed to referencing a single dashboard that is implemented within the new Codefresh Software Delivery Platform, powered by Argo.
After Using Codefresh Software Delivery Platform powered by Argo
Utilizing the Codefresh platform and this dashboard within your deployment workflow will allow you and your organization to improve application performance by isolating clusters and selectively exposing a service for testing and release. This provides the following benefits:
- Increased performance and availability
- Isolation and multi-tenancy
- GitOps compliant
- Improved operations with fewer errors and improved responsiveness
This supports organizations that need this visibility. For example, if your organization has an Argo CD instance in Production and has it divided into regions: US, Asia, or Europe or you have an instance in QA or Staging, then you can view all of these instances of Argo CD for your applications and clusters in one place. So all 3 Argo CD instances with 3 different clusters can be viewed on 1 dashboard instead of 3 individual dashboards, enhancing clarity and allowing you to deploy more frequently.
Argo CD’s full potential is unlocked with Codefresh at an enterprise scale, as we continue to enable GitOps for your deployments, while also supporting best practices and industry standards. This is not an extension we’re offering: it’s an implementation within our platform, and we’re excited for you to try it!
Conclusion
Codefresh Software Delivery Platform will be able to support your organization by allowing you to scale your deployment workflow with Argo easily. We’re looking ahead to what our users and the open-source community need to support their deployments by enabling GitOps and allowing you and your business to deploy more frequently with fewer issues with the power of Argo.
Start using the Codefresh platform today with additional features rolling out over the coming weeks, Codefresh is available free for small teams and with a free trial for larger teams. Click here to get started!