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>
Основной этап. Ожидается запуск всех плагинов, после чего выполняется запуск SOWAstart_plugin <profilename> <servicename>
Запуск указанного плагина. Подробнее о плагинахВ
deployment k8sкаждый плагин запускается в качестве sidecar для основного контейнера SOWAsleep
Отладочный режим, будет запущено бесконечное ожидание (/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..."