Инструкция для развертывания и обновления ТестОпс в Kubernetes без доступа контура к интернету: как скачать артефакты на компьютере с интернетом, перенести их в закрытую сеть и установить. Аналогичная инструкция для Docker Compose — в отдельной статье.
Понадобятся: учетные данные к реестрам qatools (выдаются клиентам вместе с лицензией), компьютер с доступом к интернету и Docker, а в закрытом контуре — собственный реестр образов и Kubernetes 1.20 или новее.
Шаг 1. Загрузка артефактов на компьютере с доступом к интернету
Для Kubernetes нужны Docker-образ приложения и helm-чарт.
1. Авторизуйтесь в реестре Docker:
docker login reg.qatools.ru -u <ваш_логин> -p <ваш_пароль>
2. Скачайте образ нужной версии (замените <версия> на актуальную, например 527u03):
docker pull reg.qatools.ru/testops/testops:<версия>
3. Сохраните образ в файл:
docker save reg.qatools.ru/testops/testops:<версия> | gzip > testops_<версия>.tar.gz
4. Скачайте helm-чарт. Версия чарта отличается от версии приложения; актуальный номер посмотрите в списке версий чарта (нужна авторизация теми же учетными данными):
wget --user <ваш_логин> --password <ваш_пароль> https://dl.qatools.ru/repository/helm-charts/testops-<версия_чарта>.tgz
Шаг 2. Перенос в закрытую сеть
Перенесите два файла (архив образа и testops-<версия_чарта>.tgz) на компьютер в закрытой сети любым принятым у вас способом.
Шаг 3. Загрузка образа в реестр закрытой сети
Задача шага — опубликовать образ из перенесенного архива в вашем реестре. Ниже — вариант с Docker; если Docker на машине в закрытом контуре не используется, подойдет любой инструмент, умеющий загружать docker-архив в реестр (например, skopeo или crane), — тогда пункты 1–2 заменяются одной операцией копирования архива в реестр.
1. Загрузите образ в Docker:
docker load < testops_<версия>.tar.gz
2. Перетегируйте образ под ваш реестр и опубликуйте его:
docker tag reg.qatools.ru/testops/testops:<версия> ваш-реестр.example.com/testops/testops:<версия>
docker push ваш-реестр.example.com/testops/testops:<версия>
Шаг 4. Установка чарта
1. В values.yaml укажите ваш реестр в секции image:
image:
registry: ваш-реестр.example.com
repository: testops
imageName: testops
authRequired:
enabled: true # если ваш реестр требует авторизацию
username: ...
password: ...
Шаблон values.yaml находится внутри архива чарта; полное описание параметров — в документации по установке в Kubernetes.
2. Установите чарт из локального файла (репозиторий helm не нужен):
helm upgrade --install testops ./testops-<версия_чарта>.tgz -f values.yaml --namespace testops --create-namespace
Важно для закрытого контура
Не включайте развертывание зависимостей из чарта. В производственной среде PostgreSQL, RabbitMQ, Redis и S3-хранилище должны быть развернуты в вашей инфраструктуре, а в values оставаться выключенными (postgresql.enabled: false и аналогично для остальных). Включение зависимостей потребует сторонних образов из docker.io, недоступных в закрытой сети.
Служебный образ проверки БД. Перед стартом приложения чарт запускает init-контейнер, ожидающий готовности базы данных; его образ задается ключом databaseInit.image и по умолчанию равен postgres:15 с docker.io. В закрытой сети перенесите этот образ в свой реестр той же процедурой (pull → save → load → push) и укажите его адрес в databaseInit.image, либо укажите любой доступный в вашем реестре образ с утилитой pg_isready. Если используете собственные сертификаты (certificates.configmapName), аналогично понадобится образ amazoncorretto:17.
Обновление версии выполняется той же процедурой: скачать образы новой версии и, при необходимости, новую версию чарта → перенести → опубликовать в свой реестр → helm upgrade с обновленным тегом версии в values.