Обновление#

Обновление комплекта приложения с использованием nscli#

  1. Для обновления комплекта приложения (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 - путь к папке, в которую следует поместить комплект, относительно точки монтирования системного хранилища

  2. Обновите хеши и пути к комплекту приложения (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 из предыдущего пункта)

  3. Переключите показатель версии базы данных database_schema_version, чтобы спровоцировать обновление базы данных при следующем применении ресурса:

    ./appkit.sh upgrade --config-path ./config.yaml --resgroup gs-cluster-1
    
  4. Повторно примените ресурс:

    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 # обновление счетчика версии БД
  1. Сформировать комплект приложения в виде трех zip-архивов:

    • globalserver.zip

    • applip.zip

    • profile.zip

    Внимание

    Обратите внимание, что архивы содержат в себе содержимое соответствующих папок комплекта приложений. Так applip.zip содержит в себе непосредственно модули, а не папку applib с модулями.

  2. Рядом с каждым из архивов должен лежать файл 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
    
  3. Загрузите архивы и хеш-суммы на системное NFS-хранилище.

  4. Замените в конфигурации поля с хэш-суммами (applib_sha1, appsrc_sha1, globalserver_sha1 и profile_sha1) и путем к комплекту (path) на новые. Обновите значения счетчиков globalserver_instance и database_schema_version.

Обновление кластерных утилит#

  1. Загрузите и распакуйте новую версию nscli и Helm-чарт

  2. Обновите, используя созданный ранее values.yaml:

    helm upgrade gs-ctk ~/nscli/helm_chart -f values.yaml