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.
Here is the updated section for your README in professional technical English. I’ve refined the descriptions to highlight your DevOps skills, specifically focusing on the dynamic nature of your pipelines.
.
├── 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.
This repository utilizes GitHub Actions to automate security auditing and manifest validation, ensuring that only "clean" and syntactically correct configurations reach the cluster.
A scheduled and event-driven vulnerability scanner that maintains an overview of the software supply chain.
- Dynamic Matrix Strategy: The workflow automatically parses all Docker images defined in the
manifests/directory and generates a parallel execution matrix. - Trivy Analysis: Every extracted image is scanned for
CRITICALandHIGHvulnerabilities.
A robust "Gatekeeper" pipeline that triggers on every Pull Request to the main branch:
- Kube-Linter: Audits Kubernetes manifests against security best practices (e.g., verifying
SecurityContext,Resource Limits, andRoot FSsettings). - Infrastructure as Code (IaC) Scanning: Uses Trivy to detect misconfigurations in the YAML manifests before they are applied.
- Syntax & Schema Verification: Validates YAML structure using
yqand ensures ArgoCDApplicationmanifests contain all required fields to prevent synchronization failures. - Sanity Checks: Verifies the logical presence of essential resources (like
Deployments) within each project subdirectory.
- Add external secret manager
- Add the ELK Stack
Made with ❤️ by Yurii Yevtushenko