UNPKG

@gorizond/mcp-rancher-multi

Version:

MCP server for multiple Rancher Manager backends with Fleet GitOps support

43 lines (42 loc) 1.68 kB
export function pickFields(source, fields) { if (!fields || fields.length === 0) return source; return fields.reduce((acc, key) => { if (key in source) { acc[key] = source[key]; } return acc; }, {}); } export function summarizeFleetGitRepo(repo, fields) { const summary = { name: repo?.metadata?.name, namespace: repo?.metadata?.namespace, repo: repo?.spec?.repo, branch: repo?.spec?.branch, paths: repo?.spec?.paths, paused: repo?.spec?.paused || false, revision: repo?.status?.commit || repo?.status?.commitId, lastSynced: repo?.status?.lastSynced, conditions: repo?.status?.conditions, readyClusters: repo?.status?.readyClusters, desiredReadyClusters: repo?.status?.desiredReadyClusters }; const defaultFields = ['name', 'namespace', 'repo', 'branch', 'paths', 'paused', 'revision', 'lastSynced']; const targetFields = fields && fields.length ? fields : defaultFields; return pickFields(summary, targetFields); } export function summarizeFleetBundleDeployment(bd, fields) { const summary = { name: bd?.metadata?.name, namespace: bd?.metadata?.namespace, ready: bd?.status?.ready, nonReady: bd?.status?.nonReady, desiredReady: bd?.status?.desiredReady, summary: bd?.status?.summary, display: bd?.status?.display }; const defaultFields = ['name', 'namespace', 'ready', 'nonReady', 'desiredReady', 'summary', 'display']; const targetFields = fields && fields.length ? fields : defaultFields; return pickFields(summary, targetFields); }