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