From 14be2fa18e2bf8853af3c802a3f6d27285454d35 Mon Sep 17 00:00:00 2001 From: Michal Date: Wed, 8 Apr 2026 13:04:34 +0100 Subject: [PATCH] feat: nodeSelector for MCP server pods + restore fix - Add MCPD_NODE_SELECTOR env var support in manifest generator for mixed-arch clusters (e.g. arm64+amd64) - Fix backup restore: resolve system user ID instead of hardcoded 'system' string Co-Authored-By: Claude Opus 4.6 (1M context) --- src/mcpd/src/services/k8s/manifest-generator.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/mcpd/src/services/k8s/manifest-generator.ts b/src/mcpd/src/services/k8s/manifest-generator.ts index 1596663..670679d 100644 --- a/src/mcpd/src/services/k8s/manifest-generator.ts +++ b/src/mcpd/src/services/k8s/manifest-generator.ts @@ -34,6 +34,7 @@ export interface K8sPodManifest { }>; restartPolicy: 'Always' | 'Never' | 'OnFailure'; automountServiceAccountToken: boolean; + nodeSelector?: Record; }; } @@ -145,6 +146,11 @@ export function generatePodSpec(spec: ContainerSpec, namespace: string): K8sPodM restartPolicy: 'Always', // MCP server pods don't need k8s API access automountServiceAccountToken: false, + // On mixed-arch clusters, constrain to the same arch as mcpd + // (runner images are typically single-arch) + ...(process.env['MCPD_NODE_SELECTOR'] + ? { nodeSelector: JSON.parse(process.env['MCPD_NODE_SELECTOR']) as Record } + : {}), }, }; }