Skip to content

application.properties Configuration


This section contains information about the parameters of the application.properties file.

General Settings

Parameter Required Default Value Description
runner.executor Yes Sets the type of agent to be launched.
runner.id Yes Automatically set during agent registration Agent ID.
runner.gitflic-host Yes Automatically set during agent registration The address where GitFlic is located.
runner.registrationToken Yes Automatically set during agent registration Token obtained from the GitFlic application.
runner.workingDir No $HOME/gitflic-runner - Unix
%USERPROFILE%/gitflic-runner - Windows
Sets the absolute path to the agent's working directory.
Available in agent version 2.0.x and above.
runner.helperDir No $HOME/gitflic-runner - Unix
%USERPROFILE%/gitflic-runner - Windows
Sets the absolute path to the directory containing the helper.jar, helper.sh/helper.bat files.
Available in agent version 2.0.x and above.
runner.job-variables-size-limit-characters No 262144 Limit on the maximum number of characters for all agent variables (key + value), including predefined ones.
runner.runnerConcurrencyMode No DEFAULT Agent concurrency setting. Works for agents of type docker and kuber. Accepts values: AUTO, DEFAULT, CUSTOM. In AUTO mode, the number of concurrently executed tasks is calculated as (number of logical cores of the device where the Agent is running / 2 + 1). In DEFAULT mode, tasks are executed sequentially. In CUSTOM mode, the number of concurrently executed tasks is determined by the runner.limitOfConcurrencyToProcessJobs parameter.
runner.limitOfConcurrencyToProcessJobs No Defaults to 3 if concurrency is enabled This parameter is used when runner.runnerConcurrencyMode=CUSTOM to specify the maximum number of concurrently executed tasks.
runner.enableExecScriptsInSession No true When true, the agent executes tasks in a single context; when false, in different contexts.
prometheus-metrics.enabled No false When true, an HTTP server for collecting agent metrics will be created. The server will be created on the port specified in the prometheus-metrics.port parameter.
prometheus-metrics.port No The port on which the HTTP server for collecting agent metrics will be created.
prometheus-metrics.token No Token for authorization. If specified, this token must be passed in the Authorization header (e.g., Authorization: Bearer 123asd).

Logging Settings

Parameter Required Default Value Description
logging.level.root No INFO Logging level (similar to gitflic settings).
logging.file.name Yes $HOME/gitflic-runner/data/log/server.log Path to the log file (similar to gitflic settings).
runner.log-limit-kilobytes No 100 Maximum agent log size in kilobytes. Possible values from 10 to 25600 KB.

Parameters for Agent of Type Docker

* If an agent type other than Docker is specified, these parameters will be ignored.

Parameter Required Default Value Description
runner.helperImage No gitflic/gitflic-runner-helper Docker Image for the helper container.
Available in agent version 2.0.0 and above.
docker.host Yes unix:///var/run/docker.sock Path to the Docker Engine socket.
docker.tls-verify Yes false Specifies whether to perform TLS certificate validation.
docker.cert-path Yes ~/docker/certs Path to Docker Engine certificates.
docker.registry-username Yes Login for Docker Registry.
docker.registry-password Yes Password for Docker Registry.
docker.registry-url Yes URL where the Docker Registry is located.
docker.registry-email No Email for Docker Registry.
docker.docker-config No Path to Docker Engine configuration files.
docker.didEnable No false Parameter to enable Docker-in-Docker mode.
docker.default-image No docker:latest The image that will be used for work if no other is specified in the task or pipeline.
docker.volumes[0] No Additional volumes to be mounted to the container. Uses the same syntax as the -v flag in Docker. Example: docker.volumes[0]=/Users/admin/docs:/builds/adminuser/test/docs. The number in square brackets is used for volume numbering.
docker.volume-driver No local The driver to be used when creating volumes.
docker.volume_driver_ops No Specifies additional options for the volume driver used when creating volumes.
docker.cache_dir No Defines the absolute path to the directory where anonymous volumes will be placed.
docker.disable_cache No false When true, disables the local cache for anonymous volumes, i.e., disables the ability to use anonymous volumes.
docker.privileged No false Parameter to define the container launch mode. When true, the agent launches all containers in privileged mode.

* You can learn about the volume mounting functionality on this page.

To work with multiple Docker Registries, you must specify an array of authorization data:

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}

Parameters for Agent of Type Kuber

Please note

If an agent type other than kuber is specified, these parameters will be ignored.

Cluster Authentication

Parameter Description
kubernetes.client.config.host Kubernetes URL.
kubernetes.client.config.file Path to kubeconfig for cluster authentication.
kubernetes.client.config.cert_file Path to the user's authorization certificate.
kubernetes.client.config.key_file Path to the user's private key.
kubernetes.client.config.ca_file Path to the root certificate.

Cluster authentication follows this algorithm:

  • If the kubernetes.client.config.file parameter is specified, the provided kubeconfig is used for authentication.
  • Otherwise, the parameters kubernetes.client.config.host, kubernetes.client.config.cert_file, kubernetes.client.config.key_file, and kubernetes.client.config.ca_file are checked -- if all four parameters are filled, they will be used for cluster authentication.
  • Otherwise, the presence of the KUBECONFIG environment variable is checked -- used if present.
  • Otherwise, the presence of configuration in the home directory ~/.kube/config is checked -- used if present.
  • Otherwise, the presence of the root certificate /var/run/secrets/kubernetes.io/serviceaccount/ca.crt is checked -- if present, an attempt will be made to authenticate to the cluster using the service account token that was specified when deploying the agent (spec.serviceAccountName).

Main Parameters

Parameter Description
kubernetes.volumes.type Storage type (defaults to emptyDir if not specified otherwise).
kubernetes.volumes.size Memory allocated for storage (defaults to 1Gi if not specified otherwise).
kubernetes.volumes.pollTimeout Time in seconds allocated for attempts to successfully run the pod with helper & job containers (defaults to 180 if not specified otherwise).
kubernetes.volumes.pollInterval How often, in seconds, the runner will request the pod's readiness status (defaults to 3 if not specified otherwise).
kubernetes.volumes.hostBaseCachePath Path on the host machine for storing cache (defaults to /var/tmp/kuber/runner/cache/ if not specified otherwise).
kubernetes.volumes.hostBaseBuildPath Path on the host machine for storing project source code (defaults to /var/tmp/kuber/runner/build/ if not specified otherwise).
kubernetes.namespace The namespace name in which the pipeline will be executed (defaults to gitflic-runner).
kubernetes.imagePullSecret The name of the secret of type kubernetes.io/dockerconfigjson for authentication in private repositories (see https://docs.gitflic.ru/setup/runner/kuber_run/).

Currently implemented storage types:

  • local - persistent
  • hostPath - persistent
  • emptyDir - ephemeral
  • nfs - persistent
  • csi - depends on the driver

When using storage of type local, the following parameters must be specified:

Parameter Description
kubernetes.volumes.localNodeHost The name of the node on which the storage will be created and the pod will be launched.

When using storage of type nfs, the following parameters must be specified:

Parameter Description
kubernetes.volumes.nfsHost NFS server address.

When using storage of type csi, the following parameters can be used (depends on the csi driver that will be used):

Parameter Description
kubernetes.volumes.driver Name of the CSI driver.
kubernetes.volumes.storageClass Name of the StorageClass (if the specified StorageClass exists in the cluster, it will be used; otherwise, a new one will be created).
kubernetes.volumes.storageClassAttributes Attributes for creating the StorageClass.
kubernetes.volumes.volumeAttributes Storage attributes.

Automatic Translation!

This page has been translated by automatic means. The text may contain inaccuracies.