Infrastructure as Code repository for home infrastructure management.
homeops/
βββ talos/ # Talos Kubernetes cluster configurations
β βββ talos1018/ # Cluster-specific config and patches
βββ kubernetes/ # Flux CD GitOps manifests
β βββ apps/ # Application deployments
β β βββ talos1018/ # Cluster applications
β βββ infrastructure/ # Infrastructure components
β β βββ talos1018/
β β βββ core/ # Core components (CNI, cert-manager)
β β βββ storage/ # Storage layer (Longhorn)
β βββ clusters/ # Flux configurations
β β βββ talos1018/
β β βββ flux-system/
β β βββ infrastructure.yaml
β β βββ apps.yaml
β βββ components/ # Shared Kustomize components
βββ scripts/ # Automation and validation scripts
βββ docs/ # Documentation and assets
βββ .github/ # CI/CD workflows
A 3-node Kubernetes cluster running on Talos Linux. For detailed setup and configuration, see talos/talos1018/README.md.
- Control plane: 3 nodes
- Network: Cilium CNI (native routing) with L2 announcements and Gateway API
- Dual-stack, IPv6-primary (ULA
fd00:1018:0:5:10:18:6:90-93, IPv410.18.6.90-93)
Layered architecture with minimal dependencies:
Core (no dependencies):
- Cilium CNI (native routing) with L2 announcements and Gateway API (HTTPRoutes for all apps)
- cert-manager with Let's Encrypt
Storage (depends on core):
- Longhorn with S3 backups to Cloudflare R2
Applications (depends on core):
- Deploy in parallel
- Storage-dependent apps wait automatically via Kubernetes
GitOps with Flux CD. See kubernetes/README.md for details.
- Continuous deployment via Flux CD
- Secret management with SOPS + age
- Automated validation via GitHub Actions
talosctlkubectlhelmfluxCLIsops(for secret management)
- Clone the repository:
git clone https://github.com/fmurodov/homeops.git
cd homeops- Navigate to the desired project directory and follow the project-specific README instructions.
To automatically validate configs before committing:
cp scripts/pre-commit .git/hooks/pre-commitThis will run ./scripts/validate.sh before each commit. To bypass: git commit --no-verify