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

Развертывание и настройка сервисов групповых политик, версия 25.4

Назначение документа

В документе описаны шаги для развертывания и включения сервисов следующих групповых политик:

  • Политика доступности разделов меню Супераппа VK WorkSpace.
  • Политика обязательных чатов и каналов Мессенджер и ВКС.
  • Политика привилегий.

В инструкции для упрощения сервер/установщик Почты VK WorkSpace и сервер/установщик Панели администратора VK WorkSpace названы «сервер/установщик VK WorkSpace». Документ предназначен для использования администраторами организации.

Общий план развертывания и включения сервисов групповых политик:

  1. Проверьте, что у вас есть все необходимое для развертывания и включения сервисов групповых политик.
  2. Включите функциональность групповых политик в веб-интерфейсе установщика VK WorkSpace.
  3. Выполните предварительные действия для развертывания и настройки сервисов групповых политик.
  4. Разверните и настройте сервисы необходимых групповых политик:

  5. Настройте переменные окружения на сервере VK WorkSpace.

  6. Получите доступ к функциональности групповых политик.

    Функциональность отсутствует в базовой сборке. Чтобы подключить ее для одного или всех доменов инсталляции, обратитесь в службу поддержки.

После развертывания и включения сервисов дальнейшая настройка групповых политик происходит в Панели администратора VK WorkSpace в соответствии с инструкцией.

Действия с политиками после развертывания и настройки:

  • Выключить политику привилегий и политику обязательных чатов и каналов можно в панели администратора VK WorkSpace. Чтобы выключить политику доступности мини-аппов, перейдите в соответствующий раздел данной инструкции.
  • Если появился новый веб-апп или мини-апп и его нужно добавить в Суперапп, следуйте инструкции ниже.

  • Добавление в карту новых инстансов для сервисов Vipper и Pacman происходит автоматически. Чтобы добавить в карту новый инстанс сервиса Chat-gp, следуйте инструкции ниже.

Дополнительная документация

Групповые политики — в документе описана работа с групповыми политиками в Панели администратора VK WorkSpace.

Настройка интеграции Мессенджер и ВКС и Почты VK WorkSpace — в документе описана настройка интеграции Почты VK WorkSpace и Мессенджер и ВКС.

Настройка интеграции Мессенджер и ВКС с Панелью администратора VK WorkSpace — в документе описана настройка интеграции Мессенджер и ВКС версии 24.5 и выше и панели администратора VK WorkSpace версии 1.23 и выше.

Архитектура и описание системы Мессенджер и ВКС — в документе описаны сервисы Мессенджер и ВКС, обеспечивающие функциональность групповых политик. Не является частью публичной документации, обратитесь к представителю VK, чтобы ознакомиться с документом.

Предварительные условия

  1. Доступ к веб-интерфейсу Kafka.
  2. Доступ к серверу Мессенджер и ВКС.
  3. Доступ к веб-интерфейсу установщика VK WorkSpace http://<company_domain>:8888.
  4. Доступ к серверу VK WorkSpace и к панели администратора VK WorkSpace https://biz.<company_domain>.
  5. Сетевой доступ между сервисами Мессенджер и ВКС и сервисами VK WorkSpace:

    Откуда Куда Порт/протокол
    Zastava Birich (Kafka) TCP/10032
    Birich (Kafka) Zastava TCP/10032
    Zastava Pub TCP/12501
    Vipper Pub TCP/12501
    Pacman Pub TCP/12501
    Pacman Pub HTTP
  6. Чат-бот для рассылки нотификаций, если необходимо уведомлять пользователей об изменении политики привилегий и политики обязательных чатов и каналов. Создайте нового бота или используйте существующего.

    Вы можете разрешить боту писать первым — в таком случае уведомления будут получать все пользователи. Это можно сделать командой:

    echo "row_add bots_can_send_deeplink <ID бота>" | nc stdb.vkteams.svc.cluster.local. 4020
    

    Если бот не может писать первым — пользователи не будут получать уведомления, пока не напишут в боте /start.

    Также боту необходимо выдать разрешение на отправку deeplink:

    echo "row_add bots_can_write_first <ID бота>" | nc stdb.vkteams.svc.cluster.local. 4020
    

1. Включите функциональность в веб-интерфейсе установщика VK WorkSpace

  1. Перейдите в веб-интерфейс установщика VK WorkSpace по адресу http://<company_domain>:8888.
  2. Нажмите на кнопку в правом верхнем углу и выберите пункт Продукты.
  3. В списке продуктов выберите опцию Система групповых политик. Для использования Apache Kafka внутри инсталляции выберите опцию Kafka внутри инсталляции:

  4. Нажмите на кнопку Сохранить.

  5. Перейдите на вкладку AdminPanel.
  6. Если у вас кластерная инсталляция, распределите контейнеры по гипервизорам. Если инсталляция на одну виртуальную машину, нажмите на кнопку Сгенерировать автоматически, чтобы сгенерировать контейнеры для работы групповых политик.
  7. Запустите автоматическую установку нажатием на кнопку в правом верхнем углу:

  8. Подтвердите запуск автоматической установки, нажав на кнопку Запустить во всплывающем окне.

  9. После окончания установки перейдите в список контейнеров и соберите данные, которые вам понадобится для дальнейшей настройки на стороне Мессенджер и ВКС:

    • Адреса Kafka — при использовании Kafka внутри инсталляции необходимо в конфигурационном файле сервиса Zastava указать адреса машин, на которых установлены сервисы bi-kafka:

    • Адрес сервиса PUB1 — адреса машин, на которых установлены сервисы pub, необходимо будет указать далее в конфигурационных файлах сервисов Pacman, Chat-gp и Vipper.

2. Выполните предварительные действия

Перед тем как включать отдельные групповые политики, выполните на сервере Мессенджер и ВКС шаги, описанные ниже:

Шаг 1. Проверьте настройку сервиса Godmod и мини-аппов

