## Summary - Upgrade grafana-sidecar from 1.28.0 to 2.6.0 (the 2.x memory regression #462 is resolved; ~35MB static overhead is acceptable) - Port build from Dockerfile to native Dagger container.py - Add liveness/readiness probes using the new /healthz endpoint on port 8080 - Update docs to reflect container.py migration and remove stale pin note ## Test plan - [ ] Build container: `mise run container-build-and-release grafana-sidecar` - [ ] Update kustomization tag with new image tag - [ ] Deploy from branch: `argocd app set grafana --revision grafana-sidecar-2.6.0 && argocd app sync grafana` - [ ] Verify sidecar health endpoint: `kubectl exec -n monitoring <pod> -c grafana-sc-dashboard -- wget -qO- http://localhost:8080/healthz` - [ ] Verify dashboards load in Grafana UI - [ ] `mise run services-check` Reviewed-on: #332
2 KiB
2 KiB
| title | modified | last-reviewed | tags | |||
|---|---|---|---|---|---|---|
| Build Grafana Images | 2026-03-15 | 2026-03-15 |
|
Build Grafana Images
Home-built container images for Grafana and its dashboard sidecar, published to registry.ops.eblu.me/blumeops/.
Grafana
Dockerfile: containers/grafana/Dockerfile
Image: registry.ops.eblu.me/blumeops/grafana
Downloads the official Grafana OSS tarball for the target architecture (arm64/amd64), installs it into Alpine, and sets up standard paths.
# Update version in Dockerfile
# ARG CONTAINER_APP_VERSION=12.3.3
mise run container-build-and-release grafana
Gotchas:
- Tarball directory name: Extracts to
grafana-<version>(e.g.grafana-12.3.3), notgrafana-v<version>. - Binary PATH: The binary lives at
bin/grafanainside the extracted directory. The Dockerfile setsENV PATH="/usr/share/grafana/bin:$PATH". - UID 472: Matches the official Grafana image for PVC ownership compatibility.
Grafana Sidecar
Build: containers/grafana-sidecar/container.py (native Dagger)
Image: registry.ops.eblu.me/blumeops/grafana-sidecar
Clones the kiwigrid/k8s-sidecar source from the forge mirror, installs the Python package into a venv, and copies it into a Python Alpine runtime image.
# Update VERSION in container.py
mise run container-build-and-release grafana-sidecar
Gotchas:
- UID 65534: Matches upstream's
nobodyuser convention for non-root execution. - Forge mirror name:
mirrors/kiwigrid-grafana-sidecar(notk8s-sidecar). - Health endpoint: 2.x exposes
/healthzon port 8080 (liveness + readiness probes configured in deployment).
Related
- grafana — Service reference card
- upgrade-grafana — Migration context and future upgrade steps
- kustomize-grafana-deployment — Kustomize manifest structure
- build-container-image — Standard container build workflow