feat: add SUMMARY.md for ollama-mcp project overview

This commit is contained in:
Claude AI
2026-01-11 13:17:18 +00:00
parent 92073a14b7
commit 2733d3d809

320
apps/ollama-mcp/SUMMARY.md Normal file
View File

@@ -0,0 +1,320 @@
# Ollama MCP Integration - Summary
## Что создано
Полное решение для интеграции Ollama с твоим Kubernetes кластером и Gitea через MCP серверы.
### Структура проекта
```
apps/ollama-mcp/
├── README.md # Полная документация
├── QUICKSTART.md # Быстрый старт
├── install.sh # Автоматическая установка
├── docker-compose.yml # Docker Compose конфигурация
├── .env.example # Пример переменных окружения
├── .gitignore # Git ignore правила
├── config/
│ └── kubeconfig # Kubernetes конфигурация (создается при установке)
├── mcp-kubernetes/
│ ├── Dockerfile
│ ├── package.json
│ └── index.js # REST API для Kubernetes
└── mcp-gitea/
├── Dockerfile
├── package.json
└── index.js # REST API для Gitea
```
## Установка на GPU сервере
### Вариант 1: Автоматическая установка (рекомендуется)
```bash
curl -sSL https://git.thedevops.dev/admin/k3s-gitops/raw/branch/main/apps/ollama-mcp/install.sh | bash
```
### Вариант 2: Ручная установка
```bash
# 1. Клонировать репозиторий
git clone https://git.thedevops.dev/admin/k3s-gitops.git
cd k3s-gitops/apps/ollama-mcp
# 2. Настроить окружение
cp .env.example .env
nano .env # Добавить GITEA_TOKEN
# 3. Скопировать kubeconfig
mkdir -p config
cp ~/.kube/config config/kubeconfig
# 4. Запустить
docker-compose up -d
```
## Что получаешь
### 1. MCP Kubernetes Server (порт 3001)
REST API для управления кластером:
**Доступные эндпоинты:**
- `POST /api/pods/list` - список подов
```json
{"namespace": "argocd"}
```
- `POST /api/pods/logs` - логи пода
```json
{"name": "pod-name", "namespace": "argocd", "tailLines": 100}
```
- `POST /api/deployments/list` - список деплойментов
```json
{"namespace": "default"}
```
- `POST /api/deployments/get` - получить деплоймент
```json
{"name": "nginx", "namespace": "default"}
```
- `POST /api/services/list` - список сервисов
```json
{"namespace": "default"}
```
- `POST /api/namespaces/list` - список namespace
```json
{}
```
### 2. MCP Gitea Server (порт 3002)
REST API для работы с Git:
**Доступные эндпоинты:**
- `POST /api/repos/list` - список репозиториев
```json
{"owner": "admin"}
```
- `POST /api/repos/file/get` - содержимое файла
```json
{"owner": "admin", "repo": "k3s-gitops", "path": "apps/loki/statefulset.yaml", "branch": "main"}
```
- `POST /api/repos/tree/get` - содержимое директории
```json
{"owner": "admin", "repo": "k3s-gitops", "path": "apps", "branch": "main"}
```
- `POST /api/repos/file/create` - создать файл
```json
{
"owner": "admin",
"repo": "k3s-gitops",
"path": "test.yaml",
"content": "apiVersion: v1\nkind: Pod",
"message": "Add test file",
"branch": "main"
}
```
- `POST /api/repos/file/update` - обновить файл
```json
{
"owner": "admin",
"repo": "k3s-gitops",
"path": "test.yaml",
"content": "updated content",
"message": "Update test file",
"sha": "file-sha",
"branch": "main"
}
```
- `POST /api/repos/branches/list` - список веток
```json
{"owner": "admin", "repo": "k3s-gitops"}
```
## Интеграция с Ollama
### Способ 1: Прямые запросы через curl
Ollama может генерировать curl команды:
```bash
ollama run qwen2.5-coder:32b "
I have MCP servers running:
- Kubernetes API: http://localhost:3001
- Gitea API: http://localhost:3002
Generate curl command to list all pods in argocd namespace
"
```
### Способ 2: Custom Function/Tool
Создай промпт-шаблон для Ollama:
```bash
cat > ~/ollama-k8s-prompt.txt << 'EOF'
You are a Kubernetes and Git operations assistant. You have access to:
**Kubernetes MCP (http://localhost:3001):**
- POST /api/pods/list {"namespace": "name"}
- POST /api/pods/logs {"name": "pod", "namespace": "ns", "tailLines": 100}
- POST /api/deployments/list {"namespace": "name"}
- POST /api/services/list {"namespace": "name"}
- POST /api/namespaces/list {}
**Gitea MCP (http://localhost:3002):**
- POST /api/repos/list {"owner": "admin"}
- POST /api/repos/file/get {"owner": "admin", "repo": "name", "path": "file.yaml"}
- POST /api/repos/tree/get {"owner": "admin", "repo": "name", "path": "dir/"}
- POST /api/repos/file/create {"owner": "admin", "repo": "name", "path": "file", "content": "...", "message": "..."}
When asked to perform operations:
1. Generate the appropriate curl command
2. Execute it if possible
3. Interpret the results
4. Provide clear explanations
Always use JSON format for request bodies.
EOF
```
Использование:
```bash
ollama run qwen2.5-coder:32b "$(cat ~/ollama-k8s-prompt.txt)
User request: Покажи все поды в namespace monitoring и их статус"
```
### Способ 3: Wrapper Script
Создай `~/ollama-ops.sh`:
```bash
#!/bin/bash
SYSTEM_PROMPT="You are a DevOps assistant with access to:
- Kubernetes API at http://localhost:3001
- Gitea API at http://localhost:3002
Generate and execute curl commands to fulfill user requests."
ollama run qwen2.5-coder:32b "$SYSTEM_PROMPT
User: $*"
```
Использование:
```bash
chmod +x ~/ollama-ops.sh
./ollama-ops.sh "список подов в argocd"
./ollama-ops.sh "покажи файл apps/loki/statefulset.yaml из k3s-gitops"
```
## Примеры использования
### Kubernetes операции:
```bash
# Список подов
curl -X POST http://localhost:3001/api/pods/list \
-H "Content-Type: application/json" \
-d '{"namespace": "argocd"}'
# Логи
curl -X POST http://localhost:3001/api/pods/logs \
-H "Content-Type: application/json" \
-d '{"name": "argocd-server-xxx", "namespace": "argocd", "tailLines": 50}'
# Deployments
curl -X POST http://localhost:3001/api/deployments/list \
-H "Content-Type: application/json" \
-d '{"namespace": "monitoring"}'
```
### Gitea операции:
```bash
# Список репозиториев
curl -X POST http://localhost:3002/api/repos/list \
-H "Content-Type: application/json" \
-d '{"owner": "admin"}'
# Содержимое файла
curl -X POST http://localhost:3002/api/repos/file/get \
-H "Content-Type: application/json" \
-d '{"owner": "admin", "repo": "k3s-gitops", "path": "apps/loki/statefulset.yaml"}'
# Список файлов в директории
curl -X POST http://localhost:3002/api/repos/tree/get \
-H "Content-Type: application/json" \
-d '{"owner": "admin", "repo": "k3s-gitops", "path": "apps"}'
```
## Проверка работы
```bash
# Health checks
curl http://localhost:3001/health
curl http://localhost:3002/health
# Статус контейнеров
docker-compose ps
# Логи
docker-compose logs -f
```
## Следующие шаги
1. **На GPU сервере:**
```bash
curl -sSL https://git.thedevops.dev/admin/k3s-gitops/raw/branch/main/apps/ollama-mcp/install.sh | bash
```
2. **Настроить Gitea токен:**
- Получить: https://git.thedevops.dev/user/settings/applications
- Добавить в `~/ollama-mcp/.env`
- Перезапустить: `docker-compose restart`
3. **Проверить работу:**
```bash
curl http://localhost:3001/health
curl http://localhost:3002/health
```
4. **Интегрировать с Ollama:**
- Создать промпт-шаблоны
- Настроить wrapper скрипты
- Или использовать прямые curl запросы
## Поддержка
- **Документация:** `apps/ollama-mcp/README.md`
- **Быстрый старт:** `apps/ollama-mcp/QUICKSTART.md`
- **Issues:** https://git.thedevops.dev/admin/k3s-gitops/issues
## Безопасность
- Kubeconfig защищен (права 600)
- Gitea токен в переменных окружения
- Изолированная Docker сеть
- Порты по умолчанию только на localhost
---
**Готово к установке!** 🚀
Просто выполни на GPU сервере:
```bash
curl -sSL https://git.thedevops.dev/admin/k3s-gitops/raw/branch/main/apps/ollama-mcp/install.sh | bash
```