Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

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

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
- Email

---

## 📜 Changelog

See [commit history](https://github.com/rwaltr/home-ops/commits/master)

---

## 🔏 License

See [LICENSE](./LICENSE)

---