prop/k8s
Graham McIntire 86b2718916
infra(k8s): load-based HPAs, drop anti-affinity, retire talos5
Adds HorizontalPodAutoscaler resources for the three load-responsive
Deployments:

- prop (web): min 2, max 5, averageValue 800m CPU
- prop-grid-rs: min 1, max 4, averageValue 400m
- hrrr-point-rs: min 1, max 4, averageValue 400m
- prop-backfill is intentionally unmanaged (queue-driven, not CPU-bound)

The scale-up policy reacts in 30 s with up-to-2-pods or +100 % per
window; scale-down stabilises over 10 min so the hourly propagation
chain doesn't churn replicas right after the :05 cron.

Removes `spec.replicas` from the HPA-managed Deployments so Flux's
periodic reconcile stops fighting HPA's live scaling decisions.

Drops `podAntiAffinity` from prop, prop-grid-rs, and hrrr-point-rs
so HPA can actually reach its maxReplicas when one physical host has
capacity for two pods; the scheduler picks whatever fits.

Updates runbook + project memory to drop the `talos5` hostname —
Postgres is now addressed strictly by IP (10.0.15.30).
2026-04-23 18:43:18 -05:00
..
deployment-backfill.yaml chore: update prop image to git.mcintire.me/graham/prop:main-1776981668-109c4e1 [skip ci] 2026-04-23 22:04:43 +00:00
deployment-grid-rs.yaml infra(k8s): load-based HPAs, drop anti-affinity, retire talos5 2026-04-23 18:43:18 -05:00
deployment-hrrr-point-rs.yaml infra(k8s): load-based HPAs, drop anti-affinity, retire talos5 2026-04-23 18:43:18 -05:00
deployment.yaml infra(k8s): load-based HPAs, drop anti-affinity, retire talos5 2026-04-23 18:43:18 -05:00
flux.yaml feat(flux): add image-automation for prop-grid-rs 2026-04-19 16:24:33 -05:00
hpa.yaml infra(k8s): load-based HPAs, drop anti-affinity, retire talos5 2026-04-23 18:43:18 -05:00
kustomization.yaml infra(k8s): load-based HPAs, drop anti-affinity, retire talos5 2026-04-23 18:43:18 -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