All Products
Search
Document Center

Container Service for Kubernetes:Create a multi-cluster application

Last Updated:Mar 26, 2026

When you manage applications across multiple clusters, maintaining separate Argo CD Application resources for each cluster is error-prone and hard to scale. The multi-cluster GitOps feature in ACK One uses Argo CD ApplicationSet to solve this: one application set template automatically generates one Argo CD Application per target cluster, so a single commit propagates to all clusters simultaneously.

This topic describes how to create a multi-cluster application in the ACK One console.

Prerequisites

Before you begin, ensure that you have:

Create a multi-cluster application

  1. Log on to the ACK One console. In the left-side navigation pane, choose Fleet > Multi-cluster GitOps.

  2. In the upper-left corner of the Multi-cluster GitOps page, click the Dingtalk_20231226104633.jpg icon next to the fleet name, and select the target fleet from the drop-down list.

  3. Click Create Multi-cluster Application > GitOps to open the Create Multi-cluster Application - GitOps page.

  4. On the Quick Create tab, configure the following parameters. Under Advanced Configuration, configure the synchronization policies. When Automatic is selected, you can enable the following options. For sync operations, the following options are available. For a complete reference on sync options, see Argo CD sync options.

    ParameterDescriptionExample
    Multi-cluster Application Set NameName of the application set.appset-echo-server-demo
    ProjectArgo CD project the application set belongs to.default
    Source Code URLURL of the Git repository containing your application manifests.https://github.com/AliyunContainerService/gitops-demo.git
    Git BranchBranch to track in the repository.main
    PathPath within the repository to the application manifests. This can point to a directory of YAML files, a Helm chart root, or a Kustomize directory.manifests/helm/echo-server
    Destination ClusterClusters to deploy the application to. If left blank, all clusters registered in Argo CD — except the in-cluster (where the fleet and Argo CD run) — are used as destination clusters.
    NamespaceNamespace in each destination cluster where the application is deployed.demo
    Application NameName template for each generated Argo CD Application. The following variables are available by default: {{.name}}, {{.metadata.annotations.cluster_name}}, and {{.metadata.annotations.cluster_id}}.{{.metadata.annotations.cluster_id}}-echoserver

    Synchronization policy (ApplicationSet)

    OptionDescription
    PRESERVE RESOURCES ON DELETIONWhen selected, child resources created by this application set are retained if the application set is deleted. Select this to protect workloads from accidental deletion of the application set.

    Synchronization policy (Application)

    OptionDescription
    ManualSync is triggered only when you manually initiate it.
    AutomaticArgo CD automatically syncs the application when it detects a difference between the Git repository and the live cluster state.
    OptionDescription
    PRUNE RESOURCESBy default, Argo CD does not delete resources that no longer exist in Git — this is a safety mechanism to prevent accidental data loss. When enabled, resources removed from the Git repository are automatically deleted from the cluster. Enable this only when you want Git to be the sole source of truth for cluster state.
    SELF HEALBy default, manual changes to live cluster resources do not trigger an automatic sync. When enabled, any out-of-band change to a live cluster resource is automatically reverted to match the desired state in Git. Enable this to prevent configuration drift caused by direct cluster modifications.
    OptionDescription
    SKIP SCHEMA VALIDATIONSkips Kubernetes resource spec validation before applying. Equivalent to `kubectl apply --validate=true|false`. Enabled by default.
    AUTO-CREATE NAMESPACEAutomatically creates the target namespace if it does not exist in the cluster.
    PRUNE LASTDeletes pruned resources only after all other resources are deployed and healthy, reducing the risk of downtime during sync.
    APPLY OUT OF SYNC ONLYSyncs only resources in the OutOfSync state, which speeds up sync operations when most resources are already in sync.
    RESPECT IGNORE DIFFERENCESDuring sync, ignores fields specified in the ignoreDifferences configuration so those fields are not overwritten.
    SERVER-SIDE APPLYUses Kubernetes server-side apply instead of the default client-side apply. Use this when a resource is too large to fit within the allowed annotation size, when patching resources not fully managed by Argo CD, or when you want declarative field management.
    REPLACEUses kubectl replace (delete then recreate) instead of kubectl apply (patch). Use this only when apply is not sufficient, such as for immutable fields.
    RETRYRetries a failed sync operation. Configure the number of retries, retry interval, and backoff policy.
  5. If Quick Create does not meet your requirements, select the Create from YAML tab and edit the ApplicationSet YAML directly.

    Quick Create and Create from YAML are synchronized. Changes made on either tab are reflected in the other.
  6. Click OK. The application set is created, and the status of each generated application appears in the Status column on the Multi-cluster GitOps page.

    4f94c85b2da653c00f17f6e3439ce9ce

  7. To inspect the generated applications, click the number in the Application column next to the application set name. A summary of all applications created from this application set is displayed. Click an Application Name to open the Argo CD UI for that application.

    cc83f3c5287d42465e7803337cd399d3