# K8s Tool Интерактивное консольное приложение для упрощения работы с kubectl. Предоставляет удобное меню с навигацией стрелками для выполнения рутинных операций с Kubernetes. ## Особенности - 🎯 Интерактивное меню с навигацией стрелками - 🔄 Переключение между Kubernetes контекстами/кластерами - ⭐ Избранные namespaces для быстрого доступа - 🎨 Красивый вывод с использованием Rich - 📦 Управление namespaces, deployments, pods, ConfigMaps - 🔄 Быстрый рестарт и масштабирование deployments - 📝 Просмотр логов pods - 🔍 Просмотр и редактирование ConfigMaps в текстовом редакторе - 💾 Сохранение настроек в `~/.config/k8s-tool/k8s-tool.cfg` ## Требования - Python 3.9+ - Poetry - kubectl настроенный для работы с кластером - Доступ к Kubernetes кластеру ## Установка 1. Клонируйте репозиторий: ```bash git clone cd k8s-tool ``` 2. Установите зависимости с помощью Poetry: ```bash poetry install ``` 3. Активируйте виртуальное окружение: ```bash poetry shell ``` 4. Установите приложение: ```bash poetry install ``` ## Использование Запустите приложение командой: ```bash k8s-tool ``` Или через Poetry: ```bash poetry run k8s-tool ``` ### Основные функции #### Переключение контекста Kubernetes Быстрое переключение между различными Kubernetes кластерами/контекстами: - Просмотр всех доступных контекстов в виде таблицы - Отображение текущего активного контекста (✓) - Переключение на другой контекст - Автоматическая переинициализация подключения к новому кластеру - После переключения контекста namespace сбрасывается и нужно выбрать заново #### Выбор Namespace Выберите namespace для работы. Все последующие операции будут выполняться в выбранном namespace. Избранные namespaces отображаются в начале списка с пометкой ⭐ для быстрого доступа. Список избранных сохраняется между запусками приложения. #### Управление избранными Добавляйте часто используемые namespaces в избранное для быстрого доступа: - Добавить/удалить текущий namespace в/из избранного - Просмотр всех избранных namespaces - Добавление любого namespace в избранное из полного списка - Удаление namespace из избранного - Очистка всех избранных Конфигурация сохраняется в файле `~/.config/k8s-tool/k8s-tool.cfg`. #### Список Deployments Отображает все deployments в текущем namespace с информацией о: - Имени deployment - Количестве реплик - Доступных репликах - Готовых репликах Можно также просмотреть список pods для конкретного deployment. #### Рестарт Deployment Перезапускает выбранный deployment путём обновления аннотации `kubectl.kubernetes.io/restartedAt`. #### Масштабирование Deployment Изменяет количество реплик deployment. Введите желаемое количество реплик, и приложение выполнит масштабирование. #### Просмотр ConfigMaps Отображает список всех ConfigMaps в namespace с: - Именем ConfigMap - Списком ключей данных - Возрастом ConfigMap Можно выбрать ConfigMap для просмотра его содержимого с подсветкой синтаксиса. #### Редактирование ConfigMap Отдельный пункт меню для редактирования ConfigMaps: - Выберите ConfigMap из списка - Открывается текстовый редактор (из переменной окружения `$EDITOR` или `$VISUAL`, по умолчанию `vi`) - Редактируйте YAML с данными ConfigMap - После сохранения показывается diff изменений (добавленные, удаленные, измененные ключи) - Подтверждение перед применением изменений в кластер #### Просмотр логов Pod Выберите pod и контейнер (если их несколько) для просмотра логов. Можно указать количество строк для отображения (по умолчанию 100). ## Навигация - Используйте стрелки ↑/↓ для перемещения по меню - Enter для выбора опции - Ctrl+C для выхода из приложения ## Архитектура Проект состоит из трёх основных модулей: - `k8s_client.py` - обёртка над Kubernetes Python API для работы с кластером - `config.py` - менеджер конфигурации для управления избранными namespaces - `main.py` - главное приложение с интерактивным меню ### Технологии - **questionary** - интерактивные промпты с навигацией стрелками - **kubernetes** - Python client для Kubernetes API - **rich** - красивый вывод в терминале с таблицами и подсветкой синтаксиса ## Разработка Для разработки: 1. Установите зависимости: ```bash poetry install ``` 2. Активируйте виртуальное окружение: ```bash poetry shell ``` 3. Запустите приложение: ```bash python -m k8s_tool.main ``` или ``` poetry run k8s-tool ``` ## Лицензия MIT ## Автор bvn13