# Deploy applications on Arm-based GKE using GitOps with Argo CD

## In this learning path

- [Introduction](https://learn.arm.com/learning-paths/servers-and-cloud-computing/argo-cd-gcp/)
- [Get started with Argo CD on Google Axion C4A (Arm-based)](https://learn.arm.com/learning-paths/servers-and-cloud-computing/argo-cd-gcp/background/)
- [Create a Google Axion C4A virtual machine on Google Cloud](https://learn.arm.com/learning-paths/servers-and-cloud-computing/argo-cd-gcp/instance/)
- [Prepare a GKE cluster for Argo CD deployments](https://learn.arm.com/learning-paths/servers-and-cloud-computing/argo-cd-gcp/gke-cluster-for-argocd/)
- [Install and access Argo CD on Arm64 GKE](https://learn.arm.com/learning-paths/servers-and-cloud-computing/argo-cd-gcp/argocd-install-and-access/)
- [Deploy applications using GitOps with Argo CD](https://learn.arm.com/learning-paths/servers-and-cloud-computing/argo-cd-gcp/argocd-gitops-workflow/)
- [Next Steps](https://learn.arm.com/learning-paths/servers-and-cloud-computing/argo-cd-gcp/_next-steps/)

## About this Learning Path

| Skill level:        | Introductory    |
|---------------------|-----------------|
| Reading time:       | 40 min          |
| Last updated:       | 31 Jul 2026     |

| Author:             | Pareena Verma, Arm [GitHub](https://github.com/pareenaverma) [LinkedIn](https://linkedin.com/in/pareena-verma-7853607) |
|---------------------|------------------------------------------------|
| Arm IP:             | [Neoverse](https://support.arm.com/?tab=compute-ip&Product%20Type=Infrastructure%20Processors) |
| Tags:               | [Containers and Virtualization](https://learn.arm.com/tag/containers-and-virtualization), [Google Cloud](https://learn.arm.com/tag/google-cloud), [Linux](https://learn.arm.com/tag/linux), [Argo CD](https://learn.arm.com/tag/argo-cd), [Kubernetes](https://learn.arm.com/tag/kubernetes), [kubectl](https://learn.arm.com/tag/kubectl), [GKE](https://learn.arm.com/tag/gke), [Git](https://learn.arm.com/tag/git), [NGINX](https://learn.arm.com/tag/nginx) |

### Who is this for?
This is an introductory topic for developers and platform engineers who want hands-on experience implementing GitOps using Argo CD on Arm64-based Google Kubernetes Engine (GKE) clusters running on Google Axion (C4A) processors.

### What will you learn?
Upon completion of this Learning Path, you will be able to:

- Provision an Arm-based SUSE Linux Enterprise Server (SLES) virtual machine on Google Cloud (C4A with Axion processors)
- Create and connect to a Google Kubernetes Engine (GKE) cluster running on Arm64 (Axion) nodes
- Install and validate Argo CD on an Arm-based GKE cluster
- Understand Argo CD core components and GitOps architecture
- Deploy a production-ready application using pure GitOps workflows
- Enable automated sync, pruning, and self-healing with Argo CD
- Verify application health and access to deployed services on GKE

### Prerequisites
Before starting, you will need the following:

- A [Google Cloud Platform (GCP)](https://cloud.google.com/free) account with billing enabled
- Basic familiarity with [Kubernetes concepts](https://kubernetes.io/docs/concepts/)
- Basic understanding of Git and GitHub workflows
- Familiarity with basic Linux command-line usage

### Summary
You’ll deploy applications on Arm-based Google Kubernetes Engine using GitOps with Argo CD on Google Cloud C4A instances built on Arm Neoverse V2 cores. Starting from a SUSE Linux `arm64` VM, you’ll provision an `arm64` GKE environment and install Argo CD using official upstream manifests. You’ll configure browser and CLI access, retrieve admin credentials, and define a Git-backed workflow that continuously reconciles Kubernetes resources. Then, you’ll deploy a production-ready NGINX application from a GitHub repository with automated sync, pruning, and self-healing enabled. By the end, you’ll validate application health and confirm service access on the `arm64` GKE cluster.

### Frequently asked questions

<details>
<summary>Do I need a specific Linux distribution on the VM used to manage the cluster?</summary>
Yes. The steps use a SUSE Linux `arm64` VM and rely on `zypper` for package management. Use an `arm64` SLES environment to match the commands shown.
</details>

<details>
<summary>How do I know `kubectl` is targeting the `arm64` GKE cluster before installing Argo CD?</summary>
Confirm the current Kubernetes context points to your intended GKE cluster and namespace. In the Google Cloud console, verify the node pool uses C4A machine types to ensure you are operating on Arm64 nodes.
</details>

<details>
<summary>What indicates that Argo CD installed and is accessible correctly?</summary>
The `argo-cd` namespace exists, core Argo CD pods report `Ready`, and the web UI is reachable in a browser. You should also be able to retrieve the initial admin credentials and authenticate with the Argo CD CLI.
</details>

<details>
<summary>Which repository setup does Argo CD use for the NGINX GitOps deployment?</summary>
Provide a GitHub repository you control and specify the repository URL and path when configuring Argo CD for the application. Argo CD then creates and syncs the Kubernetes resources from that path, and you should see the NGINX deployment and service in the cluster and in the Argo CD UI.
</details>

<details>
<summary>What should I expect after enabling automated sync, pruning, and self-healing in Argo CD?</summary>
Argo CD applies changes from Git automatically, removes resources that are no longer defined, and corrects drift from out-of-band edits. The application should report `Synced` and `Healthy`, and the resource list in Argo CD should match what’s in the repository.
</details>
