From 047ca7fe54c09cc46b5f16cb42609b83158a0d2b Mon Sep 17 00:00:00 2001 From: "j.w.jonkers" Date: Sat, 6 Jun 2026 19:01:16 +0200 Subject: [PATCH] assistant-api-ws: pin to enschede-t1000-1 to survive desktop power-off The rx7900xtx and gtx-960m Enschede nodes are desktops that are powered off periodically. When the pod lands on one of those nodes and the node goes offline, the k8s Service endpoint keeps pointing at the dead pod for the full node eviction window (~5 min), leaving the assistant WS completely broken. The fix pins the deployment to enschede-t1000-1, which is an always-on server node. --- .../assistant-api/deployment-enschede-ws.yaml | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/platform/cluster/flux/apps/stateless/assistant-api/deployment-enschede-ws.yaml b/platform/cluster/flux/apps/stateless/assistant-api/deployment-enschede-ws.yaml index e41ed3f2..1a7275c3 100644 --- a/platform/cluster/flux/apps/stateless/assistant-api/deployment-enschede-ws.yaml +++ b/platform/cluster/flux/apps/stateless/assistant-api/deployment-enschede-ws.yaml @@ -69,15 +69,13 @@ spec: serviceAccountName: assistant-api priorityClassName: platform-critical-app nodeSelector: - personal-stack/site: enschede - # The assistant-api image is built amd64-only. The Enschede site - # spans both amd64 nodes and the arm64 Pis (pi-1/2/3); without - # this constraint the scheduler can place the surge pod on a Pi, - # where the image fails with "no match for platform in manifest" - # → ImagePullBackOff while the old pod is torn down. Keel's - # force-poll rolls a new pod every 2 min, so that coin-flip took - # the terminal WS down repeatedly. Pin to amd64. - kubernetes.io/arch: amd64 + # Pin to the always-on t1000 server. The other amd64 Enschede + # nodes (rx7900xtx, gtx-960m) are desktops that are powered off + # when not in use. When the pod lands on a desktop and that + # desktop goes offline, the Service endpoint dies and the WS stays + # broken for the full k8s node eviction window (~5 min) before the + # pod is rescheduled. Pinning to the t1000 prevents this entirely. + personal-stack/node: enschede-t1000-1 initContainers: - name: download-pyroscope-agent image: curlimages/curl:8.10.1