OLM v1 MCP服务器

OLM v1 MCP服务器通过模型上下文协议提供与OLM v1资源的交互能力,支持从OLM v0到v1的迁移。

  • by anik120
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 anik120/olmv1-mcp-server

使用说明

OLM v1 MCP服务器

操作员生命周期管理器(OLM)v1的模型上下文协议(MCP)服务器,为AI助手提供与OLM v1资源交互以及从OLM v0迁移到v1的能力。

概述

OLM v1 MCP服务器通过模型上下文协议公开OLM v1特定的资源和操作,允许AI助手帮助用户使用新的OLM v1架构管理操作员。此服务器提供用于管理ClusterExtensions、ClusterCatalogs的工具,并包括强大的迁移功能,以帮助用户从OLM v0过渡到v1。

特性

  • 集群扩展操作:列出、获取、创建、更新和删除ClusterExtensions
  • 集群目录操作:列出并检查ClusterCatalogs
  • 迁移工具:计划、验证和执行从OLM v0到v1的迁移
  • MCP协议支持:基于标准stdio的MCP通信
  • 只读模式:默认情况下无写入功能的安全操作
  • 迁移验证:迁移前检查和模拟运行能力

可用工具

集群扩展工具

  • list_cluster_extensions:列出群集中的ClusterExtensions
  • get_cluster_extension:获取特定ClusterExtension的详细信息
  • create_cluster_extension:创建新的ClusterExtension
  • update_cluster_extension:更新现有的ClusterExtension(频道/版本)
  • delete_cluster_extension:删除群集扩展

ClusterCatalog工具

  • list_cluster_catalogs:列出群集中的ClusterCatalogs
  • get_cluster_catalog:获取特定ClusterCatalog的详细信息

迁移工具

  • plan_migration:计划从OLM v0订阅迁移到v1 ClusterExtensions
  • validate_migration:验证迁移准备状态和群集状态
  • execute_migration:执行迁移(带模拟运行支持)

安装

来源

git clone https://github.com/operator-framework/olmv1-mcp-server.git
cd olmv1-mcp-server
make build

用法

基本用法

# Start the server (stdio mode for MCP clients)
./bin/olmv1-mcp-server

# Use a specific kubeconfig
./bin/olmv1-mcp-server --kubeconfig /path/to/kubeconfig

# Enable write operations (disabled by default for safety)
./bin/olmv1-mcp-server --read-only=false

# Enable only specific toolsets
./bin/olmv1-mcp-server --toolsets clusterextension,migration

命令行选项

  • --kubeconfig:kubeconfig文件的路径(默认:$HOME/.kube/config)
  • --read-only:阻止写入操作(默认值:true)
  • --toolsets:启用特定的工具集(默认:集群扩展、集群目录、迁移)

从OLM v0迁移到v1

此服务器的关键功能是帮助用户从OLM v0(订阅)迁移到OLM v1(集群扩展)。

迁移工作流

  1. 验证迁移准备情况

    validate_migration --namespace=<namespace>
    

    这将检查OLM v0和v1是否可访问,ClusterCatalogs是否可用等。

  2. 规划迁移

    plan_migration --namespace=<namespace>
    

    这将分析现有的订阅,并显示将创建哪些ClusterExtensions。

  3. 执行迁移(模拟运行)

    execute_migration --namespace=<namespace> --dryRun=true
    

    这显示了如果不做出改变会发生什么。

  4. 执行迁移

    execute_migration --namespace=<namespace>
    

    这将基于现有订阅创建ClusterExtensions。

迁移过程

迁移过程:

  1. 发现 指定命名空间中的所有订阅
  2. 地图 OLM v0目录源到OLM v1集群目录
  3. 创建 具有适当设置的相应ClusterExtensions
  4. 保留 包、频道和版本信息
  5. 增加 用于跟踪的迁移注释

重要说明

  • 备份优先:迁移前始终备份OLM v0资源
  • 测试环境:首先在非生产环境中测试迁移
  • 服务帐户:确保存在具有必要RBAC权限的适当ServiceAccounts
  • 手动清理:成功迁移和验证后,手动删除旧订阅
  • 只读模式:为了安全起见,服务器默认以只读模式运行

Claude桌面集成

将此添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "olmv1": {
      "command": "/path/to/olmv1-mcp-server/bin/olmv1-mcp-server"
    }
  }
}

安全考虑

  • 默认情况下为只读:默认情况下,服务器以只读模式运行
  • 迁移安全:迁移包括验证和模拟运行功能
  • 群集访问:需要具有适当RBAC权限的有效Kubernetes凭据
  • 无身份验证:stdio服务器未实现身份验证(用于本地使用)

发展

先决条件

  • 转到1.24.4或更高版本
  • 访问安装了OLM v1的Kubernetes集群
  • kubectl已配置为访问集群
  • 对于迁移功能:还安装了OLM v0

建筑

# Download dependencies
make deps

# Build the binary
make build

# Run tests
make test

# Format code
make fmt

# Run linter
make lint

例子

创建集群扩展

create_cluster_extension \
  --name=my-operator \
  --namespace=default \
  --packageName=my-package \
  --serviceAccount=my-service-account \
  --channel=stable \
  --catalog=operatorhub

迁移示例

# Check if migration is possible
validate_migration --namespace=operators

# See what will be migrated
plan_migration --namespace=operators

# Perform dry run
execute_migration --namespace=operators --dryRun=true

# Execute migration
execute_migration --namespace=operators

贡献

欢迎投稿!拜托:

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 如果适用,添加测试
  5. 提交拉取请求

许可证

此项目根据Apache许可证2.0获得许可-请参阅 许可证 文件以获取详细信息。

相关项目