# Ollama MCP Integration Интеграция Ollama с Kubernetes и Gitea через MCP серверы. ## Архитектура ``` GPU Server (Ollama + UI) ↓ MCP Servers (Docker Compose) ├── Kubernetes MCP Server --> K3s Cluster └── Gitea MCP Server --> Gitea API ``` ## Возможности - **Kubernetes MCP**: Управление кластером через Ollama - Получение информации о подах, деплойментах, сервисах - Просмотр логов - Apply/Delete ресурсов - Управление namespace - Exec в контейнеры - **Gitea MCP**: Работа с репозиториями через Ollama - Просмотр файлов и директорий - Создание/редактирование файлов - Коммиты и push - Управление ветками и PR ## Быстрый старт ```bash # Скачать и запустить установку curl -sSL https://git.thedevops.dev/admin/k3s-gitops/raw/branch/main/apps/ollama-mcp/install.sh | bash ``` ## Ручная установка ### Предварительные требования - Docker и Docker Compose - Kubeconfig с доступом к кластеру - Gitea API токен ### Установка 1. Клонировать репозиторий: ```bash git clone https://git.thedevops.dev/admin/k3s-gitops.git cd k3s-gitops/apps/ollama-mcp ``` 2. Настроить переменные окружения: ```bash cp .env.example .env nano .env ``` 3. Скопировать kubeconfig: ```bash mkdir -p config cp ~/.kube/config config/kubeconfig ``` 4. Запустить: ```bash docker-compose up -d ``` ## Конфигурация ### Переменные окружения (.env) ```env # Gitea GITEA_URL=https://git.thedevops.dev GITEA_TOKEN=your-gitea-token GITEA_OWNER=admin # Kubernetes K8S_CONTEXT=default K8S_NAMESPACE=default # MCP Servers MCP_K8S_PORT=3001 MCP_GITEA_PORT=3002 ``` ### Получение Gitea токена 1. Зайти в Gitea: https://git.thedevops.dev 2. Settings → Applications → Generate New Token 3. Выбрать права: `repo`, `admin:org`, `write:repository` ## Использование с Ollama ### Примеры промптов для Kubernetes: ``` "Покажи все поды в namespace monitoring" "Получи логи пода grafana за последние 100 строк" "Создай deployment nginx с 3 репликами" "Какие сервисы запущены в argocd namespace?" ``` ### Примеры промптов для Gitea: ``` "Покажи файлы в репозитории k3s-gitops" "Создай новый файл deployment.yaml в apps/nginx" "Покажи содержимое файла apps/loki/statefulset.yaml" "Создай новую ветку feature/add-monitoring" ``` ## Проверка статуса ```bash # Проверить статус контейнеров docker-compose ps # Просмотреть логи docker-compose logs -f # Перезапустить docker-compose restart # Остановить docker-compose down ``` ## Troubleshooting ### MCP серверы не отвечают ```bash # Проверить логи docker-compose logs mcp-kubernetes docker-compose logs mcp-gitea # Перезапустить docker-compose restart ``` ### Ошибка доступа к Kubernetes ```bash # Проверить kubeconfig kubectl --kubeconfig=config/kubeconfig get nodes # Проверить права доступа ls -la config/kubeconfig ``` ### Ошибка доступа к Gitea ```bash # Проверить токен curl -H "Authorization: token YOUR_TOKEN" https://git.thedevops.dev/api/v1/user # Проверить переменные окружения docker-compose config ``` ## Безопасность - **Kubeconfig**: Хранится локально, не экспонируется - **Gitea Token**: Передается через переменные окружения - **Network**: Изолированная Docker сеть - **Ports**: Доступны только на localhost (можно изменить) ## Обновление ```bash # Обновить образы docker-compose pull # Перезапустить с новыми образами docker-compose up -d ``` ## Архитектура файлов ``` apps/ollama-mcp/ ├── README.md # Эта документация ├── docker-compose.yml # Docker Compose конфигурация ├── install.sh # Скрипт автоматической установки ├── .env.example # Пример переменных окружения ├── config/ │ └── kubeconfig # Kubernetes конфигурация ├── mcp-kubernetes/ │ ├── package.json │ ├── index.js │ └── Dockerfile └── mcp-gitea/ ├── package.json ├── index.js └── Dockerfile ``` ## Дополнительные ресурсы - [MCP Documentation](https://modelcontextprotocol.io) - [Kubernetes API](https://kubernetes.io/docs/reference/) - [Gitea API](https://docs.gitea.com/api/1.20/) - [Ollama Documentation](https://ollama.ai/docs) ## Поддержка Вопросы и предложения: https://git.thedevops.dev/admin/k3s-gitops/issues