Skip to content

crutonjohn/gitops

Repository files navigation

It's My k8s in a Box


Discord


📖  Overview

This repo is my Kubernetes cluster in a declarative state. Flux and Helm Operator watch my clusters folder and makes the changes to my cluster based on the yaml manifests. Renovate auto updates images and helm charts based on upstream changes.

Feel free to join our Discord if you have any questions.


⚓  k8s Distro

Currently using talos by PXE booting for initial install. PXE server is a local netboot.xyz container running on my NixOS-based NAS.


🚤  Deploying the cluster

Rough Outline

  1. Boot machines
  2. They either start Talos from disk if already installed, or PXE boot to the installer.
  3. Get kubeconfig: talosctl kubeconfig
  4. Deploy Cilium CNI to kube-system namespace:
  • helm install cilium cilium/cilium -f provision/cilium/production.yaml

Using go-task

  • Boot machines
    • They boot to Talos via PXE
    • If there is a pre-existing Talos install, nodes just boot to the disk
    • PXE server configurations: NixOS PXE
  • Machines should boot, install, and set up the cluster
  • task talos:gen-talosconfig outputs a talosconfig to gitignore/talosconfig
  • task talos:kubeconfig outputs a kubeconfig to gitignore/kubeconfig
  • task talos:install-cilium installs cilium CNI to the cluster
  • task flux:bootstrap bootstraps the cluster with the flux configs in this repo

💻  Hardware Configuration

All my nodes below are running bare metal Talos

Device Count OS Disk Size Data Disk Size Ram Purpose
Bmax B3 (Intel N5095) 3 256GB SSD N/A 8 GB k8s Control Plane
Minisforum MS-01 (Intel 12600H) 3 1x 1TB NVME 1x 2TB NVME (rook-ceph) 64GB k8s Workers
Supermicro MBD-H12SSL-NT-B with AMD EPYC 7282 1 1x 1TB NVME N/A 128GB Ceph Bulk Storage & AI/ML
Supermicro 216BE1C-R741JBOD 1 N/A 24x 1TB SSD N/A Disk Shelf

💻  Supporting Infrastructure


📝  IP addresses

Can generally be viewed at settings.yaml


🤝  Community

A lot of inspiration for my cluster came from the people that have shared their cluster configuration with me. Thanks to all the people who donate their time to the Home Operations community. Join us on Discord!

About

GitOps principles to define kubernetes cluster state via code. Home Operations: https://discord.gg/home-operations

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 6