Skip to content

fmurodov/homeops

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

87 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

HomeOps

Infrastructure as Code repository for home infrastructure management.

Cluster Photo

Repository Structure

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, ingress, 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

Projects

Talos1018 Cluster

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 with L2 announcements
  • IP Range: 10.18.6.90-93

Infrastructure Architecture

Layered architecture with minimal dependencies:

Core (no dependencies):

  • Cilium CNI with L2 announcements
  • cert-manager with Let's Encrypt
  • ingress-nginx

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

Kubernetes GitOps

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

Prerequisites

  • talosctl
  • kubectl
  • helm
  • flux CLI
  • sops (for secret management)

Getting Started

  1. Clone the repository:
git clone https://github.com/fmurodov/homeops.git
cd homeops
  1. Navigate to the desired project directory and follow the project-specific README instructions.

Development

Git Pre-Commit Hook

To automatically validate configs before committing:

cp scripts/pre-commit .git/hooks/pre-commit

This will run ./scripts/validate.sh before each commit. To bypass: git commit --no-verify

About

🏠 Infrastructure as Code for home Kubernetes cluster running on Talos Linux with Flux CD

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages