Перейти к основному содержимому
Версия: 1.17.0 (последняя)

Инструкция по обновлению

Обновление BAF на новую версию

Раздел содержит общую инструкцию по обновлению системы. Если для текущей версии нет специальных указаний в последующих разделах, используйте описанную ниже процедуру.

примечание

Модуль лицензирования license-server не требует обновления и остается без изменений.

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

Далее вручную перенесите все пользовательские настройки из конфигурационных файлов текущей версии (таких, как values.yaml, secrets.yaml, settings.cfg модулей) в соответствующие файлы новой поставки. Перенос выполняется путем сопоставления полей: значение копируется, только если поле с таким же именем существует в новой версии. Поля, отсутствующие в старых файлах, но присутствующие в новых, должны быть заполнены в соответствии с документацией новой версии.

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

Процесс схож с первоначальной установкой: сначала, при необходимости, обновите секреты модуля через ./cli.sh <module_name> install-secrets (это заменит секреты текущей версии на новые), а затем установите сам модуль командой ./cli.sh <module_name> install, которая выполнит helm upgrade для соответствующего чарта.

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

Обновление BAF с версии 1.1.0 до 1.2.0 и выше

  1. Перед обновлением BAF, чтобы сохранить доступ к базе данных, перенесите значения полей конфигураций в файлы новой версии.

    примечание

    Не нужно переносить секреты для stunner, заполните их снова в соответствии с инструкциями.

    ATTENTION!

    Не рекомендуется копировать файлы с заменой, так как могут быть потеряны поля, появившиеся в устанавливаемом релизе.

  2. Удалите старый релиз stunner, так как в новой версии BAF он был значительно обновлен. Перейдите в папку со старой версией BAF и выполните следующую команду:

    ./cli.sh stunner uninstall
    примечание

    При чистой установке stunner генерирует новые порты TURN. Необходимо обновить настройки веб-компоненты.

  3. Перейдите в папку с новой версией BAF и выполните приведенную ниже команду:

    ./cli.sh platform install-secrets

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

  4. Загрузите новые образы, выполнив команду ниже:

    ./cli.sh generic load-images
  5. Вернитесь к разделу развертывания и продолжайте выполнять шаги как при чистой установке.

    примечание

    Не перезаписывайте значения из предыдущей версии, только обновляйте новые, если того требует инструкция.

Обновление BAF с версии 1.6.0 до 1.7.0 и выше

Основные изменения, которые произошли в версии 1.7.0, это разделение сервиса LRS на две подсистемы. Video Recorder для записи видео и LRS для вычисления liveness по видео. Для успешного обновления необходимо правильно перенести секреты и настройки.

  1. Перенесите значения из файла lrs.secrets.json прошлой версии в файл video-recorder.secrets.json новой версии. lrs в названии секрета необходимо заменить на video-recorder. Например, lrs-postgres == video-recorder-postgres.

  2. Перенесите значения из файла lrs.values.yaml в файл video-recorder.values.yaml. Блок lrs из старых values переносится в блок video-recorder, исключая поля host и image. Остальные блоки переносятся один к одному, исключая поля image.

  3. Перенесите значения из файла baf.values.yaml в новый файл baf.values.yaml. Из старого блока lrs в новый блок video-recorder необходимо перенести только значение enabled. Значения остальных блоков переносятся один к одному, исключая поля image.

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

Обновление BAF с версии 1.9.0

Если ваш кластер использует docker в качестве источника образов, поменяйте в файле settings.cfg модулей generic и smc значение строки kube_cri на dockerd. Таким образом, образы из модуля generic будут загружатся в docker, а не containerd.

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

Обновление BAF с версии 1.10.0

Начиная с версии 1.11.0, сервис decoder включен в сервис video-recorder, поэтому после обновления до 1.11.0 отдельный чарт decoder можно удалить.

Обновление BAF с версии 1.8.0 до 1.13.0

