ArgoCD GitOps Home Lab
make validateOverview
Section titled “Overview”Local GitOps lab designed for Kind or Minikube with no cloud cost.
What You Will Build
Section titled “What You Will Build”Architecture Diagram
Section titled “Architecture Diagram”Prerequisites
Section titled “Prerequisites”- Install or review: Kubernetes, Argo CD, Gitops, Kind.
- No cloud provider credentials are required by the project metadata.
- This project can be practiced locally before you publish portfolio evidence.
- Open the safety guide before running commands that create infrastructure.
Credentials And Cost Warning
Section titled “Credentials And Cost Warning”Cost risk is low. Cloud target: no cloud provider. Cloud credentials needed: No. Always use your own account, never commit secrets, and confirm cleanup before creating paid infrastructure.
Step-By-Step Lab
Section titled “Step-By-Step Lab”Use this flow before you run commands:
- Read the cost and credential warning above.
- Review the validation, troubleshooting, cleanup, and portfolio proof sections below.
- Follow the original project guide preserved near the bottom of this page.
- Return to the validation and cleanup checks before you capture portfolio evidence.
Validation Checks
Section titled “Validation Checks”Run the project validation command before and after meaningful changes:
make validateTroubleshooting
Section titled “Troubleshooting”- Run
make validatefirst so local tooling issues are visible early. - If a command fails, check tool versions, working directory, and required environment variables.
- For pipeline failures, check repository secrets, runner permissions, and pinned action versions.
- For Kubernetes failures, check the current context, namespace, pod events, and service endpoints.
Cleanup
Section titled “Cleanup”Cleanup is available or expected for this lab. Use the cleanup or destroy steps in the guide below, then confirm that local clusters, containers, cloud resources, buckets, state files, and CI secrets are no longer active.
Portfolio Proof
Section titled “Portfolio Proof”- Validation command output:
make validate - Screenshot or terminal proof: Kubernetes resource output plus app/GitOps screenshot
- Notes explaining what changed, what failed, and how you fixed it
- Cleanup evidence, especially for cloud or Kubernetes resources
Original Project Guide
Section titled “Original Project Guide”The original README content is preserved here for lab-specific commands and context. Headings are intentionally demoted so the page outline stays focused on the standard lab flow.
Student-friendly GitOps lab for running a simple Kubernetes app locally with Kind or Minikube and deploying it through ArgoCD.
What You Learn
Section titled “What You Learn”- How GitOps differs from manual
kubectl apply - How ArgoCD watches Git and reconciles cluster state
- How to structure app manifests for dev/staging style promotion
- How sync, drift, rollback, and health checks work
Architecture
Section titled “Architecture”flowchart LR Student["Student edits Git repo"] --> AppManifest["k8s/ manifests"] AppManifest --> ArgoApp["ArgoCD Application"] ArgoApp --> ArgoCD["ArgoCD controller"] ArgoCD --> Cluster["Kind or Minikube cluster"] Cluster --> Workload["hello-gitops Deployment + Service"]Prerequisites
Section titled “Prerequisites”- Docker
- Kind for the one-command workflow, or Minikube if you prefer manual setup
kubectl- ArgoCD CLI, optional but useful
One-Command Local Workflow
Section titled “One-Command Local Workflow”make validatemake upmake logsmake downmake up creates a local Kind cluster named gitops-lab, installs ArgoCD, and applies argocd/application.yaml.
Manual Quick Start
Section titled “Manual Quick Start”kind create cluster --name gitops-labkubectl create namespace argocdkubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yamlkubectl wait --for=condition=available --timeout=180s deployment/argocd-server -n argocdkubectl apply -f argocd/application.yamlkubectl get applications -n argocdUpdate argocd/application.yaml so repoURL points to your fork before using it with a real GitHub repo.
Validation
Section titled “Validation”make validateThis parses the Kubernetes and ArgoCD YAML locally, so it works before a cluster or ArgoCD CRD exists.
Troubleshooting
Section titled “Troubleshooting”no matches for kind "Application": install ArgoCD before applying the manifest to a cluster;make validateis only a local YAML check.repoURLsync fails: fork this repository and updateargocd/application.yamlto your fork URL and branch.- App namespace missing: confirm
syncOptionsstill includesCreateNamespace=true. - Kind cluster already exists: run
make down, or useCLUSTER=my-gitops-lab make up.
Cleanup
Section titled “Cleanup”make downFor Minikube users:
minikube deleteStretch Goals
Section titled “Stretch Goals”- Add a
stagingoverlay. - Add ArgoCD sync waves.
- Add image automation.
- Break the deployment and use ArgoCD rollback.
Source Files On GitHub
Section titled “Source Files On GitHub”The full learning flow stays on this page. Open GitHub only when a step asks you to inspect code, fork the lab, or download source assets.