Skip to content

lunarys/gitops

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

784 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

k8s GitOps

Personal homelab Kubernetes cluster — a space for experimenting and running self-hosted workloads. Managed declaratively via GitOps: everything in this repo is what runs in the cluster. There are small exceptions I don't want to make public. These are placed in a quite similar, private repository.

Repository Structure

  • 01_k0s - k0s cluster configuration and setup scripts
  • 02_bootstrap - Core cluster components bootstrapped before ArgoCD takes over
  • 03_apps/apps - All application deployments, managed as ArgoCD app-of-apps
  • scripts - Utility scripts

Conventions, patterns, and security architecture are documented in AGENTS.md, SECURITY.md, and PRINCIPLES.md.

Cluster Bootstrap

The cluster runs k0s. Before ArgoCD can manage the rest, a few components are bootstrapped in order:

  1. Cilium — CNI, must be available before any workloads can run
  2. ArgoCD — takes over management of everything that follows
  3. Secrets — secrets for repository and bitwarden access
  4. Traefik — internal ingress controller instance

Core Components

  • OrchestrationArgoCD manages all deployments. Changes to this repo are reconciled automatically into the cluster.
  • NetworkingCilium as the CNI with eBPF-based network policies and L2 load balancing. Traefik handles ingress — a separate internal instance (IP allowlist) and an external instance (CrowdSec, rate limiting, GeoBlock).
  • StorageLonghorn for replicated block storage, local-path-provisioner for node-local volumes, and csi-driver-smb for NAS mounts.
  • DatabasesCloudNativePG operator for PostgreSQL.
  • SecretsExternal Secrets pulls secrets from Bitwarden at deploy time. No secrets are stored in git.
  • TLSstep-ca acts as an internal CA; cert-manager handles certificate lifecycle and Let's Encrypt for public-facing services.
  • SecurityCrowdSec for threat detection, Kyverno for policy enforcement.

Related Repositories

  • helm-charts — custom Helm charts used by apps in this repo; simplifies interaction with core components
  • gitops-private — private workload configurations, private repository

About

gitops repository for k0s and argocd

Resources

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors