﻿# Обновление версии ELMA365 Enterprise

> [HTML Version](version-update-enterprise.html)

Чтобы обеспечить целостность при миграции данных со сменой версии ELMA365, рекомендуется обновлять каждую [мажорную версию](version-support-elma365-on-premises.md) без пропусков, например, версию X.**1**.N можно обновить до X.**4**.N.

Процесс обновления ELMA365 Enterprise состоит из следующих этапов:

1. [Определение количества шагов обновления](#definition-of-steps).

2. [Копирование конфигурационного файла от текущей установленной версии](#copying-config-file).

3. [Изменение предустановленных значений таймаутов для миграции данных (опционально)](#change-timeout).

4. [Обновление с помощью Helm в Kubernetes-кластере приложения ELMA365](#update-with-helm).

## Шаг 1. Определение количества шагов обновления

1. Определите версию установленного чарта, с помощью которого было ранее развёрнуто или обновлено приложение ELMA365:

````
helm show chart elma365/elma365

2. ````
Определите версию актуального (latest) чарта:

````
helm repo add elma365 https://charts.elma365.tech  
helm repo update  
helm search repo elma365/elma365

3. ````
Если установленный чарт необходимо обновить более чем на одну мажорную версию, нужно последовательно установить каждую из них до актуального (latest) чарта.

**Важно**: перед установкой следующей мажорной версии обновите текущую версию до последнего [минорного релиза](version-support-elma365-on-premises.md#minor). При установке мажорной версии также используйте её последний минорный релиз.

````
начало примера

````
Примеры

Мажорные релизы On‑Premises имеют номера версий X.**1**, X.**4**, X.**7** и X.**10**. В примерах номер актуального минорного релиза для версии обозначается буквой **N**:

1. Версия установленного чарта X.**1**.**N**, версия актуального (latest) чарта X.**4**.**N** — обновление производится в один этап: сразу до X.**4**.**N**.

2. Версия установленного чарта X.**1**.**N**, версия актуального (latest) чарта X.**7**.**N** — обновление производится в два этапа: X.**1**.**N** > X.**4**.**N** > X.**7**.**N**.

3. Версия установленного чарта X.**1**.**N**, версия актуального (latest) чарта X.**10**.**N** — обновление производится в три этапа: X.**1**.**N** > X.**4**.**N** > X.**7**.**N** > X.**10**.**N**.

````
конец примера

````
Обратите внимание, если у вас установлена LTS‑версия, то вы можете обновить её сразу на следующую LTS‑версию, согласно [жизненному циклу релизов](version-support-elma365-on-premises.md#lts-terms).

Чтобы посмотреть список всех версий ELMA365, используйте команду:

````
helm repo add elma365 https://charts.elma365.tech  
helm repo update  
helm search repo elma365/elma365 --versions

````
Вы также можете загрузить файл формата **.tar.gz** с определённой версией ELMA365 с помощью адресов, перечисленных в статье [«Ссылки для скачивания дистрибутивов ELMA365»](links-for-install-elma365.md#links-for-install-helm). 

## Шаг 2. Копирование конфигурационного файла от текущей установленной версии

Скопируйте конфигурационный файл `values-elma365.yaml` в текущий каталог. Используйте этот файл, сохранённый на этапе установки или последнего обновления.

Если файл `values-elma365.yaml` был утрачен, получите параметры текущей установки ELMA365 и сохраните их в этот файл, выполнив команду: 

````
helm get values elma365 \[-n namespace\] > values-elma365.yaml

````
Обратите внимание, с версии 2023.4.30 обновилась структура конфигурационного файла `values-elma365.yaml`.

Если вы обновляете с 2023.4.**0-21** или с более ранних версий на 2023.4.**30** или более новые версии, нужно:

1. Получить обновлённый конфигурационный файл `values-elma365.yaml`:

- для актуальной (latest) версии с помощью команды:

````
helm show values elma365/elma365 > values-elma365.yaml

- ````
для определённой версии с помощью команды с флагом `--version`:

````
helm show values elma365/elma365 --version <elma365-chart-version> > values-elma365.yaml

````
Где `<elma365-chart-version>` — нужная версия системы.

2. Перенести вручную параметры приложения из конфигурационного файла `values-elma365.yaml` старого образца (версии до 2023.4.30) в новый конфигурационный файл.

## Шаг 3. Изменение предустановленных значений таймаутов для миграции данных (опционально)

Чтобы обновление прошло корректно, в командах для его запуска вы задаёте время ожидания на миграцию данных. Оно рассчитывается в зависимости от количества информации, накопленной в базах данных. Перед началом обновления:

1. Оцените объём данных.

2. Откройте конфигурационный файл `values-elma365.yaml` и измените предустановленные параметры:

- `global.curlMigrationsMaxTime` — по умолчанию установлено `3000`. Увеличьте значение, например, до `18000`;

- `deploy.appconfig.migrateTimeout` — по умолчанию `1h`. Раскомментируйте параметр и задайте новое значение, например, `3h`. Значение этого параметра должно быть таким же, как и время ожидания `--timeout` в команде для обновления в шаге 4.

3. Перейдите к следующему этапу обновления.

## Шаг 4. Обновление с помощью Helm в Kubernetes-кластере приложения ELMA365

Выполните обновление приложения ELMA365 с использованием конфигурационного файла `values-elma365.yaml`.

Параметр `--timeout` в командах определяет время ожидания для обновления данных. Его значение должно совпадать со значением `deploy.appconfig.migrateTimeout`, если на шаге 3 вы изменили его в конфигурационном файле.

При небольшом объёме данных обновление приложения занимает 10‑30 минут на каждом шаге.

Чтобы установить актуальную (latest) версию:

1. Выполните обновление:

	- на последний минорный релиз установленной версии;

	- последовательно на каждый мажорный релиз перед актуальной версией.

Если вы используете LTS-релизы, можно выполнить обновление сразу с последней минорной версии текущего LTS‑релиза на следующий LTS‑релиз.

Для обновления используйте команду, подставляя вместо `<elma365-chart-version>` нужную версию чарта:

````
helm upgrade --install elma365 elma365/elma365 -f values-elma365.yaml --version <elma365-chart-version> --timeout=30m --wait \[-n namespace\]

2. ````
Выполните обновление до актуальной (latest) версии:

````
helm upgrade --install elma365 elma365/elma365 -f values-elma365.yaml --timeout=30m --wait \[-n namespace\]

````
Дождитесь обновления версии приложения ELMA365 Enterprise.