Запуск инсталлятора
Перед запуском инсталлятора должны быть выполнены следующие условия:
-
Подготовлено рабочее место с установленными Helm и Docker.
-
Создан репозиторий Docker для загрузки образов VK Dev Platform.
-
Развернут кластер Kubernetes для установки в него VK Dev Platform. К кластеру настроен доступ с рабочего места.
-
Настроены Wildcard DNS и Wildcard Certificate.
-
При поставке VK Dev Platform в интеграции с VK Cloud или VK Private Cloud 4.2: при установке VK 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 [<ИМЯ_АРХИВА>] -
Загрузите пакеты в репозиторий:
# unzip [<ИМЯ_АРХИВА>] && \export DOCKER_DST_REGISTRY="<URL_РЕПОЗИТОРИЯ>" && \export DOCKER_DST_USER="<ИМЯ_ПОЛЬЗОВАТЕЛЯ>" && \export DOCKER_DST_PASSWORD="<ПУТЬ_ДО_РЕПОЗИТОРИЯ>" && \/bin/bash/ ./src/stalker.sh pushЗдесь:
<ИМЯ_АРХИВА>— имя архива с дистрибутивом для установки VK Dev Platform.<URL_РЕПОЗИТОРИЯ>— целевой адрес репозитория с образами.<ИМЯ_ПОЛЬЗОВАТЕЛЯ>— имя пользователя репозитория. Используется, если нужна аутентификация.<ПУТЬ_ДО_РЕПОЗИТОРИЯ>— путь до репозитория. Используется, если нужна аутентификация.
Inventory-файлы Ansible содержат параметры, описывающие конфигурацию инстанса VK Dev Platform:
- Доменные имена или IP-адреса узлов.
- Секреты в зашифрованном виде.
- Переопределения для переменных ролей Ansible (файлы
roles/<ИМЯ_РОЛИ>/defaults/main.yaml), если это необходимо. Используемые роли приведены в разделе Перечень ролей.
Перед первичным запуском инсталлятора должны быть выполнены следующие условия:
-
Корректно заполнены
inventoryи переменные для нового стенда. Примеры заполнения переменных файловroles/<ИМЯ_РОЛИ>/defaults/main.yamlприведены в разделе Переменные ролей Ansible. -
Установлен VK Cloud или VK Private Cloud, если VK Dev Platform поставляется в интеграции с VK Cloud или VK Private Cloud (подробнее об установке — в Руководстве по установке VK Private Cloud).
-
Установлен Docker CE 3:20.10.10-1 для запуска контейнера Ansible.
Подробнее об установке Docker CE при интеграции VK Dev Platform с VK Cloud — в официальной документации.
Установка и обновление ПО выполняется при помощи системы управления конфигурациями ПО Ansible. В архив инсталлятора входит перечень плейбуков, ролей и Inventory, которые загружаются в доступный репозиторий Nexus.
Для установки и обновления конфигурации VK Dev Platform используется плейбук data-plane.yaml.
В плейбуке перечислены роли, расположенные в порядке выполнения команд. Роли включают в себя набор задач, переменных и других артефактов, необходимых для настройки VK Dev Platform. Часть ролей (common, oidc-proxy, S3, SSO) являются зависимыми (вспомогательными). Они используются в процессе запуска другими ролями, которые отвечают за развертывание и конфигурирование отдельных компонентов системы. В таблице 1 указан список используемых в инсталляторе ролей и их функционал.
Роль | Функционал |
|---|---|
Верхнеуровневые роли | |
Развертывание VK Dev Platform | |
Развертывание GitLab, установка GitLab Proxy для обеспечения единого входа, настройка секретов и TLS-сертификатов | |
Развертывание Keycloak, создание областей безопасности (realm) для VK Dev Platform | |
Развертывание Sonatype Nexus Repository Manager, настройка аутентификации через OpenID Connect | |
Установка pgAdmin | |
Развертывание БД Redis | |
Развертывание интеграционного ядра | |
Развертывание SonarQube, настройка аутентификации через OpenID Connect | |
Устанавка агента Vector в кластер Kubernetes или на ВМ | |
Развертывание Postgres и установка Zalando Postgres Operator | |
Зависимые роли | |
Используется для отслеживания окончания действия сертификатов. Используется для мониторинга VK Dev Platform | |
Создание общего пространства имен Kubernetes, настройка TLS-сертификатов | |
Установка Gitaly-компонента GitLab | |
Балансировщик для Praefect-компонента GitLab | |
Развертывание S3 в кластере Kubernetes | |
Используется для Nexus в HA-конфигурации | |
Установка OIDC Proxy, получение доступа к Keycloak | |
Установка Praefect-компонента GitLab | |
Создание секрета в кластере Kubernetes. Нужен для доступа к Docker-репозиторию для скачивания образов | |
Создание S3 бакета для хранения резервных копий БД | |
Создание клиентов (GitLab, Nexus или других) в Keycloak для обеспечения единого входа | |
Создание архива Support Bundle, содержащего логи из Vector Aggregator, Ansible Inventory и метрики из БД | |
Устанавливает vmagent в кластер Kubernetes | |
В VK Dev Platform предусмотрен механизм Feature Flags, который позволяет включать/отключать функциональность VK Dev Platform.
Для включения функциональности установите значение true в файле roles/samsara/defaults/main.yaml в параметрах, указанных в таблице 2, при настройке Inventory перед установкой VK Dev Platform.
Функциональность | Параметр |
|---|---|
Окружения |
|
Раннеры |
|
Вебхуки (интеграции) |
|
Сервис подключений |
|
Работа с ALM-системами |
|
TeamStorm (разработка проекта) |
|
Хранилища артефактов (Nexus) |
|
Анализатор кода (SonarQube) |
|
Проекты тестирования |
|
Выполните команду:
# docker run -it -v $PWD:/shepherd <ИМЯ_ОБРАЗА_SHEPHERD> ansible-playbook -i inventories/<ИМЯ_INVENTORY> playbooks/data-plane.yaml --vault-id <ФАЙЛ_С_ПАРОЛЕМ>
Все пароли для доступа к VK Dev Platform содержатся в Inventory в зашифрованном виде.