Software Inventory

Every pinned version in the homelab and the file that pins it.

Every version below is pinned in code — there are no floating tags. When a number here disagrees with the cluster, the code wins and the cluster is drifting.

This is the only page in these docs that carries version numbers. Every other page describes what a component does and links here for which release of it is running. just docs-check enforces both halves of that rule.

Infrastructure

SoftwareVersionManaged byPinned in
Talos Linuxv1.14.4Pulumi core/platform/talos.go
Kubernetes1.36.5Talos machine config versions.yaml
Kubernetes API types1.36.0CDK8s cdk8s.yaml

Kubernetes is pinned separately from Talos, which would otherwise default to a newer minor than Cilium supports. It does not ride along with a Talos upgrade — just talos-upgrade-k8s rolls it out as a separate step, see the Upgrade Guide. The API types CDK8s generates Go structs from must stay on the same minor as the cluster.

The NVIDIA driver on the GPU worker comes from the Talos -production system extensions, so its version moves with the Talos release.

Bifrost (Hetzner VPS)

Docker Compose on a single public VPS. Everything reachable from the internet terminates here.

SoftwareVersionPinned in
Traefikv3.7.16 core/cloud/bifrost/docker-compose.yml
NetBird (server, agent, proxy)0.80.0same
NetBird dashboardv2.94.0same
Authentik2026.8.5same
PostgreSQL (Authentik)16.14-alpinesame
Gatus (uptime)v5.37.0same

Platform

Installed by Pulumi, not GitOps — these bootstrap the cluster that runs everything else. Applied with just core platform up.

SoftwareVersionPinned in
Cilium1.20.4 core/platform/cilium.go
Gateway API CRDsv1.6.3 core/platform/manifests/gateway-api-v1.6.3-experimental-install.yaml
Argo CD (chart)10.10.5 core/platform/argocd.go
Argo CD (image)v3.5.6same — runs ahead of the chart, see Platform
cert-managerv1.21.3 core/platform/cert_manager.go

The Gateway API CRDs are vendored into the repo rather than fetched from GitHub on every apply — see Cilium.

Workloads

Synthesized by CDK8s and delivered by Argo CD. Charts with a generated typed package are pinned in cdk8s.yaml ; the rest are pinned at their call site.

Storage and databases

SoftwareChartPinned in
Longhorn1.13.0 cdk8s.yaml
CloudNativePG0.29.1 workloads/databases/cnpg.go

Secrets

SoftwareVersionPinned in
OpenBao (chart)0.30.4 workloads/secrets/openbao.go
OpenBao (image)2.6.4same — server, CSI agent and unseal sidecar; held on 2.6.x for the file storage backend
Secrets Store CSI Driver1.6.1 workloads/secrets/csi_driver.go

Observability

SoftwareChartPinned in
VictoriaMetrics k8s-stack0.96.0 workloads/observability/victoria_metrics.go
VictoriaLogs0.13.10 cdk8s.yaml
Grafana14.0.1 cdk8s.yaml
OpenTelemetry Collector0.176.0 workloads/observability/otel_collector.go
Metrics Server3.14.0 cdk8s.yaml
kube-prometheus-stack CRDs82.0.1 workloads/observability/victoria_metrics.go

VMAlertmanager ships inside the VictoriaMetrics k8s-stack chart; it has no separate pin.

Security

SoftwareChartPinned in
Falco9.2.1 workloads/security/falco.go
Kyverno3.9.1 cdk8s.yaml
Trivy Operator (chart)0.37.0 cdk8s.yaml
Trivy Operator (CRD bundle)0.37.0 workloads/security/trivy.go

Trivy is the one component with two pins: the chart comes from the generated typed package, while the CRD bundle is downloaded separately by URL from the release named in config/versions.yaml. Bump both together so the CRDs match the operator.

Applications

SoftwareVersionPinned in
Harbor1.19.2 cdk8s.yaml
Headlamp0.45.0 cdk8s.yaml
n8n (chart)2.1.1 workloads/automation/n8n.go
n8n (image)2.44.6same
Reloader2.2.18 workloads/support/reloader.go
NetBird peer0.80.0 workloads/networking/netbird_peer.go
Kubeflow26.03.1 workloads/ai/kubeflow/kustomization.yaml
notebook-gateway-controllerv1 workloads/ai/notebook_gateway_controller.go

AI and GPU

SoftwareVersionPinned in
Ollama (chart)1.88.0 cdk8s.yaml
NVIDIA Device Plugin0.20.1 workloads/hardware/nvidia_gpu_operator.go
DCGM Exporter4.8.4same
ComfyUIcu130-megapak-pt211-20260812 workloads/ai/comfyui.go

Ollama's image tag is deliberately unset so it tracks the chart's appVersion — the chart is the pin. ComfyUI's tag encodes its CUDA line: the card is Blackwell (sm_120) and needs CUDA 12.8 or newer, so a cu126 tag will not run.

Gaming

SoftwareVersionPinned in
Counter-Strike 2 server5.0.0 config/versions.yaml

Checking for updates

helm search repo compares chart versions. A chart can lag the software it ships, so check the app version too — Argo CD 3.5.6 was released while chart 10.10.5 still pinned 3.5.5.

helm repo update
helm search repo <repo>/<chart> --versions | head -3   # CHART and APP columns

Run just docs-check after any bump. It re-reads every row above, greps the file named in the last column, and fails if the number here is no longer in that file.