config

NixOS config
Log | Files | Refs | README | LICENSE

commit 46155b9cb8d69b40cbd7f129f096a7fa7749b2ab (tree)
parent 277617594eab335ae7bce4b738f31cf3f5675fa0
Author: Motiejus Jakštys <motiejus@jakstys.lt>
Date:   Sat, 23 Sep 2023 22:25:58 +0300

cfg cosmetics

Diffstat:
Mmodules/services/deployerbot/default.nix | 157+++++++++++++++++++++++++++++++++++++++++--------------------------------------
Mmodules/services/nsd-acme/default.nix | 9+++++----
2 files changed, 87 insertions(+), 79 deletions(-)

diff --git a/modules/services/deployerbot/default.nix b/modules/services/deployerbot/default.nix @@ -45,89 +45,96 @@ in { }; config = lib.mkMerge [ - (lib.mkIf cfg.main.enable { - # TODO: git config --global user.email bot@jakstys.lt - users.users.deployerbot-main = { - description = "Deployerbot Main"; - home = "/var/lib/deployerbot-main"; - useDefaultShell = true; - group = "deployerbot-main"; - isSystemUser = true; - createHome = true; - uid = cfg.main.uidgid; - }; - users.groups.deployerbot-main.gid = cfg.main.uidgid; - - systemd.services.deployerbot = { - description = "Update all known systems"; - environment = {TZ = "UTC";}; - path = [pkgs.git pkgs.openssh pkgs.nix]; - restartIfChanged = false; - serviceConfig = { - Type = "oneshot"; - User = "deployerbot-main"; - WorkingDirectory = config.users.users.deployerbot-main.home; - LoadCredential = ["ssh-key:/etc/ssh/ssh_host_ed25519_key"]; + (let + cfg = config.mj.services.deployerbot.main; + in + lib.mkIf cfg.enable { + # TODO: git config --global user.email bot@jakstys.lt + users.users.deployerbot-main = { + description = "Deployerbot Main"; + home = "/var/lib/deployerbot-main"; + useDefaultShell = true; + group = "deployerbot-main"; + isSystemUser = true; + createHome = true; + uid = cfg.uidgid; }; - script = let - deployDerivationsStr = builtins.concatStringsSep " " cfg.main.deployDerivations; - in '' - set -x - export GIT_SSH_COMMAND="ssh -i ''${CREDENTIALS_DIRECTORY}/ssh-key" - if [[ ! -d config ]]; then - git clone ${cfg.main.repo} config - cd config - else - cd config - git fetch origin - git reset --hard origin/main - fi + users.groups.deployerbot-main.gid = cfg.uidgid; - nix flake update --accept-flake-config --commit-lock-file + systemd.services.deployerbot = { + description = "Update all known systems"; + environment = {TZ = "UTC";}; + path = [pkgs.git pkgs.openssh pkgs.nix]; + restartIfChanged = false; + serviceConfig = { + Type = "oneshot"; + User = "deployerbot-main"; + WorkingDirectory = config.users.users.deployerbot-main.home; + LoadCredential = ["ssh-key:/etc/ssh/ssh_host_ed25519_key"]; + }; + script = let + deployDerivationsStr = builtins.concatStringsSep " " cfg.deployDerivations; + in '' + set -x + export GIT_SSH_COMMAND="ssh -i ''${CREDENTIALS_DIRECTORY}/ssh-key" + if [[ ! -d config ]]; then + git clone ${cfg.repo} config + cd config + else + cd config + git fetch origin + git reset --hard origin/main + fi - ${pkgs.deploy-rs}/bin/deploy \ - --ssh-opts="-i ''${CREDENTIALS_DIRECTORY}/ssh-key" \ - --ssh-user=deployerbot-follower \ - --confirm-timeout 60 \ - --targets ${deployDerivationsStr} -- \ - --accept-flake-config + nix flake update --accept-flake-config --commit-lock-file - # Optional deployments - ${lib.concatLines (map mkOptional cfg.main.deployIfPresent)} + ${pkgs.deploy-rs}/bin/deploy \ + --ssh-opts="-i ''${CREDENTIALS_DIRECTORY}/ssh-key" \ + --ssh-user=deployerbot-follower \ + --confirm-timeout 60 \ + --targets ${deployDerivationsStr} -- \ + --accept-flake-config - # done - git push origin main - ''; - }; + # Optional deployments + ${lib.concatLines (map mkOptional cfg.deployIfPresent)} - systemd.timers.deployerbot = { - description = "deployerbot-main timer"; - wantedBy = ["timers.target"]; - timerConfig.OnCalendar = "*-*-* 22:00:00 UTC"; - }; + # done + git push origin main + ''; + }; - mj.base.unitstatus.units = ["deployerbot"]; + systemd.timers.deployerbot = { + description = "deployerbot-main timer"; + wantedBy = ["timers.target"]; + timerConfig.OnCalendar = "*-*-* 22:00:00 UTC"; + }; - nix.settings.trusted-users = ["deployerbot-main"]; - }) - (lib.mkIf cfg.follower.enable { - users.users = { - deployerbot-follower = { - description = "Deployerbot Follower"; - home = "/var/lib/deployerbot-follower"; - useDefaultShell = true; - group = "deployerbot-follower"; - extraGroups = ["wheel"]; - isSystemUser = true; - createHome = true; - uid = cfg.follower.uidgid; - openssh.authorizedKeys.keys = let - restrictedPubKey = "from=\"${builtins.concatStringsSep "," cfg.follower.sshAllowSubnets}\" " + cfg.follower.publicKey; - in [restrictedPubKey]; + mj.base.unitstatus.units = ["deployerbot"]; + + nix.settings.trusted-users = ["deployerbot-main"]; + }) + + (let + cfg = config.mj.services.deployerbot.follower; + in + lib.mkIf cfg.enable { + users.users = { + deployerbot-follower = { + description = "Deployerbot Follower"; + home = "/var/lib/deployerbot-follower"; + useDefaultShell = true; + group = "deployerbot-follower"; + extraGroups = ["wheel"]; + isSystemUser = true; + createHome = true; + uid = cfg.uidgid; + openssh.authorizedKeys.keys = let + restrictedPubKey = "from=\"${builtins.concatStringsSep "," cfg.sshAllowSubnets}\" " + cfg.publicKey; + in [restrictedPubKey]; + }; }; - }; - users.groups.deployerbot-follower.gid = cfg.follower.uidgid; - nix.settings.trusted-users = ["deployerbot-follower"]; - }) + users.groups.deployerbot-follower.gid = cfg.uidgid; + nix.settings.trusted-users = ["deployerbot-follower"]; + }) ]; } diff --git a/modules/services/nsd-acme/default.nix b/modules/services/nsd-acme/default.nix @@ -4,6 +4,7 @@ pkgs, ... }: let + cfg = config.mj.services.nsd-acme; mkHook = zone: let rc = config.services.nsd.remoteControl; fullZone = "_acme-endpoint.${zone}"; @@ -84,7 +85,7 @@ in { }; # TODO assert services.nsd.enable - config = lib.mkIf config.mj.services.nsd-acme.enable { + config = lib.mkIf cfg.enable { services.nsd.remoteControl.enable = true; services.nsd.extraConfig = '' pattern: @@ -186,7 +187,7 @@ in { }; } ) - config.mj.services.nsd-acme.zones; + cfg.zones; systemd.timers = lib.mapAttrs' @@ -201,14 +202,14 @@ in { after = ["network-online.target"]; } ) - config.mj.services.nsd-acme.zones; + cfg.zones; mj.base.unitstatus.units = lib.mkIf config.mj.base.unitstatus.enable ( ["nsd-control-setup"] ++ map (z: "nsd-acme-${z}") - (lib.attrNames config.mj.services.nsd-acme.zones) + (lib.attrNames cfg.zones) ); }; }