{"id":47671961,"url":"https://github.com/zw008/vmware-vks","last_synced_at":"2026-06-27T02:03:46.645Z","repository":{"id":346707261,"uuid":"1191221120","full_name":"zw008/VMware-VKS","owner":"zw008","description":"MCP Skill + CLI for vSphere with Tanzu (VKS) — Supervisor, Namespace, and TanzuKubernetesCluster lifecycle management. Requires vSphere 8.x+.","archived":false,"fork":false,"pushed_at":"2026-04-01T15:46:06.000Z","size":185,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-03T01:05:43.205Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zw008.png","metadata":{"files":{"readme":"README-CN.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-25T03:07:29.000Z","updated_at":"2026-04-01T15:46:14.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/zw008/VMware-VKS","commit_stats":null,"previous_names":["zw008/vmware-vks"],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/zw008/VMware-VKS","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zw008%2FVMware-VKS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zw008%2FVMware-VKS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zw008%2FVMware-VKS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zw008%2FVMware-VKS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zw008","download_url":"https://codeload.github.com/zw008/VMware-VKS/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zw008%2FVMware-VKS/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31535203,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-02T13:00:18.597Z","updated_at":"2026-06-27T02:03:46.639Z","avatar_url":"https://github.com/zw008.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- mcp-name: io.github.zw008/vmware-vks --\u003e\n# VMware VKS\n\n\u003e **作者**: Wei Zhou, VMware by Broadcom — wei-wz.zhou@broadcom.com\n\u003e 本项目由 VMware 工程师维护的社区项目，非 VMware 官方产品。\n\u003e VMware 官方开发者工具请访问 [developer.broadcom.com](https://developer.broadcom.com)。\n\n[English](README.md) | [中文](README-CN.md)\n\nMCP Skill + CLI，用于 VMware vSphere with Tanzu (VKS) 管理 — Supervisor 集群、vSphere 命名空间和 TanzuKubernetesCluster 生命周期。20 个 MCP 工具。\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)\n\n## 配套 Skills\n\n\u003e **VMware MCP Skills 系列。** 每个 Skill 负责一个独立领域 — 按需安装即可。\n\n| Skill | 功能范围 | 工具数 | 安装 |\n|-------|---------|:-----:|------|\n| **[vmware-aiops](https://github.com/zw008/VMware-AIops)** ⭐ 入口 | VM 生命周期、部署、Guest Ops、集群 | 31 | `uv tool install vmware-aiops` |\n| **[vmware-monitor](https://github.com/zw008/VMware-Monitor)** | 只读监控、告警、事件、VM 信息 | 8 | `uv tool install vmware-monitor` |\n| **[vmware-storage](https://github.com/zw008/VMware-Storage)** | 数据存储、iSCSI、vSAN | 11 | `uv tool install vmware-storage` |\n| **[vmware-nsx](https://github.com/zw008/VMware-NSX)** | NSX 网络：Segment、网关、NAT、IPAM | 31 | `uv tool install vmware-nsx-mgmt` |\n| **[vmware-nsx-security](https://github.com/zw008/VMware-NSX-Security)** | DFW 微分段、安全组、Traceflow | 20 | `uv tool install vmware-nsx-security` |\n| **[vmware-aria](https://github.com/zw008/VMware-Aria)** | Aria Ops 指标、告警、容量规划 | 18 | `uv tool install vmware-aria` |\n\n## 前置要求\n\n- **Python 3.10+** — `uv tool install` 所需\n- **vSphere 8.0+** — Workload Management（Supervisor）API 要求 vSphere 8.x\n- **Workload Management 已启用** — 至少一个计算集群已开启 WCP\n- **许可证** — vSphere with Tanzu（Enterprise Plus 或 VMware Cloud Foundation）\n\n配置完成后运行 `vmware-vks check` 验证所有要求是否满足。\n\n## 快速开始\n\n```bash\n# 安装\nuv tool install vmware-vks\n\n# 配置\nmkdir -p ~/.vmware-vks\ncp config.example.yaml ~/.vmware-vks/config.yaml\n# 编辑 config.yaml，填入 vCenter 主机和用户名\n\necho \"VMWARE_MY_VCENTER_PASSWORD=your_password\" \u003e ~/.vmware-vks/.env\nchmod 600 ~/.vmware-vks/.env\n\n# 验证\nvmware-vks check\n\n# 常用操作\nvmware-vks supervisor status domain-c1\nvmware-vks namespace list\nvmware-vks tkc list\nvmware-vks tkc create my-cluster -n dev --version v1.28.4+vmware.1 --vm-class best-effort-large\nvmware-vks tkc create my-cluster -n dev --apply\n```\n\n## 常用工作流\n\n### 部署新 TKC 集群\n\n1. 检查兼容性 → `vmware-vks check`\n2. 查看可用 K8s 版本 → `vmware-vks tkc versions -n dev`\n3. 创建命名空间（如需）→ `vmware-vks namespace create dev --cluster domain-c1 --storage-policy \u003c策略ID\u003e --cpu 16000 --memory 32768 --apply`（策略 ID 通过 `vmware-vks supervisor storage-policies` 获取）\n4. 创建 TKC 集群 → `vmware-vks tkc create dev-cluster -n dev --version v1.28.4+vmware.1 --control-plane 1 --workers 3 --vm-class best-effort-large --apply`\n5. 获取 kubeconfig → `vmware-vks kubeconfig get dev-cluster -n dev`\n\n### 扩容工作节点（压测场景）\n\n1. 查看当前状态 → `vmware-vks tkc get dev-cluster -n dev`\n2. 扩容 → `vmware-vks tkc scale dev-cluster -n dev --workers 6`\n3. 监控进度 → `vmware-vks tkc get dev-cluster -n dev`（观察 phase）\n4. 测试结束后缩容\n\n### 命名空间资源管理\n\n1. 列出命名空间 → `vmware-vks namespace list`\n2. 查看使用情况 → `vmware-vks storage -n dev`\n3. 更新配额 → `vmware-vks namespace update dev --cpu 32000 --memory 65536`\n\n## 工具参考（20 个工具）\n\n### Supervisor\n\n| 工具 | 描述 | 类型 |\n|------|------|------|\n| `check_vks_compatibility` | vCenter 版本检查 + WCP 状态 | 只读 |\n| `get_supervisor_status` | Supervisor 集群状态和 K8s API 端点 | 只读 |\n| `list_supervisor_storage_policies` | vCenter 存储策略列表（策略 ID、名称、描述） | 只读 |\n\n### 命名空间\n\n| 工具 | 描述 | 类型 |\n|------|------|------|\n| `list_namespaces` | 所有 vSphere 命名空间及状态 | 只读 |\n| `get_namespace` | 命名空间详情（配额、存储、角色） | 只读 |\n| `create_namespace` | 创建命名空间（默认 dry-run 预览） | 写操作 |\n| `update_namespace` | 修改配额和存储策略 | 写操作 |\n| `delete_namespace` | 删除（含 TKC 保护，存在集群时拒绝） | 写操作 |\n| `list_vm_classes` | TKC 节点规格可用的 VM 类 | 只读 |\n\n### TKC\n\n| 工具 | 描述 | 类型 |\n|------|------|------|\n| `list_tkc_clusters` | TanzuKubernetesCluster 列表及状态 | 只读 |\n| `get_tkc_cluster` | 集群详情（节点、健康、条件） | 只读 |\n| `get_tkc_available_versions` | Supervisor 上支持的 K8s 版本 | 只读 |\n| `create_tkc_cluster` | 创建 TKC（YAML 计划 + 默认 dry-run） | 写操作 |\n| `scale_tkc_cluster` | 调整工作节点数量 | 写操作 |\n| `upgrade_tkc_cluster` | 升级 K8s 版本 | 写操作 |\n| `delete_tkc_cluster` | 删除（含工作负载保护） | 写操作 |\n\n### 访问\n\n| 工具 | 描述 | 类型 |\n|------|------|------|\n| `get_supervisor_kubeconfig` | Supervisor kubeconfig YAML | 只读 |\n| `get_tkc_kubeconfig` | TKC kubeconfig（标准输出或文件） | 只读 |\n| `get_harbor_info` | 内置 Harbor 仓库信息（ID、集群、版本、URL、健康状态、已用存储） | 只读 |\n| `list_namespace_storage_usage` | PVC 列表和容量统计 | 只读 |\n\n## 架构\n\n```\n用户（自然语言）\n  ↓\nAI Agent（Claude Code / Goose / Cursor）\n  ↓ 读取 SKILL.md\n  ↓\nvmware-vks CLI  ─── 或 ───  vmware-vks MCP Server（stdio）\n  │\n  ├─ Layer 1: pyVmomi → vCenter REST API\n  │   Supervisor 状态、存储策略、命名空间 CRUD、VM 类、Harbor\n  │\n  └─ Layer 2: kubernetes client → Supervisor K8s API 端点\n      TKC CR apply / get / delete（cluster.x-k8s.io API 版本运行时自动探测：\n        Supervisor 支持 v1 时优先选 v1，否则回退 v1beta1（vSphere 8.0））\n      Kubeconfig 基于 Layer 1 会话令牌在内存中构建（不落盘）\n  ↓\nvCenter Server 8.x+（Workload Management 已启用）\n  ↓\nSupervisor 集群 → vSphere 命名空间 → TanzuKubernetesCluster\n```\n\n## CLI 参考\n\n```bash\n# 环境检查\nvmware-vks check\n\n# Supervisor\nvmware-vks supervisor status \u003c集群ID\u003e\nvmware-vks supervisor storage-policies\n\n# 命名空间\nvmware-vks namespace list\nvmware-vks namespace get \u003c名称\u003e\nvmware-vks namespace create \u003c名称\u003e --cluster \u003cID\u003e --storage-policy \u003c策略\u003e\nvmware-vks namespace create \u003c名称\u003e --cluster \u003cID\u003e --storage-policy \u003c策略\u003e --apply\nvmware-vks namespace update \u003c名称\u003e [--cpu \u003cMHz\u003e] [--memory \u003cMiB\u003e]\nvmware-vks namespace delete \u003c名称\u003e\nvmware-vks namespace vm-classes\n\n# TKC\nvmware-vks tkc list [-n \u003c命名空间\u003e]\nvmware-vks tkc get \u003c名称\u003e -n \u003c命名空间\u003e\nvmware-vks tkc versions -n \u003c命名空间\u003e\nvmware-vks tkc create \u003c名称\u003e -n \u003c命名空间\u003e [--version \u003c版本\u003e] [--vm-class \u003c类型\u003e]\nvmware-vks tkc create \u003c名称\u003e -n \u003c命名空间\u003e --apply\nvmware-vks tkc scale \u003c名称\u003e -n \u003c命名空间\u003e --workers \u003c数量\u003e\nvmware-vks tkc upgrade \u003c名称\u003e -n \u003c命名空间\u003e --version \u003c版本\u003e\nvmware-vks tkc delete \u003c名称\u003e -n \u003c命名空间\u003e\n\n# Kubeconfig\nvmware-vks kubeconfig supervisor -n \u003c命名空间\u003e\nvmware-vks kubeconfig get \u003c集群名称\u003e -n \u003c命名空间\u003e [-o \u003c文件路径\u003e]\n\n# Harbor 和存储\nvmware-vks harbor\nvmware-vks storage -n \u003c命名空间\u003e\n```\n\n## MCP Server 配置\n\n**v1.5.15+ 推荐方式**：完成 `uv tool install vmware-vks` 后，**一条命令启动 MCP**：\n\n```bash\nvmware-vks mcp\n```\n\n```json\n{\n  \"mcpServers\": {\n    \"vmware-vks\": {\n      \"command\": \"vmware-vks\",\n      \"args\": [\"mcp\"],\n      \"env\": {\n        \"VMWARE_VKS_CONFIG\": \"~/.vmware-vks/config.yaml\"\n      }\n    }\n  }\n}\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e备选方案：uvx（不安装）或 legacy 入口\u003c/summary\u003e\n\n```bash\n# 不想安装，临时运行（每次需要联网 resolve 依赖）\nuvx --from vmware-vks vmware-vks mcp\n\n# 旧 entry point（仍可用，向后兼容）\nvmware-vks-mcp\n```\n\n\u003e **公司 TLS 代理网络下？** uvx 可能报 `invalid peer certificate: UnknownIssuer`。\n\u003e 推荐使用上面的 `vmware-vks mcp`（无需联网），或 `export UV_NATIVE_TLS=true`。\n\n\u003c/details\u003e\n\n## 安全性\n\n| 特性 | 说明 |\n|------|------|\n| 以只读为主 | 20 个工具中 12 个为只读 |\n| 默认 dry-run | `create_namespace`、`create_tkc_cluster`、`delete_namespace`、`delete_tkc_cluster` 均默认 `dry_run=True` |\n| TKC 保护 | `delete_namespace` 在命名空间内存在 TKC 集群时拒绝执行 |\n| 工作负载保护 | `delete_tkc_cluster` 在 Deployment/StatefulSet 运行时拒绝执行 |\n| 凭据安全 | 密码仅从环境变量（`.env` 文件）加载，不写入 `config.yaml` |\n| Kubeconfig 内存构建 | Supervisor/TKC kubeconfig（含 vCenter 会话 bearer token）以内存 dict 形式构建并通过 `load_kube_config_from_dict()` 加载 — 不会写入磁盘临时文件（v1.5.18+） |\n| 审计日志 | 所有写操作记录到 `~/.vmware-vks/audit.log` |\n| stdio 传输 | 无网络监听端口；MCP 通过 stdio 运行 |\n\n## 故障排查\n\n### \"VKS not compatible\" 错误\n\n必须在 vCenter 中启用 Workload Management。检查：vCenter UI -\u003e Workload Management。需要 vSphere 8.x+ 且持有 Enterprise Plus 或 VCF 许可证。\n\n### 创建命名空间失败，提示 \"storage policy not found\"\n\n先列出策略：`vmware-vks supervisor storage-policies`，然后将 **Policy ID** 列的值（而非显示名称）作为 `--storage-policy` 传入。\n\n### TKC 集群卡在 \"Creating\" 阶段\n\n检查 vCenter 中的 Supervisor 事件。常见原因：ESXi 主机资源不足、NSX-T 网络问题、或存储策略在目标数据存储上不可用。\n\n### Kubeconfig 获取失败\n\n运行 vmware-vks 的机器必须能访问 Supervisor API 端点。检查 6443 端口的防火墙规则。\n\n### 扩容操作无效果\n\n扩容前确认集群处于 \"Running\" 阶段。处于 \"Creating\" 或 \"Updating\" 阶段的集群会拒绝扩容操作。\n\n### 删除命名空间被意外拒绝\n\n命名空间删除保护会在内部存在 TKC 集群时阻止删除。请先删除命名空间内的所有 TKC 集群，然后重试。\n\n## 版本兼容性\n\n| vSphere / VCF | 支持状态 | 说明 |\n|---------|---------|------|\n| 9.0 / 9.1 | ⚠ 尚未验证 | vSphere 9 的 Workload Management（Supervisor / WCP）API 维护者尚未实测。现有 vSphere 8.x 代码路径理论上可用，但在完成实验室验证之前无任何保证 — 基本 CRUD 大概率正常工作，边界场景可能需要测试。如在 VCF 9 上运行，欢迎提交 issue 并附带 `check_vks_compatibility` 输出。 |\n| 8.0+ | 完整支持 | Workload Management API 可用 |\n| 7.x | 不支持 | WCP API 接口不同，请使用 vSphere 8.x |\n\n## 相关项目\n\n| Skill | 范围 | 工具数 | 安装 |\n|-------|------|:-----:|------|\n| **[vmware-aiops](https://github.com/zw008/VMware-AIops)** ⭐ 入口 | VM 生命周期、部署、Guest Ops、集群 | 31 | `uv tool install vmware-aiops` |\n| **[vmware-monitor](https://github.com/zw008/VMware-Monitor)** | 只读监控、告警、事件、VM 信息 | 8 | `uv tool install vmware-monitor` |\n| **[vmware-storage](https://github.com/zw008/VMware-Storage)** | 数据存储、iSCSI、vSAN | 11 | `uv tool install vmware-storage` |\n| **[vmware-nsx](https://github.com/zw008/VMware-NSX)** | NSX 网络：Segment、网关、NAT、IPAM | 31 | `uv tool install vmware-nsx-mgmt` |\n| **[vmware-nsx-security](https://github.com/zw008/VMware-NSX-Security)** | DFW 微分段、安全组、Traceflow | 20 | `uv tool install vmware-nsx-security` |\n| **[vmware-aria](https://github.com/zw008/VMware-Aria)** | Aria Ops 指标、告警、容量规划 | 18 | `uv tool install vmware-aria` |\n\n## 许可证\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzw008%2Fvmware-vks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzw008%2Fvmware-vks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzw008%2Fvmware-vks/lists"}