Contract version

contract_version — a required property of a bundle that defines the contract version in accordance with which the config.yaml or config.yml configuration file is created.

Each contract version sets specific requirements for the structure of the configuration file and defines the set of prototype properties available for use.

Purpose

The contract_version property is used for the following purposes:

  • Bundle compatibility check with ADCM. When uploading a bundle, ADCM verifies its contract version to ensure the bundle can be processed correctly.

  • Safe ADCM upgrade. Before upgrading, ADCM analyzes all installed bundles. If at least one of them uses a contract version that is not supported by the new ADCM version, the upgrade is blocked. This prevents a situation where, after the upgrade, some bundles stop working correctly or fail to load at all.

  • Independent ADCM evolution. ADCM can introduce new functionality or deprecate outdated capabilities by releasing a new contract version, while continuing to support previously released versions.

Startup behavior

When starting, ADCM checks which bundles are used in clusters and hostproviders. If a cluster or hostprovider using a bundle with an unsupported contract version is detected, ADCM does not start. Information about the bundles that fail the check is written to the Docker container logs.

To upgrade ADCM, first upgrade the affected product to a version with a supported contract version. After that, upgrade ADCM.

IMPORTANT
Unlike the adcm_min_version property, contract_version imposes stricter compatibility constraints with ADCM versions based on supported functionality.

Compatibility matrix

The compatibility matrix for contract versions and ADCM versions is provided below.

In the compatibility matrix, the following symbols are used:

  • S — supported;

  • D — deprecated (supported for a limited period of time);

  •  — not supported.

ADCM version 1.0 2.0 2.1

Before 2.10.0

S

 — 

 — 

2.10.x

S

S

 — 

2.11.x

D

S

S

2.12.x

D

D

S

For information on migrating from one contract version to another, see Bundle migration to a new contract version.

Found a mistake? Seleсt text and press Ctrl+Enter to report it