Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/oscaromeu/home-ops

A mono repository for my homelab infrastructure and Kubernetes cluster which adheres to Infrastructure as Code (IaC) and GitOps practices where possible
https://github.com/oscaromeu/home-ops

ansible flux gitops homelab k3s k8s-at-home kubernetes logging monitoring observability renovate selfhosted terraform tracing

Last synced: 3 months ago
JSON representation

A mono repository for my homelab infrastructure and Kubernetes cluster which adheres to Infrastructure as Code (IaC) and GitOps practices where possible

Awesome Lists containing this project

README

        

# ๐Ÿก ๐Ÿงช Home Lab

## ๐Ÿ“– Overview

This mono repository houses the infrastructure for my homelab. I try to adhere to Infrastructure as Code (IaC) and GitOps practices using tools like [Ansible](https://www.ansible.com/), [Terraform](https://www.terraform.io/), [Kubernetes](https://kubernetes.io/), [Flux](https://github.com/fluxcd/flux2), [Renovate](https://github.com/renovatebot/renovate) and [GitHub Actions](https://github.com/features/actions).

## โ›ต How to get started

There is a template over at [onedr0p/flux-cluster-template](https://github.com/onedr0p/flux-cluster-template) if you want to try and follow along with some of the practices I use here.

## ๐ŸŽจ Cluster components

+ [actions-runner-controller](https://github.com/actions/actions-runner-controller): Self-hosted Github runners
+ [cert-manager](https://cert-manager.io/docs/): Creates SSL certificates for services in my k3s cluster.
+ [cilium](https://cilium.io/get-started/): Internal Kubernetes networking plugin.
+ [external-dns](https://github.com/kubernetes-sigs/external-dns): Automatically manages DNS records from my cluster in a cloud DNS provider.
+ [external-secrets](https://github.com/external-secrets/external-secrets/): Managed Kubernetes secrets using [Doppler](https://www.doppler.com).
+ [ingress-nginx](https://github.com/kubernetes/ingress-nginx/): Ingress controller to expose HTTP traffic to pods over DNS.
+ [Rook](https://rook.io): Distributed block storage for persistent storage.
+ [sops](https://github.com/mozilla/sops): Managed secrets for Kubernetes, Ansible and Terraform which are commited to Git.
+ [volsync](https://volsync.readthedocs.io/en/stable/) and [snapscheduler](https://backube.github.io/snapscheduler/): Backup and recovery of persistent volume claims.

... and more!

## ๐Ÿ—„๏ธ Hardware

## Production Nodes

| Device | Count | Specs | OS | Purpose |
|--------------------|-------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------|---------|
| MinisForum um350 | 1 | **RAM** `32GB`
**M.2 SSD** `500GB`
**HDD SSD** `500GB` | Ubuntu 22.04.4 LTS | Control Plane |
| MinisForum um350 | 1 | **RAM** `32GB`
**M.2 SSD** `500GB`
**HDD SSD** `500GB` | Ubuntu 22.04.4 LTS | Data Plane |
| Minisforum um560 | 1 | **RAM** `32GB`
**M.2 SSD** `1TB`
**HDD SSD** `500GB` | Ubuntu 22.04.4 LTS | Data Plane |

## Staging Nodes

| Device | Count | Specs | OS | Purpose |
|--------------------|-------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------|---------|
| Turing Pi RK1 | 3 | **RAM** `16GB`
**M.2 SSD** `500GB`| Ubuntu 22.04 LTS | Development & Staging |

## Infrastructure

| Device | Count | Specs | OS | Purpose |
|--------------------|-------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------|---------|
| Turing Pi RK1 | 1 | **RAM** `16GB`
**M.2 SSD** `500GB`
**HDD** `1TB` | - | DNS Server |
| Turing Pi Board V2 | 1 | - | - | - |
| Unifi UDM Pro | 1 | - | - | 10Gb Core Switch + Router + FW |
| Unifi Lite 8 PoE | 1 | - | - | Switch |
| Mac Mini | 1 | **RAM** `8GB`
**M.2 SSD** `256GB` | - | TBD |

## ๐Ÿ“œ Changelog

See my _awful_ commit [main history](https://github.com/oscaromeu/home-ops/commits/main) and [legacy history](https://github.com/oscaromeu/home-ops/tree/d75a6360586de8b5b5c4ff6b553b7512cfea5007)

## :handshake:ย  Gratitude and thanks

Thanks all the people of [Home Operations](https://discord.gg/home-operations) Discord community who put a lot of effort and donate their time to the community.

## ๐Ÿ” License

See [LICENSE](./LICENSE) v.g WTF License