clan-core/checks/borgbackup/default.nix

52 lines
1.5 KiB
Nix
Raw Normal View History

(import ../lib/test-base.nix) ({ ... }: {
name = "borgbackup";
2024-02-22 13:50:07 +00:00
nodes.machine = { self, pkgs, ... }: {
imports = [
self.clanModules.borgbackup
self.nixosModules.clanCore
{
services.openssh.enable = true;
services.borgbackup.repos.testrepo = {
authorizedKeys = [
2023-12-16 21:52:01 +00:00
(builtins.readFile ../lib/ssh/pubkey)
];
};
}
{
clanCore.machineName = "machine";
clanCore.clanDir = ./.;
2023-12-04 16:05:37 +00:00
clanCore.state.testState.folders = [ "/etc/state" ];
environment.etc.state.text = "hello world";
2024-02-22 13:50:07 +00:00
systemd.tmpfiles.settings."vmsecrets" = {
"/etc/secrets/borgbackup.ssh" = {
C.argument = "${../lib/ssh/privkey}";
z = {
mode = "0400";
user = "root";
};
};
2024-02-22 13:50:07 +00:00
"/etc/secrets/borgbackup.repokey" = {
C.argument = builtins.toString (pkgs.writeText "repokey" "repokey12345");
z = {
mode = "0400";
user = "root";
};
};
};
2024-02-22 13:50:07 +00:00
clanCore.secretStore = "vm";
clan.borgbackup = {
enable = true;
2024-02-22 13:50:07 +00:00
destinations.test.repo = "borg@localhost:.";
};
}
];
};
testScript = ''
start_all()
machine.systemctl("start --wait borgbackup-job-test.service")
assert "machine-test" in machine.succeed("BORG_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK=yes /run/current-system/sw/bin/borg-job-test list")
'';
})