Выполните данный шаг, если настраиваете политику доступности мини-аппов. Если вы настраиваете другую политику, перейдите к следующему шагу.

  1. Если у вас новая инсталляция Мессенджер и ВКС, сначала настройте веб-аппы и мини-аппы (см. дополнительную документацию) и проверьте корректность их работы и только потом переходите к развертке и настройке сервисов групповых политик. Все веб-аппы и мини-аппы инсталляции, такие как почта, календарь, облако, должны быть настроены до запуска миграции мини-аппов и анонсирования групповых политик.

    Если Мессенджер и ВКС установлен давно и все веб-аппы и мини-аппы работают корректно, перейдите к пункту 2.

  2. Проверьте, что в конфигурационном файле /usr/local/nginx-im/html/myteam/myteam-config.json в секциях desktop и mobile присутствует вкладка messenger и стоит на первом месте:

    "disposition":{
       "desktop":{
          "leftbar":[
             "messenger",
             "tasks",
             "calendar",
             "orgstructure",
             "cloud"
          ]
       },
       "mobile":{
          "services":[
             "discover"
          ],
          "tabs":[
             "messenger",
             "tasks"
          ]
       }
    }
    
    "disposition":{
       "desktop":{
          "leftbar":[
             "messenger",
             "tasks",
             "orgstructure",
          ]
       },
       "mobile":{
          "services":[
             "discover"
          ],
          "tabs":[
             "messenger",
             "tasks"
          ]
       }
    }
    

    а также указана версия API>=120:

    "api-version":120,
    

    Если вы внесли изменения в /usr/local/nginx-im/html/myteam/myteam-config.json:

    1. Для инсталляции на одну виртуальную машину выполните команду:

      HELMWAVE_USE_LOCAL_REPO_CACHE=true hwup -t godmod
      

      Для кластерной инсталляции:

      HELMWAVE_USE_LOCAL_REPO_CACHE=true HELMWAVE_ENV_NAME=cluster hwup -t godmod
      
    2. Перезапустите под в технологическое окно (может приводить к сбою в новых подключениях):

      kubectl delete pods -n vkteams -l app=myteam-admin
      

Шаг 2. Настройте права для административного пользователя

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

  1. Перейдите в конфигурационный файл /usr/local/etc/k8s/helmwave/store/myteam-admin.yml и в секциях MiniApps, Management и Settings установите для поля default значение allow:

    myteamAdminPermission:
      resources:
        Analytics:
          default: allow
          groups: []
        Export:
          default: allow
          groups: []
        Settings:
          default: allow
          groups: []
        Information:
          default: allow
          groups: []
        Management:
          default: allow
          groups: []
        MiniApps:
          default: allow
          groups: []
    
  2. Примените изменения.

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

    HELMWAVE_USE_LOCAL_REPO_CACHE=true hwup --tags godmod
    

    Для кластерной инсталляции:

    HELMWAVE_ENV_NAME=cluster HELMWAVE_USE_LOCAL_REPO_CACHE=true hwup --tags godmod 
    

Шаг 3. Авторизуйтесь под учетной записью администратора

  1. На сервере Мессенджер и ВКС сгенерируйте OTP с помощью команды:

    curl 'http://admin.<company_domain>/auth/otp/generate' \
    -H 'Content-Type: application/json' \
    -d' { "email": "<admin-mail>"}'
    
  2. Авторизуйтесь:

    curl 'http://admin.<company_domain>/auth/otp/check' \
    -H 'Content-Type: application/json' \
    -d'{"email": "<admin-mail>", "password": "<OTP>"}' \
    -c cookieFile.txt
    

После этого в cookieFile.txt происходит запись cookie, который нужно использовать в дальнейших запросах с флагом -b. Примеры запросов будут приведены для каждой из политик ниже. В рамках одной сессии достаточно авторизоваться таким образом один раз.

Шаг 4. Настройте сервис Zastava

Сервис отвечает за взаимодействие с панелью администратора VK WorkSpace и передачу событий групповых политик в сервисы Мессенджер и ВКС. При изменении политики сервис Pravda на стороне в панели администратора VK WorkSpace создает событие и отправляет его в Kafka (подробнее см. в документе с описанием архитектуры Мессенджер и ВКС. Не является частью публичной документации, обратитесь к представителю VK Tech, чтобы ознакомиться с документом).

Перейдите в конфигурационный файл сервиса Zastava /usr/local/etc/zastava-1.yaml и заполните поля:

  1. В секции kafka:

    kafka:
     addresses:
      - 100.70.81.231:10032
      - 100.70.81.219:10032
      - 100.70.81.231:10032
     consumer_group: "zastava-consumer"
     topic: "birich"
     retry_topic: "birich-retry"
     dlq_topic: "birich-dlq"
     actions_topic: "action"
     actions_retry_topic: "birich-action-retry"
     poll_limit: 1000
     retry_delay_ms: 3000
     retry_count_max: 3
     consume_preferring_lag: 1
     max_buffered_records: 10000
     fetch_max_partition_bytes: 1000 
    

    где:

    • address — адреса машин и порт bi-kafka из шага Настройки в веб-интерфейсе установщика VK WorkSpace.

    • consumer_group — название группы потребителей Kafka. Может быть произвольным, главное, чтобы оно совпадало между всеми инстансами сервиса Zastava.

    • topic — топик для получения событий изменений, относительно пользователя. Не меняйте название топика.

    • retry_topic — служебный топик для логики ретраев и отложенной доставки сообщений. Не меняйте название топика.

    • dlq_topic — служебный топик для недоставленных сообщений. Анализ сообщений из этого топика может быть полезен для определения проблем. Не меняйте название топика.

    • actions_topic — топик для получения действий, применяемых к пользователям в соответствии с назначаемыми политиками. Не меняйте название топика.

    • actions_retry_topic — служебный топик для логики ретраев и отложенной доставки сообщений. Не меняйте название топика.

    • poll_limit — ограничение на количество одновременно забираемых сообщений из брокера.

    • retry_delay_ms — пауза между попытками повторно доставить сообщение.

    • retry_count_max — максимальное число попыток доставить сообщение.

    • consume_preferring_lag — служебный параметр потребителя топиков Kafka, оставьте без изменений.

    • max_buffered_records — служебный параметр потребителя топиков Kafka, оставьте без изменений.

    • fetch_max_partition_bytes — служебный параметр потребителя топиков Kafka, оставьте без изменений.

  2. В секции schekolda укажите для поля max_parallel значение «4»:

    schekolda:
      max_parallel: 
        __default__: 200
    

    Поле max_parallel отвечает за количество одновременных запросов в сервис Zastava. Этот параметр можно использовать для ограничения потока исходящих запросов. При выставлении значения «0» количество исходящих запросов не будет ограничено. Рекомендованное значение на данный момент: «4».

  3. В секции etcd укажите эндпоинты и префикс ключей для доступа в etcd (сервис PUB1):

    etcd:
      endpoints:
        - 100.70.80.52:12501
      timeout: 1s
      watch_prefix: "/gp/vkt/"
    
    где:

    Внимание

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

  4. Перезапустите сервис Zastava командой:

    systemctl restart zastava-1
    

Шаг 5. Создайте топики в Kafka

При использовании Kafka внутри инсталляции

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

Чтобы проверить, что необходимые топики созданы:

  1. Перейдите в веб-интерфейс установщика VK WorkSpace по адресу http://<company_domain>:8888.
  2. Перейдите в список контейнеров, найдите контейнер bi-kafka и нажмите на пиктограмму

  3. Выберите Проверить для графы create_topics:

    После нажатия на кнопку запустится проверка необходимых топиков.

    Если в контейнере недостает топиков, для графы create_topics тег done изменится на needRefresh. Нажмите на кнопку Запустить.

По умолчанию создается 10 партиций для каждого топика. Чтобы увеличить количество партиций:

  1. Подключитесь к контейнеру bi-kafka:

    docker exec -it bi-kafkaN bash
    
  2. Следуйте инструкции из документации Apache Kafka.

