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

Обновление ELMA Bot

Для обновления ELMA Bot необходимо скачать Helm-чарты новой версии и установить с помощью команды helm upgrade.

Helm-чарты актуальной версии ELMA Bot доступны по ссылке https://dl.elma365.com/extensions/elma-bot/latest/elma-bot.tar.gz.

  1. Скачайте и распакуйте архив с Helm-чартами.
  2. Заново внесите изменения в файл values.yaml аналогично изменениям в ранее установленных чартах. В некоторых случаях могут потребоваться дополнительные изменения, подробнее см. ниже.
  3. Убедитесь, что текущий Helm-релиз ELMA Bot установлен без ошибок, выполнив команду:
Text Only
helm list -a

Релиз elma-bot должен иметь статус deployed. Если после предыдущей установки релиз остался в другом статусе (например, pending-install, pending-upgrade или failed), может потребоваться удаление релиза перед установкой новой версии:

Text Only
helm delete elma-bot
  1. Установите скачанные Helm-чарты, выполнив команду:
Text Only
helm upgrade elma-bot ./elma-bot --timeout=30m --wait [-n namespace]

Обновление со старых версий (1.6.7 и ниже)

В некоторых случаях (при обновлении с версии 1.6.7 и ниже) выполнение команды helm upgrade ... может завершиться ошибкой. В этом случае можно попробовать два других способа обновления:

С помощью скейлинга реплик до 0 и обратно

  1. Выполните команду:
Text Only
microk8s kubectl scale --replicas 0 sts -l tier=elmabot
microk8s kubectl scale --replicas 0 deploy -l tier=elmabot
  1. Обновите релиз с помощью команды
Text Only
helm upgrade elma-bot ./elma-bot --timeout=30m --wait [-n namespace]
  1. После завершения обновления выполните команду:
Text Only
microk8s kubectl scale --replicas 1 sts -l tier=elmabot
microk8s kubectl scale --replicas 1 deploy -l tier=elmabot

С помощью удаления релиза

Если предыдущий способ не помог, можно попробовать сначала удалить старый Helm-релиз ELMA Bot, а затем установить новый. При этом данные не теряются, но лучше сделать бэкапы важных данных (например, выполнить экспорт ботов).

  1. Удалите старый релиз с помощью команды:
Text Only
helm delete elma-bot
  1. Установите новый релиз с помощью команды:
Text Only
helm upgrade --install elma-bot ./elma-bot --timeout=30m --wait [-n namespace]

Дополнительные сведения при обновлении с предыдущих версий ELMA Bot

В некоторых случаях может потребоваться внести дополнительные изменения в файл values.yaml. Ниже указаны изменения в разных версиях чартов ELMA Bot по сравнению с предыдущей. Если вы обновляете ELMA Bot до последней версии, обратите внимание на изменения из списка ниже для всех версий, более новых, чем текущая установленная.

Обновление до версии 1.8.1

В этой версии появился вывод в лог диагностической информации о переменных окружения в сервисах auth-server, bot-manager, knowledge-base и elma365-gateway. В файле values.yaml при желании можно настроить, какая информация будет выводиться в лог:

  • global.diagnostic.environmentVariablesLogger.enabled — позволяет подностью включить или выключить вывод переменных окружения в лог. По умолчанию включено.
  • global.diagnostic.environmentVariablesLogger.ignoredKeywords — позволяет не выводить в лог переменные окружения, включающие указанный список подстрок (через запятую). По умолчанию фильтруются системные перменные окружения Kubernetes.
  • global.diagnostic.environmentVariablesLogger.sensitiveKeywords — значения переменных окружения, названия которых включают указанный список подстрок, будут заменены на '**' при выводе в лог. По умолчанию охватывает все переменные окружения, содержащие чувствительную с точки зрения безопасности информацию, вроде паролей, ключей доступа и строк подключения.

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

С помощью настройки global.routing.mode можно переключить режим работы бота (поддомены или подпути). Подробнее см. в статье "Поддержка установки на одном домене".

При использовании самоподписанных сертификатов необходимо создать конфигмап с корневым сертификатом и указать его имя в настройке global.tlsCAConfigMapName в файле values.yaml. Этот сертификат будет добавлен в доверенные в контейнеры сервисов ELMA Bot. Подробнее см. в статье "Поддержка самоподписанных сертификатов".

При установке в закрытом контуре необходимо указать путь к оффлайн-файлам бота, скачанным заранее с помощью скрипта оффлайн-установки, в значении настройки global.storage.offlineDataPath. Также не зхабудьте установить в true значение настройки global.useInPrivateNetwork. Подробнее см. в статье "Установка ELMA Bot в закрытом контуре".

Настройка global.storage.sharedPVC по умолчанию установлена в true. При необходимости отключите использование shared PVC, установив значение false.

Обновление до версии 1.7.2

В этой версии появились новые настройки в файле values.yaml:

  • global.channels.livechat.agentStageAccountId — ИД livechat-канала бота, который будет подключен к чату, интегрированному в интерфейс bot-manager. Можно оставить пустым, если интеграция чата не требуется
  • global.inbox.enabled — включает режим инбокса (рабочего места оператора). По умолчанию выключено, для обычной работы бота не требуется.
  • global.deployment.*** — настройки проверки готовности подов. Можно увеличить значения, если некоторые сервисы не успевают полностью загрузиться в указанное время и число попыток.
  • db.s3.buckets.botInboxFiles и db.s3.buckets.avatarFiles — названия бакетов, которые используются в режиме инбокса. Обратите внимание, что эти бакеты необходимы независимо от того, включен ли режим инбокса. При использовании yandex-object-storage лучше изменить стандартные названия бакетов, добавив индивидуальный префикс, т.к. названия бакетов должны быть уникальными среди всех пользователей.

Настройка hydra.enabled по умолчанию теперь имеет значение true. Если вы не планируете использовать ELMA Bot совместно с ELMA 365, можно установить в false.

Обновление до версии 1.6.7

Настройка global.sharedPVC теперь находится в global.storage.sharedPVC. Добавлены новые параметры Shared PVC (название, размер, storage class name).

Добавлены настройки userPasswordOptions.*** для изменения требований к паролям пользователей.

Расширены настройки доступа к хранилищу s3:

  • db.s3.provider — изменяет режим MINIO/CLOUD
  • db.s3.url — вместо db.s3.Url

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

  • db.s3.buckets.temproraryFiles -> db.s3.buckets.botTemporaryFiles
  • db.s3.buckets.staticFiles -> db.s3.buckets.botStaticFiles
  • db.s3.buckets.bot -> db.s3.buckets.elmabot-omega-models

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

Добавлены новые бакеты:

  • db.s3.buckets.analyticsReportFiles
  • db.s3.buckets.conversationExportFiles

Удалена настройка db.storage.enabled, т.к. больше не используется.

Обновление до версии 1.6.5

Добавлена настройка global.useInPrivateNetwork. При установке в закрытом контуре установите в true, в противном случае в false.