Распаковка архива
Перед распаковкой архива должны быть выполнены следующие условия:
-
Подготовлено рабочее место с установленными Helm и Docker.
-
Созданы репозитории в Nexus для загрузки артефактов из дистрибутива VK Dev Platform:
dev-platformс типомdocker hosted;raw-internalс типомraw hosted;redosс типомyum hosted.
-
Развернут кластер Kubernetes для установки VK Dev Platform. К кластеру настроен доступ с рабочего места.
-
В кластере Kubernetes установлен NGINX Ingress Controller.
-
На всех узлах кластера Kubernetes и на виртуальных машинах для развертывания кластеров Gitaly и Praefect настроена синхронизация времени по протоколу NTP.
-
При установке в Managed Kubernetes кластер в VK Cloud или VK Private Cloud выполнены следующие условия:
- В кластере отключена установка Limit Ranges на пространства имен, или настроены значения Limit Ranges, достаточные для работы компонентов VK Dev Platform в выбранном сайзинге.
- В кластере настроены политики OPA Gatekeeper, которые не ограничивают работу компонентов продукта, или OPA Gatekeeper деинсталлирован.
-
Настроены DNS-записи для всех эндпоинтов VK Dev Platform. Допускается использование wildcard DNS-записей.
Полный список эндпоинтов — в документе Руководство администратора VK Dev Platform в разделе Основные архитектурные решения → FQDN.
-
Подготовлены SSL-сертификаты для всех эндпоинтов VK Dev Platform.
Рекомендуется использовать wildcard-сертификат. Также поддерживается использование доменного сертификата, у которого в поле
SANперечислены все эндпоинты VK Dev Platform, или отдельных сертификатов для каждого эндпоинта.Если используется приватная PKI-инфраструктура, дополнительно подготовьте цепочку CA-сертификатов, с помощью которых были подписаны конечные сертификаты.
Все сертификаты должны быть в формате PEM.
-
При поставке VK Dev Platform в интеграции с VK Cloud или VK Private Cloud: при установке VK Private Cloud в Inventory должен быть добавлен CIDR подсети для пода кластера Kubernetes, в котором будет развертываться VK Dev Platform (подробнее — в документе Руководство по установке VK Private Cloud в разделе Подготовка параметров для инсталляции).
Значение задается в параметре
keystone_ip_limiter_admin_ip_list_additional. Пример:10.100.0.0/16.
-
Скачайте архив для установки VK Dev Platform.
-
Проверьте целостность содержимого архива командой:
# unzip -t [<ИМЯ_АРХИВА>] -
Распакуйте архив.
Список артефактов собран в файлах:
src/release-<ВЕРСИЯ_РЕЛИЗА>-full.csv— список Helm-чартов и Docker-образов, включая промежуточные версии, которые нужны при обновлении.src/release-<ВЕРСИЯ_РЕЛИЗА>-pkgs.csv— список RPM и бинарных пакетов.
-
Подготовьте релизные артефакты с помощью утилиты
stalker.sh.Эта утилита загружает в хранилище Helm-чарты, Docker-образы, RPM и другие бинарные пакеты, а затем собирает дистрибутив VK Dev Platform. Команда для запуска утилиты в общем виде:
./src/stalker.sh src/release-<ВЕРСИЯ_РЕЛИЗА>-<ТИП_ФАЙЛА>.csv <КОМАНДА> <ТИП_АРТЕФАКТА>Здесь:
<ТИП_ФАЙЛА>— принимает значенияfullилиpkgs.<ВЕРСИЯ_РЕЛИЗА>— версия релиза VK Dev Platform. Пример:26.2.0.<КОМАНДА>— принимает значенияpullилиpush.<ТИП_АРТЕФАКТА>— принимает значенияimage,helmилиpackage.
Чтобы собрать Docker-образы, выполните:
./src/stalker.sh src/release-<ВЕРСИЯ_РЕЛИЗА>-full.csv pull imageЧтобы собрать Helm-чарты, выполните:
./src/stalker.sh src/release-<ВЕРСИЯ_РЕЛИЗА>-full.csv pull helmЧтобы собрать RPM и бинарные пакеты, выполните:
./src/stalker.sh src/release-<ВЕРСИЯ_РЕЛИЗА>-pkgs.csv pull package -
Загрузите артефакты в Nexus с помощью утилиты
stalker.sh.Чтобы загрузить Docker-образы, выполните:
# export STALKER_DST_REGISTRY="<ИМЯ_ХОСТА_NEXUS>" && \export STALKER_DST_USER="<ИМЯ_ПОЛЬЗОВАТЕЛЯ>" && \export STALKER_DST_PASSWORD="<ПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ>" && \./src/stalker.sh src/release-<ВЕРСИЯ_РЕЛИЗА>-full.csv push imageЧтобы загрузить Helm-чарты, выполните:
# export STALKER_DST_REGISTRY="<ИМЯ_ХОСТА_NEXUS>" && \export STALKER_DST_USER="<ИМЯ_ПОЛЬЗОВАТЕЛЯ>" && \export STALKER_DST_PASSWORD="<ПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ>" && \./src/stalker.sh src/release-<ВЕРСИЯ_РЕЛИЗА>-full.csv push helmЧтобы загрузить RPM и бинарные пакеты, выполните:
# export STALKER_DST_REGISTRY="<ИМЯ_ХОСТА_NEXUS>" && \export STALKER_DST_USER="<ИМЯ_ПОЛЬЗОВАТЕЛЯ>" && \export STALKER_DST_PASSWORD="<ПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ>" && \./src/stalker.sh src/release-<ВЕРСИЯ_РЕЛИЗА>-pkgs.csv push packageЗдесь:
<ИМЯ_ХОСТА_NEXUS>— имя хоста Nexus. Пример:nexus.example.com.<ИМЯ_ПОЛЬЗОВАТЕЛЯ>— имя пользователя репозитория. Используется, если нужна аутентификация.<ПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ>— путь до репозитория. Используется, если нужна аутентификация.
Дополнительные опции, которые можно использовать при выполнении команд:
export STALKER_DST_REGISTRY_PROTO="http" # использование HTTP вместо HTTPSexport STALKER_DST_REGISTRY_PORT="8080" # использование нестандартного порта Nexusexport CURL_INSECURE="true" # отключение проверки TLS-сертификатовexport CURL_RESOLVE="true" # использование опции --resolve утилиты curlexport HELM_INSECURE="true" # отключение проверки TLS-сертификатов для Helmexport HELM_PLAIN_HTTP="true" # использование HTTP вместо HTTPS для Helmexport STALKER_DEBUG="true" # использование режима отладки