Skip to content

k5sha/k5sha-gitops

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

57 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

βš“ GitOps Infrastructure: ArgoCD & K3s

K3s Kubernetes ArgoCD Prometheus Postgres

πŸ— Project Architecture

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.

K5sha-gitops

πŸ”— Open the scheme in the Lucidchart

🧳 The App-of-Apps Pattern

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.

πŸ“‚ Repository Structure

.
β”œβ”€β”€ 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

βš™οΈ Cluster Bootstrapping

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.yaml

2. 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.

πŸ“… Backlog

  • Add external secret manager
  • Add the ELK Stack

Made with ❀️ by Yurii Yevtushenko

About

This GitOps Repository is the Single Source of Truth for a Kubernetes cluster. It uses ArgoCD to automatically sync the manifests stored here to a K3s environment.

Topics

Resources

Stars

Watchers

Forks

Contributors