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

Установка сервисов 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-40-1}.tar.gz

Например для релиза 4.40.1 ссылка будет такой: https://raw.people-hub.ru/values/release-peoplehub-v4-40-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.40.1 соответствует тэг release-peoplehub-v4-40-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.40.1

Сервис roles:

python -m async_profile_sync.management.load_profile_user_data
python -m commands.add_users_in_default_group
python -m commands.sync_groups
python -m commands.sync_users_to_groups

Сервис pages:

python manage.py change_default_data

Сервис notification. Необходимо выполнить команды в указанном порядке:

python manage.py load_profile_user_data
python manage.py update_trigger_settings
python manage.py update_users_settings

Сервис dictionaries:

python manage.py init_dictionaries --force

Сервис 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

Сервис 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
python manage.py migrate_roles_to_v2

Сервис 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

Сервис 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

Сервис sitector:

python -m commands.sync_base_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
python -m commands.migrate_cms_data_to_sitector  # depends on filestorages

Сервис navigations:

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

Дополнительные команды для минорного релиза 4.40.2

Сервис groups:

python manage.py load_profile_user_data --force-update

Сервис roles:

python -m commands.sync_groups

Сервис events:

python manage.py sync_roles_groups  # depends on roles

Сервис filestorage:

python manage.py sync_roles_groups  # depends on roles

Сервис lists:

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

Сервис news:

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

Сервис sitector:

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

Сервис 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.3

Сервис reactions. Обязательно выполнить первыми:

python -m async_profile_sync.management.load_profile_user_data
python -m commands.migrate_reactions_from_sites_to_pages

Сервис sitector:

python -m commands.sync_base_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
python -m commands.migrate_cms_data_to_sitector # depends on filestorage
python -m commands.fix_cms_data_in_sitector

Сервис 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

Сервис lists:

python -m commands.sync_base_roles

Дополнительные команды для минорного релиза 4.40.4

Сервис pages:

python manage.py change_default_data

Сервис groups:

python manage.py load_profile_user_data --force-update

Дополнительные команды для минорного релиза 4.40.5

Сервис roles: Обязательно выполнить первой:

python commands/add_users_in_default_group.py

Сервис 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

Сервис 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

Сервис 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

Сервис 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

Сервис 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
python manage.py create_shared_folder
python manage.py migrate_roles_to_v2 --force

Сервис events:

python manage.py sync_roles_groups # depends on roles
python manage.py sync_users_to_groups # depends on roles

Сервис groups:

python manage.py load_profile_user_data --force-update

Дополнительные команды для минорного релиза 4.40.6

Сервис filestorage:

python manage.py sync_base_roles

Дополнительные команды для минорного релиза 4.40.7

Сервис sitector:

python -m commands.fix_cms_data_in_sitector

Дополнительные команды для минорного релиза 4.40.9

Сервис pages:

python manage.py change_default_data

Сервис lists:

scripts/run_command.sh refresh_grouped_values

Сервис sitector:

scripts/run_command.sh sync_base_roles

Сервисfilestorage:

scripts/run_command.sh sync_global_roles_assignees  # depends on roles