2024-03-17 18:48:49 +00:00
|
|
|
(import ../lib/test-base.nix) (
|
|
|
|
{ ... }:
|
|
|
|
{
|
|
|
|
name = "borgbackup";
|
2023-11-23 14:43:25 +00:00
|
|
|
|
2024-03-17 18:48:49 +00:00
|
|
|
nodes.machine =
|
|
|
|
{ self, pkgs, ... }:
|
2023-11-23 14:43:25 +00:00
|
|
|
{
|
2024-03-17 18:48:49 +00:00
|
|
|
imports = [
|
|
|
|
self.clanModules.borgbackup
|
|
|
|
self.nixosModules.clanCore
|
|
|
|
{
|
|
|
|
services.openssh.enable = true;
|
|
|
|
services.borgbackup.repos.testrepo = {
|
|
|
|
authorizedKeys = [ (builtins.readFile ../lib/ssh/pubkey) ];
|
2024-02-12 11:59:32 +00:00
|
|
|
};
|
2024-03-17 18:48:49 +00:00
|
|
|
}
|
|
|
|
{
|
2024-06-17 10:42:28 +00:00
|
|
|
clan.core.machineName = "machine";
|
|
|
|
clan.core.clanDir = ./.;
|
|
|
|
clan.core.state.testState.folders = [ "/etc/state" ];
|
2024-03-17 18:48:49 +00:00
|
|
|
environment.etc.state.text = "hello world";
|
|
|
|
systemd.tmpfiles.settings."vmsecrets" = {
|
|
|
|
"/etc/secrets/borgbackup.ssh" = {
|
|
|
|
C.argument = "${../lib/ssh/privkey}";
|
|
|
|
z = {
|
|
|
|
mode = "0400";
|
|
|
|
user = "root";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
"/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
|
|
|
};
|
2024-06-17 10:42:28 +00:00
|
|
|
clan.core.facts.secretStore = "vm";
|
2024-02-22 13:50:07 +00:00
|
|
|
|
2024-03-17 18:48:49 +00:00
|
|
|
clan.borgbackup.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")
|
|
|
|
'';
|
|
|
|
}
|
|
|
|
)
|