Versions in ASAB Maestro¶
The global version of an application is specified in the applications section of the model:
define:
type: rc/model
services:
zoonavigator:
instances: {1: {node: "lmc01"} }
params:
PUBLIC_URL: "https://maestro.logman.io"
applications:
- name: "ASAB Maestro"
version: v23.47
- name: "LogMan.io"
version: v24.01
Version files describing global versions live in /Site/<application name>/Versions directory of the Library. E.g. there is a /Site/ASAB Maestro/Versions directory for ASAB Maestro application.
Version file location¶
ASAB Remote Control accepts a version file only at one of these paths:
- Root of
Versions/—/Site/<application>/Versions/<version>.yaml - Version folder —
/Site/<application>/Versions/v<major><minor>/<version>.yaml(this option is available since the 26.37 release)
The version folder name is derived from the application version string. Take the major and minor number (v25.47.08 → 25 and 47, v26.12-beta8 → 26 and 12) and concatenate them after a v prefix: v2547, v2612. Patch numbers and suffixes such as -beta7 are not part of the folder name.
Example layout for version v26.12.08:
/Site/LogMan.io/Versions/
v26.12.08.yaml ← allowed (root)
v2612/
v26.12.08.yaml ← allowed (preferred)
How the version file is selected¶
When building the cluster configuration, ASAB Remote Control looks for <version>.yaml under Versions/ and applies these rules:
- If the file exists in the version folder (e.g.
v2612/v26.12.08.yaml), that path is used. - Otherwise, if the file exists directly in
Versions/(e.g.v26.12.08.yaml), that path is used. - If the file exists in both places, the copy in the version folder is preferred and used.
- Files in any other location are ignored (for example a wrong folder
v2515/, or a nested pathv2612/nested/). Remote Control logs a warning for each ignored path. - If no file is found at an allowed path, Remote Control logs a warning with the expected locations and the version file is treated as missing.
Version file content¶
The version file v24.01.yaml might look like this:
define:
type: rc/version
product: ASAB Maestro
version: v24.01
versions:
zookeeper: '3.9'
asab-remote-control: latest
asab-governator: stable
asab-library: v23.15-beta
asab-config: v23.45
seacat-auth: v23.47
asab-iris: v23.31-alpha
nginx: '1.25.2'
elasticsearch: '7.17.12'
mongo: '7.0.1'
kibana: '7.17.2'
influxdb: '2.7.1'
telegraf: '1.28.2'
grafana: '10.0.8'
kafdrop: '4.0.0'
kafka: '7.5.1'
jupyter: "lab-4.0.9"
webapp seacat-auth: v23.29-beta
The define section specifies file type and provides more information about it. It can also serve to store comments and notes.
versions section takes names of the services as keys and their versions as values. Those are versions of respective docker images. A special records in this list are web applications. Use webapp keyword to assign a version for specific web application. If the version is not specified, latest verion is used.