this repo has no description
1<div align="center">
2
3### My Home Operations Repository :octocat:
4
5_... managed with Flux, Renovate, and GitHub Actions_ 🤖
6
7</div>
8
9<!-- <div align="center">
10
11[](https://talos.dev)
12
13[](https://github.com/samip5/k8s-cluster/actions/workflows/schedule-renovate.yaml)
14
15</div>
16
17
18<div align="center">
19
20[](https://github.com/kashalls/kromgo/)
21[](https://github.com/kashalls/kromgo/)
22[](https://github.com/kashalls/kromgo/)
23[](https://github.com/kashalls/kromgo/)
24[](https://github.com/kashalls/kromgo/)
25[](https://github.com/kashalls/kromgo/)
26[](https://github.com/kashalls/kromgo/)
27[](https://github.com/kashalls/kromgo/)
28[](https://github.com/kashalls/kromgo/)
29
30</div>
31
32### :wrench: Tools
33
34| Tool | Purpose |
35|--------------------------------------------------------------------|---------------------------------------------------------------------|
36| [flux](https://toolkit.fluxcd.io/) | Operator that manages your k8s cluster based on your Git repository |
37| [go-task](https://github.com/go-task/task) | A task runner / simpler Make alternative written in Go |
38| [sops](https://github.com/mozilla/sops) | Encrypts k8s secrets with GnuPG |
39
40
41## 💻 Nodes
42| Node | Hostname | RAM | Storage | Function | Operating System |
43|-------------------------------|----------|------|----------------------------------------------------|-------------|------------------|
44| Raspberry Pi Compute Module 4 | w7 | 8GB | 2TB SSD | Kube Worker | Talos |
45| Raspberry Pi Compute Module 4 | cm4-1 | 8GB | 32GB eMMC | Kube Worker | Talos |
46| Lenovo ThinkCentre M910q Tiny | w-amd-1 | 32GB | 1TB Kingston DC SSD + 256GB SSD | Kube Worker | Talos |
47| Random Chinese N100 board | w-amd-2 | 32GB | 480GB Transcend SSD, 275GB Crucial SSD + 320GB HDD | Kube Worker | Talos |
48| HP EliteDesk 800 G2 | w-amd-3 | 32GB | 256GB SSD | Kube Worker | Talos |
49| Lenovo ThinkCentre M910q Tiny | m1 | 16GB | 256GB SSD x 2 | Kube Master | Talos |
50-->
51## Storage
52| Node | Hostname | RAM | Storage | Function | Operating System |
53|--------------|----------|------|------------------------------------------------------------------------------------------|------------|------------------|
54| Synology NAS | NAS | 16GB | 2 x 3TB HDD (SMR for backups), 2 x 8TB HDD, 1 TB NVME, 256GB NVME for storage pool cache | NFS Server | DSM 7 |
55
56## Network
57
58| Vendor | Model | Function |
59|----------|---------------|----------------------------------------------------|
60| Juniper | EX2200-48P-4g | Hallway switch with PoE+ and fiber uplinks to rack |
61| TP-Link | TL-SG108E | Bedroom switching behind desk |
62| Mikrotik | RB5009 | Main router |
63| Mikrotik | CRS326 | Rack switch with 10G uplink |
64
65All nodes are connected to a dual-stack network, with private IPv4 and public IPv6.
66Kubernetes' nodes are on their own VLAN which has access to the NAS.
67
68## ☁️ Cloud Dependencies
69
70While most of my infrastructure and workloads are self-hosted I do rely upon the cloud for certain key parts of my setup. This saves me from having to worry about two things. (1) Dealing with chicken/egg scenarios and (2) services I critically need whether my cluster is online or not.
71
72The alternative solution to these two problems would be to host a Kubernetes cluster in the cloud and deploy applications like [HCVault](https://www.vaultproject.io/), [Vaultwarden](https://github.com/dani-garcia/vaultwarden), [ntfy](https://ntfy.sh/), and [Gatus](https://gatus.io/). However, maintaining another cluster and monitoring another group of workloads is a lot more time and effort than I am willing to put in.
73
74| Service | Use | Cost |
75|-----------------------------------------------------------------------|--------------------------------------------------------------------|---------------------|
76| [Cloudflare](https://www.cloudflare.com/) | Domain(s) and S3 | ~$20/yr |
77| [GitHub](https://github.com/) | Hosting this repository and continuous integration/deployments | Free |
78| [Mailbox](https://mailbox.org/) | Email hosting | ~30€/12 months |
79| [NextDNS](https://nextdns.io/?from=dm7g7gda) | My router DNS server which includes AdBlocking | ~$20/yr |
80| [Kapsi internet-users association](https://www.kapsi.fi/english.html) | Hosts my off-site backup aka minio (S3) and own website | 40€/yr |
81| [Bilance](https://www.bilanceapp.com) | Budgeting app for iOS and Android | ~30€/yr |
82| [1Password](https://1password.eu) | External Secrets and secret management | 20€/yr (Student discount) |
83| | | Total: ~140€/yr |
84
85## Stargazers
86
87[](https://star-history.com/#samip5/k8s-cluster&Date)
88