diff --git a/.gitignore b/.gitignore index 0d09c15223..b034a371db 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,9 @@ venv/ .mypy_cache *.egg-info/ +# OS artifacts +.DS_Store + # BEGIN VALE WORKFLOW IGNORE .vale/styles/* !.vale/styles/local diff --git a/.vale/styles/config/vocabularies/local/accept.txt b/.vale/styles/config/vocabularies/local/accept.txt index 459d236f56..193ec40ec9 100644 --- a/.vale/styles/config/vocabularies/local/accept.txt +++ b/.vale/styles/config/vocabularies/local/accept.txt @@ -2,6 +2,7 @@ aproxy Aproxy GitHub App backoff +cgroup denylist enqueued Gunicorn @@ -15,6 +16,7 @@ plaintext proxied reactively rollout +systemd Tmate unregisters untrusted diff --git a/docs/changelog.md b/docs/changelog.md index 3bbafde804..dd6187cd93 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -2,6 +2,10 @@ This changelog documents user-relevant changes to the GitHub runner charm. +## 2026-04-22 + +- Removed `KillMode=process` from the runner manager systemd service, restoring the default `control-group` kill mode. This ensures all child processes in the service's cgroup are properly terminated when the service stops, preventing orphaned runner processes. + ## 2026-04-17 - Added `token-secret-id` and `openstack-clouds-yaml-secret-id` configuration options, allowing the GitHub token and OpenStack `clouds.yaml` to be supplied through Juju user secrets. When set, these take precedence over the plaintext `token` and `openstack-clouds-yaml` options, which remain supported as a compatibility fallback. diff --git a/github-runner-manager/pyproject.toml b/github-runner-manager/pyproject.toml index b45e993d92..3899e8b5c0 100644 --- a/github-runner-manager/pyproject.toml +++ b/github-runner-manager/pyproject.toml @@ -3,7 +3,7 @@ [project] name = "github-runner-manager" -version = "0.18.0" +version = "0.18.1" authors = [ { name = "Canonical IS DevOps", email = "is-devops-team@canonical.com" }, ] diff --git a/src/manager_service.py b/src/manager_service.py index d8c8160d72..3bb6e85e79 100644 --- a/src/manager_service.py +++ b/src/manager_service.py @@ -397,7 +397,6 @@ def _setup_service_file(unit_name: str, config_file: Path, log_file: Path, log_l RestartSec=30 RestartSteps=5 RestartMaxDelaySec=600 - KillMode=process StandardOutput=append:{log_file} StandardError=append:{log_file}