Обновление
Contents
Обновление#
Обновление комплекта приложения с использованием 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.zip
applip.zip
profile.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