Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/stackclash/home-cluster
GitOps principles to define k3s home cluster state via code
https://github.com/stackclash/home-cluster
ansible k8s-at-home kubernetes terraform
Last synced: 24 days ago
JSON representation
GitOps principles to define k3s home cluster state via code
- Host: GitHub
- URL: https://github.com/stackclash/home-cluster
- Owner: Stackclash
- Created: 2020-09-15T00:37:35.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2023-09-10T00:37:47.000Z (about 1 year ago)
- Last Synced: 2024-10-14T07:33:17.827Z (24 days ago)
- Topics: ansible, k8s-at-home, kubernetes, terraform
- Language: HCL
- Homepage:
- Size: 2.5 MB
- Stars: 9
- Watchers: 2
- Forks: 1
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
My Home Kubernetes Cluster
[![Discord](https://img.shields.io/badge/discord-chat-7289DA.svg?maxAge=60&style=for-the-badge&logo=discord)](https://discord.gg/DNCynrJ)
[![k3s](https://img.shields.io/badge/k3s-v1.25.3+k3s1-blue?style=for-the-badge&logo=kubernetes)](https://k3s.io/)
[![GitHub last commit](https://img.shields.io/github/last-commit/rickcoxdev/home-cluster?logo=github&style=for-the-badge)](https://github.com/rickcoxdev/home-cluster/commits/main)---
# :telescope: Overview
This repo is my home Kubernetes cluster declared using yaml files. The Kubernetes flavor I use is [k3s](https://k3s.io) to keep the size to a minimum.
I use [Flux](https://fluxcd.io) to watch this repo and deploy any changes I push here. See below for hardware, repo structure, and setup.# :computer: Hardware
Previously my cluster was made up of 5 Raspberry Pi boards. I've moved to 7 Dell Wyse 5020 (Dx0Q), all of them using the Fedora 36 Server OS.
For storage one of my nodes has a 2TB external hard drive attached and is running a NFS server. Persistent volumes are provisioned using nfs-subdir-provisioner.# :building_construction: Repo Details
## Folder Structure
The following are the main folders of the repositories.
- **cluster**: Contains all the yamls for the cluster applications and setup.
- **provision**:
- **ansible**: Playbooks to install k3s on the nodes and setup the cluster
- **terraform**: Declarations to setup the dns primary dns record to expose the cluster services.## :clap: Thanks
I've used the following repos as inspiration and guidelines for this repo.
- [billimek](https://github.com/billimek/k8s-gitops)
- [onedr0p](https://github.com/onedr0p/k3s-gitops)
- [xUnholy](https://github.com/raspbernetes/k8s-gitops)A special thanks goes to onedr0p for his [flux cluster template](https://github.com/onedr0p/flux-cluster-template). I recently reorganized my repo to closely follow his template.