# Группы и книги ресурсов Ключевое понятие gs-ctk - **группа ресурсов**. Группа ресурсов - это единый логический кластер серверов приложений с едиными БД, прикладным решением и вспомогательными службами. Группа ресурсов в свою очередь делятся на **книги ресурсов**. Книга ресурсов представляет собой набор ресурсов Kubernetes, формируемых по одному шаблону, и реализующих, обычно, одну службу (функциональность). Мы можем провести параллель между группами ресурсов в gs-ctk и пространствами имен в Kubernetes. Информация о группах и книгах ресурсов хранится в Kubernetes в ресурсах типа ConfigMap. Управление книгами ресурсов осуществляется через команды nsctl [`./resgroup.sh`](./appendix/nsctl/resgroup.md) и [`./resbook.sh`](./appendix/nsctl/resbook.md). ## Классы книг ресурсов Каждая книга ресурсов принадлежит к одному из **классов** книг ресурсов, определяющий ее шаблон и возможные параметры. Например, класс книг ресурсов RabbitMQ. Подробнее о классах книг ресурсов [читайте в отдельном разделе](./060_resbooks.md). Классы книг ресурсов лежат в директории `resbook` в nscli (для неуправляемого режима) и nsctl. Класс книги ресурсов состоит из: - Jinja-шаблона `deploy.yaml` - скрипта `ctl.py`, содержащего скрипт конфигурирования книги ресурсов ## Состояния группы и книги ресурсов Каждая группа и книга ресурсов может быть включена (enabled) и выключена (disabled). По умолчанию, только что созданные группы и книги выключены. Книга ресурсов может быть в трех состояниях: - `created`, не развернута - `deployed`, развернута - `failed`, развертывание закончилось не удачно Книга ресурсов автоматически разворачивается (переходит в состояние `deployed` или `failed`), если она и ее группа включены (`enabled`), и автоматически сворачивается, если выключены. Развертывание заключается в заполнении Jinja-шаблона `deploy.yaml` параметрами из группы и книги ресурсов, хранящимися в ConfigMap, и в последующем применении получившегося манифеста в Kubernetes. Если книга находится в состоянии `failed`, то взаимодействовать с ней при помощи встроенных средств невозможно, требуется ручное управление Kubernetes. Ошибки в развертывании свидетельствует о наличии бага, сообщите об этом команде разработчиков gs-ctk для поддержки. ## Конфигурационные значения (values) группы ресурсов Группа ресурсов имеет общие для всех книг ресурсов конфигурационные значения: - название контура (project_name, по умолчанию равно названию пространства имен, используется лишь для пометки в телеметрии) - настройки базы данных Postgres: - URL базы (database_url) - alias базы данных (database_alias, таким будет [системное имя БД](https://docs.global-system.ru/as/dev/reference/configuration/configuration/databases/Database.html#Configuration.Databases.Database.alias) в сервере приложения) - имя секрета Kubernetes с парой логин/пароль от БД (db_user_secret_name) - основное [прикладное хранилище и дополнительные точки монтирования](./030_achitecture.md#хранение-файлов) - версия Java (java_version, должна быть равна 8 или 21) - настройки [GossipRouter](./560_jgroups.md) (gossip_routers_setting) - настройки [RabbitMQ](./550_rabbitmq.md) (rabbitmq_settings)