Конфигурация 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 |
Атрибуты хранилища |