blumeops/containers
Erich Blume f2704b26da
All checks were successful
Build Container (Nix) / detect (push) Successful in 2s
Build Container / detect (push) Successful in 2s
Build Container (Nix) / build (transmission-exporter) (push) Successful in 2s
Build Container / build (transmission-exporter) (push) Successful in 19s
Replace transmission-exporter with homegrown Python exporter (#283)
## Summary
- Replace unmaintained `metalmatze/transmission-exporter:master` sidecar with a homegrown Python exporter
- Uses `prometheus_client` + `transmission-rpc` with collect-on-scrape pattern (fresh metrics per scrape, no stale labels)
- Same metric names so existing Grafana Transmission dashboard works unchanged
- Container built with `uv` for dependency management, follows `grafana-sidecar` Dockerfile pattern

## Changes
- **New:** `containers/transmission-exporter/exporter.py` — single-file exporter (~130 lines)
- **New:** `containers/transmission-exporter/Dockerfile` — multi-stage Alpine build with uv
- **Modified:** `argocd/manifests/torrent/deployment.yaml` — swap sidecar image reference
- **Modified:** `argocd/manifests/torrent/kustomization.yaml` — add image tag entry
- **Modified:** `service-versions.yaml` — add transmission-exporter entry

## Deployment and Testing
- [ ] Build container: `mise run container-build-and-release transmission-exporter`
- [ ] Update kustomization.yaml newTag with build SHA
- [ ] Branch deploy: `argocd app set torrent --revision feature/transmission-exporter-python && argocd app sync torrent`
- [ ] Verify metrics: `kubectl -n torrent --context=minikube-indri port-forward svc/transmission 19091:19091` then `curl localhost:19091/metrics | grep transmission_`
- [ ] Verify Grafana Transmission dashboard panels populate
- [ ] After merge: `argocd app set torrent --revision main && argocd app sync torrent`

Reviewed-on: #283
2026-03-04 21:55:00 -08:00
..
authentik Fix authentik 2026.2.0 migration ordering bug (#275) 2026-03-01 16:28:36 -08:00
cv Harden zot registry, pt 1 (#231) 2026-02-20 22:50:01 -08:00
devpi Harden zot registry, pt 1 (#231) 2026-02-20 22:50:01 -08:00
grafana C2: Upgrade Grafana to 12.x with Nix container and Kustomize (#260) 2026-02-23 18:07:18 -08:00
grafana-sidecar Home-build grafana-sidecar container (#281) 2026-03-03 13:48:24 -08:00
homepage Migrate upstream mirrors to mirrors/ Forgejo org (#265) 2026-02-24 20:43:14 -08:00
kiwix-serve Harden zot registry, pt 1 (#231) 2026-02-20 22:50:01 -08:00
kubectl Harden zot registry, pt 1 (#231) 2026-02-20 22:50:01 -08:00
loki Build Loki container image locally (#280) 2026-03-03 13:00:43 -08:00
miniflux Switch prometheus, teslamate, miniflux to forge mirrors 2026-02-24 21:01:08 -08:00
navidrome Migrate upstream mirrors to mirrors/ Forgejo org (#265) 2026-02-24 20:43:14 -08:00
nettest Harden zot registry, pt 1 (#231) 2026-02-20 22:50:01 -08:00
ntfy Migrate upstream mirrors to mirrors/ Forgejo org (#265) 2026-02-24 20:43:14 -08:00
prometheus Switch prometheus, teslamate, miniflux to forge mirrors 2026-02-24 21:01:08 -08:00
quartz Harden zot registry, pt 1 (#231) 2026-02-20 22:50:01 -08:00
runner-job-image Rename containers/forgejo-runner to runner-job-image 2026-02-23 17:44:51 -08:00
teslamate Upgrade TeslaMate v2.2.0 → v3.0.0 (#279) 2026-03-03 11:56:40 -08:00
transmission Upgrade Transmission to 4.1.1 (#282) 2026-03-04 07:44:33 -08:00
transmission-exporter Replace transmission-exporter with homegrown Python exporter (#283) 2026-03-04 21:55:00 -08:00