VK Dev Platform logo
Помощь
Обновлена 17 июля 2026 г. в 15:36

Подготовка файла ответов

Файл ответов предназначен для описания конфигурации окружения. Чтобы подготовить и начать использовать файл ответов:

  1. Запустите контейнер с образом shepeherd:26.1.0 и скопируйте файл ответа из шаблона:

    docker run --rm -v $PWD/env:/shepherd/.env shepherd:26.1.0 cp playbooks/preparation/files/.answers_file.tmpl.yaml .env/answers_file.yaml

    В текущей директории локального хоста появится файл ответов env/answers_file.yaml.

  2. Задайте в скопированном файле ответов значения параметров:

  3. (Опционально) Задайте в файле ответов дополнительные настройки.

  4. Укажите абсолютный путь до файла ответов при запуске плейбука инициализации Inventory (подробнее — в разделе Генерация Inventory).

Основные параметры

answers_inventory_name

Обязательный параметр, который задает идентификатор окружения и используется в качестве имени Inventory.

Допустимые символы:

  • Строчные латинские буквы от a до z.
  • Цифры от 0 до 9.
  • Подчеркивание _.
  • Дефис или минус -.

Пример:

answers_inventory_name: "my-new-prod-env"

answers_deployment_type

Параметр, который задает топологию развертывания.

Принимает значения:

  • prod — продуктивное развертывание: Kubernetes для сервисов без сохранения состояния (stateless services) и отказоустойчивый кластер Gitaly на выделенных виртуальных машинах.
  • dev — развертывание для тестов и разработки: все сервисы запускаются внутри Kubernetes.

Пример:

answers_deployment_type: "prod"

Параметры S3

answers_s3_enabled

Параметр, который позволяет подключить S3-совместимое хранилище для хранения резервных копий.

Принимает значения false и true.

answers_s3_endpoint

Параметр, который задает URL-адрес S3-совместимого эндпоинта.

Пример:

answers_s3_endpoint: "https://s3.example.com"

answers_s3_region

Параметр, который задает идентификатор региона, определенный провайдером S3-хранилища.

Пример для VK Cloud или VK Private Cloud:

answers_s3_region: "ru-msk"

Параметры сертификатов

Выберите подходящий параметр в зависимости от сценария сертификации по таблице 1. В вашей конфигурации должен быть активен (в значении true) только один параметр.

Источник сертификатов определяют параметры answers_crt_use_cert_mngr и answers_crt_use_wildcard. Если они оба принимают значение false, на этапе подготовки Inventory настройте отдельные сертификаты для каждого сервиса (подробнее — в разделе Добавление отдельных TLS-сертификатов).

Таблица 1 — Сценарии сертификации

Сценарии сертификации

Параметры

answers_crt_use_cert_mngr

answers_crt_use_wildcard

answers_crt_use_selfsigned

Let's Encrypt через cert-manager

true

Wildcard-сертификат, подписанный публичным CA

false

true

false

Wildcard-сертификат, подписанный корпоративным или частным CA

false

true

true

Самоподписанные сертификаты для каждого сервиса

false

false

true

answers_crt_use_cert_mngr

Параметр, определяющий источник сертификатов, которые выдаются автоматически через cert-manager. При выборе этого источника внутри кластера Kubernetes должен быть установлен и настроен cert-manager, который не входит в состав Shepherd.

Принимает значения false и true, по умолчанию —  false.

При указании true, значения парамеров answers_crt_use_wildcard и answers_crt_use_selfsigned игнорируются.

answers_crt_use_wildcard

Параметр, определяющий источник wildcard-сертификата (*.example.com), общего для всех сервисов.

Принимает значения false и true, по умолчанию —  true.

answers_crt_use_selfsigned

Атрибут, определяющий, каким корневым CA подписан сертификат: частным (Private) или публичным доверенным (Public trusted). При запуске инсталлятора этот параметр используется как централизованный флаг. Его значение по умолчанию передается во все компоненты для настройки корневого CA.

Принимает значения false и true, по умолчанию —  true.

Параметры кластера Gitaly

Эта категория параметров зависит от значения параметра answers_deployment_type:

  • prod — параметры кластера Gitaly обязательны для указания;
  • dev — параметры кластера Gitaly игнорируются.

Для работы GitLab в режиме высокой доступности (HA) нужен кластер Gitaly. Управление этим кластером осуществляется через компонент Praefect, который выполняет роль прокси для маршрутизации запросов и репликации данных. Оба компонента запускаются на выделенных виртуальных машинах вне Kubernetes.

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

  • int_ip — обязательный ключ для указания внутреннего IP-адреса, который нужен для обмена данными внутри кластера.
  • ext_ip — опциональный ключ для указания внешнего IP-адреса, который нужен для подключений по SSH.

