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 } + : {}), }, }; }