prop/k8s
Graham McIntire 4fefb81c24
feat(hrrr-point-rs): Rust binary for per-QSO HRRR enrichment
Phase 3 Stream C Rust side. Completes the HrrrFetchWorker port.

Pipeline:
- db::claim_next_hrrr_task — FOR UPDATE SKIP LOCKED on hrrr_fetch_tasks,
  newest valid_time first. Accepts the points JSONB directly.
- hrrr_points::process_batch — fetch surface + pressure GRIB2 once
  per task (tokio::try_join), decode via the existing wgrib2 plumbing,
  then for each requested point pull the cell and UPSERT INTO
  hrrr_profiles (conflict on lat/lon/valid_time).
- db::complete_hrrr_task / fail_hrrr_task — status transitions; Elixir
  backfill re-enqueues failed rows on next /30-min scan.

Shipping pieces:
- new bin src/bin/hrrr_point_worker.rs
- new module src/hrrr_points.rs (process_batch, upsert_profile)
- new Cargo [[bin]] entry; Dockerfile builds both binaries in one stage
  and ships them in the runtime image so a single CI pipeline covers
  the whole cluster
- k8s/deployment-hrrr-point-rs.yaml (1 replica, 1 Gi limit, anti-affinity
  against prop-grid-rs so chain + point work don't fight for wgrib2
  slots). Uses the same image; command: override picks the right binary.
- kustomization.yaml: include the new deployment so flux applies it
- deployment-grid-rs.yaml: bump readiness initialDelaySeconds 3→15 +
  failureThreshold 3→6 so a slow DB connect during startup can't race
  the first probe

119 Rust tests green.
2026-04-19 18:28:00 -05:00
..
deployment-backfill.yaml chore: update prop image to git.mcintire.me/graham/prop:main-1776640955-7416583 [skip ci] 2026-04-19 23:27:05 +00:00
deployment-grid-rs.yaml feat(hrrr-point-rs): Rust binary for per-QSO HRRR enrichment 2026-04-19 18:28:00 -05:00
deployment-hrrr-point-rs.yaml feat(hrrr-point-rs): Rust binary for per-QSO HRRR enrichment 2026-04-19 18:28:00 -05:00
deployment.yaml chore: update prop image to git.mcintire.me/graham/prop:main-1776640955-7416583 [skip ci] 2026-04-19 23:27:05 +00:00
flux.yaml feat(flux): add image-automation for prop-grid-rs 2026-04-19 16:24:33 -05:00
kustomization.yaml feat(hrrr-point-rs): Rust binary for per-QSO HRRR enrichment 2026-04-19 18:28:00 -05:00
metrics-service.yaml feat(k8s): NodePort service for external Prometheus scraping 2026-04-18 16:51:46 -05:00
namespace.yaml Add k8s manifests and Forgejo CI for cluster deployment 2026-04-06 09:25:24 -05:00
rbac.yaml Add Erlang clustering via libcluster and expose LiveDashboard 2026-04-06 09:46:48 -05:00
service.yaml fix(k8s): tier label isolates hot pods from backfill endpoints 2026-04-19 16:58:13 -05:00