diff --git a/README.md b/README.md index d0c01cd..04b65ee 100644 --- a/README.md +++ b/README.md @@ -64,40 +64,53 @@ Found roles matching your search: ### Act Runner -| Name | Description | Value | -| ---------------------------------------------- | -------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `gitea_runner_config_file` | Path to the gitea_runner configuration file | `/etc/gitea_runner/config.yaml` | -| `gitea_runner_config.log.level` | The level of logging, can be trace, debug, info, warn, error, fatal | `info` | -| `gitea_runner_config.runner.file` | Where to store the registration result | `.runner` | -| `gitea_runner_config.runner.capacity` | Execute how many tasks concurrently at the same time | `1` | -| `gitea_runner_config.runner.envs` | Extra environment variables to run jobs | `{}` | -| `gitea_runner_config.runner.env_file` | Extra environment variables to run jobs from a file | `.env` | -| `gitea_runner_config.runner.timeout` | The timeout for a job to be finished | `3h` | -| `gitea_runner_config.runner.shutdown_timeout` | The timeout for the runner to wait for running jobs to finish when shutting down | `0s` | -| `gitea_runner_config.runner.insecure` | Whether skip verifying the TLS certificate of the Gitea instance | `false` | -| `gitea_runner_config.runner.fetch_timeout` | The timeout for fetching the job from the Gitea instance | `5s` | -| `gitea_runner_config.runner.fetch_interval` | The interval for fetching the job from the Gitea instance | `2s` | -| `gitea_runner_config.runner.github_mirror` | The mirror address of the github that pulls the action repository | `""` | -| `gitea_runner_config.runner.labels` | The labels of a runner are used to determine which jobs the runner can run | `["ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest","ubuntu-22.04:docker://docker.gitea.com/runner-images:ubuntu-22.04","ubuntu-20.04:docker://docker.gitea.com/runner-images:ubuntu-20.04"]` | -| `gitea_runner_config.cache.enabled` | Enable cache server to use actions/cache | `true` | -| `gitea_runner_config.cache.dir` | The directory to store the cache data | `""` | -| `gitea_runner_config.cache.host` | The host of the cache server | `""` | -| `gitea_runner_config.cache.port` | The port of the cache server | `0` | -| `gitea_runner_config.cache.external_server` | The external cache server URL | `""` | -| `gitea_runner_config.container.network` | Specifies the network to which the container will connect | `""` | -| `gitea_runner_config.container.privileged` | Whether to use privileged mode when launching task containers | `false` | -| `gitea_runner_config.container.options` | Other options to be used when the container is started | `nil` | -| `gitea_runner_config.container.workdir_parent` | The parent directory of a job's working directory | `nil` | -| `gitea_runner_config.container.valid_volumes` | Volumes that can be mounted to containers | `[]` | -| `gitea_runner_config.container.docker_host` | Overrides the docker client host with the specified one | `""` | -| `gitea_runner_config.container.force_pull` | Pull docker image(s) even if already present | `true` | -| `gitea_runner_config.container.force_rebuild` | Rebuild docker image(s) even if already present | `false` | -| `gitea_runner_config.container.require_docker` | Always require a reachable docker daemon | `false` | -| `gitea_runner_config.container.docker_timeout` | Timeout to wait for the docker daemon to be reachable | `0s` | -| `gitea_runner_config.host.workdir_parent` | The parent directory of a job's working directory | `nil` | -| `gitea_runner_unix_extra_groups` | List of additional unix groups to append the executing gitea-runner user to. | `[]` | -| `gitea_runner_gitea_url` | The URL of the Gitea instance | `""` | -| `gitea_runner_token` | The registration token for the gitea_runner | `""` | +| Name | Description | Value | +| --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `gitea_runner_config_file` | Path to the gitea_runner configuration file | `/etc/gitea_runner/config.yaml` | +| `gitea_runner_config.log.level` | The level of logging, can be trace, debug, info, warn, error, fatal | `info` | +| `gitea_runner_config.runner.file` | Where to store the registration result | `.runner` | +| `gitea_runner_config.runner.capacity` | Execute how many tasks concurrently at the same time | `1` | +| `gitea_runner_config.runner.envs` | Extra environment variables to run jobs | `{}` | +| `gitea_runner_config.runner.env_file` | Extra environment variables to run jobs from a file | `.env` | +| `gitea_runner_config.runner.timeout` | The timeout for a job to be finished | `3h` | +| `gitea_runner_config.runner.shutdown_timeout` | The timeout for the runner to wait for running jobs to finish when shutting down | `0s` | +| `gitea_runner_config.runner.insecure` | Whether skip verifying the TLS certificate of the Gitea instance | `false` | +| `gitea_runner_config.runner.fetch_timeout` | The timeout for fetching the job from the Gitea instance | `5s` | +| `gitea_runner_config.runner.fetch_interval` | The interval for fetching the job from the Gitea instance | `2s` | +| `gitea_runner_config.runner.fetch_interval_max` | The maximum interval for fetching the job from the Gitea instance. | `5s` | +| `gitea_runner_config.runner.workdir_cleanup_age` | The maximum interval for fetching the job from the Gitea instance. | `24h` | +| `gitea_runner_config.runner.idle_cleanup_interval` | Cadence for the idle stale bind-workdir cleanup pass. | `10m` | +| `gitea_runner_config.runner.log_report_interval` | The base interval for periodic log flush to the Gitea instance. | `5s` | +| `gitea_runner_config.runner.log_report_max_latency` | The maximum time a log row can wait before being sent. | `3s` | +| `gitea_runner_config.runner.log_report_batch_size` | Flush logs immediately when the buffer reaches this many rows. | `100` | +| `gitea_runner_config.runner.state_report_interval` | The interval for reporting task state (step status, timing) to the Gitea instance. | `5s` | +| `gitea_runner_config.runner.github_mirror` | The mirror address of the github that pulls the action repository | `""` | +| `gitea_runner_config.runner.labels` | The labels of a runner are used to determine which jobs the runner can run | `["ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest","ubuntu-22.04:docker://docker.gitea.com/runner-images:ubuntu-22.04","ubuntu-20.04:docker://docker.gitea.com/runner-images:ubuntu-20.04"]` | +| `gitea_runner_config.runner.allocate_pty` | TODO | `false` | +| `gitea_runner_config.cache.enabled` | Enable cache server to use actions/cache | `true` | +| `gitea_runner_config.cache.dir` | The directory to store the cache data | `""` | +| `gitea_runner_config.cache.host` | The host of the cache server | `""` | +| `gitea_runner_config.cache.port` | The port of the cache server | `0` | +| `gitea_runner_config.cache.external_server` | The external cache server URL | `""` | +| `gitea_runner_config.cache.external_secret` | Shared secret between this runner and the external `gitea-runner cache-server`. | `""` | +| `gitea_runner_config.cache.offline_mode` | When true, reuse a cached action instead of fetching from the remote on every job. | `false` | +| `gitea_runner_config.container.network` | Specifies the network to which the container will connect | `""` | +| `gitea_runner_config.container.privileged` | Whether to use privileged mode when launching task containers | `false` | +| `gitea_runner_config.container.options` | Other options to be used when the container is started | `nil` | +| `gitea_runner_config.container.workdir_parent` | The parent directory of a job's working directory | `nil` | +| `gitea_runner_config.container.valid_volumes` | Volumes that can be mounted to containers | `[]` | +| `gitea_runner_config.container.docker_host` | Overrides the docker client host with the specified one | `""` | +| `gitea_runner_config.container.force_pull` | Pull docker image(s) even if already present | `true` | +| `gitea_runner_config.container.force_rebuild` | Rebuild docker image(s) even if already present | `false` | +| `gitea_runner_config.container.require_docker` | Always require a reachable docker daemon | `false` | +| `gitea_runner_config.container.docker_timeout` | Timeout to wait for the docker daemon to be reachable | `0s` | +| `gitea_runner_config.container.bind_workdir` | Bind the workspace to the host filesystem instead of using Docker volumes. This is required for Docker-in-Docker (DinD) setups when jobs use docker compose with bind mounts (e.g., ".:/app"), as volume-based workspaces are not accessible from the DinD daemon's filesystem. | `false` | +| `gitea_runner_config.host.workdir_parent` | The parent directory of a job's working directory | `nil` | +| `gitea_runner_config.metrics.enabled` | Enable exposing metrics at http:///metrics and a liveness check at /healthz. | `false` | +| `gitea_runner_config.metrics.addr` | The address for the metrics HTTP server. | `127.0.0.1:9101` | +| `gitea_runner_unix_extra_groups` | List of additional unix groups to append the executing gitea-runner user to. | `[]` | +| `gitea_runner_gitea_url` | The URL of the Gitea instance | `""` | +| `gitea_runner_token` | The registration token for the gitea_runner | `""` | ### Package Management diff --git a/defaults/main.yaml b/defaults/main.yaml index 68cc817..a3c4a68 100644 --- a/defaults/main.yaml +++ b/defaults/main.yaml @@ -29,6 +29,20 @@ gitea_runner_config: fetch_timeout: 5s ## @param gitea_runner_config.runner.fetch_interval The interval for fetching the job from the Gitea instance fetch_interval: 2s + ## @param gitea_runner_config.runner.fetch_interval_max The maximum interval for fetching the job from the Gitea instance. + fetch_interval_max: 5s + ## @param gitea_runner_config.runner.workdir_cleanup_age The maximum interval for fetching the job from the Gitea instance. + workdir_cleanup_age: 24h + ## @param gitea_runner_config.runner.idle_cleanup_interval Cadence for the idle stale bind-workdir cleanup pass. + idle_cleanup_interval: 10m + ## @param gitea_runner_config.runner.log_report_interval The base interval for periodic log flush to the Gitea instance. + log_report_interval: 5s + ## @param gitea_runner_config.runner.log_report_max_latency The maximum time a log row can wait before being sent. + log_report_max_latency: 3s + ## @param gitea_runner_config.runner.log_report_batch_size Flush logs immediately when the buffer reaches this many rows. + log_report_batch_size: 100 + ## @param gitea_runner_config.runner.state_report_interval The interval for reporting task state (step status, timing) to the Gitea instance. + state_report_interval: 5s ## @param gitea_runner_config.runner.github_mirror The mirror address of the github that pulls the action repository github_mirror: '' ## @param gitea_runner_config.runner.labels The labels of a runner are used to determine which jobs the runner can run @@ -36,6 +50,8 @@ gitea_runner_config: - "ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest" - "ubuntu-22.04:docker://docker.gitea.com/runner-images:ubuntu-22.04" - "ubuntu-20.04:docker://docker.gitea.com/runner-images:ubuntu-20.04" + ## @param gitea_runner_config.runner.allocate_pty TODO + allocate_pty: false cache: ## @param gitea_runner_config.cache.enabled Enable cache server to use actions/cache @@ -48,6 +64,10 @@ gitea_runner_config: port: 0 ## @param gitea_runner_config.cache.external_server The external cache server URL external_server: "" + ## @param gitea_runner_config.cache.external_secret Shared secret between this runner and the external `gitea-runner cache-server`. + external_secret: "" + ## @param gitea_runner_config.cache.offline_mode When true, reuse a cached action instead of fetching from the remote on every job. + offline_mode: false container: ## @param gitea_runner_config.container.network Specifies the network to which the container will connect @@ -71,10 +91,19 @@ gitea_runner_config: ## @param gitea_runner_config.container.docker_timeout Timeout to wait for the docker daemon to be reachable docker_timeout: 0s + ## @param gitea_runner_config.container.bind_workdir Bind the workspace to the host filesystem instead of using Docker volumes. This is required for Docker-in-Docker (DinD) setups when jobs use docker compose with bind mounts (e.g., ".:/app"), as volume-based workspaces are not accessible from the DinD daemon's filesystem. + bind_workdir: false + host: ## @param gitea_runner_config.host.workdir_parent The parent directory of a job's working directory workdir_parent: + metrics: + ## @param gitea_runner_config.metrics.enabled Enable exposing metrics at http:///metrics and a liveness check at /healthz. + enabled: false + ## @param gitea_runner_config.metrics.addr The address for the metrics HTTP server. + addr: "127.0.0.1:9101" + ## @param gitea_runner_unix_extra_groups List of additional unix groups to append the executing gitea-runner user to. gitea_runner_unix_extra_groups: [] # - docker