При использовании внешнего сервиса Kafka

Если вы используете внешний сервис Kafka, перейдите в его веб-интерфейс и создайте все топики из секции kafka конфигурационного файла /usr/local/etc/zastava-1.yaml (см. шаг 1 выше).

Количество партиций для каждого топика — не менее max_parralel * <количество инстансов> / 2. Рекомендуется при возможности сразу установить количество партиций равное max_parralel * <количество инстансов>.

Большее число партиций не является проблемой (и число партиций у существующего топика, как правило, можно увеличить).

Таким образом, для двух инстансов сервиса Zastava с max_parralel = 4 рекомендуется для начала установить по восемь партиций в каждом топике.

Если топиков нет и доступа к веб-интерфейсу Kafka тоже нет

Создайте топики при помощи утилиты kcat. Будьте осторожны, так как топики будут иметь некоторое заранее сконфигурированное администратором Kafka количество партиций, которое может не совпадать с желаемым. Прибегать к этой инструкции следует только при отсутствии других вариантов.

Чтобы создать топики:

  1. На сервере Мессенджер и ВКС выполните команды ниже:

    sudo docker run -it --network=host edenhill/kcat:1.7.1 -b b <IP-адрес_Kafka> -P -t birich -Z
    # (нажмите ctrl-d, чтобы послать eof) 
    
    sudo docker run -it --network=host edenhill/kcat:1.7.1 -b b <IP-адрес_Kafka> -P -t action -Z
    # (нажмите ctrl-d, чтобы послать eof) 
    
    sudo docker run -it --network=host edenhill/kcat:1.7.1 -b b <IP-адрес_Kafka> -P -t birich-action-retry -Z
    # (нажмите ctrl-d, чтобы послать eof)
    
    sudo docker run -it --network=host edenhill/kcat:1.7.1 -b b <IP-адрес_Kafka> -P -t birich-retry -Z
    # (нажмите ctrl-d, чтобы послать eof) 
    
    sudo docker run -it --network=host edenhill/kcat:1.7.1 -b b <IP-адрес_Kafka> -P -t birich-dlq -Z
    #( нажмите ctrl-d, чтобы послать eof)
    
    # Посмотрите список топиков
    sudo docker run -it --network=host edenhill/kcat:1.7.1 -b <IP-адрес_Kafka> -L
    
  2. Перезапустите сервис Zastava командой:

    systemctl restart zastava-1
    

3. Включите политику доступности мини-аппов в приложении VK WorkSpace

На сервере Мессенджер и ВКС выполните шаги, представленные ниже:

Шаг 1. Выполните скрипт миграции мини-аппов

  1. Для корректной работы скрипта откройте доступ на запросы в сервис Go-files:

    1. В конфигурационном файле Nginx /usr/local/nginx-im/confv2/nginx.conf в секции geo $prod_ip укажите IP-адрес сервера Мессенджер и ВКС:

      geo $prod_ip {
        <IP-адрес сервера Мессенджер и ВКС>;
        default 0;
      }
      
    2. Перезапустите Nginx:

      nginx.sh reload
      
    3. Перед запуском скрипта миграции проверьте доступность сервиса Go-files, который хранит файлы. Ниже приведен пример команды для отправки локального svg-файла на удаленный сервер:

      curl --location --request POST 'http://files-n.<company_domain>/s2s/api/v1/direct_upload?uid=example@mail.ru' --header 'Content-Type: image/svg' -d '@<some_svg_path>'
      
      где — путь до локального файла с расширением .svg.

      Если сервис недоступен, то

  2. Перейдите в директорию /usr/local/gp_deploy/ и запустите скрипт миграции веб-аппов и мини-аппов командой:

    python3 miniappCreate.py --baseurl '<companyr_domain>.ru'
    

    В результате работы скрипта в сервисах Avon и Gulliver появится информация о веб-аппах и веб-аппах, присутствующих в инсталляции.

    Примечание

    Для обновления информации о мини-аппах (в ситуации, когда необходимо исправить конфиг, название мини-аппа или иконку) скрипт можно запустить с ключом –update.
    Пример:

    python3 miniappCreate.py --update --baseurl '<company_domain>.ru'
    

    Список перенесенных в инсталляцию мини-аппов будет сохранен в файле created_miniapps.txt.

  3. Чтобы проверить список перенесенных мини-аппов, выполните команду:

    echo 'box.space.mini_apps_list:select({})' | tarantoolctl eval avon-1
    

    В выводе команды отобразятся перенесенные мини-аппы с типом webapp и native:

    - ['calendar', 5, true, 'webapp']
    - ['calls', 3, true, 'native']
    - ['cloud', 8, false, 'webapp']
    - ['mail', 6, false, 'webapp']
    - ['messenger', 17, true, 'native']
    - ['miniapp-8fe88e60-4100-4c6d-9a25-5aa40d525c37', 1, true, 'miniapp']
    - ['orgstructure', 7, false, 'webapp']
    - ['tasks', 2, true, 'webapp']
    

    Проверьте, что присутствуют все необходимые мини-аппы для инсталляции.

  4. Активируйте все перенесенные мини-аппы

    Пример команды для активации мини-аппа календарей:

    box.space.mini_apps_list:update('calendar', {{'=', 3, true}})
    

Шаг 2. Активируйте сервис Pacman

Сервис отвечает за реализацию групповой политики доступности веб-аппов и мини-аппов и находится в инсталляции в неактивном состоянии. Сервис надо активировать и развернуть.

Чтобы активировать сервис:

  1. Перейдите в конфигурационный файл /usr/local/etc/k8s/helmwave/projects.yml и удалите из секции disabled сервис Pacman.

  2. Запустите деплой сервиса.

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

    HELMWAVE_USE_LOCAL_REPO_CACHE=true hwup --tags pacman
    

    Для кластерной инсталляции:

    HELMWAVE_ENV_NAME=cluster HELMWAVE_USE_LOCAL_REPO_CACHE=true hwup --tags pacman
    
  3. Создайте карту сервиса:

    gic utils mapfiller --map-name pacman
    

    Пример названия инстанса сервиса в карте: pacman.<имя_ноды>.pacman -1

Шаг 3. Разверните сервис Pacman

