diff --git a/nixos/modules/services/continuous-integration/gitlab-runner.nix b/nixos/modules/services/continuous-integration/gitlab-runner.nix index c603aff38038..34e9b6200783 100644 --- a/nixos/modules/services/continuous-integration/gitlab-runner.nix +++ b/nixos/modules/services/continuous-integration/gitlab-runner.nix @@ -40,6 +40,7 @@ let cfg = config.services.gitlab-runner; hasDocker = config.virtualisation.docker.enable; + hasPodman = config.virtualisation.podman.enable && config.virtualisation.podman.dockerSocket.enable; /* The whole logic of this module is to diff the hashes of the desired vs existing runners The hash is recorded in the runner's name because we can't do better yet @@ -702,8 +703,11 @@ in { description = "Gitlab Runner"; documentation = [ "https://docs.gitlab.com/runner/" ]; after = [ "network.target" ] - ++ optional hasDocker "docker.service"; - requires = optional hasDocker "docker.service"; + ++ optional hasDocker "docker.service" + ++ optional hasPodman "podman.service"; + + requires = optional hasDocker "docker.service" + ++ optional hasPodman "podman.service"; wantedBy = [ "multi-user.target" ]; environment = config.networking.proxy.envVars // { HOME = "/var/lib/gitlab-runner"; @@ -729,7 +733,8 @@ in { # Make sure to restart service or changes won't apply. DynamicUser = true; StateDirectory = "gitlab-runner"; - SupplementaryGroups = optional hasDocker "docker"; + SupplementaryGroups = optional hasDocker "docker" + ++ optional hasPodman "podman"; ExecStartPre = "!${configureScript}/bin/gitlab-runner-configure"; ExecStart = "${startScript}/bin/gitlab-runner-start"; ExecReload = "!${configureScript}/bin/gitlab-runner-configure";