Перейти к содержанию

Конфигурация application.properties


В данном разделе находится информация о параметрах application.properties файла.

Общие настройки

Параметр Обязательный Значение по умолчанию Описание
runner.executor Да Задает тип запускаемого агента
runner.id Да Задается автоматически при регистрации агента Id Агента
runner.gitflic-host Да Задается автоматически при регистрации агента Адрес на котором располагается GitFlic
runner.registrationToken Да Задается автоматически при регистрации агента Токен полученный в приложении GitFlic
runner.workingDir Нет $HOME/gitflic-runner - Unix
%USERPROFILE%/gitflic-runner - Windows
Задает абсолютный путь до рабочей директории агента
Доступен в версии агента 2.0.х и выше
runner.helperDir Нет $HOME/gitflic-runner - Unix
%USERPROFILE%/gitflic-runner - Windows
Задает абсолютный путь до директории с расположением helper.jar, helper.sh/helper.bat файлов
Доступен в версии агента 2.0.х и выше
runner.job-variables-size-limit-characters Нет 262144 Ограничение на максимальное количество символов для всех переменных агента (ключ + значение), включая предопределенные
runner.runnerConcurrencyMode Нет DEFAULT Настройка мультизадачности агента. Работает для агентов с типом docker и kuber. Принимает значения AUTO, DEFAULT, CUSTOM. В режиме AUTO количество параллельно выполняемых задач вычисляется как (количество логических ядер устройства на котором запущен Агент / 2 + 1). В режиме DEFAULT задачи выполняются последовательно. В режиме CUSTOM количество параллельно выполняемых задач определяется параметром runner.limitOfConcurrencyToProcessJobs
runner.limitOfConcurrencyToProcessJobs Нет По умолчанию, если включена мультизадачность, используется значение 3 Параметр используется, при значении runner.runnerConcurrencyMode=CUSTOM, для указания максимального значения одновременно выполняемых задач
runner.enableExecScriptsInSession Нет true При значении true агент выполняет задачи в одном контексте, при значении false в разных
prometheus-metrics.enabled Нет false При значении true будет создан http-сервер для сбора метрик агента. Сервер будет создан на порту, указанном в параметре prometheus-metrics.port
prometheus-metrics.port Нет Порт на котором будет создан http-сервер для сбора метрик агента
prometheus-metrics.token Нет Токен для авторизации. Если указан, то данный токен необходимо передать в заголовке Authorization (например, Authorization: Bearer 123asd)

Настройки логирования

Параметр Обязательный Значение по умолчанию Описание
logging.level.root Нет INFO Уровень логирования (аналогично настройкам gitflic)
logging.file.name Да $HOME/gitflic-runner/data/log/server.log Путь до файла с логами (аналогично настройкам gitflic)
runner.log-limit-kilobytes Нет 100 Максимальный размер логов агента в килобайтах. Возможны значения от 10 до 25600 КБ

Параметры для агента с типом docker

* При указании типа агента отличного от Docker, данные параметры будут проигнорированы

Параметр Обязательный Значение по умолчанию Описание
runner.helperImage Нет gitflic/gitflic-runner-helper Docker Image вспомогательного контейнера
Доступен в версии агента 2.0.0 и выше
docker.host Да unix:///var/run/docker.sock Путь до сокета Docker Engine
docker.tls-verify Да false Задает нужно ли осуществлять валидацию TLS сертификатов
docker.cert-path Да ~/docker/certs Путь до сертификатов Docker Engine
docker.registry-username Да Логин для Docker Registry
docker.registry-password Да Пароль для Docker Registry
docker.registry-url Да Url по которому располагается Docker Registry
docker.registry-email Нет Email для Docker Registry
docker.docker-config Нет Путь до конфигурационных файлов Docker Engine
docker.didEnable Нет false Параметр для включения режима Docker-in-Docker
docker.default-image Нет docker:latest Образ, который будет использован для работы, если не указан любой другой в задачи или конвейере
docker.volumes[0] Нет Дополнительные тома, которые должны быть подключены к контейнеру. Используется тот же синтаксис, что и флаг -v в Docker. Пример: docker.volumes[0]=/Users/admin/docs:/builds/adminuser/test/docs. Число в квадратных скобках используется для нумерации томов.
docker.volume-driver Нет local Драйвер, который будет использоваться при создании томов.
docker.volume_driver_ops Нет Задает дополнительные опции для драйвера томов, используемые при создании томов.
docker.cache_dir Нет Определяет абсолютный путь до директории, в которой будут размещаться анонимные тома.
docker.disable_cache Нет false При значении true отключает локальный кэш для анонимных томов, то есть отключает возможность использования анонимных томов.
docker.privileged Нет false Параметр для определения режима запуска контейнеров. При значении true агент запускает все контейнеры в привилегированном режиме.

