this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 88 lines 8.5 kB view raw view rendered
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[![Talos](https://img.shields.io/endpoint?url=https%3A%2F%2Fkromgo.skylab.fi%2Fquery%3Fformat%3Dendpoint%26metric%3Dtalos_version&style=for-the-badge&logo=talos&logoColor=white&label=%20&color=blue)](https://talos.dev)&nbsp;&nbsp; 12![Kubernetes](https://img.shields.io/endpoint?url=https%3A%2F%2Fkromgo.skylab.fi%2Fquery%3Fformat%3Dendpoint%26metric%3Dkubernetes_version&style=for-the-badge&logo=kubernetes&logoColor=white&label=%20&color=blue) 13[![Renovate](https://img.shields.io/github/actions/workflow/status/samip5/k8s-cluster/schedule-renovate.yaml?branch=main&label=&logo=renovatebot&style=for-the-badge&color=blue)](https://github.com/samip5/k8s-cluster/actions/workflows/schedule-renovate.yaml) 14 15</div> 16 17 18<div align="center"> 19 20[![Age-Days](https://img.shields.io/endpoint?url=https%3A%2F%2Fkromgo.skylab.fi%2Fquery%3Fformat%3Dendpoint%26metric%3Dcluster_age_days&style=flat-square&label=Age)](https://github.com/kashalls/kromgo/)&nbsp;&nbsp; 21[![Uptime-Days](https://img.shields.io/endpoint?url=https%3A%2F%2Fkromgo.skylab.fi%2Fquery%3Fformat%3Dendpoint%26metric%3Dcluster_uptime_days&style=flat-square&label=Uptime)](https://github.com/kashalls/kromgo/)&nbsp;&nbsp; 22[![Node-Count](https://img.shields.io/endpoint?url=https%3A%2F%2Fkromgo.skylab.fi%2Fquery%3Fformat%3Dendpoint%26metric%3Dcluster_node_count&style=flat-square&label=Nodes)](https://github.com/kashalls/kromgo/)&nbsp;&nbsp; 23[![Pod-Count](https://img.shields.io/endpoint?url=https%3A%2F%2Fkromgo.skylab.fi%2Fquery%3Fformat%3Dendpoint%26metric%3Dcluster_pod_count&style=flat-square&label=Pods)](https://github.com/kashalls/kromgo/)&nbsp;&nbsp; 24[![Pod-Count-Average-Per-Node](https://img.shields.io/endpoint?url=https%3A%2F%2Fkromgo.skylab.fi%2Fquery%3Fformat%3Dendpoint%26metric%3Dcluster_avg_per_node_pod_count&style=flat-square&label=PodsPerNodeAvg)](https://github.com/kashalls/kromgo/)&nbsp;&nbsp; 25[![Firing Prom Alerts](https://img.shields.io/endpoint?url=https%3A%2F%2Fkromgo.skylab.fi%2Fquery%3Fformat%3Dendpoint%26metric%3Dprometheus_active_alerts&style=flat-square)](https://github.com/kashalls/kromgo/)&nbsp;&nbsp; 26[![CPU-Usage](https://img.shields.io/endpoint?url=https%3A%2F%2Fkromgo.skylab.fi%2Fquery%3Fformat%3Dendpoint%26metric%3Dcluster_cpu_usage&style=flat-square&label=CPU)](https://github.com/kashalls/kromgo/)&nbsp;&nbsp; 27[![Memory-Usage](https://img.shields.io/endpoint?url=https%3A%2F%2Fkromgo.skylab.fi%2Fquery%3Fformat%3Dendpoint%26metric%3Dcluster_memory_usage&style=flat-square&label=Memory)](https://github.com/kashalls/kromgo/)&nbsp;&nbsp; 28[![Power-Usage](https://img.shields.io/endpoint?url=https%3A%2F%2Fkromgo.skylab.fi%2Fquery%3Fformat%3Dendpoint%26metric%3Dcluster_power_usage&style=flat-square&label=Power)](https://github.com/kashalls/kromgo/) 29 30</div> 31 32### :wrench:&nbsp; 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[![Star History Chart](https://api.star-history.com/svg?repos=samip5/k8s-cluster&type=Date)](https://star-history.com/#samip5/k8s-cluster&Date) 88