blumeops/service-versions.yaml
Erich Blume 31d925814f Deploy Ollama LLM server on ringtail (#277)
## Summary
- Deploy Ollama as a new ArgoCD-managed service on ringtail's k3s cluster with GPU acceleration
- Declarative model management via `models.txt` + sidecar sync script (mirrors kiwix torrent pattern)
- Initial models: `qwen2.5:14b`, `deepseek-r1:14b`, `phi4:14b`, `gemma3:12b`
- hostPath PV on `/mnt/storage1/ollama` for fast local model storage (200Gi)
- Tailscale ingress at `ollama.ops.eblu.me` for API access from tailnet
- Enable GPU time-slicing (`replicas: 2`) on nvidia-device-plugin so Frigate and Ollama share the RTX 4080

## Deployment and Testing
- [ ] Deploy nvidia-device-plugin changes first: `argocd app sync nvidia-device-plugin`
- [ ] Verify GPU time-slicing: `kubectl describe node ringtail --context=k3s-ringtail` shows `nvidia.com/gpu: 2`
- [ ] Sync `apps` app with `--revision feature/ollama-ringtail`
- [ ] Set ollama app to branch: `argocd app set ollama --revision feature/ollama-ringtail && argocd app sync ollama`
- [ ] Verify model-sync sidecar pulls models: `kubectl logs -n ollama deploy/ollama -c model-sync --context=k3s-ringtail`
- [ ] Test API: `curl https://ollama.ops.eblu.me/api/tags`
- [ ] Test inference: `curl https://ollama.ops.eblu.me/api/generate -d '{"model":"qwen2.5:14b","prompt":"Hello"}'`
- [ ] Verify Frigate still works after GPU sharing change
- [ ] After merge: `argocd app set ollama --revision main && argocd app sync ollama`

Reviewed-on: https://forge.ops.eblu.me/eblume/blumeops/pulls/277
2026-03-02 20:39:51 -08:00

265 lines
7.9 KiB
YAML

# Service Version Tracking
#
# Tracks when each BlumeOps service was last reviewed for version freshness.
# Used by `mise run service-review` to surface stale services.
#
# Fields:
# name - kebab-case service identifier
# type - argocd | ansible | nixos
# last-reviewed - date (YYYY-MM-DD) or null
# current-version - deployed version string or null
# upstream-source - URL to upstream releases/changelog
# notes - optional context
services:
- name: prometheus
type: argocd
last-reviewed: 2026-02-16
current-version: "v3.9.1"
upstream-source: https://github.com/prometheus/prometheus/releases
- name: loki
type: argocd
last-reviewed: 2026-02-16
current-version: "3.6.5"
upstream-source: https://github.com/grafana/loki/releases
- name: kube-state-metrics
type: argocd
last-reviewed: 2026-02-16
current-version: "v2.18.0"
upstream-source: https://github.com/kubernetes/kube-state-metrics/releases
- name: mosquitto
type: argocd
last-reviewed: 2026-02-16
current-version: "2.0.22"
upstream-source: https://github.com/eclipse/mosquitto/releases
- name: ntfy
type: argocd
last-reviewed: 2026-02-17
current-version: "v2.17.0"
upstream-source: https://github.com/binwiederhier/ntfy/releases
- name: homepage
type: argocd
last-reviewed: 2026-02-19
current-version: "v1.10.1"
upstream-source: https://github.com/gethomepage/homepage/releases
notes: Custom container, kustomize manifests
- name: nvidia-device-plugin
type: argocd
last-reviewed: 2026-02-19
current-version: "v0.18.2"
upstream-source: https://github.com/NVIDIA/k8s-device-plugin/releases
notes: DaemonSet + RuntimeClass on ringtail for GPU workloads
- name: frigate
type: argocd
last-reviewed: 2026-02-17
current-version: "0.17.0-rc2"
upstream-source: https://github.com/blakeblackshear/frigate/releases
- name: frigate-notify
type: argocd
last-reviewed: 2026-02-22
current-version: "v0.5.4"
upstream-source: https://github.com/0x2142/frigate-notify/releases
- name: alloy-k8s
type: argocd
last-reviewed: 2026-02-16
current-version: "v1.13.1"
upstream-source: https://github.com/grafana/alloy/releases
- name: tailscale-operator
type: argocd
last-reviewed: 2026-02-16
current-version: "v1.94.2"
upstream-source: https://github.com/tailscale/tailscale/releases
- name: grafana
type: argocd
last-reviewed: 2026-02-23
current-version: "12.3.3"
upstream-source: https://github.com/grafana/grafana/releases
notes: Home-built container; upgrading to 12.x via Mikado chain
- name: cloudnative-pg
type: argocd
last-reviewed: 2026-02-24
current-version: "v1.28.1"
upstream-source: https://github.com/cloudnative-pg/cloudnative-pg/releases
notes: Deployed via Helm chart (chart v0.27.1 from forge mirror)
- name: immich
type: argocd
last-reviewed: 2026-02-25
current-version: "v2.5.6"
upstream-source: https://github.com/immich-app/immich/releases
notes: Deployed via Helm chart
- name: external-secrets
type: argocd
last-reviewed: 2026-02-17
current-version: "helm-chart-2.0.0"
upstream-source: https://github.com/external-secrets/external-secrets/releases
notes: Deployed via Helm chart (operator v1.3.2)
- name: 1password-connect
type: argocd
last-reviewed: 2026-02-26
current-version: "1.8.1"
upstream-source: https://hub.docker.com/r/1password/connect-api/tags
notes: Deployed via Helm chart (chart v2.3.0)
- name: argocd
type: argocd
last-reviewed: 2026-02-26
current-version: "v3.3.2"
upstream-source: https://github.com/argoproj/argo-cd/releases
notes: Kustomize-based install with ServerSideApply
- name: blumeops-pg
type: argocd
last-reviewed: 2026-02-27
current-version: "18.3"
upstream-source: https://github.com/cloudnative-pg/cloudnative-pg/releases
notes: CloudNativePG Cluster resource; pinned to PG minor version
- name: authentik
type: argocd
last-reviewed: "2026-03-01"
current-version: "2026.2.0"
upstream-source: https://github.com/goauthentik/authentik/releases
- name: ollama
type: argocd
last-reviewed: "2026-03-02"
current-version: "0.17.5"
upstream-source: https://github.com/ollama/ollama/releases
notes: LLM inference server on ringtail (GPU); upstream container image
- name: navidrome
type: argocd
last-reviewed: 2026-03-02
current-version: "v0.60.3"
upstream-source: https://github.com/navidrome/navidrome/releases
- name: miniflux
type: argocd
last-reviewed: 2026-03-02
current-version: "2.2.17"
upstream-source: https://github.com/miniflux/v2/releases
- name: teslamate
type: argocd
last-reviewed: null
current-version: "v2.2.0"
upstream-source: https://github.com/teslamate-org/teslamate/releases
- name: transmission
type: argocd
last-reviewed: null
current-version: "4.0.6-r4"
upstream-source: https://github.com/transmission/transmission/releases
- name: kiwix
type: argocd
last-reviewed: null
current-version: "3.8.1"
upstream-source: https://github.com/kiwix/kiwix-tools/releases
- name: devpi
type: argocd
last-reviewed: null
current-version: "6.19.1"
upstream-source: https://github.com/devpi/devpi/releases
- name: cv
type: argocd
last-reviewed: null
current-version: "1.0.3"
upstream-source: null
notes: Personal static site, no upstream
- name: docs
type: argocd
last-reviewed: null
current-version: "1.28.2"
upstream-source: https://github.com/jackyzha0/quartz/releases
notes: Quartz static site generator; container version tracks nginx base
- name: forgejo-runner
type: argocd
last-reviewed: 2026-02-22
current-version: "12.7.0"
upstream-source: https://code.forgejo.org/forgejo/runner/releases
notes: >-
Runner daemon version (code.forgejo.org/forgejo/runner). Job execution
image is tracked separately as runner-job-image.
- name: runner-job-image
type: argocd
last-reviewed: 2026-02-23
current-version: "0.19.11"
upstream-source: https://github.com/dagger/dagger/releases
notes: >-
Forgejo Actions job execution image. CONTAINER_APP_VERSION tracks the
Dagger CLI version, the primary build tool in the image.
- name: nix-container-builder
type: nixos
last-reviewed: 2026-02-22
current-version: "12.6.4"
upstream-source: https://code.forgejo.org/forgejo/runner/releases
notes: Forgejo runner on ringtail via nixpkgs; version tracks flake.lock
- name: forgejo
type: ansible
last-reviewed: 2026-02-22
current-version: "14.0.2"
upstream-source: https://codeberg.org/forgejo/forgejo/releases
notes: Installed via Homebrew on indri; plan to migrate to source build
- name: alloy
type: ansible
last-reviewed: null
current-version: null
upstream-source: https://github.com/grafana/alloy/releases
notes: Built from source on indri
- name: zot
type: ansible
last-reviewed: null
current-version: null
upstream-source: https://github.com/project-zot/zot/releases
notes: Built from source on indri
- name: caddy
type: ansible
last-reviewed: null
current-version: null
upstream-source: https://github.com/caddyserver/caddy/releases
notes: Built from source with Gandi DNS plugin
- name: borgmatic
type: ansible
last-reviewed: null
current-version: null
upstream-source: https://github.com/borgmatic-collective/borgmatic/releases
- name: jellyfin
type: ansible
last-reviewed: null
current-version: null
upstream-source: https://github.com/jellyfin/jellyfin/releases
- name: automounter
type: ansible
last-reviewed: null
current-version: null
upstream-source: null
notes: Custom service, no upstream