fix/vke-storage-per-region #55

Merged
Patrick merged 5 commits from fix/vke-storage-per-region into main 2026-10-12 18:57:42 +00:00
Owner
No description provided.
A rolling update starts each new pod before stopping an old one, so it
needs a pod's worth of free CPU on some node. On 3 x 2-vCPU workers
there was none: a config change rolled every app pod, the second new
Laravel pod stayed Pending ("Insufficient cpu") beside the old one, and
helm upgrade timed out.

global.rollingUpdate (maxSurge / maxUnavailable) now sets the strategy
of the Deployments that roll: Laravel, Reverb, agent-worker,
LiveKit-SIP, and LiveKit when it's cluster-internal. The default,
25% / 25%, is Kubernetes' own, so nothing changes unless it's set;
orbital-setup sets 0 / 1 for small clusters.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01B1SSodNM36HPWcZr15zwtF
The migration job seeded only when .Release.IsInstall, as a post-install
hook. When the first install fails or times out (a smoke test on VKE
did, waiting on storage), Helm never runs post-install hooks, and every
later run is an upgrade, so the database stayed migrated but without
roles: orbital:make-admin failed with "There is no role named
super_admin".

The job now runs orbital:seed-if-empty on every install and upgrade. It
runs DatabaseSeeder only if the roles table is empty, so a failed first
install is finished by the next run and a seeded database is never
re-seeded. migrations.seedOnInstall keeps its name and still turns it off.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01B1SSodNM36HPWcZr15zwtF
On an unseeded database orbital:make-admin created the user and their
personal team, then failed at assignRole("super_admin"). The half-made
user stayed behind, so after seeding, a retry only said the email was
taken. It now checks the role exists first, explaining that the
database hasn't been seeded and how to fix it, and creates the user,
team and role assignment in one transaction.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01B1SSodNM36HPWcZr15zwtF
Check edge rtpengine through Kamailio instead of NG ping
All checks were successful
Application Tests / frontend (pull_request) Successful in 29s
Application Tests / security-audit (pull_request) Successful in 2m8s
Application Tests / php (pull_request) Successful in 2m36s
Application Tests / tag (pull_request) Has been skipped
Application Tests / publish-images (., Dockerfile, laravel) (pull_request) Has been skipped
Application Tests / publish-images (agent-worker, Dockerfile, agent-worker) (pull_request) Has been skipped
Application Tests / publish-images (docker/asterisk, Dockerfile, asterisk) (pull_request) Has been skipped
Application Tests / publish-images (docker/asterisk-config-sync, Dockerfile, asterisk-config-sync) (pull_request) Has been skipped
Application Tests / scan-images (agent-worker) (pull_request) Has been skipped
Application Tests / scan-images (asterisk) (pull_request) Has been skipped
Application Tests / scan-images (asterisk-config-sync) (pull_request) Has been skipped
Application Tests / scan-images (laravel) (pull_request) Has been skipped
Application Tests / publish-helm (pull_request) Has been skipped
Application Tests / publish-archives (pull_request) Has been skipped
212b8935a7
On the SIP edge VMs rtpengine's NG control listens on loopback only,
and the node registry holds the compose hostnames rtpengine-1/2, so
the health page always reported "No rtpengine nodes are responding".
When the chart has edge addresses it sets RTPENGINE_VIA_KAMAILIO, and
the check asks each edge's Kamailio for `rtpengine.ping` and names the
edge whose relay is down.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01B1SSodNM36HPWcZr15zwtF
Merge branch 'main' into fix/vke-storage-per-region
All checks were successful
Application Tests / frontend (pull_request) Successful in 31s
Application Tests / security-audit (pull_request) Successful in 2m11s
Application Tests / php (pull_request) Successful in 2m42s
Application Tests / tag (pull_request) Has been skipped
Application Tests / publish-images (., Dockerfile, laravel) (pull_request) Has been skipped
Application Tests / publish-images (agent-worker, Dockerfile, agent-worker) (pull_request) Has been skipped
Application Tests / publish-images (docker/asterisk, Dockerfile, asterisk) (pull_request) Has been skipped
Application Tests / publish-images (docker/asterisk-config-sync, Dockerfile, asterisk-config-sync) (pull_request) Has been skipped
Application Tests / scan-images (agent-worker) (pull_request) Has been skipped
Application Tests / scan-images (asterisk) (pull_request) Has been skipped
Application Tests / scan-images (asterisk-config-sync) (pull_request) Has been skipped
Application Tests / scan-images (laravel) (pull_request) Has been skipped
Application Tests / publish-helm (pull_request) Has been skipped
Application Tests / publish-archives (pull_request) Has been skipped
edcd45802f
Patrick deleted branch fix/vke-storage-per-region 2026-10-12 18:57:43 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
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
calltheory/orbital!55
No description provided.