Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rwaltr/home-ops
Code and configuration used to manage the fleets of k8s and Terraform clusters managing the Waltr.Tech environment
https://github.com/rwaltr/home-ops
fluxcd gitops k8s-at-home kubernetes talos terraform
Last synced: 6 days ago
JSON representation
Code and configuration used to manage the fleets of k8s and Terraform clusters managing the Waltr.Tech environment
- Host: GitHub
- URL: https://github.com/rwaltr/home-ops
- Owner: rwaltr
- License: mit
- Created: 2021-06-12T03:21:39.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-06-19T04:12:11.000Z (5 months ago)
- Last Synced: 2024-06-20T10:48:38.474Z (5 months ago)
- Topics: fluxcd, gitops, k8s-at-home, kubernetes, talos, terraform
- Language: HCL
- Homepage:
- Size: 2.02 MB
- Stars: 28
- Watchers: 3
- Forks: 0
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# 🚧 Please pardon the dust 🚧
The homelab is currently undergoing operation "Honey I Shrunk The Homelab". See Issues for progress
##
# rwaltr/home-ops
[![Discord](https://img.shields.io/discord/673534664354430999?style=for-the-badge&label=discord&logo=discord&logoColor=white)](https://discord.gg/k8s-at-home)
[![talos](https://img.shields.io/badge/talos-installed-brightgreen?style=for-the-badge)](https://www.talos.dev/)
[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white&style=for-the-badge)](https://github.com/pre-commit/pre-commit)## 📖 Overview
This is a Monorepo to manage my personal environment. A combination of Talos, NixOS, Terraform, and Flux allow this repo to provide most of the configuration required to manage this environment across regions/clouds.
## 🔧 Orchestration tools
### KCL
Yaml is old school, KCL is a DSL that provides the power of full type safety while rendering yaml at the end of the day.
### ⛵ Kubernetes
My homelab is Kubernetes based, meaning that I have a cluster of nodes running OCI (AKA. Docker) containers. Since my lab is mostly Kubernetes, I can use tools that focus on text manipulation and formatting, then use Flux to actually feed these configs into my cluster.
The result is that the text files here turn into actual running applications.
I use a toolset called `Talos Linux` to help abstract the hardware management of Kubernetes.
### 🌐 Terraform/OpenTofu
Terraform does one-shot api calls. Things I wont want managed by a controller but should be gitops.
### 🍭 Crossplane
Crossplane is the platform behind my operator focused management.
### ❄️ Nix
Nix is used for hosts that do not run Kubernetes directly. This is a declarative configuration management system that allows me to manage my hosts in a gitops fashion.
## Nodes types
### 🐦 Talos
Talos is a kubernetes focused OS that is configured by a YAML manifest. You can see this in `:/infra/talos`
I use `talhelper` to further abstract Talos's config for easy config file expandability
### ❄️ NixOS
NixOS is used in hosts that are not meant to run Kubernetes directly.
`:/infra/nix` is where I store this but the entry point is `:/flake.nix`
## 🏘️ Sites
### 🏢 KYZ
KYZ acts as the management and as a workload site.
## 🖊️ Finding TODOS
[Uses the `TODO:` format in line](https://github.com/rwaltr/home-ops/search?q=TODO%3A)
---
## 🧰 Tools
| Tool | Use | Active |
| ---------- | ---------------------- | ------ |
| NixOS | Operating System | ☑️ |
| SOPS | inline secrets-manager | |
| KCL | DSL | |
| Talos | Operating System | |
| Flux | Gitops Operator | |
| Crossplane | API platform | |---
## 🤟 Thanks
Thank you to the below for inspiration
- onedr0p
- anthr76
- danmanners---
## 🌐 Communities
### K8s-at-Home
[![Discord](https://img.shields.io/discord/673534664354430999?style=for-the-badge&label=discord&logo=discord&logoColor=white)](https://discord.gg/k8s-at-home)
---
## 📬 Contact Me
- Github Issues
---
## 📜 Changelog
See [commit history](https://github.com/rwaltr/home-ops/commits/master)
---
## 🔏 License
See [LICENSE](./LICENSE)
---