Версия контракта
contract_version — обязательное свойство бандла, определяющее версию контракта, в соответствии с которой составлен конфигурационный файл config.yaml или config.yml.
Каждая версия контракта задает определенные требования к структуре конфигурационного файла, а также определяет набор свойств прототипов, доступных для использования.
Назначение
Свойство contract_version используется для следующих целей:
-
Контроль совместимости бандла с ADCM. При загрузке бандла ADCM проверяет версию его контракта, чтобы убедиться в возможности корректной обработки.
-
Безопасное обновление ADCM. Перед обновлением ADCM анализирует все установленные бандлы. Если хотя бы один из них использует версию контракта, не поддерживаемую в новой версии ADCM, обновление блокируется. Это предотвращает ситуацию, при которой после обновления ADCM часть бандлов перестает корректно работать или совсем не загружается.
-
Независимая эволюция ADCM. ADCM может добавлять новую функциональность или отказываться от устаревших возможностей, выпуская новую версию контракта и при этом сохраняя поддержку ранее выпущенных версий.
Поведение при запуске
При запуске ADCM проверяет, какие бандлы используются в кластерах и хостпровайдерах. Если обнаружен кластер или хостпровайдер, использующий бандл с неподдерживаемой версией контракта, ADCM не запустится. Информация о бандлах, не прошедших проверку, будет записана в лог-файлы Docker-контейнера.
Для дальнейшего обновления ADCM необходимо сначала обновить соответствующий продукт до версии, использующей поддерживаемую версию контракта. После этого можно выполнять обновление ADCM.
|
ВАЖНО
В отличие от свойства adcm_min_version, contract_version накладывает более строгие ограничения на совместимость с версиями ADCM в соответствии с поддерживаемой функциональностью.
|
Матрица совместимости
Ниже представлена матрица совместимости версий контракта с версиями ADCM.
В матрице совместимости используются следующие обозначения:
-
S— поддерживается; -
D— считается устаревшей (поддерживается в течение ограниченного времени); -
—— не поддерживается.
| Версия ADCM | 1.0 | 2.0 | 2.1 |
|---|---|---|---|
До 2.10.0 |
S |
— |
— |
2.10.x |
S |
S |
— |
2.11.x |
D |
S |
S |
2.12.x |
D |
D |
S |
Для получения информации о переходе с одной версии контракта на другую обратитесь к статье Миграция бандла на новую версию контракта