Перейдите в конфигурационный файл сервиса Pacman /usr/local/etc/k8s/helmwave/projects/pacman/values/pacman.yml и укажите:

  1. В секции pravda укажите адрес эндпоинта API групповых политик:

    pravda:
      addr: "http://biz.<company_domain>.ru/vkwsgp"
      timeout: 5s
    
  2. В секции cache укажите размер и тип кэша:

    cache:
      type: lru
      size: 10000
    

    На данный момент поддерживаются два типа кэша:

    • none;

    • lru — рекомендованное значение.

  3. Заполните секции version, endpoints и connection:

    live_config:
      riad:
        version: "/gp/vkt/pacman/1"
        endpoints:
          - "100.70.80.52:12501"
        policies:
          # см. описание в пункте ниже
        connection:
          uri: "pacman"
          protocol: "ipros"
          params: {}
    

    где:

    • version — ключ, по которому панель администратора VK WorkSpace будет искать конфигурацию. Имеет вид prefix/имя_сервиса/версия. Важно убедиться, что префикс совпадает с указанным в настройках сервисов Pravda и Zastava.

    • endpoints — адрес etcd-сервера PUB1 из шага Настройки в веб-интерфейсе установщика VK WorkSpace.

    • connection — секция настроек доставки сообщений для сервиса Zastava. Оставьте как в примере выше.

  4. Заполните секцию policies:

    Если вы выполнили скрипт миграции мини-аппов, возьмите секцию policies из примера ниже, скорее всего, вам не потребуется ее менять:

    live_config:
      riad:
        version: "/gp/vkt/pacman/1"
        endpoints:
          - "10.32.0.1:12501"
        policies:
        - name: orderpolicy
          title: Order Policy
          payload:
            permissions:
            - name: desktopOrder
              title: Разделы десктоп и веб-версий
              description: Выбранные сервисы будут отображаться в интерфейсе Супераппа в левом навигационном баре сверху вниз
              type: SortableMultiSelectList
              list_values:
              meta:
            - name: mobileOrder
              title: Разделы мобильной версии
              description: Выбранные сервисы будут отображаться в интерфейсе Супераппа
              type: SortableMultiSelectList
              list_values:
              meta:
        connection:
          uri: pacman
          protocol: ipros
          params: {}
    

    Оставьте секции list_values и meta пустыми. В таком случае порядок мини-аппов и настройки по умолчанию будут собраны из сервиса Avon.

    Чтобы изменить порядок мини-аппов или значения по умолчанию, заполните секции list_values и meta для mobileOrder и desktopOrder. Пример заполненных секций ниже:

    live_config:
      riad:
        version: "/gp/vkt/pacman/1"
        endpoints:
          - "100.70.80.52:12501"
        policies:
        - name: orderpolicy
          title: Order Policy
          payload:
            permissions:
            - name: desktopOrder
              title: Разделы десктоп и веб-версий Супераппа
              description: Выбранные сервисы будут отображаться в интерфейсе Супераппа в левом навигационном баре сверху вниз
              type: SortableMultiSelectList
              list_values:
              - cloud
              - messenger
              - calendar
              - calls
              - mail
              - orgstructure
              - tasks
              #- miniapp-b885274c-6616-48b0-98f3-f9e5c689b62a
              meta:
                messenger:
                  default_position: 1
                  hidable: false
                  movable: false
                tasks:
                  default_position: 2
                  hidable: false
                  movable: true
                calls:
                  default_position: 5
                  hidable: false
                  movable: true
                mail:
                  default_position: 4
                  hidable: true
                  movable: true
                calendar:
                  default_position: 3
                  hidable: true
                  movable: true
                orgstructure:
                  default_position: 6
                  hidable: true
                  movable: true
                cloud:
                  default_position: 7
                  hidable: true
                  movable: true
                #miniapp-b885274c-6616-48b0-98f3-f9e5c689b62a:
                  #display: Тестовый мини-апп
                  #default_position: 8
                  #hidable: true
                  #movable: true
            - name: mobileOrder
              title: Порядок мини-аппов в мобильном клиенте
              description: Пользователям разрешено пользоваться мини-аппами на мобильном клиенте
              type: SortableMultiSelectList
              list_values:
              - cloud
              - messenger
              - calendar
              - calls
              - mail
              - orgstructure
              - tasks
              - services
              #- miniapp-b885274c-6616-48b0-98f3-f9e5c689b62a
              meta:
                services:
                  default_position: 1
                  display: "Сервисы"
                  hidable: false
                  movable: false
                messenger:
                  default_position: 2
                  hidable: false
                  movable: false
                tasks:
                  default_position: 4
                  hidable: false
                  movable: true
                calls:
                  default_position: 3
                  hidable: false
                  movable: true
                mail:
                  default_position: 6
                  hidable: true
                  movable: true
                calendar:
                  default_position: 5
                  hidable: true
                  movable: true
                orgstructure:
                  default_position: 7
                  hidable: true
                  movable: true
                cloud:
                  default_position: 8
                  hidable: true
                  movable: true
                #miniapp-b885274c-6616-48b0-98f3-f9e5c689b62a:
                  #display: Тестовый мини-апп
                  #default_position: 9
                  #hidable: true
                  #movable: true
        connection:
          uri: "pacman"
          protocol: "ipros"
          params: {}
    

    В примере выше перечислены все поддерживаемые нативные и веб-аппы, у них указаны правильные признаки hidable и movable и правильный порядок.

    Если в инсталляции отсутствует тот или иной веб-апп (например, почта или облако) — достаточно закомментировать соответствующие секции и упоминание в секции list_values.

    Мини-аппы можно добавить по аналогии с закомментированным miniapp-b885274c-6616-48b0-98f3-f9e5c689b62a в примере выше. miniapp-b885274c-6616-48b0-98f3-f9e5c689b62a — ID миниаппа, который можно получить в боте Metabot.

    Внимание

    Все веб-аппы и мини-аппы, не упомянутые в секции policies:
    - не будут доступны для конфигурирования через групповые политики в панели администратора VK WorkSpace;
    - не будут отображаться в Супераппе после включения флага group-policy-enabled на шаге 5 ниже.
    Перечислите все нативные и веб-аппы, доступные в инсталляции, а также все актуальные мини-аппы в системе, для которых нужна иконка в Супераппе.
    Несмотря на то, что все неанонсированные мини-аппы не будут доступны для конфигурирования через групповые политики, они всё ещё будут доступны по ссылке. Групповая политика разделов в текущей реализации управляет отображением разделов, но не доступом.

    Информация из раздела meta используется только для отображения в интерфейсе панели администратора VK WorkSpace:

    • Значения values и icon в meta на данный момент не используются.

    • Для hidable и movable указаны значения по умолчанию — true. При необходимости могут быть скорректированы на false.

    • Если default_position прописан хотя бы для одного из аппов, то тогда он должен быть прописан для всех аппов. Кроме того, при выставлении этого параметра через конфиг значения должны быть уникальными. Если нарушено одно из этих условий, при попытке донести в etcd будет код ответа 400. Если default_position не прописывается в конфиге, то он запрашивается из сервиса Avon, в таком случае мини-аппы могут быть не по порядку в клиентском приложении.

    Внимание

    desktopOrder должен быть описан раньше mobileOrder, иначе в панели администратора VK WorkSpace секции настройки поменяются местами. Секция services обязательно должна быть описана при помощи поля display.

  5. Перезапустите сервис Pacman.

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

    HELMWAVE_USE_LOCAL_REPO_CACHE=true hwup -t pacman
    
    Для кластерной инсталляции:

    HELMWAVE_USE_LOCAL_REPO_CACHE=true hwup -t pacman
    

