fix(apps): pin single-arch amd64 sites to amd64 nodes #200

Merged
kblack0610 merged 1 commit from fix/pin-single-arch-sites-to-amd64 into master 2026-08-24 14:40:10 +00:00
Owner

Restores kennethblack.me, kblack.dev and binks.chat (down 7 days, ~2040 restarts each, 503 no available server).

All five public-site images are single-arch linux/amd64 and no Deployment constrained scheduling, so pods landing on arm64 Pis died with exec format error. bnb-studios had the same defect and was up only by scheduling luck.

Hard nodeSelector, not preferred affinity: a soft rule falls back to arm64, which is the bug. Matches apps/mem0, apps/openwakeword, apps/langfuse.

Validated with kubectl kustomize on all four dirs.

Restores kennethblack.me, kblack.dev and binks.chat (down 7 days, ~2040 restarts each, 503 no available server). All five public-site images are single-arch linux/amd64 and no Deployment constrained scheduling, so pods landing on arm64 Pis died with `exec format error`. bnb-studios had the same defect and was up only by scheduling luck. Hard nodeSelector, not preferred affinity: a soft rule falls back to arm64, which is the bug. Matches apps/mem0, apps/openwakeword, apps/langfuse. Validated with kubectl kustomize on all four dirs.
fix(apps): pin single-arch amd64 sites to amd64 nodes
All checks were successful
checks / fleet-roster (pull_request) Successful in 6s
checks / kustomize-builds (pull_request) Successful in 7s
3c93eeddc7
kennethblack.me, kblack.dev and binks.chat have been down 7 days with
~2040 restarts each, returning 503 "no available server" from Traefik.

All five public-site images are single-arch linux/amd64 manifests, and
none of the Deployments constrained scheduling. When the pods landed on
arm64 Raspberry Pi nodes the containers could not exec:

  exec /usr/local/bin/docker-entrypoint.sh: exec format error

bnb-studios has the identical defect and was up only because it happened
to sit on asus-laptop; a drain or reboot would have taken it down too.

Hard nodeSelector rather than preferred nodeAffinity: a soft preference
lets the scheduler fall back to arm64, which is exactly this bug. With a
hard pin, losing both amd64 nodes yields Pending, which is visible,
instead of a CrashLoopBackOff that looks scheduled and still 503s.

Matches the existing convention in apps/mem0, apps/openwakeword,
apps/langfuse and apps/monitoring.
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
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
kblack0610/home-config!200
No description provided.