Skip to content

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:

  1. Root of Versions/ — /Site/<application>/Versions/<version>.yaml
  2. 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:

  1. If the file exists in the version folder (e.g. v2612/v26.12.08.yaml), that path is used.
  2. Otherwise, if the file exists directly in Versions/ (e.g. v26.12.08.yaml), that path is used.
  3. If the file exists in both places, the copy in the version folder is preferred and used.
  4. Files in any other location are ignored (for example a wrong folder v2515/, or a nested path v2612/nested/). Remote Control logs a warning for each ignored path.
  5. 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.