Docker образ SOWA#

Внутри docker образа прозводится стандартная установка СПО SOWA, выполнением shell скриптов bh/bin/rhel/install.sh и bh/bin/rhel/installPartyLibs.sh

Запуск и конфигурирование SOWA в docker образе происходит по средствам docker-entrypoint.sh, который имеет следующие аргументы запуска:

  • init_profile <profilename>
    Предварительный шаг перед запуском SOWA: создание профиля, распаковка ресурсов профиля, конфигурация профиля

    В deployment k8s этот этап выполняется в init-контейнере

  • start_profile <profilename>
    Основной этап. Ожидается запуск всех плагинов, после чего выполняется запуск SOWA

  • start_plugin <profilename> <servicename>
    Запуск указанного плагина. Подробнее о плагинах

    В deployment k8s каждый плагин запускается в качестве sidecar для основного контейнера SOWA

  • sleep
    Отладочный режим, будет запущено бесконечное ожидание (/usr/bin/sleep infinity).

  • compile_profile
    (Экспериментально) выполняет «компиляцию» конфиг файла профиля, чтобы получить единый yaml файл с раскрытыми переменными
    Может быть полезно если профиль разделен на несколько файлов и/или содержит переменные из env. Для деплоя в k8s требуется единый yaml файл.

Сборка образов на стороне клиента#

В дистрибутие поставляется только Dockerfile вместе с СПО, сборка docker-образа производится на стороне клиента.

Сборка Docker-образов при помощи Platform V DevOps Tools#

Сборку образов и их выгрузку в репозиторий хранения Docker-образов можно выполнить при объединении дистрибутива с использованием утилиты Platform V DevOps Tools Merger.

Настройка конфигурации Merger#

Необходимо добавить в конфигурацию утилиты Merger сопоставление имен базовых образов, указанных в Dockerfile, с базовыми образами, доступными в инфраструктуре, где будет производиться сборка.

Смена базовых образов осуществляется с помощью поиска и замены нужной строки по regexp.

Пример

# Исходная ссылка
ARG BASE_IMAGE=registry.ru/sbt/base/sberlinux-9-x86_64-ubi:9.5
FROM ${BASE_IMAGE}

# Regexp для поиска/замены подойдет "*sberlinux*"

Образец конфигурационого файла для джобы Platform V DevOps Tools Merger

docker:
  registry: # координаты реджистри для сборки и загрузки докер-образов
    url: https://registry.mycompany.ru
    creds: cred_auth
  # путь для загрузки докер-образов
  registry_path: platform-v/sowa/sowa
  # маппинг базовых образов
  base_image_mapping:
    - from: "*sberlinux*"
      to: <docker-registry>/<путь к нужному образу>/sberlinux-9:latest

Примечание: Более подробное описание настройки Merger смотрите в документации продукта Platform V DevOps Tools.

Сборка образов стандартными средствами (без использования инструментов Platform V DevOps Tools)#

Для сборки образа необходимо распаковать архив с бинарной частью sowa-bin-x.y.z.zip и перейти в корень каталога package.

Перед запуском необходимо самостоятельно заменить ссылки на базовые образы в docker/sowa/Dockerfile, доступные в инфраструктуре.

Для утилиты docker команда сборки будет выглядеть следующим образом:

docker build -t sowa:v1 . -f docker/sowa/Dockerfile

В Dockerfile уже прописаны инструкции для монтирования директории «bh», содержащей файлы для установки.

Docker-образы в деплойменте#

В манифестах деплоймента версия Docker-образа указывается в виде хеш-суммы. Это правило распространяется:

  • на образы основного приложения,

  • на все используемые сайдкары,

  • образы Istio Gateway.

Хеш-сумма не выносится в переменные и сразу прописана в манифестах.

Что необходимо сделать перед деплоем#

Перед началом развертывания необходимо проверить и заменить хеш-суммы на те, что доступны в Docker Registry, в том числе после пересборки образа СПО SOWA.

Это можно сделать двумя способами, в зависимости от выбранного метода развертывания:

  • Если вы используете Platform V DevOps Tools и джобу Platform V DevOps Tools Merger, тогда заполните параметр image_link_mapping и джоба выполнит поиск и замену хеш-сумм.

  • Если вы не используете Platform V DOT, тогда замена хеш-сумм должна быть выполнена самостоятельно любым доступным способом.

Образец заполнения параметра image_link_mapping для джобы Platform V DevOps Tools Merger:

image_link_mapping:
"fluent-bit@sha256:[0-9a-f]{64}" : "fluent-bit@sha256:abcdef123456..."
"proxyv2@sha256:[0-9a-f]{64}" : "proxyv2@sha256:abcdef123456..."

Образец ссылки на образ в deployment:

image: "{{ .Values.registry }}/{{ .Values.registry_path }}/sowa@sha256:a8bb548e..."