Этот проект представляет собой Kubernetes оператор, который позволяет управлять командами и пользователями в кластере Kubernetes через пользовательские ресурсы (Custom Resources). Проект состоит из двух основных компонентов:
- Kubernetes оператор - отслеживает изменения в пользовательских ресурсах и применяет соответствующие изменения в кластере.
- Веб-интерфейс - предоставляет интерфейс для управления командами и пользователями.
- Создание, просмотр, редактирование и удаление команд
- Назначение ресурсов для команд
- Управление доступом команд к ресурсам кластера
- Создание, просмотр, редактирование и удаление пользователей
- Назначение пользователей в команды
- Генерация kubeconfig для пользователей
- Kubernetes кластер (версия 1.16+)
- Python 3.8+
- Доступ к кластеру с правами администратора
- Клонируйте репозиторий
git clone <url-репозитория>
cd <имя-директории>-
Сконфигурируйте доступ к Kubernetes кластеру. Оператор и UI берут доступ к кубу из стандартного kubeconfig.
-
Примените CRD (Custom Resource Definitions)
kubectl apply -f crd.yaml- Установите зависимости
pip install -r requirements.txt- Запустите оператор
python operator.py- В отдельном терминале запустите веб-интерфейс
python app.py- Откройте веб-интерфейс в браузере по адресу http://localhost:8080
Пример манифеста для создания команды:
apiVersion: team.example.com/v1
kind: Team
metadata:
name: team-example
spec:
environments:
- name: dev
description: "Среда разработки"
quota:
cpu: "2"
memory: "4Gi"
pods: "20"
- name: test
description: "Тестовая среда"
quota:
cpu: "1"
memory: "2Gi"
pods: "10"Пример манифеста для создания пользователя:
apiVersion: team.example.com/v1
kind: User
metadata:
name: user-example
spec:
fullName: "Иван Иванов"
email: "ivan@example.com"
teams: ["team-example"]
role: "developer"app.py- веб-интерфейс на Flaskoperator.py- Kubernetes оператор на kopfcrd.yaml- определения пользовательских ресурсовtemplates/- шаблоны для веб-интерфейсаexamples/- примеры ресурсов
MIT