From 86d6ef8d0e47fe59fc4f8f3c3905f1e61744145e Mon Sep 17 00:00:00 2001 From: colin93 <33459498+colin93@users.noreply.github.com> Date: Tue, 25 Nov 2025 20:58:14 +0000 Subject: [PATCH] Allow None value maximum_timeout for gitlab_runner (#11174) * change maximum_timeout type to raw * allow None value for maximum_timeout in update_runner * add changelog * update changelog fragment formatting * convert maximum_timeout value of 0 to None * fix sanity check errors * add suggested doc changes * Note version required for timeout disable --------- Co-authored-by: colin --- changelogs/fragments/11174-gitlab-runner-timeout.yml | 2 ++ plugins/modules/gitlab_runner.py | 8 ++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 changelogs/fragments/11174-gitlab-runner-timeout.yml diff --git a/changelogs/fragments/11174-gitlab-runner-timeout.yml b/changelogs/fragments/11174-gitlab-runner-timeout.yml new file mode 100644 index 0000000000..5e638e72a0 --- /dev/null +++ b/changelogs/fragments/11174-gitlab-runner-timeout.yml @@ -0,0 +1,2 @@ +minor_changes: + - gitlab_runner - allow maximum timeout to be disabled by passing ``0`` to ``maximum_timeout`` (https://github.com/ansible-collections/community.general/pull/11174). diff --git a/plugins/modules/gitlab_runner.py b/plugins/modules/gitlab_runner.py index 58519de8c0..3ef335e44e 100644 --- a/plugins/modules/gitlab_runner.py +++ b/plugins/modules/gitlab_runner.py @@ -132,6 +132,7 @@ options: maximum_timeout: description: - The maximum time that a runner has to complete a specific job. + - Use V(0) to disable the timeout. This is available since community.general 12.1.0. default: 3600 type: int run_untagged: @@ -365,7 +366,7 @@ class GitLabRunner: changed = False for arg_key, arg_value in arguments.items(): - if arg_value is not None: + if arg_value is not None or arg_key == "maximum_timeout": if isinstance(arg_value, list): list1 = getattr(runner, arg_key) list1.sort() @@ -475,7 +476,10 @@ def main(): run_untagged = module.params["run_untagged"] runner_locked = module.params["locked"] access_level = module.params["access_level"] - maximum_timeout = module.params["maximum_timeout"] + if module.params["maximum_timeout"] == 0: + maximum_timeout = None + else: + maximum_timeout = module.params["maximum_timeout"] registration_token = module.params["registration_token"] project = module.params["project"] group = module.params["group"]