Skip to content

Exikle/Artemis-Cluster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5,769 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Artemis Cluster

... where YAML is law, Renovate never sleeps, and 2am
is just debugging hours.

Talos   Kubernetes   Flux   Renovate

Home-Internet   Status-Page   Alertmanager

Age   Uptime   Nodes   Pods   CPU   Memory   Alerts


📖 Overview

Artemis is my homelab Kubernetes cluster, built on Talos Linux and managed entirely through Git. Three bare-metal control planes, three VM workers (one with a GPU), all reconciled automatically by Flux CD — push to main, it shows up in the cluster.


⛵ Kubernetes

Directories

📁 kubernetes
├── 📁 apps
│   ├── 📁 actions-runner-system  # Self-hosted GitHub Actions runners for CI workflows
│   ├── 📁 cert-manager           # Automated TLS certificates via Let's Encrypt
│   ├── 📁 cortex                 # AI stack — Open WebUI, SearXNG, text-embeddings-inference, ToolHive (9 MCP servers)
│   ├── 📁 default                # Personal apps — Immich (photos), Komga (comics), Bookboss (books)
│   ├── 📁 external-endpoints     # ExternalName services bridging off-cluster resources into the mesh
│   ├── 📁 external-secrets       # 1Password-backed ExternalSecret operator for all cluster secrets
│   ├── 📁 flux-system            # Flux Operator, FluxInstance, and GitOps sync entrypoint
│   ├── 📁 home-automation        # Home Assistant, Frigate, Zigbee2MQTT, Mosquitto, Matter Server, ESPHome
│   ├── 📁 kube-system            # Cilium (CNI/BGP), CoreDNS, Multus, Intel GPU driver, cluster utilities
│   ├── 📁 media                  # Arr stack, Jellyfin, SABnzbd, qBittorrent+Gluetun, Prowlarr, Bazarr
│   ├── 📁 network                # Envoy Gateway ingress, ExternalDNS (Cloudflare + UniFi), Cloudflare Tunnel
│   ├── 📁 observability          # Prometheus, Grafana, VictoriaLogs, Fluent Bit, Gatus, Kromgo, KEDA
│   ├── 📁 openebs-system         # Local-path storage provisioner for single-node PVCs
│   ├── 📁 rook-ceph              # Distributed block storage across 3 OSD nodes (one per control plane)
│   ├── 📁 security               # Pocket-ID OIDC provider for cluster-wide SSO
│   ├── 📁 system-upgrade         # Tuppr — automated Talos and Kubernetes version upgrades
│   └── 📁 volsync-system         # PVC backup and restore via Kopia snapshots
├── 📁 components     # Reusable Kustomize components (volsync, etc.)
└── 📁 flux           # Flux sync entrypoint → kubernetes/apps

🔧 Hardware

Device Count Disk RAM OS Purpose
Lenovo M710q (talos-cp-01/02/03) 3 256GB NVMe (boot) + 256GB SATA SSD (Ceph OSD) 16GB Talos Linux Kubernetes Control Plane
Proxmox VM on pantheon (talos-w-01/02) 2 Virtualized 32GB Talos Linux Kubernetes Worker
Proxmox VM on pantheon (talos-gpu-01) 1 Virtualized 32GB Talos Linux Kubernetes GPU Worker (ASRock Arc A380 6GB passthrough)
HPE ML150 G9 (pantheon) 1 T-FORCE 1TB SSD 192GB Proxmox Virtualization Host
Supermicro (atlas) 1 3× RAIDZ2 6-wide (~41TB usable) 94.3GB ECC TrueNAS SCALE NAS / Media Storage

🌐 Networking

Device Role
UniFi Cloud Gateway Max WAN/NAT, L3 gateway, DHCP, BGP (FRR), DNS, UniFi controller
Mikrotik CRS309-1G-8S+ L2 switch only — downstream of UCG-Max on VLAN 1099 (LAB)
UniFi US-48 PoE 500W L2 switch (upstream: UCG-Max)
UniFi US-16 PoE 150W L2 switch (upstream: US-48)

🤝 Acknowledgments

Thanks to the following for their work and shared knowledge:


📝 License

This repository is available under the WTFPL License. See LICENSE for details.

About

Deployment files for my Kubernetes cluster "Artemis-Cluster". Mirror of: https://git.dcunha.io/Exikle/Artemis-Cluster/

Topics

Resources

License

Stars

5 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors