# ctk_restAPI
Такая книга ресурсов развернет один под ctk-restapi — сервис для безопасного ролевого подключения к API Kubernetes.

ctk-restapi предоставляет REST API с аутентификацией через JWT и управлением доступом на основе разрешений. Он позволяет управлять Kubernetes-сервисами и выполнять операции в кластере с контролем доступа.

## Публикация книги ресурсов
Сервис может быть опубликован через Ingress или через указание внешнего IP (external_ip).

## Конфигурационные значения (values)

### port
Порт, на котором работает REST API (по умолчанию: *8000*).

### replicas
Количество реплик пода (по умолчанию: *1*).

### env
Окружение приложения: production, development или test (по умолчанию: *production*).

### jwt_algorithm
Алгоритм подписи JWT (по умолчанию: *HS256*).

### access_token_expire_minutes
Время жизни access-токена в минутах (по умолчанию: *15*).

### login_rate_limit_requests
Лимит запросов на аутентификацию в минуту (по умолчанию: *5*).

### rate_limit_requests_per_minute
Общий лимит запросов к API в минуту (по умолчанию: *10*).

### log_level
Уровень логирования: DEBUG, INFO, WARNING, ERROR, CRITICAL (по умолчанию: *INFO*).

### audit_enabled
Включить аудит-логирование (по умолчанию: *true*).

### max_reason_length
Максимальная длина причины для операций (например, перезагрузки) в символах (по умолчанию: *500*).

### cors_origins
Список разрешённых источников для CORS (по умолчанию: ["*"]).

### cors_allow_credentials
Разрешить передачу учётных данных в CORS (по умолчанию: *false*).

### cors_allow_methods
Разрешённые HTTP-методы для CORS (по умолчанию: *["GET", "POST"]*).

### cors_allow_headers
Разрешённые HTTP-заголовки для CORS (по умолчанию: *["Content-Type", "Authorization"]*).

### kubernetes_services
Список конфигураций Kubernetes-сервисов, к которым предоставляется доступ через API. Каждый элемент включает:
- *name* — имя сервиса,
- *namespace* — пространство имён,
- *service_name* — имя Kubernetes-сервиса,
- *label_selector* — селектор меток.

### users_config
Список пользователей и их разрешений. Каждый пользователь включает:
- *username* — имя пользователя,
- *permissions* — список разрешений в форматах: service:all, service:view, service:restart, service:NAME:view, service:NAME:restart.

## Конфигурационные характеристики (spec)

### containers.ctk-restapi.resources
Ресурсы контейнера:
- *requests* — запрашиваемые ресурсы (память и CPU),
- *limits* — ограничения ресурсов (память и CPU).

### port
Порт сервиса (должен соответствовать значению из values)
