Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/simbleau/home-ops
A mono repository for my home infrastructure and K3S kubernetes cluster. Managed with Ansible, Flux, Renovate, and GitHub Actions, with adherence to Infrastructure as Code (IaC) and GitOps practices.
https://github.com/simbleau/home-ops
helm helm-charts k8s-at-home kubernetes
Last synced: 4 months ago
JSON representation
A mono repository for my home infrastructure and K3S kubernetes cluster. Managed with Ansible, Flux, Renovate, and GitHub Actions, with adherence to Infrastructure as Code (IaC) and GitOps practices.
- Host: GitHub
- URL: https://github.com/simbleau/home-ops
- Owner: simbleau
- License: apache-2.0
- Created: 2022-04-13T05:54:05.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-09-09T20:22:17.000Z (over 1 year ago)
- Last Synced: 2024-10-10T20:16:50.991Z (4 months ago)
- Topics: helm, helm-charts, k8s-at-home, kubernetes
- Language: Shell
- Homepage:
- Size: 257 KB
- Stars: 6
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# Home Ops
---
## 📖 Overview
This is a mono repository for my home infrastructure and Kubernetes cluster. 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://fluxcd.io/), [__Renovate__](https://renovatebot.com/) and [__GitHub Actions__](https://github.com/features/actions). Secrets are protected with modern [__Age__](https://github.com/FiloSottile/age) encryption.### 💰 _Every tool used is open source or used freely._
---
## 📁 Directories
- [__`cluster`__](./cluster/): directory contains my Kubernetes configuration and artifacts, managed by Flux.
- [__`provision`__](./provision/): directory contains my Ansible playbooks and roles for provisioning my home infrastructure.---
## ⛵ Kubernetes
I run a fully conformant Kubernetes cluster at home with K3S, provisioned overtop bare-metal Ubuntu 22.04 using Ansible. This is a semi hyperconverged cluster (HCI), with workloads and block storage sharing the same available resources from a centralized RAID 5 storage.---
## 🏁 Provisioning
Currently, I automate the provisioning of the following systems at home:
- [__My Ubuntu workstation__](./provision/workstation/)
- [__My MacOS workstation__](./provision/workstation/)
- [__My K3S Kubernetes cluster__](./provision/k3s/)📙 _[__Click here__](./provision/README.md) to see my Ansible playbooks and roles for provisioning my home infrastructure._
---
## 🌐 Dynamic DNS
Over WAN, I have forwarded ports `80` and `443` from my router. I use [Cloudflare](https://www.cloudflare.com/) as a proxy to hide my home WAN IP. I use [cddns](https://github.com/simbleau/cddns) as my Dynamic DNS.---
## 🤖 GitOps
- [__Flux__](https://fluxcd.io/) watches my [`cluster`](./cluster/) folder and makes the changes to my cluster automatically, based on the YAML manifests.
- [__Renovate__](https://renovatebot.com/) watches the repository for dependency updates, and automatically generates PRs for them. Automerging is allowed.
- [__GitHub Actions__](https://github.com/features/actions) validates and tests push and merge requests for conflicts.---
## 🔧 Hardware
| Device | Amt | OS Disk | Data Disk | RAM | OS | Purpose |
| --------------------------- | --- | -------- | ------------ | ----- | ------------ | ----------------- |
| ARRIS Surfboard SB6183 | 1 | N/A | N/A | 256MB | N/A | Modem |
| Linksys AC1900 | 1 | N/A | N/A | 500MB | OpenWrt | Router, DHCP |
| HP ProDesk 600 G3 Mini | 1 | 120GB SD | N/A | 4GB | Ubuntu 22.04 | Kubernetes Master |
| Raspberry Pi 4B 2GB | 4 | 32GB SD | N/A | 2GB | Ubuntu 22.04 | Kubernetes Worker |
| Raspberry Pi 3 Model B+ | 1 | 32GB SD | N/A | 1GB | Ubuntu 22.04 | Kubernetes Worker |
| AC Infinity CLOUDPLATE T1-N | 1 | N/A | N/A | N/A | N/A | Air Cooling |
| Kingston SATA 3 2.5" SSD | 4 | N/A | 240 GB | N/A | N/A | SATA 3 SSD |
| QNAP TR-004 4 Bay DAS | 1 | N/A | 720 GB RAID5 | N/A | N/A | RAID 5 DAS |
| ADJ Products PC-100A PDU | 1 | N/A | N/A | N/A | N/A | PDU |---
## 🔏 License
This project is dual-licensed under both [Apache 2.0](LICENSE-APACHE) and [MIT](LICENSE-MIT) licenses.