answers_gitaly_cluster_vms

Параметр, который задает IP-адреса виртуальных машин в кластере Gitaly.

Пример:

answers_gitaly_cluster_vms:  gitaly-1:    int_ip: "10.0.0.1"    ext_ip: "100.0.0.1"  gitaly-2:    int_ip: "10.0.0.2"  gitaly-3:    int_ip: "10.0.0.3"    ext_ip: "100.0.0.2"

Внешний IP-адрес используется для SSH-подключений Ansible к ВМ. Если к виртуальным машинам Gitaly можно получить доступ из деплой-ноды через внутренний IP-адрес, ключ ext_ip можно не указывать.

answers_praefect_vms

Параметр, который задает IP-адреса виртуальных машин Praefect.

Пример:

answers_praefect_vms:  praefect-1:    int_ip: "10.0.1.1"    ext_ip: "100.0.1.1"  praefect-2:    int_ip: "10.0.1.2"

Внешний IP-адрес используется для SSH-подключений Ansible к ВМ. Если к виртуальным машинам Praefect можно получить доступ из деплой-ноды через внутренний IP-адрес, ключ ext_ip можно не указывать.

Параметры observability

answers_observability_install

Параметр, который позволяет развернуть стек observability: агенты Vector, агрегатор Vector и VMagent.

Принимает значения false и true.

answers_logs_collection_enabled

Параметр, который позволяет включить доставку логов через Vector (на каждом узле) и агрегатор Vector (центральный коллектор). Логи подов или ВМ сначала передаются в Vector (DaemonSet), а затем в агрегатор Vector.

Включение этого параметра позволит настроить доставку логов из агрегатора Vector в вашу систему управления логами.

Принимает значения false и true.

Игнорируется, если параметр answers_observability_install принимает значение false.

Другие параметры

answers_domain

Параметр, который задает базовый домен для всех DNS-записей сервисов, используемых в окружении.

Пример:

answers_domain: "example.com"

answers_keycloak_users

Параметр, который задает список пользователей, создаваемых в Keycloak во время первичной подготовки. Эти учетные записи можно использовать для входа в VK Dev Platform и в другие сервисы.

Каждая запись должна включать поля username, firstName, lastName и email.

Пример:

answers_keycloak_users:  - username: "iivanov@example.com"    firstName: "Ivan"    lastName: "Ivanov"    email: "iivanov@example.com"  - username: "ppetrov@example.com"    firstName: "Petr"    lastName: "Petrov"    email: "ppetrov@example.com"

answers_oci_registry

Параметр, который задает доменное имя (или IP-адрес с пользовательским портом) OCI-совместимого реестра (Nexus, Harbor) для хранения Docker-образов и Helm-чартов.

Этот реестр используется при установке, а также в жизненном цикле окружения в Kubernetes.

Пример:

answers_oci_registry: "nexus.internal.example.com"

answers_helm_plain_http

Параметр, который позволяет использовать Helm-реестр по протоколу HTTP вместо HTTPS.

Принимает значения false и true. Установите true, если Helm-реестр не поддерживает HTTPS.

Пример:

answers_helm_plain_http: true

Пользовательские параметры

Параметр answers_raw_custom_params позволяет переопределять переменные ролей Ansible в формате ключ-значение.

Подробнее — в разделе Переменные ролей Ansible.

Примеры:

  • Настройка сбора логов:

    answers_raw_custom_params:  vector:    vector_resources_limits_memory: "2Gi"  vector_aggregator:    vector_pvc_size: 100Gi
  • Переопределение Helm-значений GitLab:

    answers_raw_custom_params:  gitlab_release_values:    global:      appConfig:        terraformState:          enabled: true    gitlab:      gitaly:        nodeSelector:          dev-platform-node/gitlab-gitaly: gitlab-gitaly    gitaly:      gitaly:        persistence:          storageClass: local-path
  • Увеличение лимитов ресурсов для узлов кластера PostgreSQL:

    answers_raw_custom_params:  zalando_pg_cluster_resources_limits_memory: 8Gi  zalando_pg_cluster_resources_limits_cpu: "8"
  • Использование конструкции {% raw %}...{% endraw %} для указания ссылок на другие переменные:

    answers_raw_custom_params:  some_url: "{% raw %}https://{{ some_domain }}/path{% endraw %}"
  • Добавление дополнительных репозиториев RPM-пакетов:

    answers_raw_custom_params:  common_gitlab_ha_extra_repos:    - |      [extra-repo1]      name=extra-repo1      baseurl="https://nexus.internal.example.com/path"      repo_gpgcheck=0      gpgcheck=0      enabled=1      sslverify=0      metadata_expire=300