Skip to content

durrello/gitops-kubernetes-platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gitops-kubernetes-platform

A GitOps reference platform using ArgoCD and the app-of-apps pattern to declaratively deliver workloads to Kubernetes. The Git repository is the single source of truth — ArgoCD continuously reconciles the cluster to match what's committed here.

Runs end to end on a local kind or minikube cluster, so you can see real GitOps without a cloud account.

How it works

graph TD
    Git[(This Git repo)] -->|watched by| Argo[ArgoCD]
    Argo -->|app-of-apps| Root[Root Application]
    Root --> A1[sample-app Application]
    Root --> A2[future apps...]
    A1 -->|Helm chart| K8s[(Kubernetes cluster)]
Loading
  1. ArgoCD watches this repo.
  2. A single root Application (bootstrap/root-app.yaml) points at apps/.
  3. Each file in apps/ is itself an ArgoCD Application pointing at a Helm chart in charts/.
  4. Commit a change → ArgoCD syncs it to the cluster automatically.

Layout

.
├── bootstrap/
│   └── root-app.yaml          # The "app of apps" — install this once
├── apps/
│   └── sample-app.yaml        # ArgoCD Application for the sample app
├── charts/
│   └── sample-app/            # Helm chart (Deployment, Service, values)
└── scripts/
    └── setup-kind.sh          # Create a kind cluster + install ArgoCD

Quick start (local kind cluster)

# 1. Create a cluster and install ArgoCD
./scripts/setup-kind.sh

# 2. Point ArgoCD at this repo (edit repoURL in the manifests to your fork first)
kubectl apply -f bootstrap/root-app.yaml

# 3. Watch ArgoCD reconcile
kubectl -n argocd get applications -w

# 4. Get the ArgoCD admin password and UI
kubectl -n argocd get secret argocd-initial-admin-secret \
  -o jsonpath="{.data.password}" | base64 -d; echo
kubectl -n argocd port-forward svc/argocd-server 8080:443
# open https://localhost:8080  (user: admin)

What this demonstrates

  • The app-of-apps pattern for scalable, declarative delivery
  • ArgoCD Application CRDs with automated sync, self-heal, and pruning
  • Helm charts delivered through GitOps rather than helm install by hand
  • A reproducible local environment via kind

Notes

  • Before applying, change repoURL in bootstrap/root-app.yaml and apps/*.yaml to your fork.
  • syncPolicy.automated with prune and selfHeal makes the cluster self-correct toward Git.

License

MIT

About

GitOps platform: ArgoCD app-of-apps delivering a sample app to Kubernetes via Helm

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages