From 5f40c7a5b0cb555f64231d18cf105bf0ec7eb0a2 Mon Sep 17 00:00:00 2001 From: Franck Cuny Date: Sat, 5 Nov 2022 12:47:02 -0700 Subject: Revert "ref(drone): remove all modules and configurations" This reverts commit 614fc2fcce0e9ae0bcfdc6e08d3c4bac846d02a8. --- modules/services/drone/runner-exec/default.nix | 55 ++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 modules/services/drone/runner-exec/default.nix (limited to 'modules/services/drone/runner-exec/default.nix') diff --git a/modules/services/drone/runner-exec/default.nix b/modules/services/drone/runner-exec/default.nix new file mode 100644 index 0000000..01cc11b --- /dev/null +++ b/modules/services/drone/runner-exec/default.nix @@ -0,0 +1,55 @@ +{ config, lib, pkgs, ... }: +let + cfg = config.my.services.drone; + hasRunner = (name: builtins.elem name cfg.runners); + execPkg = pkgs.drone-runner-exec; +in +{ + config = lib.mkIf (cfg.enable && hasRunner "exec") { + systemd.services.drone-runner-exec = { + wantedBy = [ "multi-user.target" ]; + # might break deployment + restartIfChanged = false; + confinement.enable = true; + confinement.packages = with pkgs; [ git gnutar bash nixUnstable gzip ]; + path = with pkgs; [ git gnutar bash nixUnstable gzip ]; + serviceConfig = { + Environment = [ + "DRONE_SERVER_HOST=${cfg.vhostName}" + "DRONE_SERVER_PROTO=https" + "DRONE_RUNNER_CAPACITY=10" + "CLIENT_DRONE_RPC_HOST=127.0.0.1:${toString cfg.port}" + "NIX_REMOTE=daemon" + "PAGER=cat" + ]; + BindPaths = [ "/nix/var/nix/daemon-socket/socket" ]; + BindReadOnlyPaths = [ + "/etc/resolv.conf:/etc/resolv.conf" + "/etc/resolvconf.conf:/etc/resolvconf.conf" + "/etc/passwd:/etc/passwd" + "/etc/group:/etc/group" + "/nix/var/nix/profiles/system/etc/nix:/etc/nix" + "${ + config.environment.etc."ssl/certs/ca-certificates.crt".source + }:/etc/ssl/certs/ca-certificates.crt" + "${ + config.environment.etc."ssh/ssh_known_hosts".source + }:/etc/ssh/ssh_known_hosts" + "/etc/machine-id" + # channels are dynamic paths in the nix store, therefore we need to bind mount the whole thing + "/nix/" + ]; + EnvironmentFile = [ cfg.sharedSecretFile ]; + ExecStart = "${execPkg}/bin/drone-runner-exec"; + User = "drone-runner-exec"; + Group = "drone-runner-exec"; + }; + }; + + users.users.drone-runner-exec = { + isSystemUser = true; + group = "drone-runner-exec"; + }; + users.groups.drone-runner-exec = { }; + }; +} -- cgit v1.2.3 From 9038f3998dcc66f2ca091100f857a518fe201212 Mon Sep 17 00:00:00 2001 From: Franck Cuny Date: Sat, 5 Nov 2022 13:26:49 -0700 Subject: fix(services/drone): enable drone The URL for drone changed to https://ci.fcuny.net. The secrets also changed (and we remove the unencrypted file with secrets). --- modules/services/drone/runner-exec/default.nix | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'modules/services/drone/runner-exec/default.nix') diff --git a/modules/services/drone/runner-exec/default.nix b/modules/services/drone/runner-exec/default.nix index 01cc11b..cbfbb9d 100644 --- a/modules/services/drone/runner-exec/default.nix +++ b/modules/services/drone/runner-exec/default.nix @@ -19,10 +19,12 @@ in "DRONE_SERVER_PROTO=https" "DRONE_RUNNER_CAPACITY=10" "CLIENT_DRONE_RPC_HOST=127.0.0.1:${toString cfg.port}" - "NIX_REMOTE=daemon" "PAGER=cat" ]; - BindPaths = [ "/nix/var/nix/daemon-socket/socket" ]; + BindPaths = [ + "/nix/var/nix/daemon-socket/socket" + "/var/run/docker.sock" + ]; BindReadOnlyPaths = [ "/etc/resolv.conf:/etc/resolv.conf" "/etc/resolvconf.conf:/etc/resolvconf.conf" @@ -49,6 +51,7 @@ in users.users.drone-runner-exec = { isSystemUser = true; group = "drone-runner-exec"; + extraGroups = [ "docker" ]; # Give access to the daemon }; users.groups.drone-runner-exec = { }; }; -- cgit v1.2.3