feat(cloud): configurable replicas + HPA, and share/exec/hosts fixes #35

Merged
luchtech merged 1 commit from develop into main 2026-07-11 19:55:22 +00:00
luchtech commented 2026-07-11 19:54:59 +00:00 (Migrated from github.com)
  • Add larakube replicas (per-component fixed replica counts) and larakube autoscale (HorizontalPodAutoscaler min/max/CPU%) for web/queues/reverb/ssr, replacing the old hardcoded 1/strategy-derived-2 replica counts. Both use the same shared cloud overlay for VPS and managed k8s — no fork between them. HPA is deliberately not gated by DeploymentStrategy: metrics-server already ships as an unused k3s default addon on every cluster (local and VPS), so pod-count elasticity doesn't need a second node to work.
  • Add soft (ScheduleAnyway) topologySpreadConstraints for multi-node-ha, spreading replicas across nodes for real fault tolerance without ever blocking scheduling — safe no-op on single-node VPS/local.
  • Fix ExecCommand's stale 'seaweedfs' => 'master' container mapping (the deployment is a single all-in-one container named 'seaweedfs'; 'master' never existed) and the SeaweedFS ingress routing s3-admin to the wrong port (9333/master status instead of 8888/Filer UI).
  • Fix reconcileSharedCluster() showing a "Refreshing X ingress..." spinner for every shared service even when never installed — check presence before rendering the spinner, not just before applying.
  • Make the Traefik dashboard a true always-on shared service (it was already always applied in practice; the presence-probe indirection was vestigial) and drop DashboardCommand's now-redundant duplicate hosts sync in favor of the one up already does every run.
  • Flip ensureWindowsHostsAreSet()'s Windows-admin-sync confirm to default Yes — a declined/missed prompt was silently leaving newly-added hosts out of the Windows hosts file while older ones kept resolving.
  • Add ShareCommand support for Reverb and a storage-console tunnel entry.
  • Add a live "routed by Traefik" indicator to Active Service Links (about + up, one shared method) and a matching doctor check, cross- referencing Traefik's own router API instead of just the Ingress objects existing.
  • Add explicit "VPS is production-ready" messaging to about and cloud:create — hardening/TLS/backups/autoscaling are identical to managed k8s; the one real gap (surviving a full server failure) is named instead of implied.
- Add `larakube replicas` (per-component fixed replica counts) and `larakube autoscale` (HorizontalPodAutoscaler min/max/CPU%) for web/queues/reverb/ssr, replacing the old hardcoded 1/strategy-derived-2 replica counts. Both use the same shared cloud overlay for VPS and managed k8s — no fork between them. HPA is deliberately not gated by DeploymentStrategy: metrics-server already ships as an unused k3s default addon on every cluster (local and VPS), so pod-count elasticity doesn't need a second node to work. - Add soft (ScheduleAnyway) topologySpreadConstraints for multi-node-ha, spreading replicas across nodes for real fault tolerance without ever blocking scheduling — safe no-op on single-node VPS/local. - Fix ExecCommand's stale 'seaweedfs' => 'master' container mapping (the deployment is a single all-in-one container named 'seaweedfs'; 'master' never existed) and the SeaweedFS ingress routing s3-admin to the wrong port (9333/master status instead of 8888/Filer UI). - Fix reconcileSharedCluster() showing a "Refreshing X ingress..." spinner for every shared service even when never installed — check presence before rendering the spinner, not just before applying. - Make the Traefik dashboard a true always-on shared service (it was already always applied in practice; the presence-probe indirection was vestigial) and drop DashboardCommand's now-redundant duplicate hosts sync in favor of the one `up` already does every run. - Flip ensureWindowsHostsAreSet()'s Windows-admin-sync confirm to default Yes — a declined/missed prompt was silently leaving newly-added hosts out of the Windows hosts file while older ones kept resolving. - Add ShareCommand support for Reverb and a storage-console tunnel entry. - Add a live "routed by Traefik" indicator to Active Service Links (about + up, one shared method) and a matching doctor check, cross- referencing Traefik's own router API instead of just the Ingress objects existing. - Add explicit "VPS is production-ready" messaging to `about` and `cloud:create` — hardening/TLS/backups/autoscaling are identical to managed k8s; the one real gap (surviving a full server failure) is named instead of implied.
Sign in to join this conversation.
No description provided.