Working with Argo CD
This topic walks you through how to use the Argo CD to manage your workload
across clusters with
Argo CD Installation
You have installed Argo CD following the instructions in Getting Started.
In this example, we are using a Karmada environment with at least
3 member clusters joined.
You can set up the environment by
hack/local-up-karmada.sh, which is also used to run our E2E cases.
# kubectl get clusters
NAME VERSION MODE READY AGE
member1 v1.19.1 Push True 18h
member2 v1.19.1 Push True 18h
member3 v1.19.1 Pull True 17h
Registering Karmada to Argo CD
This step registers Karmada control plane to Argo CD.
First list the contexts of all clusters in your current kubeconfig:
kubectl config get-contexts -o name
Choose the context of the Karmada control plane from the list and add it to
argocd cluster add CONTEXTNAME.
For example, for
karmada-apiserver context, run:
argocd cluster add karmada-apiserver
If everything goes well, you can see the registered Karmada control plane from the Argo CD UI, e.g.:
Creating Apps Via UI
Take the guestbook as example.
First, fork the argocd-example-apps repo and create a branch
Then, create a PropagationPolicy manifest under the
+ New App button as shown below:
Give your app the name
guestbook-multi-cluster, use the project
default, and leave the sync policy as
forked repo to Argo CD by setting repository url to the github repo url, set revision as
and set the path to
For Destination, set cluster to
karmada and namespace to
You can sync your applications via UI by simply clicking the SYNC button and following the pop-up instructions, e.g.:
More details please refer to argocd guide: sync the application.
Checking Apps Status
For deployment running in more than one clusters, you don't need to create applications for each
cluster. You can get the overall and detailed status from one
Argo CD < v2.6.0
Argo CD >= v2.6.0
propagationpolicy/guestbook in the middle of the picture are the
resources created by the manifest in the forked repo. And the
resourcebinding/guestbook-ui-deployment in the right of the picture are the resources created by Karmada.
Checking Detailed Status
You can obtain the Deployment's detailed status by
Checking Aggregated Status
You can obtain the aggregated status of the Deployment from UI by