Шаг 4. Анонсируйте политику доступности мини-аппов

  1. Убедитесь, что выполнены предварительные действия для анонсирования политики.

  2. В консоли выполните команду:

    curl 'http://admin.<domain>/api/miniapp/announcePolicy' \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -b cookieFile.txt \
    -d ''
    

    Если код ответа не 200 — посмотрите логи сервиса Pacman:

    /var/log/vector/k8s/vkteams/pacman
    

    Если код ответа 200 — перейдите по адресу https://biz.<company_domain>.ru/vkwsgp/api/v1/settings/vkt/pacman/ и проверьте групповую политику в панели администратора VK WorkSpace.

Шаг 5. Включите политику доступности мини-аппов

Для всей инсталляции:

  1. В конфигурационном файле /usr/local/nginx-im/html/myteam/myteam-config.json укажите для поля group-policy-enabled значение true:

    "group-policy-enabled": true
    
    Поле group-policy-enabled отвечает за то, чтобы приложения начали получать список мини-аппов в соответствии с настроенной групповой политикой.

  2. Для инсталляции на одну виртуальную машину выполните команду:

    HELMWAVE_USE_LOCAL_REPO_CACHE=true hwup -t godmod
    

    Для кластерной инсталляции:

    HELMWAVE_USE_LOCAL_REPO_CACHE=true HELMWAVE_ENV_NAME=cluster hwup -t godmod
    
  3. Перезапустите под в технологическое окно (может приводить к сбою в новых подключениях):

    kubectl delete pods -n vkteams -l app=myteam-admin
    

Для определенного домена:

  1. В конфигурационном файле /usr/local/nginx-im/html/myteam/myteam-config.json укажите для поля default значение false, а для домена — true:

    "group-policy-enabled": {
      "$switch-domain": {
        "default": false,
        "<company_domain>.ru": true
      }
    },
    
  2. Для инсталляции на одну виртуальную машину выполните команду:

    HELMWAVE_USE_LOCAL_REPO_CACHE=true hwup -t godmod
    

    Для кластерной инсталляции:

    HELMWAVE_USE_LOCAL_REPO_CACHE=true HELMWAVE_ENV_NAME=cluster hwup -t godmod
    
  3. Перезапустите под в технологическое окно (может приводить к сбою в новых подключениях):

    kubectl delete pods -n vkteams -l app=myteam-admin
    

Шаг 6. Включите политику в панели администратора VK WorkSpace

Работа с политикой доступности мини-аппов в панели администратора VK WorkSpace описана в документе Групповые политики.

4. Включите политику обязательных чатов и каналов в Мессенджер и ВКС

На сервере Мессенджер и ВКС выполните шаги, представленные ниже:

Шаг 1. Активируйте сервис Chat-gp

Сервис отвечает за реализацию групповой политики обязательных чатов и каналов и находится в инсталляции в неактивном состоянии. Сервис надо активировать и развернуть.

Чтобы активировать сервис:

  1. В конфигурационном файле /usr/local/etc/k8s/helmwave/projects.yml удалите из секции disabled сервис Chat-gp.

  2. Запустите деплой сервиса.

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

    HELMWAVE_USE_LOCAL_REPO_CACHE=true hwup --tags chatgp --tags myteam-admin
    

    Для кластерной инсталляции:

    HELMWAVE_ENV_NAME=cluster HELMWAVE_USE_LOCAL_REPO_CACHE=true hwup --tags chatgp --tags myteam-admin
    
  3. Перезапустите под в технологическое окно (может приводить к сбою в новых подключениях):

    kubectl delete pods -n vkteams -l app=myteam-admin
    

  4. Создайте карту сервиса:

    ic add_map chatgp shard
    

    Внимание

    Chat-gp не должен иметь "-" в названии карты.
    Пример правильного названия инстанса сервиса в карте — chatgp.onpremise.chatgp-1.
    Пример неправильного названия инстанса сервиса в карте — chatgp.onpremise.chat-gp-1.

  5. Создайте сервис для каждого экземпляра инстанса:

    ic add_srv chatgp.onpremise.chatgp-1 onpremise main
    

    где:

    • chatgp.onpremise.chatgp-1 — алиас.

    • onpremise — имя ipros-ноды.

    • main — тип (slave, main, dup, mirror, fallback или none).

    Распределите все бакеты по карте равномерно:

    ic reshard chatgp
    

Шаг 2. Разверните сервис Chat-gp

Перейдите в конфигурационный файл сервиса Chat-gp /usr/local/etc/k8s/helmwave/projects/chatgp/values/chatgp.yml и заполните поля:

  1. В секции zastava:

    zastava:
      timeout: 6s
      long_tasks_ttl: 1h
    

    где:

    • timeout — таймаут обработчика сообщений сервиса Zastava. Рекомендуется оставить без изменений.

    • long_task_ttl — ограничение времени жизни для асинхронных запросов обработки добавления в чат. Рекомендуется оставить без изменений.

      Примечание

      Значения можно изменить для избежания подвисаний при обработке сообщений из сервиса Zastava и возникновении нежелательных ретраев.

  2. В секции notifier при необходимости включите уведомления пользователей об изменении политики:

    notifier:
          bot:
            enabled: true  
            token: "${TOKEN}"
            bot_api: "http://[[ .Release.Store.hosts.botApiExternal ]]/bot/v1/"  
            timeout: 10s
            retry_count: 3
            retry_pause: 600ms
    

    где:

    • enabled: true — включает уведомления пользователей.

    • token — укажите токен бота, от которого будут приходить уведомления (см. предусловия).

  3. В секции live_config укажите правильный ключ и адрес etcd-сервера:

    live_config:
      riad:
        version: "/gp/vkt/chatgp/1"
        endpoints:
          - 100.70.80.52:12501
        policies:
        - name: obligatory_chats
          title: The policy of obligatory chats
          payload:
            permissions:
            - name: obligatory_chats
              title: The policy of obligatory chats
              description: The policy of obligatory chats
              type: MultiSelectList
              limit_scope: false
              value_source:
                type: chat
              actions:
              on_add_item:
              on_remove_item:
        connection:
          uri: chatgp
          protocol: ipros
          params: {}
    

    где endpoints — адрес сервиса PUB1 из шага Настройки в веб-интерфейсе установщика VK WorkSpace

    Внимание

    Конфигурацию политики в секции policies оставьте без изменений.

  4. Перезапустите сервис Chat-gp.

    Для инсталляции на одну виртуальную машину:

    HELMWAVE_USE_LOCAL_REPO_CACHE=true hwup -t chatgp
    
    Для кластерной инсталляции:

    HELMWAVE_USE_LOCAL_REPO_CACHE=true hwup -t chatgp
    

