Upgrade unpoller v2.34.0 → v3.2.0, migrate to container.py #361

Merged
eblume merged 2 commits from unpoller-v3 into main 2026-05-28 09:59:47 -07:00
Owner

Summary

  • Service Review pickup: unpoller (last reviewed 73 days ago).
  • Upgrades unpoller from v2.34.0 to v3.2.0 (major version bump).
  • Migrates the container build from a Dockerfile to a native Dagger pipeline (containers/unpoller/container.py) following the navidrome / miniflux pattern.
  • Refreshes service-versions.yaml (last-reviewed, current-version).

Breaking changes (upstream)

  • v3.0.0 — UniFi network API shifts (later 10.x). Some metric / event / log names and labels may have changed. Worth a follow-up sweep of the unpoller Grafana dashboard for missing series.
  • v3.2.0 — defaults to a 60s background poll feeding cached Prometheus scrapes (was on-demand poll per scrape). To restore previous behavior, set interval = 0 in up.conf. Leaving the new default in this PR — every-15s scrapes will simply serve from cache, which is fine for our use.

Build

  • Image: registry.ops.eblu.me/blumeops/unpoller:v3.2.0-1b27242
  • Built by build-container workflow run #559 from this branch.

Test plan

  • argocd app set unpoller --revision unpoller-v3 && argocd app sync unpoller
  • Pod comes Ready
  • Verify metrics exported (Site/Client/UAP/USG/USW counts in logs, unpoller_* series in Prometheus)
  • Spot-check unpoller Grafana dashboard for missing series after the v3 API shift
  • After merge: argocd app set unpoller --revision main && argocd app sync unpoller

🤖 Generated with Claude Code

## Summary - Service Review pickup: unpoller (last reviewed 73 days ago). - Upgrades unpoller from v2.34.0 to v3.2.0 (major version bump). - Migrates the container build from a Dockerfile to a native Dagger pipeline (`containers/unpoller/container.py`) following the navidrome / miniflux pattern. - Refreshes `service-versions.yaml` (last-reviewed, current-version). ## Breaking changes (upstream) - **v3.0.0** — UniFi network API shifts (later 10.x). Some metric / event / log names and labels may have changed. Worth a follow-up sweep of the unpoller Grafana dashboard for missing series. - **v3.2.0** — defaults to a 60s background poll feeding cached Prometheus scrapes (was on-demand poll per scrape). To restore previous behavior, set `interval = 0` in `up.conf`. Leaving the new default in this PR — every-15s scrapes will simply serve from cache, which is fine for our use. ## Build - Image: `registry.ops.eblu.me/blumeops/unpoller:v3.2.0-1b27242` - Built by build-container workflow run #559 from this branch. ## Test plan - [ ] `argocd app set unpoller --revision unpoller-v3 && argocd app sync unpoller` - [ ] Pod comes Ready - [ ] Verify metrics exported (`Site/Client/UAP/USG/USW` counts in logs, `unpoller_*` series in Prometheus) - [ ] Spot-check unpoller Grafana dashboard for missing series after the v3 API shift - [ ] After merge: `argocd app set unpoller --revision main && argocd app sync unpoller` 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Major version bump from v2.34.0 to v3.2.0.

Breaking changes upstream:
- v3.0.0: UniFi network API shifts (later 10.x); metrics, events and logs
  may have changed names/labels.
- v3.2.0: defaults to a 60s background poll feeding cached Prometheus
  scrapes (was on-demand poll per scrape). Set interval = 0 in up.conf
  to restore on-demand behavior if needed.

Also migrate the container build from a Dockerfile to a native Dagger
pipeline (containers/unpoller/container.py) using the shared helpers in
blumeops.containers, following the navidrome/miniflux pattern. The
build-container workflow already prefers container.py when present.

Refresh last-reviewed and current-version in service-versions.yaml.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Built by build-container workflow run #559 from this branch.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
eblume merged commit 4d1f4af25b into main 2026-05-28 09:59:47 -07:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
eblume/blumeops!361
No description provided.