X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=modules%2Fprivate%2Fbuildbot%2Fdefault.nix;h=ec28b632d799b7ad6822fafd89e54e8dfa36d15f;hb=5315b439af1f72c3282549508ae58d86d66e38ec;hp=ac34845bcbda084dc53ba6927dad8a010f7800b6;hpb=200690c9aecec1f38c1a62a65916df2950e1afe7;p=perso%2FImmae%2FConfig%2FNix.git diff --git a/modules/private/buildbot/default.nix b/modules/private/buildbot/default.nix index ac34845..ec28b63 100644 --- a/modules/private/buildbot/default.nix +++ b/modules/private/buildbot/default.nix @@ -24,10 +24,6 @@ in }; config = lib.mkIf config.myServices.buildbot.enable { - services.duplyBackup.profiles.buildbot = { - rootDir = varDir; - remotes = [ "eriomem" "ovh" ]; - }; ids.uids.buildbot = config.myEnv.buildbot.user.uid; ids.gids.buildbot = config.myEnv.buildbot.user.gid; @@ -42,7 +38,7 @@ in }; services.websites.env.tools.watchPaths = lib.attrsets.mapAttrsToList - (k: project: "/var/secrets/buildbot/${project.name}/webhook-httpd-include") + (k: project: config.secrets.fullPaths."buildbot/${project.name}/webhook-httpd-include") config.myEnv.buildbot.projects; services.websites.env.tools.vhostConfs.git.extraConfig = lib.attrsets.mapAttrsToList (k: project: '' @@ -62,7 +58,7 @@ in Require local Require ldap-group cn=users,ou=${project.name},cn=buildbot,ou=services,dc=immae,dc=eu - Include /var/secrets/buildbot/${project.name}/webhook-httpd-include + Include ${config.secrets.fullPaths."buildbot/${project.name}/webhook-httpd-include"} '') config.myEnv.buildbot.projects; @@ -76,33 +72,30 @@ in ''; }) config.myEnv.buildbot.projects; - secrets.keys = ( + secrets.keys = lib.listToAttrs ( lib.lists.flatten ( lib.attrsets.mapAttrsToList (k: project: lib.attrsets.mapAttrsToList (k: v: - { + (lib.nameValuePair "buildbot/${project.name}/${k}" { permissions = "0600"; user = "buildbot"; group = "buildbot"; text = v; - dest = "buildbot/${project.name}/${k}"; - } + }) ) project.secrets ++ [ - { + (lib.nameValuePair "buildbot/${project.name}/webhook-httpd-include" { permissions = "0600"; user = "wwwrun"; group = "wwwrun"; text = lib.optionalString (project.webhookTokens != null) '' Require expr "req('Access-Key') in { ${builtins.concatStringsSep ", " (map (x: "'${x}'") project.webhookTokens)} }" ''; - dest = "buildbot/${project.name}/webhook-httpd-include"; - } - { + }) + (lib.nameValuePair "buildbot/${project.name}/environment_file" { permissions = "0600"; user = "buildbot"; group = "buildbot"; - dest = "buildbot/${project.name}/environment_file"; text = let project_env = with lib.attrsets; mapAttrs' (k: v: nameValuePair "BUILDBOT_${k}" v) project.environment // @@ -115,42 +108,39 @@ in }; in builtins.concatStringsSep "\n" (lib.mapAttrsToList (envK: envV: "${envK}=${envV}") project_env); - } + }) ] ) config.myEnv.buildbot.projects ) - ) ++ [ - { + ) // { + "buildbot/ldap" = { permissions = "0600"; user = "buildbot"; group = "buildbot"; text = config.myEnv.buildbot.ldap.password; - dest = "buildbot/ldap"; - } - { + }; + "buildbot/worker_password" = { permissions = "0600"; user = "buildbot"; group = "buildbot"; text = config.myEnv.buildbot.workerPassword; - dest = "buildbot/worker_password"; - } - { + }; + "buildbot/ssh_key" = { permissions = "0600"; user = "buildbot"; group = "buildbot"; - text = builtins.readFile "${config.myEnv.privateFiles}/buildbot_ssh_key"; - dest = "buildbot/ssh_key"; - } - ]; + text = config.myEnv.buildbot.ssh_key.private; + }; + }; services.filesWatcher = lib.attrsets.mapAttrs' (k: project: lib.attrsets.nameValuePair "buildbot-${project.name}" { restart = true; paths = [ - "/var/secrets/buildbot/ldap" - "/var/secrets/buildbot/worker_password" - "/var/secrets/buildbot/ssh_key" - "/var/secrets/buildbot/${project.name}/environment_file" - ] ++ lib.attrsets.mapAttrsToList (k: v: "/var/secrets/buildbot/${project.name}/${k}") project.secrets; + config.secrets.fullPaths."buildbot/ldap" + config.secrets.fullPaths."buildbot/worker_password" + config.secrets.fullPaths."buildbot/ssh_key" + config.secrets.fullPaths."buildbot/${project.name}/environment_file" + ] ++ lib.attrsets.mapAttrsToList (k: v: config.secrets.fullPaths."buildbot/${project.name}/${k}") project.secrets; }) config.myEnv.buildbot.projects; systemd.slices.buildbot = { @@ -206,13 +196,13 @@ in fi ln -sf ${tac_file} ${varDir}/${project.name}/buildbot.tac # different buildbots may be trying that simultaneously, add the || true to avoid complaining in case of race - install -Dm600 -o buildbot -g buildbot -T /var/secrets/buildbot/ssh_key ${varDir}/buildbot_key || true + install -Dm600 -o buildbot -g buildbot -T ${config.secrets.fullPaths."buildbot/ssh_key"} ${varDir}/buildbot_key || true buildbot_secrets=${varDir}/${project.name}/secrets install -m 0700 -o buildbot -g buildbot -d $buildbot_secrets - install -Dm600 -o buildbot -g buildbot -T /var/secrets/buildbot/ldap $buildbot_secrets/ldap - install -Dm600 -o buildbot -g buildbot -T /var/secrets/buildbot/worker_password $buildbot_secrets/worker_password + install -Dm600 -o buildbot -g buildbot -T ${config.secrets.fullPaths."buildbot/ldap"} $buildbot_secrets/ldap + install -Dm600 -o buildbot -g buildbot -T ${config.secrets.fullPaths."buildbot/worker_password"} $buildbot_secrets/worker_password ${builtins.concatStringsSep "\n" (lib.attrsets.mapAttrsToList - (k: v: "install -Dm600 -o buildbot -g buildbot -T /var/secrets/buildbot/${project.name}/${k} $buildbot_secrets/${k}") project.secrets + (k: v: "install -Dm600 -o buildbot -g buildbot -T ${config.secrets.fullPaths."buildbot/${project.name}/${k}"} $buildbot_secrets/${k}") project.secrets )} ${buildbot}/bin/buildbot upgrade-master ${varDir}/${project.name} ''; @@ -247,7 +237,7 @@ in SupplementaryGroups = "keys"; WorkingDirectory = "${varDir}/${project.name}"; ExecStart = "${buildbot}/bin/buildbot start"; - EnvironmentFile = "/var/secrets/buildbot/${project.name}/environment_file"; + EnvironmentFile = config.secrets.fullPaths."buildbot/${project.name}/environment_file"; }; }) config.myEnv.buildbot.projects; };