Skip to content

emerconn/fleet-infra

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fleet-infra

flux github-pages

Open in GitHub Codespaces

hardware

network MikroTik Router AdGuard Home Unifi Network Server

  • MikroTik hAP ax³
    • Containizerd AdGuard Home for DNS
    • WireGuard for secure private access
    • IPSec tunnels for cloud providers
  • Unifi Switch Lite 8 PoE

storage Synology DSM

  • Synology DS720+
    • storage: (4) 1TB SATA SSD
    • cache: (2) 256GB NVMe M.2 SD
    • network: (2) 1G ethernet in LAG

servers

Refurbed mini-desktop PCs running bare-metal Talos Linux for hosting a Kubernetes cluster

repo management

Renovate Renovate Dashboard

  • Automated detailed PRs for version upgrades of Flux HelmReleases, container image tags, & K8s .yaml resources
  • Configured as a GitHub app (migrate to GitHub Action cause it looks cooler?)

FluxCD

  • automatically manage Kubernetes resources as code
  • whenever main is updated, this GitHub Action remotely reconciles my cluster by connecting to the K8s API via Tailscale

SOPS

  • encrypts K8s secrets on the client with age.key, using the age protocol, before commiting them to Git
  • Flux decrypts the secrets within the cluster before applying, using a Secret containing age.key
  • configured via .sops.yaml & gotk-sync.yaml

kubernetes

external

Cloudflare Cloudflare DNS Records Cloudflare Audit Log Cloudflare API Tokens

Tailscale Tailscale Machines Tailscale ACL Editor

HCP Vault Secrets HCP Vault Secrets

internal

Kubernetes Dashboard Kubernetes Dashboard

  • K8s web UI & resource explorer

Headlamp Headlamp Main

  • K8s web UI & resource explorer

OpenObserve OpenObserve Home

  • Full-stack observability (logs, traces, metrics), ~71:1 compression ratio, & a web UI for queries & dashboards

Prometheus Prometheus Targets

  • Time-series database for collecting & alterting on application & infrastructure metrics
  • Deployed via kube-prometheus-stack

Grafana Grafana Dashboards

  • Visualize metrics, logs, & traces from multiple sources
  • Deployed via kube-prometheus-stack

Cilium

  • K8s eBPF-based CNI & kube-proxy replacement
  • K8s Ingress & Gateway API controller
  • K8s LoadBalancer backend via L2 Advertisments using gratuitous ARP

Hubble Cilium Hubble

  • Visual map & event log of the Cilium CNI

Traefik Traefik Dashboard

  • K8s Ingress & Gateway API controller
  • all *.homelab.emerconnelly.com links are directed, via AdGuard Home DNS config, to the LoadBalancer service for this IngressClass
    • this includes both intra- & inter-cluster resources

MinIO MinIO Main Tenant

  • Deploy highly-available & fully API-compliant S3 storage tenants
  • Controlled via minio-operator

GitHub Pages