Argo CD is a declarative GitOps continuous delivery tool for Kubernetes and is a graduate project of the CNCF community. The core resource of Argo CD is the application. The declaration will allocate applications from a specified Git repository to a designated cluster. However, each application can only be deployed to one cluster at a time, which requires significant manual effort in multi-cluster GitOps scenarios to release applications through the Argo CD Application. To address this, Argo CD introduces ApplicationSet, which generates multiple applications from a single template. However, the Argo CD UI has not provided the ability to manage ApplicationSet in the console, and it is not intuitive or convenient to manage ApplicationSet through the Argo CD CLI or kubectl.
ACK One GitOps has released a new multi-cluster application console that supports managing Argo CD ApplicationSet, significantly enhancing the experience of managing multi-cluster GitOps application distribution for large-scale applications and clusters.
ApplicationSet is a feature in Argo CD designed to automatically and more flexibly manage applications across multiple clusters. It simplifies management, making it easier to handle large-scale applications and numerous clusters. ApplicationSet allows you to deploy multiple applications from one or more Git repositories to multiple Kubernetes clusters by using a single Kubernetes manifest:
• Deploy an application to multiple clusters
• Deploy multiple applications to a cluster
• Deploy multiple applications to multiple clusters
ApplicationSet functions are implemented by the ApplicationSet CRD and the ApplicationSet Controller. The Controller uses the templates and generators defined by the ApplicationSet CRD to generate multiple applications. Generators are responsible for generating parameters and filling them into templates. Argo CD provides several types of generators for different scenarios. Here are some of the commonly used ones:
• List generator: Generate parameters based on a fixed key-value list.
• Cluster generator: Automatically generate cluster parameters based on the cluster list defined in Argo CD.
• Git generator: Generate parameters based on the file or directory structure of the Git repository.
• Matrix generator: Combine two generators to generate parameters.
You can use Distributed Cloud Container Platform for Kubernetes (ACK One) GitOps to build Continuous Delivery (CD) pipelines for multi-cluster applications in multi-cloud, multi-cluster, and hybrid cloud scenarios. ACK One GitOps is integrated with fully-managed Argo CD, the multi-cluster management feature of ACK One, Resource Access Management (RAM), and Alibaba Cloud single sign-on (SSO). With these capabilities, ACK One GitOps provides out-of-the-box Argo CD features and a secure and comprehensive GitOps CD experience for multi-cluster application delivery. In this way, continuous deployment for applications in hybrid cloud and multi-cluster scenarios can be implemented in a quick, consistent, and secure manner.
ACK One GitOps provides the following benefits:
• Simplified application deployment across clusters
• Improved high availability: Highly available Argo CD, supporting large-scale applications
• Multi-tenancy management based on Alibaba Cloud RAM
• Improved observability
Currently, the Argo CD community does not support managing ApplicationSet through the UI, which is not user-friendly for large-scale application management scenarios and increases operational complexity and costs. For example:
• You may need to use the Argo CD CLI or kubectl to manage ApplicationSet while still using the Argo CD UI to view and manage applications.
• When writing ApplicationSet YAML, you need to manually obtain cluster names or labels and then fill them into the YAML.
To further improve user experience, ACK One implements a multi-cluster application console to manage Argo CD ApplicationSet.
The ACK One multi-cluster application console supports two methods for creating ApplicationSet: Quick Creation and YAML Creation. Changes made using either method are synchronized:
1. Quick Creation: Provide a quick way to publish applications to one or more clusters.
You can select a cluster by Argo CD cluster name and label, and configure synchronization options in advanced configurations.
2. YAML Creation: Offer more flexibility for creating ApplicationSet. A default demo YAML is provided, which deploys the echo-server application to all associated clusters of the fleet. You can define your own ApplicationSet here, such as those that use matrix and git generators.
After the ApplicationSet is created, the ApplicationSet Controller generates multiple applications. Click the number in the Application column on the list page to view the list of applications created and managed by the ApplicationSet. This association is difficult to find by using kubectl alone.
On this page, you can quickly view the overview information. You can click Application Name to go to the Argo CD UI and view the application details.
Navigating to the Argo CD UI application details page, you can perform actions such as syncing, rolling back to a specific version, and viewing the complete resource topology and status. You can also modify resources, such as applications and deployments, directly in the Argo CD UI.
You can also edit or delete ApplicationSet on the list page.
ACK One GitOps is committed to providing you with simple, fast, and secure multi-cluster GitOps continuous delivery capabilities, allowing you to focus more on business development.
High Availability and Performance: Best Practices for Deploying Dify based on ACK
175 posts | 31 followers
FollowAlibaba Container Service - May 16, 2024
Alibaba Container Service - December 5, 2024
Alibaba Cloud Native - May 23, 2023
Alibaba Container Service - July 16, 2024
Alibaba Container Service - May 31, 2023
Alibaba Container Service - April 12, 2024
175 posts | 31 followers
FollowAn enterprise-level continuous delivery tool.
Learn MoreAlibaba Cloud Container Service for Kubernetes is a fully managed cloud container management service that supports native Kubernetes and integrates with other Alibaba Cloud products.
Learn MoreProvides a control plane to allow users to manage Kubernetes clusters that run based on different infrastructure resources
Learn MoreAccelerate and secure the development, deployment, and management of containerized applications cost-effectively.
Learn MoreMore Posts by Alibaba Container Service