Как устроен проект#

Основные понятия#

Окружение – это конкретная система виртуализации или контейнеризации, для которой предназначен образ.

Версия дистрибутива – версия конкретного дистрибутива Astra Linux.

Уровень защищённости – один из трёх заданных режимов работы подсистемы безопасности, реализованный запатентованными средствами защиты информации в Astra Linux Special Edition 1.7 и Astra Linux Special Edition 1.8.

Версия образа – версия проекта, которая использовалась для создания данного образа.

Версионирование образов#

Образы версионируются согласно правилу семантического версионирования. Версия образа выглядит как:

<major_version>.<minor_version>.<micro_version>

где:

  • <major_version> – номер мажорной версии. Версия 0 используется для начальной разработки. Номер мажорной версии увеличивается, если в образ добавляются изменения, несовместимые с предыдущей мажорной версией.

  • <minor_version> – номер минорной версии. Увеличивается при добавлении новой функциональности или существенных изменениях в уже существующей функциональности без нарушения совместимости. Минорная версия обнуляется при увеличении мажорной версии.

  • <patch> – номер срочного обновления при исправлении ошибок. Увеличивается после исправления ошибок в имеющейся функциональность без потери обратной совместимости. Новая функциональность не вносится, существенные изменения в уже существующей не производятся. Это поле обнуляется при увеличении мажорной и минорной версий.

Именование образов#

Формат именования образов зависит от того, предназначен ли образ для систем виртуализации или контейнеризации.

Образы для систем виртуализации#

Для именования образов для систем виртаулизации используется следующий шаблон:

<distro>[-gui][-rc]-<version>-<secure-level>-<env>-<build-version>-<arch>.<ext>

Здесь:

  • <distro> – название дистрибутива (на данный момент Astra Linux Special Edition);

  • -gui – если присутствует, то означает наличие пакетов, поддерживающих графическую оболочку;

  • -rc – версия является релиз-кандидатом;

  • <version> – версия ОС;

  • <secure-level> – уровень защищённости:

    • base – базовый (Орёл);

    • adv – усиленный (Воронеж);

    • max – максимальный (Смоленск);

  • <env> – окружение, для которого собран образ;

  • <build-version> – версия сборки (она же mg-версия);

  • <arch> – архитектура процессора;

  • <ext> – расширение файла (qcow2, ova, ovf, raw и т. п.);

Примеры#

alse-gui-1.7.4uu1-max-qemu-mg13.0.0-amd64.qcow2

где:

  • alse – Astra Linux Special Edition;

  • gui – поддержка GUI включена;

  • 1.7.4uu1 – версия очередного оперативного обновления – 1.7.4uu1;

  • max – максимальный (Смоленск) режим защищённости ОС;

  • qemu – образ предназначен для системы виртуализации Qemu/KVM;

  • mg13.0.0 – версия образа 13.0.0;

  • amd64 – образ предназначен для архитектуры AMD64.

<build-version> может быть latest – назначается на самую новую версию ОС и самую новую версию образа.

alse-1.7-adv-qemu-latest-amd64.qcow2

где:

  • alse – Astra Linux Special Edition;

  • 1.7 – последня версия Astra Linux Special Edition 1.7;

  • adv – усиленный (Воронеж) режим защищённости ОС;

  • qemu – образ предназначен для системы виртуализации Qemu/KVM;

  • latest – самая последяя версия образа;

  • amd64 – образ предназначен для архитектуры AMD64.

Образы для систем контейнеризации#

Для именования образов для систем контейнеризации используется следующий шаблон:

astra/ubi<major-version>[-dev]:<tag>

Здесь:

  • <major version> – мажорная версия ОС без точки (ALSE 1.7 или ALSE 1.8);

  • dev – если присутствует, то означает среду выполнения для опредёленного языка программирования и его версии (например, python311 для Python 3.11 или openjdk110 для OpenJDK 11.0);

  • <tag> – тег контейнера (latest, версия ОС).

Примеры#

astra/ubi18:1.8.0

где:

  • 18 – мажорная версия Astra Linux Special Edition 1.8;

  • 1.8.0 – версия Astra Linux Special Edition 1.8.0 без установленных оперативных обновлений.

astra/ubi17-openjdk110:latest

где:

  • 17 – мажорная версия Astra Linux Special Edition 1.7;

  • openjdk110 – в образе установлен OpenJDK версии 11.0;

  • latest – самая новая версия образа.

astra/ubi18-python311:1.8.0

где:

  • 18 – мажорная версия Astra Linux Special Edition 1.8;

  • python311 – в образе установлена среда Python версии 3.11;

  • 1.8.0 – версия образа на базе Astra Linux 1.8.0.

Схема сборки#

../_images/cicd_scheme.svg