This repository serves as the Single Source of Truth (SSOT) for my lightweight Kubernetes cluster infrastructure. Hosted on a Virtual Private Server (VPS) running K3s, it strictly adheres to GitOps principles using ArgoCD, ensuring that the cluster state always matches the declarative configurations stored in this repository.
π Open the scheme in the Lucidchart
To maintain scalability and clean logical separation, this repository implements the ArgoCD App-of-Apps pattern.
Instead of deploying individual manifests manually, a single root.yaml application is deployed, which recursively discovers and synchronizes all other applications defined in the apps/ directory.
.
βββ apps/ # ArgoCD Application Wrappers
β βββ monitoring.yaml # Kube-Prometheus-Stack definition
β βββ portfolio.yaml # Portfolio app definition
β βββ tikceto.yaml # Tikceto microservices definition
βββ bootstrap/ # Cluster Initialization
β βββ root.yaml # The "App of Apps" entry point
βββ manifests/ # Raw Kubernetes Resources
βββ portfolio/ # Deployment, Ingress, Service
βββ tikceto/ # Backend, Frontend, Minio, Postgres, Ingress
To deploy this entire infrastructure to a fresh Kubernetes cluster (assuming ArgoCD is pre-installed):
1. Apply the Root Application:
kubectl apply -f bootstrap/root.yaml2. Automated Synchronization:
ArgoCD will detect the root application, which will subsequently deploy monitoring, portfolio, and tikceto. All dependencies, persistent volume claims, and ingresses will be provisioned automatically based on the sync policies.
- Add external secret manager
- Add the ELK Stack
Made with β€οΈ by Yurii Yevtushenko