feat: Kubernetes operator for MCP server management #47
@@ -34,6 +34,7 @@ export interface K8sPodManifest {
|
|||||||
}>;
|
}>;
|
||||||
restartPolicy: 'Always' | 'Never' | 'OnFailure';
|
restartPolicy: 'Always' | 'Never' | 'OnFailure';
|
||||||
automountServiceAccountToken: boolean;
|
automountServiceAccountToken: boolean;
|
||||||
|
nodeSelector?: Record<string, string>;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -145,6 +146,11 @@ export function generatePodSpec(spec: ContainerSpec, namespace: string): K8sPodM
|
|||||||
restartPolicy: 'Always',
|
restartPolicy: 'Always',
|
||||||
// MCP server pods don't need k8s API access
|
// MCP server pods don't need k8s API access
|
||||||
automountServiceAccountToken: false,
|
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<string, string> }
|
||||||
|
: {}),
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user