An Open Source Proof of Concept demonstrating GitOps application delivery using Argo CD and Kubernetes.
This Proof of Concept demonstrates how Argo CD continuously synchronizes Kubernetes resources from a Git repository.
The repository acts as the single source of truth, allowing Kubernetes applications to be deployed declaratively using GitOps principles.
This Proof of Concept demonstrates how to:
- Install Argo CD on Kubernetes.
- Deploy an application using GitOps.
- Synchronize Kubernetes manifests directly from Git.
- Automatically reconcile configuration drift.
- Observe application status through the Argo CD UI.
- Docker Desktop (Kubernetes enabled)
- kubectl
- Git repository accessible by Argo CD
- Container image available in a registry
Create the namespace:
kubectl create namespace argocdInstall Argo CD:
kubectl apply -n argocd \
-f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yamlWait for the main components:
kubectl wait --for=condition=available deployment/argocd-server \
-n argocd --timeout=300s
kubectl wait --for=condition=available deployment/argocd-repo-server \
-n argocd --timeout=300s
kubectl wait --for=condition=available deployment/argocd-redis \
-n argocd --timeout=300sUpdate the repository URL inside:
argocd-apps/go-demo-application.yaml
Example:
repoURL: https://github.com/openmind-systems-lab/argocd-go-gitops.gitDeploy the Argo CD Application:
kubectl apply -f argocd-apps/go-demo-application.yamlVerify Argo CD components:
kubectl get pods -n argocdVerify the application:
kubectl get applications -n argocdVerify the deployed resources:
kubectl get pods -n go-demo
kubectl get svc -n go-demoExpose the Argo CD UI:
kubectl port-forward svc/argocd-server \
-n argocd \
8080:443Retrieve the admin password:
kubectl -n argocd get secret argocd-initial-admin-secret \
-o jsonpath="{.data.password}" | base64 -dOpen:
https://localhost:8080
Verify the application status is:
Healthy
Synced
Expose the demo application:
kubectl port-forward svc/go-demo \
-n go-demo \
8081:80Test the application:
curl http://localhost:8081/
curl http://localhost:8081/healthzAfter completing this Proof of Concept, you will understand how to:
- Install Argo CD.
- Deploy applications using GitOps.
- Manage Kubernetes manifests declaratively.
- Synchronize Kubernetes from Git.
- Detect and reconcile configuration drift.
- Monitor application health through the Argo CD Dashboard.
The following video demonstrates the complete GitOps workflow:
- Install Argo CD
- Deploy the Application resource
- Synchronize Kubernetes resources
- Observe automatic reconciliation
- Verify the deployed application
- Explore the Argo CD Dashboard
▶️ Watch the demo
record-argocd.mp4
Delete the demo application:
kubectl delete -f argocd-apps/go-demo-application.yaml
kubectl delete namespace go-demoRemove Argo CD:
kubectl delete namespace argocd- https://argo-cd.readthedocs.io/
- https://argo-cd.readthedocs.io/en/stable/user-guide/
- https://argo-cd.readthedocs.io/en/stable/operator-manual/
OpenMind Systems Lab is an independent French non-profit association dedicated to research, experimental development and technical benchmarking in Cloud Native technologies.
Our mission is to produce practical, reproducible and educational Open Source Proofs of Concept covering Kubernetes, Platform Engineering, Distributed Messaging, Infrastructure Security and Artificial Intelligence.
GitHub Organization:
https://github.com/openmind-systems-lab
Made with ❤️ by OpenMind Systems Lab

