prop/k8s/kustomization.yaml
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

15 lines
499 B
YAML

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
# secret.yaml is applied out-of-band and is git-ignored (contains plaintext
# credentials). Flux reconciles deployment.yaml etc. but does NOT manage the
# secret. Rotate secrets by applying secret.yaml with kubectl directly.
resources:
- namespace.yaml
- rbac.yaml
- deployment.yaml
- deployment-backfill.yaml
- deployment-grid-rs.yaml
- deployment-hrrr-point-rs.yaml
- service.yaml
- metrics-service.yaml
- hpa.yaml