The multi-cluster GitOps feature uses ArgoCD ApplicationSet to simplify application orchestration. It allows you to automatically generate and deploy applications across multiple clusters from a single configuration. This topic describes how to create a multi-cluster application in the ACK One console.
Prerequisites
You have enabled the fleet management feature.
-
You have added one or more associated clusters to the fleet. For more information, see Add an associated cluster.
-
You are logged on to the GitOps system. For more information, see Log on to the GitOps system.
Procedure
Log on to the ACK One console. In the navigation pane on the left, choose .
-
In the upper-left corner of the Multi-cluster GitOps page, click the
icon next to the fleet name and select the target fleet from the drop-down list. -
Click to open the Create Multi-cluster Application - GitOps page.
-
On the Quick Create tab, configure the parameters in the following table.
Parameter
Description
Example
Multi-cluster Application Set Name
The name of the ApplicationSet.
appset-echo-server-demo
Project
The project to which the ApplicationSet belongs.
default
Source Code URL
The URL of the source code repository for the application.
Git Branch
The Git branch for the application.
main
Path
The relative path to the application's YAML manifest files in the Git repository.
manifests/helm/echo-server
Destination cluster
The clusters where the application will be deployed. If left empty, the application is deployed to all clusters managed by ArgoCD except for
in-cluster(the control plane cluster where ArgoCD is running).Namespace
The namespace within the destination clusters where the application will be deployed.
demo
Application Name
The name of the generated application. You can use the following variables:
-
{{.name}}
-
{{.metadata.annotations.cluster_name}}
-
{{.metadata.annotations.cluster_id}}
{{.metadata.annotations.cluster_id}}-echoserver
Advanced configuration
Synchronization Policy (Application Set)
PRESERVE RESOURCES ON DELETION: If selected, resources created by the ApplicationSet's child applications are retained when the ApplicationSet is deleted.
Synchronization Policy (Application)
-
Manual: Manual synchronization.
-
Automatic: Automatic synchronization.
-
PRUNE RESOURCES: If selected, resources that are no longer defined in the Git repository are deleted from the cluster.
-
SELF HEAL: If selected, the application's live state automatically reconciles with the desired state in the Git repository. This prevents configuration drift caused by manual changes.
-
The following table describes the sync options.
Parameter
Description
SKIP SCHEMA VALIDATION
Specifies whether to skip resource schema validation. Selecting this option is equivalent to running
kubectl apply --validate=false. By default, schema validation is performed.AUTO-CREATE NAMESPACE
If selected, automatically creates the target namespace if it does not exist.
PRUNE LAST
If selected, prunes resources at the end of the sync operation, after all other resources are deployed and healthy.
APPLY OUT OF SYNC ONLY
If selected, the sync operation applies changes only to resources that are in an OutOfSync status. This can speed up the sync process.
RESPECT IGNORE DIFFERENCES
If selected, respects the
ignoreDifferencesconfiguration during the sync. Fields specified in theignoreDifferencesconfiguration are not checked for discrepancies.SERVER-SIDE APPLY
Enables Kubernetes Server-Side Apply. Use this option if a resource manifest is too large for the Kubernetes annotation size limit, if you need to patch existing resources that are not fully managed by Argo CD, or to adopt a more declarative approach for tracking field ownership.
REPLACE
If selected, resources are updated using a
replaceaction (kubectl replace) instead of the defaultapplyaction. Thereplaceaction deletes the existing resource before creating the new one, whereasapplyuses a patch to update it.RETRY
Configures the retry strategy for failed sync operations, including the number of retries, the duration between retries, and backoff settings.
For more information about sync options, see Argo CD Sync Options.
-
-
If the Quick Create method does not meet your needs, select the Create from YAML tab and define the ApplicationSet in YAML.
NoteQuick Create is synchronized with Create from YAML, and changes are reflected in the YAML content for Create from YAML.
-
Click OK. You are redirected to the Multi-cluster GitOps page. After the ApplicationSet is created, you can view it in the list. The Status column shows the deployment result, and the Application column shows the number of applications generated by the ApplicationSet.
-
Click the number in the Application column that corresponds to the Name of your ApplicationSet. The Multi-cluster Application Details dialog box opens, listing the generated applications. You can click an Application Name to open its page in the ArgoCD UI. Verify that the application status is Healthy and Synced, which indicates a successful deployment.