{ config, lib, ... }: let cfg = config.frajul.gitlab-runner; in { options = { frajul.gitlab-runner = { enable = lib.mkEnableOption "gitlab-runner"; secretsFile = lib.mkOption { type = lib.types.path; description = "A sops encrpyted file containing a 'gitlab_runner_token' secret"; }; }; }; config = lib.mkIf cfg.enable { services.gitlab-runner.enable = true; sops.secrets."gitlab_runner_token".sopsFile = cfg.secretsFile; services.gitlab-runner.services.default = { # File should contain at least these two variables: authenticationTokenConfigFile = config.sops.secrets."gitlab_runner_token".path; dockerImage = "alpine:latest"; dockerVolumes = [ "/var/run/docker.sock:/var/run/docker.sock" ]; }; }; }