Шаг 3. Настройте сервис Mchat-st

  1. Запустите скрипт для выставления creator_sn у старых чатов (без его запуска старые чаты не будут отображаться в Панели администратора VK WorkSpace):

    1. Чтобы понять, где запущен мастер Mchat-st, а где реплика, выполните:

      ic map mchat-st
      

      Пример вывода команды:

      node   mchat-st-1     (2147483648   buckets)
          srv   mchat-st.vkt-4vm-1388-standart-01.mchat-st-1     10.32.88.0:2525   alive   main
          srv   mchat-st.vkt-4vm-1388-standart-02.mchat-st-1     10.32.64.0:2525   alive   slave
      node   mchat-st-2     (2147483648   buckets)
          srv   mchat-st.vkt-4vm-1388-standart-03.mchat-st-1      10.32.0.1:2526   alive   main
          srv   mchat-st.vkt-4vm-1388-standart-04.mchat-st-1     10.32.96.0:2525   alive   slave
      

      Мастерами будут инстансы, напротив которых написано «main», репликами — «slave». В примере выше мастеры запущены на vkt-4vm-1388-standart-01 и vkt-4vm-1388-standart-03, реплики — на vkt-4vm-1388-standart-02 и vkt-4vm-1388-standart-04.

    2. Подключитесь к виртуальным машинам с репликами,

    3. Остановите сервис Mchat-st, сделайте копию данных и запустите сервис снова. Из примера выше данные команды надо выполнить на vkt-4vm-1388-standart-02 и vkt-4vm-1388-standart-04:

      systemctl stop mchat-st-1
      cp -rp /data/mchat-st-1 cp -rp /data/mchat-st-1.bak
      systemctl start mchat-st-1
      
    4. Подключитесь к виртуальным машинам с мастерами (из примера выше это vkt-4vm-1388-standart-01 и vkt-4vm-1388-standart-03) и выставите в real mode:

      echo set creator_sn_inspector_simulate 0 | nc 0.0.0.0 4081
      
    5. Запустите скрипт:

      echo creator_sn_inspector_start | nc 0.0.0.0 4081
      
    6. Проверьте, есть ли ошибки в логах /oap/icq/logs/mchat-st-1.log. Если есть, то перезапустите скрипт.

    7. Чтобы посмотреть процесс скрипта:

      tail -f /oap/icq/logs/mchat-st-1.log | grep CreatorSnInspector
      

      По завершении скрипта будет вывод:

      tail -f /oap/icq/logs/mchat-st-1.log | grep "CreatorSnInspector: finished"
      
      Данный скрипт запускается один раз при первичной настройке групповой политики.

  2. Перезапустите сервис Mchat-st командой:

    systemctl restart mchat-st-1
    

Шаг 4. Настройте сервис Gbld-mchat

  1. Перейдите в конфигурационный файл сервиса /usr/local/etc/k8s/helmwave/projects/gbld-mchat/values/gbld-mchat/application.yml и добавьте в конце строчку:

    gbld-mchat.resolve_rid_on_update_push: true
    
  2. Для применения изменений на одну виртуальную машину выполните команду:

    HELMWAVE_USE_LOCAL_REPO_CACHE=true hwup -t  gbld-mchat --dependencies=false
    

    Затем перезапустите сервис с новой конфигурацией:

    kubectl delete po -n vkteams -l app=gbld-mchat
    

    Для кластерной инсталляции:

    HELMWAVE_USE_LOCAL_REPO_CACHE=true HELMWAVE_ENV_NAME=cluster hwup -t gbld-mchat --dependencies=false
    

    Затем перезапустите сервис с новой конфигурацией:

    kubectl delete po -n vkteams -l app=gbld-mchat
    

Шаг 5. Анонсируйте политику обязательных чатов

  1. Убедитесь, что выполнены предварительные действия для анонсирования политики.
  2. Выполните в консоли команду:

    curl 'http://admin.<company_domain>/api/chats/settings/announcePolicy' \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -b cookieFile.txt \
    -d ''
    

Шаг 6. Включите политику в панели администратора VK WorkSpace

Работа с политикой обязательных чатов и каналов в панели администратора VK WorkSpace описана в документе Групповые политики.

5. Включите политику привилегий

На сервере Мессенджер и ВКС выполните шаги, представленные ниже:

Шаг 1. Активируйте сервис Vipper

Сервис отвечает за реализацию групповой политики привилегий и находится в инсталляции в неактивном состоянии. Сервис надо активировать и развернуть.

Чтобы активировать сервис:

  1. Перейдите в конфигурационный файл /usr/local/etc/k8s/helmwave/projects.yml и удалите из секции disabled сервис Vipper.

  2. Запустите деплой сервиса:

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

    HELMWAVE_USE_LOCAL_REPO_CACHE=true hwup --tags vipper
    

    Для кластерной инсталляции:

    HELMWAVE_ENV_NAME=cluster HELMWAVE_USE_LOCAL_REPO_CACHE=true hwup --tags vipper
    
  3. Создайте карту сервиса:

    gic utils mapfiller --map-name vipper
    

    Пример названия инстанса сервиса в карте: vipper.<имя_ноды>.vipper-1

Шаг 2. Разверните сервис Vipper

Чтобы развернуть сервис:

  1. Перейдите в конфигурационный файл сервиса Vipper /usr/local/etc/k8s/helmwave/projects/vipper/values/vipper.yml и в секции keycloak укажите доступы до сервиса Keycloak:

    keycloak:
      url: "http://keycloak-http.keycloak.svc.cluster.local/"
      realm: "myteam"
    
  2. В секции notifier при необходимости включите уведомления пользователей об изменении политики:

    notifier:
          bot:
            enabled: true  
            token: "${TOKEN}"
            bot_api: "http://[[ .Release.Store.hosts.botApiExternal ]]/bot/v1/"  
            timeout: 10s
            retry_count: 3
            retry_pause: 600ms
    

    где:

    • enabled: true — включает уведомления пользователей.

    • token — укажите токен бота, от которого будут приходить уведомления (см. предусловия).

  3. В секции live_config укажите правильный ключ и адрес etcd-сервера:

    live_config:
      riad:
        version: "/gp/vkt/vipper/3"
        endpoints:
          - "100.70.176.132:12501"
        policies:
          - name: "vipspolicy"
            title: VIP-S policy
            payload:
              permissions:
                - name: "allowDisturb"
                  title: "Уровень полномочий"
                  description: "Обычный  не позволяет писать, звонить, добавлять в чаты и звонки руководство и высшее руководство, но позволяет взаимодействие с пользователями с обычным, доверенным и доверенным высшего руководства уровнем полномочий. \n\nДоверенные руководства  позволяет писать, звонить, добавлять в чаты и звонки пользователей с любым уровнем полномочий, кроме высшего руководства. \n\nРуководство  запрещает обычным пользователям писать, звонить и добавлять в чаты и звонки руководство и позволяет взаимодействие с пользователями с любым уровнем полномочий, кроме высшего руководства. \n\nДоверенные высшего руководства  позволяет писать, звонить, добавлять в чаты и звонки пользователей с любым уровнем полномочий. \n\nВысшее руководство  запрещает обычным пользователям, доверенным руководства, руководству писать, звонить и добавлять в чаты и звонки высшее руководство и позволяет взаимодействие с пользователями с любым уровнем полномочий."
                  type: "List"
                  list_values: ["Regular", "VIP4", "VIP3", "VIP2", "VIP1"]
                  limit_scope: false
                  meta:
                    Regular:
                      display: "Обычный"
                    VIP4:
                      display: "Доверенные руководства"
                    VIP3:
                      display: "Руководство"
                    VIP2:
                      display: "Доверенный высшего руководства"
                    VIP1:
                      display: "Высшее руководство"
        connection:
          uri: "vipper"
          protocol: "ipros"
          params: {}
    

    где endpoints — адрес сервиса PUB1 из шага Настройки в веб-интерфейсе установщика VK WorkSpace.

    Внимание

    Конфигурацию политики в секции policies оставьте без изменений.

  4. Перезапустите сервис Vipper.

    Для инсталляции на одну виртуальную машину:

    HELMWAVE_USE_LOCAL_REPO_CACHE=true hwup -t vipper
    
    Для кластрной инсталляции:

    HELMWAVE_USE_LOCAL_REPO_CACHE=true hwup -t vipper
    

