From c192929e34528c759bd3eaec7daaa497de404c27 Mon Sep 17 00:00:00 2001 From: Emil Simeonov Date: Mon, 10 Aug 2026 01:19:13 +0200 Subject: [PATCH] fix: tune rootless Docker daemon for parallel DinD reliability Add userland-proxy=false and log-opts (10m, 3 files) to the rootless Docker daemon.json. The userland proxy adds overhead under parallel container creation and can become a bottleneck during CI molecule tests. Log rotation prevents disk exhaustion from container logs under heavy DinD load, which caused the daemon to become unresponsive (context deadline exceeded on /_ping). Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- ansible/roles/gitea_runner/defaults/main.yml | 8 ++++++++ ansible/roles/gitea_runner/tasks/rootless_docker.yml | 10 ++++++++++ 2 files changed, 18 insertions(+) diff --git a/ansible/roles/gitea_runner/defaults/main.yml b/ansible/roles/gitea_runner/defaults/main.yml index 5a5fe71..1d991ce 100644 --- a/ansible/roles/gitea_runner/defaults/main.yml +++ b/ansible/roles/gitea_runner/defaults/main.yml @@ -76,6 +76,14 @@ gitea_runner_docker_shutdown_timeout: 30 gitea_runner_docker_max_concurrent_downloads: 3 gitea_runner_docker_max_concurrent_uploads: 3 gitea_runner_docker_default_nofile: 65536 +# Log file size limits — under parallel DinD load, container logs can fill +# disk and cause the daemon to become unresponsive. Limit log size per container. +gitea_runner_docker_max_log_size: "10m" +gitea_runner_docker_max_log_files: 3 +# Userland proxy disabled — it adds overhead and can become a bottleneck +# under parallel container creation. Direct routing is faster and more +# reliable for CI workloads. +gitea_runner_docker_userland_proxy: false # Admin token for runner deregistration via Gitea API. # If not set, falls back to registration_token (which likely lacks admin scope). diff --git a/ansible/roles/gitea_runner/tasks/rootless_docker.yml b/ansible/roles/gitea_runner/tasks/rootless_docker.yml index 8f087dc..20c8496 100644 --- a/ansible/roles/gitea_runner/tasks/rootless_docker.yml +++ b/ansible/roles/gitea_runner/tasks/rootless_docker.yml @@ -180,6 +180,11 @@ "features": { "containerd-snapshotter": false }, + "userland-proxy": {{ gitea_runner_docker_userland_proxy | to_json }}, + "log-opts": { + "max-size": "{{ gitea_runner_docker_max_log_size }}", + "max-file": {{ gitea_runner_docker_max_log_files }} + }, {% if gitea_runner_docker_rootless_net_driver == 'pasta' %} "ipv6": true, "ip6tables": true, @@ -283,6 +288,11 @@ "features": { "containerd-snapshotter": false }, + "userland-proxy": {{ gitea_runner_docker_userland_proxy | to_json }}, + "log-opts": { + "max-size": "{{ gitea_runner_docker_max_log_size }}", + "max-file": {{ gitea_runner_docker_max_log_files }} + }, {% if gitea_runner_docker_rootless_net_driver == 'pasta' %} "ipv6": true, "ip6tables": true,