{"id":28047221,"url":"https://github.com/geekifier/k8s-home-gitops","last_synced_at":"2025-08-22T14:12:11.988Z","repository":{"id":290579596,"uuid":"974464871","full_name":"geekifier/k8s-home-gitops","owner":"geekifier","description":"Public copy of my Kubernetes homelab workflow","archived":false,"fork":false,"pushed_at":"2025-08-15T13:31:00.000Z","size":435,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-15T15:34:38.885Z","etag":null,"topics":["flux","gitops","k8s","k8s-at-home","kubernetes","kubesearch","self-hosted"],"latest_commit_sha":null,"homepage":"","language":"JSON","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/geekifier.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-28T20:24:09.000Z","updated_at":"2025-07-20T20:15:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"f9a35493-8007-4b10-8523-9edf2f093ba0","html_url":"https://github.com/geekifier/k8s-home-gitops","commit_stats":null,"previous_names":["geekifier/k8s-home-gitops"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/geekifier/k8s-home-gitops","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geekifier%2Fk8s-home-gitops","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geekifier%2Fk8s-home-gitops/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geekifier%2Fk8s-home-gitops/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geekifier%2Fk8s-home-gitops/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/geekifier","download_url":"https://codeload.github.com/geekifier/k8s-home-gitops/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geekifier%2Fk8s-home-gitops/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271650860,"owners_count":24796725,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-22T02:00:08.480Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["flux","gitops","k8s","k8s-at-home","kubernetes","kubesearch","self-hosted"],"created_at":"2025-05-11T20:47:06.184Z","updated_at":"2025-08-22T14:12:11.977Z","avatar_url":"https://github.com/geekifier.png","language":"JSON","funding_links":[],"categories":[],"sub_categories":[],"readme":"# xenu-ng\n\nXenu Next Generation Home Platform\n\nBased on the excellent work by @onedr0p in [home-ops](https://github.com/onedr0p/home-ops) and [cluster-template](https://github.com/onedr0p/cluster-template) community.\n\n## Implemented Features\n\n### Workspace integration with MCP\n\nWith the release of [Flux Operator MCP Server](https://fluxcd.io/blog/2025/05/ai-assisted-gitops/), I was able to integrate my gitops workspace with Github Copilot. With the use of [custom instructions](.github/copilot-instructions.md) Copilot is able to use the tools provided by the MCP (and this repo) to interact with the cluster.\n\nThis functionality is still in development, but it has been a real game changer in terms of LLM usefulness for cluster management\n\nFor example, I can ask the Agent to investigate running pods and propose improvements to their running configs, such as health probes.\n\nYou can see the custom instructions [here](.github/copilot-instructions.md) (work in progress).\n\n### Using Cilium ingress instead of nginx-ingress\n\nI decided to keep using `ingress-nginx` until Gateway API matures.\n\nI had a great experience with Traefik in my non-k8s environment, so that's another option as well.\n\n## ⚙️ Software Components\n\n-   [Talos Linux](https://github.com/siderolabs/talos) - API-driven, Kubernetes-focused Linux distribution\n-   [Flux](https://github.com/fluxcd/flux2) - continuous delivery via a GitOps model\n-   [SOPS](https://github.com/getsops/sops) combined with [age](https://github.com/FiloSottile/age) - secrets management\n-   [cloudflared](https://github.com/cloudflare/cloudflared) - provision Cloudflare Tunnels for publicly exposed endpoints\n-   [external-dns](https://github.com/kubernetes-sigs/external-dns) - on-demand DNS record provisioning inside Samba (Active Directory) DNS with Kerberos auth\n-   [Longhorn](https://longhorn.io/) - cloud-native distributed block storage for Kubernetes\n-   [CloudNativePG](https://cloudnative-pg.io/) - deploy HA PostgreSQL clusters on K8s with ease\n-   [postgres-operator](https://github.com/movetokube/postgres-operator) - operator to manage DBs and roles\n\n## Hardware\n\n### Compute\n\n| Name       | Model                  | CPU                  | RAM             | Storage                          |\n| ---------- | ---------------------- | -------------------- | --------------- | -------------------------------- |\n| tinynode01 | ThinkCentre M920q Tiny | i5-8600T (6c/6t/9MB) | 32 GB DDR4 3200 | Samsung 980 Pro 2TB NVMe         |\n| tinynode02 | ThinkCentre M920q Tiny | i5-8600T (6c/6t/9MB) | 32 GB DDR4 3200 | Inland Performance Plus 1TB NVMe |\n| tinynode03 | ThinkCentre M920q Tiny | i5-8600T (6c/6t/9MB) | 32 GB DDR4 3200 | Solidigm SSDPFKKW010X7 1TB NVMe  |\n\n#### Estimated Costs\n\nThe 3 M920q nodes were purchased from eBay for around $300. Similar models can routinely be found (as of March 2025) for a similar price.\nSome of the other parts, like SSDs and some of the RAM, were scavenged from my inventory. Nevertheless, I am listing the BOM with estimated costs for planning purposes.\n\n| Item            | Model                               | Unit Cost | Source                        | Comments                                                                |\n| --------------- | ----------------------------------- | :-------: | ----------------------------- | ----------------------------------------------------------------------- |\n| Compute Node    | ThinkCentre M920q Tiny              |   $100    | eBay                          | Excellent condition                                                     |\n| 32 GB DDR4 RAM  | Crucial CT2K16G4SFRA32A             |    $45    | Best Buy (Sale)               | Already had one kit                                                     |\n| 1 TB NVME       | Inland Performance Plus 1TB NVMe    |  $69.99   | MicroCenter                   | 700TBW endurance                                                        |\n| 10 GbE NIC      | SuperMicro AOC-STGN-I2S Low Profile |   ~$18    | eBay                          | 3D printed a [custom baffle](https://www.thingiverse.com/thing:6348691) |\n| 1.5M DAC Cables | SFP-H10GB-CU1.5M Cisco Compatible   |    $11    | eBay (Private Label Networks) |\n\n# Changelog\n\n## 2025-05\n\n### Talos migration to bare metal!\n\nWith the release of [Talos v1.10](https://www.talos.dev/v1.10/introduction/what-is-new/), and its support for [User Volumes](https://www.talos.dev/v1.10/talos-guides/configuration/disk-management/#user-volumes), I was able to eliminate the use of Proxmox and switches all my k8s nodes over to bare metal.\n\n### LLM MCP integration for Flux\n\nAdded a section in the README describing the new AI integration.\n\n# External Resources\n\n## Hardware\n\n-   [STH Forum: Lenovo Project TinyMiniMicro Reference Thread](https://forums.servethehome.com/index.php?threads/lenovo-thinkcentre-thinkstation-tiny-project-tinyminimicro-reference-thread.34925/)\n-   [github.com/a-little-wifi/Tinyriser](https://github.com/a-little-wifi/Tinyriser) open-source PCIe riser for Lenovo 8/9th gen Tiny PCs\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeekifier%2Fk8s-home-gitops","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeekifier%2Fk8s-home-gitops","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeekifier%2Fk8s-home-gitops/lists"}