From 492ffc200aa33ed2290f9a54bb4e1c2804f1a6a7 Mon Sep 17 00:00:00 2001 From: Alexander Miroshnichenko Date: Fri, 8 May 2026 19:47:11 +0300 Subject: [PATCH] Remove kubernetes-mcp-server task file Also add .tasks/ to .gitignore --- .gitignore | 1 + tasks/kubernetes-mcp-server.md | 182 --------------------------------- 2 files changed, 1 insertion(+), 182 deletions(-) delete mode 100644 tasks/kubernetes-mcp-server.md diff --git a/.gitignore b/.gitignore index 6ef7d83..4464f0c 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ result result-* .direnv/ +.tasks/ diff --git a/tasks/kubernetes-mcp-server.md b/tasks/kubernetes-mcp-server.md deleted file mode 100644 index 938c49f..0000000 --- a/tasks/kubernetes-mcp-server.md +++ /dev/null @@ -1,182 +0,0 @@ -# Требования для добавления пакета `kubernetes-mcp-server` - -## Общая информация - -| Параметр | Значение | -|----------|----------| -| **Название пакета** | `kubernetes-mcp-server` | -| **Репозиторий** | https://github.com/containers/kubernetes-mcp-server | -| **Язык** | Go (91.6%) | -| **Модуль** | `github.com/containers/kubernetes-mcp-server` | -| **Бинарный файл** | `kubernetes-mcp-server` | -| **Точка входа** | `./cmd/kubernetes-mcp-server` | -| **Версия** | `v0.0.62` (latest) | -| **Лицензия** | Apache-2.0 | -| **Категория** | MCP Servers | - -## Описание - -Model Context Protocol (MCP) сервер для Kubernetes и OpenShift. Это нативная Go-реализация, которая напрямую взаимодействует с Kubernetes API **без** необходимости в `kubectl` или `helm`. Позволяет AI-агентам управлять ресурсами Kubernetes (поды, деплойменты, неймспейсы, события, Helm-чарты, Tekton-пайплайны и др.) через стандартизированный протокол MCP. - -## Шаги по добавлению - -### 1. Создать структуру директорий - -```bash -mkdir -p packages/kubernetes-mcp-server -``` - -### 2. Создать `packages/kubernetes-mcp-server/package.nix` - -Шаблон основан на `buildGoModule` (аналогично пакету `container-use`): - -- **`buildGoModule`** — стандартный билдер для Go-пакетов в nixpkgs -- **`vendorHash`** — хеш зависимостей Go (будет уточнён при первой сборке) -- **`CGO_ENABLED = 0`** — проект собирается без CGo (статическая линковка, кроссплатформенность) -- **`subPackages = [ "cmd/kubernetes-mcp-server" ]`** — указывает точку входа -- **`doCheck = false`** — тесты требуют доступ к реальному Kubernetes-кластеру, что невозможно в sandbox Nix -- **`ldflags`** — передача версии в бинарник (`-s -w` для уменьшения размера) -- **`passthru.updateScript`** — поддержка `nix-update` для автоматического обновления версии -- **`meta.mainProgram`** — `kubernetes-mcp-server` - -Примерный код `package.nix`: - -```nix -{ - lib, - buildGoModule, - fetchFromGitHub, -}: - -buildGoModule rec { - pname = "kubernetes-mcp-server"; - version = "0.0.62"; - - src = fetchFromGitHub { - owner = "containers"; - repo = "kubernetes-mcp-server"; - rev = "v${version}"; - hash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; # Будет уточнён при сборке - }; - - vendorHash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; # Будет уточнён при сборке - - env.CGO_ENABLED = 0; - - subPackages = [ "cmd/kubernetes-mcp-server" ]; - - # Тесты требуют доступ к Kubernetes-кластеру - doCheck = false; - - ldflags = [ - "-s" - "-w" - ]; - - passthru = { - category = "MCP Servers"; - updateScript = [ - "nix-update" - "--flake" - ".#kubernetes-mcp-server" - ]; - }; - - meta = with lib; { - description = "Model Context Protocol (MCP) server for Kubernetes and OpenShift"; - homepage = "https://github.com/containers/kubernetes-mcp-server"; - changelog = "https://github.com/containers/kubernetes-mcp-server/releases/tag/v${version}"; - license = licenses.asl20; - sourceProvenance = with sourceTypes; [ fromSource ]; - mainProgram = "kubernetes-mcp-server"; - platforms = platforms.all; - }; -} -``` - -### 3. Создать `packages/kubernetes-mcp-server/default.nix` - -Стандартная обёртка для blueprint: - -```nix -{ pkgs, ... }: -pkgs.callPackage ./package.nix { } -``` - -### 4. Первая сборка и получение хешей - -```bash -# Первая попытка сборки (ожидаемо упадёт с неверным хешем) -nix build .#kubernetes-mcp-server 2>&1 | grep -E "(hash|Hash)" - -# Подставить правильные значения hash и vendorHash в package.nix -``` - -Альтернативно, использовать `nix-update`: - -```bash -nix-update kubernetes-mcp-server --version=0.0.62 -``` - -### 5. Проверка - -```bash -# Сборка -nix build .#kubernetes-mcp-server - -# Запуск (проверка справки) -nix run .#kubernetes-mcp-server -- --help - -# Проверка всех пакетов -nix flake check -``` - -### 6. Обновить README.md - -Добавить строку в таблицу «Available Packages»: - -```markdown -| `kubernetes-mcp-server` | Model Context Protocol (MCP) server for Kubernetes and OpenShift | MCP Servers | -``` - -### 7. Коммит - -Использовать `conventional-commit` skill для создания коммита с сообщением типа: - -``` -feat: add kubernetes-mcp-server package -``` - -Или более детально: - -``` -feat(packages): add kubernetes-mcp-server v0.0.62 - -Model Context Protocol (MCP) server for Kubernetes and OpenShift. -Native Go implementation that interacts directly with the Kubernetes -API server without external dependencies like kubectl or helm. -``` - -## Особенности пакета - -| Особенность | Детали | -|-------------|--------| -| **Тип сборки** | Go module (`buildGoModule`) | -| **CGo** | Отключено (`CGO_ENABLED = 0`) | -| **Тесты** | Отключены (нужен Kubernetes-кластер) | -| **Платформы** | Все (`platforms.all`) | -| **Версионирование** | Стандартные теги `v0.0.X` | -| **Обновление** | `nix-update kubernetes-mcp-server` | - -## Зависимости (уже в nixpkgs) - -Пакет использует только стандартные Go-зависимости, указанные в `go.mod` и `go.sum`. Никаких дополнительных системных зависимостей не требуется благодаря `CGO_ENABLED = 0`. - -## Критерии приёмки - -- [ ] Пакет собирается: `nix build .#kubernetes-mcp-server` -- [ ] Бинарник запускается и выводит справку: `nix run .#kubernetes-mcp-server -- --help` -- [ ] `nix flake check` проходит без ошибок -- [ ] Пакет виден в списке: пакет появляется в выводе `nix flake show` -- [ ] README.md обновлён -- [ ] Коммит создан с использованием conventional commits