This repository is a fully self-contained Monorepo demonstrating end-to-end GitOps delivery for a Node.js + MongoDB application across dev and prod local KinD clusters.
- Monorepo Structure: App source code, Docker configs, KinD cluster manifests, and Flux GitOps declarations reside in the same repository.
- Clusters:
dev-cluster: 1 Control Plane + 3 Workers | 1 App Replica | Exposed athttp://localhost:8081prod-cluster: 1 Control Plane + 3 Workers | 3 App Replicas | Exposed athttp://localhost:8082
- Data Persistence: MongoDB StatefulSet retains state on host machine (
$HOME/kind-storage/...), persisting data across cluster teardowns.
mkdir -p $HOME/kind-storage/dev-mongo$HOME/kind-storage/prod-mongo
chmod 777 $HOME/kind-storage/dev-mongo$HOME/kind-storage/prod-mongokind create cluster --config kind/dev-cluster.yaml
kind create cluster --config kind/prod-cluster.yamlkind load docker-image node-app:latest --name dev-cluster
kind load docker-image node-app:latest --name prod-clusterexport GITLAB_TOKEN="glpat_yourPersonalAccessToken"
flux bootstrap github --owner=berkayalan --repository=gitops --branch=main --path=k8s/clusters/dev --personal
flux bootstrap github --owner=berkayalan --repository=gitops --branch=main --path=k8s/clusters/prod --personaldelete all existing KinD clusters at once
kind delete clusters --all