ArgoCD Labs¶
Getting Started Tip
Choose the preferred way to run the labs. If you encounter any issues, please contact your instructor.
Intro¶
- This tutorial teaches ArgoCD through hands-on labs designed as practical exercises.
- Each lab is packaged in its own folder and includes the files, manifests, and assets required to complete the lab.
- Every lab folder includes a
READMEthat describes the lab’s objectives, tasks, and how to verify the solution. - The ArgoCD Labs are a series of GitOps exercises designed to teach players ArgoCD skills and features.
- The inspiration for this project is to provide practical learning experiences for GitOps and continuous delivery.
Pre-Requirements¶
- This tutorial will test your
Kubernetes,ArgoCD, andGitOpsskills. - You should be familiar with the following topics:
- Basic Linux commands and shell scripting
- Kubernetes core concepts (
pods,deployments,services) - Basic knowledge of YAML
- Basic Git knowledge
- For advanced Labs:
Kubernetesnetworking and RBACHelmandKustomizebasics
Usage¶
- There are several ways to run the ArgoCD Labs.
- Choose the method that works best for you.
- Local cluster with
kindork3d(Recommended) - Using Google Cloud Shell
- Any existing Kubernetes cluster
The easiest way to get started locally:
# Install kind
brew install kind # macOS
# or
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.22.0/kind-linux-amd64 && chmod +x ./kind
# Run the setup lab
cd Labs/000-setup
bash _demo.sh
Prerequisites:
- Docker installed and running
kubectlinstalledkindork3dinstalledargocdCLI installed
- Google Cloud Shell provides a free, browser-based environment with Kubernetes tools pre-installed.
- Click on the
Open in Google Cloud Shellbutton below:
- The repository will automatically be cloned into a free Cloud instance.
- Use CTRL + click to open it in a new window.
- Follow the instructions in the README of each lab.
!!! warning “” - Ensure you have the necessary permissions to create Kubernetes clusters and namespaces. - Enjoy, and don’t forget to star the project on GitHub!
Preface¶
What is ArgoCD?¶
ArgoCDis a declarative, GitOps continuous delivery tool for Kubernetes.- It follows the GitOps pattern of using Git repositories as the source of truth for defining the desired application state.
- ArgoCD automates the deployment of the desired application states in the specified target environments.
- Application deployments can track updates to branches, tags, or specific versions of manifests in Git.
How ArgoCD Works¶
- ArgoCD continuously monitors running applications and compares the current state against the desired state in Git.
- When a difference (drift) is detected, ArgoCD can automatically or manually sync the application back to the desired state.
- ArgoCD supports multiple config management tools: plain YAML, Helm, Kustomize, Jsonnet, and more.
GitOps Principles¶
- Declarative: The entire system is described declaratively.
- Versioned and Immutable: The desired state is stored in Git with history.
- Pulled Automatically: Software agents pull the desired state from Git.
- Continuously Reconciled: Software agents observe actual vs desired state and reconcile.
