Перейти к содержанию

Установка сервисов People Hub

Для того, чтобы развернуть сервисы входящие в состав продукта VK People Hub в кластере Kubernetes, мы рекомендуем использовать наш универсальный helm chart: https://chart.people-hub.ru universal-chart --version 2.4.1

Все файлы конфигураций и инструкции написаны по этот чарт.

Описание

Все сервисы для установки используют один алгоритм. Это запуск установки через helm с использованием чарта шаблона и файлов конфигураций для каждого сервиса.

Для упрощения установки повторяющиеся настройки были вынесены в отдельный файл env.yaml.

Поэтому при установке компонента нужно указывать и файл конфигурации компонента и файл env.yaml.

Шаблон команды установки: helm install <release_name> --values=<values_file> --values=env.yaml peoplehub/universal-chart --version=2.4.1 -n <namespace>

Пример: helm install cms --values=cms.yaml --values=env.yaml peoplehub/universal-chart --version=2.4.1 -n people-hub

Файлы конфигураций нужно скачать из нашего репозитория: https://raw.people-hub.ru/values/release-peoplehub-v{версия_релиза_в_формате_4-50-1}.tar.gz

Например для релиза 4.50.1 ссылка будет такой: https://raw.people-hub.ru/values/release-peoplehub-v4-50-1.tar.gz

Доступ в репозитоорий по единому логину и парорлю который можно получить у нашего представителя.

Эти авторизационные данные используются для доступа к:

  1. Хранилища образов docker https://docker.people-hub.ru
  2. Хранилища helm чартов https://chart.people-hub.ru
  3. Хранилища причих артефактов https://raw.people-hub.ru

Установка

Если вы планируете установку своими силами и без использования наших helm чартов, то восспользуйтесь нашей документацией. Там вы найдете техническую документацию к сервисам и список образов.

Для установки сервиса необходимо:

  1. Добавьте helm repository (репозиторий доступен только для авторизованных пользователей)

    helm repo add people-hub https://chart.people-hub.ru \
    --username=<имя_пользователя> \
    --password=<пароль_пользователя>
    
  2. Обновите репозитории Helm helm repo update

  3. Подготовьте файл значений для развертывания сервиса. Для удобства установки переменные, которые необходимо изменить, вынесены в общий файл настроек env.yaml

  4. Установите сервис указав путь к файлу значений helm install <release_name> --values=<values_file> --values=env.yaml peoplehub/universal-chart --version=2.4.1 -n <namespace>

Образы контейнеров (container images) можно загрузить из нашего container registry (docker.people-hub.ru). Тэг образа соответствует номеру релиза. Например, релизу 4.50.1 соответствует тэг release-peoplehub-v4-50-1.

  1. После установки для следующих сервисов необходимо создать пользователя административной панели. Для этого выполните в сервисах следующие команды:

    Для сервиса roles

    python commands/create_admin_panel_user.py <username> <password>
    
    Для gamification
    python manage.py createsuperuser
    ввести username email password
    
    Для meetings
    python manage.py createsuperuser
    ввести username email password
    

  2. После установки или обновления сервисов требуется запустить команды для миграции данных. Все команды можно найти в описании релиза.

  3. Актуальный список сервисов можно взять из списка образов списка образов, публикуемого к релизу.

Команды для мажорного релиза 4.50.1

# lists # depends on roles
python -m roles_access.fastapi.commands.sync_roles_groups # depends on roles
python -m roles_access.fastapi.commands.sync_users_to_groups # depends on roles
scripts/run_command.sh refresh_grouped_values

# events
python manage.py delete_draft_calendar_events

# pages
python manage.py change_default_data

# filestorage
scripts/run_command.sh create_shared_folder

# navigation
python -m commands.init_menu (если портал разворачивается впервые и меню никто не настраивал)
python -m commands.sync_pages_menu (при обновлении версии, при первом разворачивании сервиса, если меню уже было настроено)
python src/commands/rename_cms_items_to_sitector.py

Обновление с 4.30.6 до 4.50.1

Предварительно необходимо выполнить последовательное обновление, включая все релизы 2 квартала 2024 года.

При обновлении с версии 4.30.6 до версии 4.50.1 необходимо выполнить команды:

## dictionaries
python manage.py init_dictionaries --force

## reactions - обязательно в числе первых
python -m async_profile_sync.management.load_profile_user_data # depends on profile

## groups
python manage.py load_profile_user_data --force-update  # depends on profile

## pages - Команда для изменения данных на имеющихся стендах
python manage.py change_default_data

## notification - Необходимо выполнить команды в указанном порядке:
python manage.py load_profile_user_data # depends on profile
python manage.py update_trigger_settings
python manage.py update_users_settings

## roles:
python -m async_profile_sync.management.load_profile_user_data # depends on profile
python -m commands.add_users_in_default_group
python -m commands.sync_groups
python -m commands.sync_users_to_groups

## filestorage
python manage.py sync_roles_groups  # depends on roles
python manage.py sync_users_to_groups  # depends on roles
python manage.py sync_base_roles  # depends on roles
python manage.py sync_global_roles_assignees  # depends on roles
python manage.py migrate_roles_to_v2
python manage.py create_shared_folder

## sitector
python -m roles_access.fastapi.commands.sync_roles_groups  # depends on roles
python -m roles_access.fastapi.commands.sync_users_to_groups
 # depends on roles
python -m commands.sync_base_roles
python -m commands.migrate_cms_data_to_sitector  # depends on filestorages
python -m commands.fix_cms_data_in_sitector
## reactions
python -m commands.migrate_reactions_from_sites_to_pages  # depends on sitector

## events
python manage.py sync_roles_groups  # depends on roles
python manage.py sync_users_to_groups  # depends on roles
python manage.py sync_base_roles
python manage.py delete_draft_calendar_events

## lists
python -m roles_access.fastapi.commands.sync_roles_groups  # depends on roles
python -m roles_access.fastapi.commands.sync_users_to_groups  # depends on roles
python -m commands.sync_base_roles
python -m commands.refresh_grouped_values

## news
python -m roles_access.fastapi.commands.sync_roles_groups  # depends on roles
python -m roles_access.fastapi.commands.sync_users_to_groups  # depends on roles
python -m commands.sync_base_roles

## comments
python -m commands.migrate_comments_to_sites_main_pages # depends on sitector

## tags
python -m commands.migrate_tags_from_sites_to_pages # depends on sitector

## navigations
python -m commands.init_menu (если портал разворачивается впервые и меню никто не настраивал)
python -m commands.sync_pages_menu (при обновлении версии, при первом разворачивании сервиса, если меню уже было настроено)
python -m commands.rename_cms_items_to_sitector  # check that path correct

## blogs
python -m roles_access.fastapi.commands.sync_roles_groups # depends on roles
python -m roles_access.fastapi.commands.sync_users_to_groups # depends on roles

Также были применены изменения к сервисам, указанные в разделах: - минорный релиз 4.40.5; - мажорный релиз 4.40.1.