VK Dev Platform logo
Помощь
Обновлена 29 июля 2024 г. в 13:58

Запуск инсталлятора

Предусловия

Перед запуском инсталлятора должны быть выполнены следующие условия:

  • Подготовлено рабочее место с установленными 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.

Распаковка архива

  1. Скачайте архив, необходимый для установки VK Dev Platform.

  2. Распакуйте архив.

  3. Проверьте целостность содержимого архива командой:

    # unzip -t [<ИМЯ_АРХИВА>]
  4. Загрузите пакеты в репозиторий:

    # 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

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 указан список используемых в инсталляторе ролей и их функционал.

Таблица 1 — Роли Ansible

Роль

Функционал

Верхнеуровневые роли

front

Развертывание VK Dev Platform

gitlab

Развертывание GitLab, установка GitLab Proxy для обеспечения единого входа, настройка секретов и TLS-сертификатов

keycloak

Развертывание Keycloak, создание областей безопасности (realm) для VK Dev Platform

nexus

Развертывание Sonatype Nexus Repository Manager, настройка аутентификации через OpenID Connect

pgadmin

Установка pgAdmin

redis

Развертывание БД Redis

samsara

Развертывание интеграционного ядра

sonarqube

Развертывание SonarQube, настройка аутентификации через OpenID Connect

vector

Устанавка агента Vector в кластер Kubernetes или на ВМ

zalando

Развертывание Postgres и установка Zalando Postgres Operator

Зависимые роли

blackbox_exporter

Используется для отслеживания окончания действия сертификатов. Используется для мониторинга VK Dev Platform

common

Создание общего пространства имен Kubernetes, настройка TLS-сертификатов

gitaly

Установка Gitaly-компонента GitLab

haproxy

Балансировщик для Praefect-компонента GitLab

minio

Развертывание S3 в кластере Kubernetes

nexus_vm

Используется для Nexus в HA-конфигурации

oidc_proxy

Установка OIDC Proxy, получение доступа к Keycloak

praefect

Установка Praefect-компонента GitLab

regcred

Создание секрета в кластере Kubernetes. Нужен для доступа к Docker-репозиторию для скачивания образов

s3

Создание S3 бакета для хранения резервных копий БД

sso

Создание клиентов (GitLab, Nexus или других) в Keycloak для обеспечения единого входа

support_bundle

Создание архива Support Bundle, содержащего логи из Vector Aggregator, Ansible Inventory и метрики из БД samsara, gitlab, nexus

vmagent

Устанавливает vmagent в кластер Kubernetes

Отключение функциональности VK Dev Platform

В VK Dev Platform предусмотрен механизм Feature Flags, который позволяет включать/отключать функциональность VK Dev Platform.

Для включения функциональности установите значение true в файле roles/samsara/defaults/main.yaml в параметрах, указанных в таблице 2, при настройке Inventory перед установкой VK Dev Platform.

Таблица 2 — Функциональность VK Dev Platform

Функциональность

Параметр

Окружения

samsara_environments_feature_flag

Раннеры

samsara_runner_feature_flag

Вебхуки (интеграции)

samsara_subscriptions_feature_flag

Сервис подключений

samsara_service_connection_feature_flag

Работа с ALM-системами

samsara_alm_project_feature_flag

TeamStorm (разработка проекта)

samsara_teamstorm_feature_flag

Хранилища артефактов (Nexus)

samsara_artifact_repository_feature_flag

Анализатор кода (SonarQube)

samsara_code_analyzer_feature_flag

Проекты тестирования

samsara_testit_feature_flag

Установка VK Dev Platform

Выполните команду:

# docker run -it -v $PWD:/shepherd <ИМЯ_ОБРАЗА_SHEPHERD> ansible-playbook -i inventories/<ИМЯ_INVENTORY> playbooks/data-plane.yaml --vault-id <ФАЙЛ_С_ПАРОЛЕМ>

Получение паролей VK Dev Platform

Все пароли для доступа к VK Dev Platform содержатся в Inventory в зашифрованном виде.