Обновление#
Обновление комплекта приложения с использованием nscli#
Для обновления комплекта приложения (appkit: сервера приложений, прикладного решения) подготовьте его и загрузите на NFS-хранилище:
./appkit.sh push --namespace gs-ctk --source workspace/appkit --destination appkit/v2
--namespace gs-ctk- пространство имен, в котором развертан gs-ctk--source workspace/appkit- путь к папке с комплектом на локальной ФС относительно текущей папки--destination appkit/v2- путь к папке, в которую следует поместить комплект, относительно точки монтирования системного хранилища
Обновите хеши и пути к комплекту приложения (appkit) в конфигурации при помощи команды:
# не требует подключения к кластеру, хеши будут посчитаны с комплекта приложений на локальном диске ./appkit.sh switch_local --config-path ./config.yaml --resgroup gs-cluster-1 --local-appkit workspace/appkit --remote-appkit appkit/2
--config-path ./config.yaml- путь к конфигурационном ресурсу--resgroup gs-cluster-1- название группы ресурсов--local-appkit workspace/appkit- путь к папке с комплектом на локальной ФС относительно текущей папки (--sourceиз предыдущего пункта)--remote-appkit appkit/v2- путь к папке на системном хранилище, в котором находится комплект (--destinationиз предыдущего пункта)
ИЛИ
# хеши читаются с комплекта приложений на хранилище в кластере, следовательно требует подключения к кластеру ./appkit.sh switch_remote --config-path ./config.yaml --resgroup gs-cluster-1 --namespace gs-ctk --remote-appkit appkit/v2
--config-path ./config.yaml- путь к конфигурационном ресурсу--resgroup gs-cluster-1- название группы ресурсов--namespace gs-ctk- пространство имен, в котором развертан gs-ctk--remote-appkit appkit/v2- путь к папке на системном хранилище, в котором находится комплект (--destinationиз предыдущего пункта)
Переключите показатель версии базы данных
database_schema_version, чтобы спровоцировать обновление базы данных при следующем применении ресурса:./appkit.sh upgrade --config-path ./config.yaml --resgroup gs-cluster-1
Повторно примените ресурс:
kubectl apply -f ./config.yaml
Обновление комплекта приложения без nscli#
Вот инструкция, как сделать без nscli то же, что и эти команды nscli:
./appkit.sh push --namespace gs-ctk-ns --source workspace/appkit --destination appkit/v1 # загрузка комплекта приложений на NFS (требует доступа к кластеру)
./appkit.sh switch_local --config-path ./new_config.yaml --resgroup gs-cluster-1 --local-appkit workspace/appkit --remote-appkit appkit/v1 # переключение комплекта приложений
./appkit.sh upgrade --config-path ./new_config.yaml --resgroup gs-cluster-1 # обновление счетчика версии БД
Сформировать комплект приложения в виде трех zip-архивов:
globalserver.zipapplip.zipprofile.zip
Внимание
Обратите внимание, что архивы содержат в себе содержимое соответствующих папок комплекта приложений. Так
applip.zipсодержит в себе непосредственно модули, а не папкуapplibс модулями.Рядом с каждым из архивов должен лежать файл c хэш-суммой архива, полученной по алгоритму команды
sha1sumиз GNU Core Utilities. Название файла должно соответствовать названию архива и иметь суффикс.sha1.Так, например, в комплекте приложений должен находиться архив
applip.zipи рядом с ним файлapplip.zip.sha1с текстом4f3b71ee067f146d68a8795b3bde1e5c0f8956d7.Вы можете сгенерировать эти файлы при помощи следующего shell-скрипта:
for archive in appkit/*.zip do sha1sum < "$archive" | tr -d ' -' | tr -d '\n' > "$archive.sha1" done
Загрузите архивы и хеш-суммы на системное NFS-хранилище.
Замените в конфигурации поля с хэш-суммами (
applib_sha1,appsrc_sha1,globalserver_sha1иprofile_sha1) и путем к комплекту (path) на новые. Обновите значения счетчиковglobalserver_instanceиdatabase_schema_version.
Обновление кластерных утилит#
Загрузите и распакуйте новую версию nscli и Helm-чарт
Обновите, используя созданный ранее
values.yaml:helm upgrade gs-ctk ~/nscli/helm_chart -f values.yaml