Начиная с версии 1.13.0, отключено автоматическое создание стандартного пользователя BAF, а также удалены все связанные с ним k8s-секреты. Если вы не обновлялись на любую версию между 1.9.0 и 1.12.0 включительно, то при обновлении на 1.13.0 миграция не сможет корректно обработать аккаунт BAF и добавить к нему токен доступа из существующего аккаунта OMNI Platform.

Для приведения данных аккаунта в корректное состояние необходимо выполнить следующую SQL команду в БД BAF:

UPDATE "Accounts" SET "PlatformAccessToken"='---';

где PlatformAccessToken - это токен платформы, который раньше находился в секции platform-token файла ./cfg/baf.secrets.yaml поставки версии 1.8.0.

Обновление BAF с версии 1.12.0 до 1.13.0

В версии 1.13.0 удален старый механизм настройки паттернов контроля движений. Если вам требуется перенос паттернов из версии 1.12.0, то перед обновлением выполните следующую команду из дистрибутива новой версии:

./cli.sh baf motion-pattern-transfer - <domain>

где domain - это домен, по которому доступно publicai BAF.

Также команде требуется sk-токен BAF для совершения запроса к publicapi на получение паттернов.

В результате успешного выполнения команды в консоли будет следующий вывод: img.png

А в файле baf.values.yaml в переменной baf.default_motion_control_patterns появится текущий список паттернов аккаунта, которому принадлежит sk-токен.

img.png

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

примечание

Скрипт переносит паттерны только для аккаунта, которому принадлежит sk-токен. Если у вас заведено несколько аккаунтов, необходимо повторно запустить скрипт, но уже с sk-токеном другого аккаунта.

Обновление BAF на версию 1.17.0

В версии 1.17.0 был обновлен механизм работы с переменными окружения. Если вы изменяли какие-либо переменные окружения модулей, их необходимо перенести в новую версию, используя таблицу соответствия ниже.

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

Если нужной переменной нет в таблице, значит, она не подвергалась изменениям и переносится по правилам, действовавшим в предыдущих версиях.

примечание

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

Файл конфигурацииПуть до старой переменнойНазвание или путь новой переменной
./cfg/platform.values.yamlbackend.query_limit* QUERY_LIMIT
backend.index_update_period* INDEX_UPDATE_PERIOD
matcher.shard_n* MATCHER_SEMAPHORE_SIZE
backend.planned_retention_policy_day_of_week* PLANNED_RETENTION_POLICY_DAY_OF_WEEK
backend.planned_retention_policy_hour* PLANNED_RETENTION_POLICY_HOUR
backend.planned_retention_policy_minute* PLANNED_RETENTION_POLICY_MINUTE
backend.delete_sample_batch_size* DELETE_SAMPLE_BATCH_SIZE
backend.delete_sample_batch_sleep* DELETE_SAMPLE_BATCH_SLEEP
backend.retention_process_countbackend.retention_workers_count
backend.sample_ttl* SAMPLE_TTL
./cfg/matcher.values.yamlshard.search_threads_n* SEARCH_THREADS_N
./cfg/video-recorder.values.yamlminio.error_data_retention_days* S3_ERROR_DATA_RETENTION_DAYS
video_recorder.uvicorn_concurrency* UVICORN_CONCURRENCY
video_recorder.sqlalchemy_pool_size* SQLALCHEMY_POOL_SIZE
video_recorder.sqlalchemy_pool_overflow* SQLALCHEMY_POOL_OVERFLOW
minio.buckets_prefix* S3_BUCKETS_PREFIX
decoder.enabledvideo_recorder.decoding_enabled
decoder.decoding_process_countvideo_recorder.decoding_process_count
minio.delete_cleanup_interval* MINIO_API_DELETE_CLEANUP_INTERVAL
video_recorder.retention_batch_size* RETENTION_BATCH_SIZE
video_recorder.retention_batch_pause* RETENTION_BATCH_PAUSE
video_recorder.retention_check_frequency* RETENTION_CHECK_FREQUENCY
video_recorder.retention_process_countvideo_recorder.retention_workers_count
./cfg/report.values.yamlcore.process_count* REPORT_PROCESS_COUNT