Шаг 3. Настройте сервис Gbld-mchat

  1. Перейдите в конфигурационный файл сервиса /usr/local/etc/k8s/helmwave/store/vip_enable.yml и укажите:

    boss: 0
    gbld_st: true
    
  2. Для примените изменения на одну виртуальную машину выполните команду:

    HELMWAVE_USE_LOCAL_REPO_CACHE=true hwup -t  gbld-mchat --dependencies=false
    

    Затем перезапустите сервис с новой конфигурацией:

    kubectl delete po -n vkteams -l app=gbld-mchat
    

    Для кластерной инсталляции:

    HELMWAVE_USE_LOCAL_REPO_CACHE=true HELMWAVE_ENV_NAME=cluster hwup -t gbld-mchat --dependencies=false
    

    Затем перезапустите сервис с новой конфигурацией:

    kubectl delete po -n vkteams -l app=gbld-mchat
    

Шаг 4. Настройте сервис Nomail

  1. Перейдите в конфигурационный файл сервиса /usr/local/etc/nomail-1.conf и добавьте в поле nomail.keycloak.additional.extra.fields значение «memberOf»:

    nomail.keycloak.additional.extra.fields Phone,organization,position,memberOf
    
  2. Перезапустите сервис командой:

    systemctl restart nomail-1
    

Шаг 5. Настройте сервис Boss

  1. Перейдите в конфигурационный файл сервиса /usr/local/etc/k8s/helmwave/store/vip_enable.yml и укажите:

    boss: 1
    
  2. Перезапустите сервис командой:

    kubectl -n vkteams delete pod -l app=boss
    

Шаг 6. Анонсируйте политику привилегий

  1. Убедитесь, что выполнены предварительные действия для анонсирования политики.

  2. В консоли выполните команду:

    curl 'http://admin.<domain>/api/settings/vip/announcePolicy' \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -b cookieFile.txt \
    -d ''
    

Шаг 7. Включите политику в панели администратора VK WorkSpace

Работа с политикой привилегий в панели администратора VK WorkSpace описана в документе Групповые политики.

6. Настройте переменные окружения на сервере VK WorkSpace

  1. Подключитесь к серверу VK WorkSpace, на котором установлен контейнер pravdapg1.

  2. Получите имена политик:

    # docker exec -it pravdapg1 psql -Upostgres -d vkwsgp -c 'select * from core_policy;';
    

    Вывод команды будет следующим:

    id |    name          |      title      | description | app_name | service_name | revision
    ---+------------------+-----------------+-------------+----------+--------------+---------
    4  | obligatory_chats | Группы и каналы |             | vkt      | chatgp       |    1
    6  | vipspolicy       | VIP-S policy    |             | vkt      | vipper       |    1
    2  | orderpolicy      | Order Policy    |             | vkt      | pacman       |    3
    (3 rows)
    
  3. Установить переменные окружения с уникальными значениями для политик в формате "app_name:service_name:name" для ролей:

    • bizf

    • biz-celery-worker-pdd

    • biz-celery-worker-pdd-check

    • biz-celery-worker-pdd-high

    • biz-celery-worker-update

    • biz-celery-beat

    • biz-pravda-kafka-consumer

    GP_MINI_APPS_LIST_UNIQUE_NAME: vkt:pacman:orderpolicy
    GP_REQUIRED_CHATS_UNIQUE_NAME: vkt:chatgp:obligatory_chats
    GP_VIP_UNIQUE_NAME: vkt:vipper:vipspolicy 
    

    где:

    • GP_MINI_APPS_LIST_ID — orderpolicy.

    • GP_REQUIRED_CHATS_POLITIC_ID — obligatory_chats.

    • GP_VIP_ID — vipspolicy.

  4. Перейдите в веб-интерфейс установщика VK WorkSpace по адресу http://<company_domain>:8888 и запустите автоустановку нажатием на кнопку в правом верхнем углу.

7. Выполните настройки в веб-интерфейсе установщика Почты

Шаг 1. Выполните шаг upload_pravda_defaults для контейнера pravda

  1. Перейдите в веб-интерфейс установщика.
  2. В списке контейнеров найдите контейнер pravda1.
  3. Выполните шаг upload_pravda_defaults.