* Ознакомиться с функционалом монтирования томов можно на данной странице

Для работы с несколькими Docker Registry необходимо указать массив данных для авторизации:

docker.registries[0].url={URL_1}

docker.registries[0].username={username_1}

docker.registries[0].password={password_1}

docker.registries[1].url={URL_2}

docker.registries[1].username={username_2}

docker.registries[1].password={password_2}

Параметры для агента с типом kuber

Обратите внимание

При указании типа агента отличного от kuber, данные параметры будут проигнорированы

Авторизация в кластере

Параметр Описание
kubernetes.client.config.host Kubernetes URL
kubernetes.client.config.file Путь до kubeconfig для авторизации в кластере
kubernetes.client.config.cert_file Путь до авторизационного сертификата пользователя
kubernetes.client.config.key_file Путь до закрытого ключа пользователя
kubernetes.client.config.ca_file Путь до корневого сертификата

Авторизация в кластере происходит по следующему алгоритму:

  • если указан параметр kubernetes.client.config.file, то используем переданный kubeconfig для авторизации
  • в противном случае проверяются параметры kubernetes.client.config.host, kubernetes.client.config.cert_file, kubernetes.client.config.key_file и kubernetes.client.config.ca_file -- если заполнены все четыре параметра, то они и будут использоваться для авторизации в кластере
  • в противном случае проверяется наличие переменной окружения KUBECONFIG -- используется при наличии
  • в противном случае проверяется наличие конфигурации в домашней директории ~/.kube/config -- используется при наличии
  • в противном случае проверяется наличие корневого сертификата /var/run/secrets/kubernetes.io/serviceaccount/ca.crt -- при его наличии будет осуществлена попытка авторизации в кластере с помощью токена сервисного аккаунта, который был указан при развертывании агента (spec.serviceAccountName)

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

Параметр Описание
kubernetes.volumes.type Тип хранилища (по умолчанию emptyDir, если не указано иное)
kubernetes.volumes.size Память, выделяемая под хранилище (по умолчанию 1Gi, если не указано иное)
kubernetes.volumes.pollTimeout Время в секундах, отведенное на попытки успешно запустить под с helper & job контейнерами (по умолчанию 180, если не указано иное)
kubernetes.volumes.pollInterval Как часто, в секундах, runner будет запрашивать у пода статус готовности (по умолчанию 3, если не указано иное)
kubernetes.volumes.hostBaseCachePath Путь на хостовой машине для хранения кэша (по умолчанию /var/tmp/kuber/runner/cache/, если не указано иное)
kubernetes.volumes.hostBaseBuildPath Путь на хостовой машине для хранения исходного кода проекта (по умолчанию /var/tmp/kuber/runner/build/, если не указано иное)
kubernetes.namespace Наименование namespace, в котором будет выполняться конвейер (по умолчанию gitflic-runner)
kubernetes.imagePullSecret Наименование секрета с типом kubernetes.io/dockerconfigjson для авторизации в приватных репозиториях (см. https://docs.gitflic.ru/setup/runner/kuber_run/)

Реализованные на данный момент типы хранилищ:

  • local - персистентное
  • hostPath - персистентное
  • emptyDir - эфемерное
  • nfs - персистентное
  • csi - зависит от драйвера

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

Параметр Описание
kubernetes.volumes.localNodeHost Наименование ноды, на которой будет создано хранилище и запущен под

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

Параметр Описание
kubernetes.volumes.nfsHost Адрес NFS сервера

При использовании хранилища с типом csi, могут быть использованы следующие параметры (зависит от csi драйвера, который будет использован):

Параметр Описание
kubernetes.volumes.driver Наименование CSI драйвера
kubernetes.volumes.storageClass Наименование StorageClass (если указанный StorageClass существует в кластере, то будет использоваться он, в противном случае будет создан новый)
kubernetes.volumes.storageClassAttributes Атрибуты для создания StorageClass
kubernetes.volumes.volumeAttributes Атрибуты хранилища