Шаг 2. Получите идентификаторы политик в Панели администратора

  1. Авторизуйтесь в Панели администратора по адресу https://biz.<ваш домен>/.
  2. Перейдите в интерфейс с настройками системы по адресу https://biz.<ваш домен>/admin/misc/.
  3. На главной странице, в блоке Запрос через Клиент, в поле Клиент: введите GPGetPoliciesClient.
  4. Нажмите Отправить.

  5. В ответ вы получите структуру данных в формет JSON. Среди этих данных находятся идентификаторы групповых политик. Например, начало ответа выглядит так:

    {
      "paging": {
        "results_count": 6
      },
      "data": [
        {
          "id": 2, # Данный идентификатор по каждой политике нужно будет далее указать в веб-интерфейсе установщика
          "name": "orderpolicy",
          "title": "Доступность разделов",
          "description": null,
          ...
    

    В блоке data расположен массив объектов с данными о групповых политиках. Рекомендуем скопировать ответ из веб-интерфейса в один из редакторов на вашем компьютере для удобной работы. В этом массиве нам нужны идентификаторы политик из поля id, этот идентификатор расположен рядом с названиями политики (поля name и title).

Шаг 3. Выполните настройки в веб-интерфейсе установщика

  1. В веб-интерфейсе установщика, перейдите в раздел Настройки -> Переменные окружения.
  2. В левом боковом меню найдите bizf.
  3. Нажмите кнопку редактировать edit_icon.
  4. Нажмите на кнопку + Добавить.
  5. Поля Название переменной и Значение переменной заполните в соответствии с таблицей ниже. Идентификаторы политик нужно взять с из JSON, полученного на Шаге 2.

    Название переменной Значение переменной
    GP_MINI_APPS_LIST_POLICY_ID Идентификатор политики с "name": "orderpolicy"
    GP_REQUIRED_CHATS_POLICY_ID Идентификатор политики с "name": "obligatory_chats"
    GP_VIP_POLICY_ID Идентификатор политики с "name": "vipspolicy"
    GP_CLOUD_USER_QUOTA_POLICY_ID Идентификатор политики с "name": "clouduserquota"
    GP_CLOUD_FOLDER_PERMISSIONS_POLICY_ID Идентификатор политики с "name": "cloudfolderpermissions"
    GP_CLOUD_FOLDER_PERMISSIONS_AVAILABLE_RIGHTS Укажите значение: 1,64
  6. Нажмите Сохранить.

  7. Выполните шаг up_container для контейнера bizf.

Как выключить групповые политики

Политика привилегий и политика обязательных чатов и каналов выключаются в панели администратора VK WorkSpace. Подробное описание см. в документе Групповые политики.

Чтобы выключить политику доступности мини-аппов для конкретного домена или всей инсталляции:

  1. Перейдите панель администратора VK WorkSpace https://biz.<company_domain> и отключите групповую политику.
  2. Подключитесь к серверу Мессенджер и ВКС и выключите политику:

    Для всех доменов инсталляции:

    В конфигурационном файле /usr/local/nginx-im/html/myteam/myteam-config.json в секции group-policy-enabled для поля default укажите значение false:

    "group-policy-enabled": {
      "$switch-domain": {
      "default": false,
      "<company_domain>.ru": false
      }
    },
    

    Для определенного домена:

    В конфигурационном файле /usr/local/nginx-im/html/myteam/myteam-config.json в секции group-policy-enabled для поля default укажите значение true, а для домена — false:

    "group-policy-enabled": {
      "$switch-domain": {
      "default": true,
      "<company_domain>.ru": false
      }
    },
    
  3. Для инсталляции на одну виртуальную машину выполните команду:

    HELMWAVE_USE_LOCAL_REPO_CACHE=true hwup -t godmod
    

    Для кластерной инсталляции:

    HELMWAVE_USE_LOCAL_REPO_CACHE=true HELMWAVE_ENV_NAME=cluster hwup -t godmod
    
  4. Перезапустите под в технологическое окно (может приводить к сбою в новых подключениях):

    kubectl delete pods -n vkteams -l app=myteam-admin
    

Как обновить политику доступности мини-аппов в приложении VK WorkSpace

Чтобы добавить новый веб-апп или мини-апп в приложении, выполните шаги ниже:

  1. На сервере Мессенджер и ВКС перейдите в конфигурационный файл сервиса Pacman /usr/local/etc/k8s/helmwave/projects/pacman/values/pacman.yml.

  2. В секции riad поднимите версию ключа /gp/vkt/, например: "/gp/vkt/pacman/4" → "/gp/vkt/pacman/5":

    live_config:
      riad:
        version: "/gp/vkt/pacman/5"
    
  3. Если необходимо изменить порядок мини-аппов или настройки по-умолчанию, заполните секцию policies (формат секции описан выше).

  4. Перезапустите сервис Pacman.

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

    HELMWAVE_USE_LOCAL_REPO_CACHE=true wbuild -t pacman && HELMWAVE_USE_LOCAL_REPO_CACHE=true hwup -t pacman
    
    Для кластерной инсталляции:

    HELMWAVE_USE_LOCAL_REPO_CACHE=true hwup -t pacman
    
  5. В конфигурационном файле /usr/local/etc/k8s/helmwave/store/myteam-admin.yml в секциях MiniApps, Management и Settings установите для поля default значение allow:

    myteamAdminPermission:
      resources:
        Analytics:
          default: allow
          groups: []
        Export:
          default: allow
          groups: []
        Settings:
          default: allow
          groups: []
        Information:
          default: allow
          groups: []
        Management:
          default: allow
          groups: []
        MiniApps:
          default: allow
          groups: []
    

    Примените изменения.

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

    HELMWAVE_USE_LOCAL_REPO_CACHE=true hwup --tags godmod
    

    Для кластерной инсталляции:

    HELMWAVE_ENV_NAME=cluster HELMWAVE_USE_LOCAL_REPO_CACHE=true hwup --tags godmod 
    
  6. Анонсируйте политику:

    В консоли выполните команду:

    curl 'http://admin.<domain>/api/miniapp/announcePolicy' \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -b cookieFile.txt \
    -d ''
    

    Если код ответа не 200 — посмотрите логи сервиса Pacman:

    /var/log/vector/k8s/vkteams/pacman
    

    Если отображается ошибка авторизации — авторизуйтесь под учетной записью администратора и заново анонсируйте политику.

    Если код ответа 200 — перейдите по адресу https://biz.<company_domain>.ru/vkwsgp/api/v1/settings/vkt/pacman/ и проверьте групповую политику в панели администратора VK WorkSpace.

Как добавить новый инстанс сервиса групповой политики в карту

Добавление в карту новых инстансов для сервисов Vipper и Pacman происходит автоматически.

Чтобы добавить в карту новый инстанс сервиса Chat-gp:

  1. На сервере Мессенджер и ВКС создайте сервис для каждого экземпляра инстанса:

    echo "ctlr_add_srv chatgp.mk-cluster-24-3-03. chatgp-2 mk-cluster-24-3-03 main" | nc ctlr.service.onpremise.consul 4020
    

    где:

    • chatgp.mk-cluster-24-3-03.chatgp-2 — алиас.

    • mk-cluster-24-3-03 — имя ноды.

    • main — тип (slave, main, dup, mirror, fallback или none).

  2. Перейдите в конфигурационный файл сервиса Chat-gp /usr/local/etc/k8s/helmwave/projects/chatgp/values/chatgp.yml и в секции configs под полем mountPath добавьте новый инстанс:

    volumes:
      configs:
        mountPath: /usr/local/etc/
    chatgp-1: * chatgp
    chatgp-2: * chatgp  #добавьте новый инстанс
    configMaps:
    

    Внимание

    Chat-gp не должен иметь "-" в названии инстанса.
    Пример правильного названия инстанса сервиса в карте — chatgp.<имя_ноды>.chatgp-2.
    Пример неправильного названия инстанса сервиса в карте — chatgp.<имя_ноды>.chat-gp-2.

  3. Запустите деплой сервиса:

    HELMWAVE_USE_LOCAL_REPO_CACHE=true hwup --tags chatgp