Merge remote-tracking branch 'cd/master'
This commit is contained in:
commit
3f4cec9196
@ -28,9 +28,17 @@ let
|
|||||||
type = types.krebs.file-location;
|
type = types.krebs.file-location;
|
||||||
};
|
};
|
||||||
startAt = mkOption {
|
startAt = mkOption {
|
||||||
type = types.str;
|
default = "hourly";
|
||||||
|
type = types.str; # TODO systemd.time(7)'s calendar event
|
||||||
};
|
};
|
||||||
snapshots = mkOption {
|
snapshots = mkOption {
|
||||||
|
default = {
|
||||||
|
hourly = { format = "%Y-%m-%dT%H"; retain = 4; };
|
||||||
|
daily = { format = "%Y-%m-%d"; retain = 7; };
|
||||||
|
weekly = { format = "%YW%W"; retain = 4; };
|
||||||
|
monthly = { format = "%Y-%m"; retain = 12; };
|
||||||
|
yearly = { format = "%Y"; };
|
||||||
|
};
|
||||||
type = types.attrsOf (types.submodule {
|
type = types.attrsOf (types.submodule {
|
||||||
options = {
|
options = {
|
||||||
format = mkOption {
|
format = mkOption {
|
||||||
@ -284,3 +292,15 @@ let
|
|||||||
};
|
};
|
||||||
|
|
||||||
in out
|
in out
|
||||||
|
# TODO ionice
|
||||||
|
# TODO mail on failed push, pull
|
||||||
|
# TODO mail on missing push
|
||||||
|
# TODO don't cancel plans on activation
|
||||||
|
# also, don't hang while deploying at:
|
||||||
|
# starting the following units: backup.wu-home-xu.push.service, backup.wu-home-xu.push.timer
|
||||||
|
# TODO make sure /bku is properly mounted
|
||||||
|
# TODO make sure that secure hosts cannot backup to insecure ones
|
||||||
|
# TODO optionally only backup when src and dst are near enough :)
|
||||||
|
# TODO try using btrfs for snapshots (configurable)
|
||||||
|
# TODO warn if partial snapshots are found
|
||||||
|
# TODO warn if unknown stuff is found in dst path
|
||||||
|
@ -247,6 +247,7 @@ with lib;
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
secure = true;
|
secure = true;
|
||||||
|
ssh.privkey.path = <secrets/ssh.id_ed25519>;
|
||||||
ssh.pubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIcJvu8JDVzObLUtlAQg9qVugthKSfitwCljuJ5liyHa";
|
ssh.pubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIcJvu8JDVzObLUtlAQg9qVugthKSfitwCljuJ5liyHa";
|
||||||
};
|
};
|
||||||
xu = {
|
xu = {
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
{ coreutils, gnugrep, gnused, fetchgit, jq, nix, stdenv, ... }:
|
{ coreutils, gnugrep, gnused, fetchgit, jq, nix, stdenv, ... }:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "get-1.3.1";
|
name = "get-1.4.0";
|
||||||
|
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
url = http://cgit.cd.krebsco.de/get;
|
url = http://cgit.cd.krebsco.de/get;
|
||||||
rev = "64c97edd3f9952cd5e703208c46748a035a515bf";
|
rev = "08757d47c480c130d69270855c6c0371f6b7d385";
|
||||||
sha256 = "32ca83f4fd86fd3285bef9dcfd0917308086d239189858daceca175de49ff97c";
|
sha256 = "7c609e2cde7a071bbf62241a7bea60313fdbf076b9f7b3d97226417e13e5ba9d";
|
||||||
};
|
};
|
||||||
|
|
||||||
phases = [
|
phases = [
|
||||||
|
@ -2,41 +2,17 @@
|
|||||||
with lib;
|
with lib;
|
||||||
{
|
{
|
||||||
krebs.backup.plans = addNames {
|
krebs.backup.plans = addNames {
|
||||||
xu-test-cd = {
|
wu-home-xu = {
|
||||||
method = "push";
|
method = "push";
|
||||||
|
src = { host = config.krebs.hosts.wu; path = "/home"; };
|
||||||
src = { host = config.krebs.hosts.xu; path = "/tmp/xu-test"; };
|
dst = { host = config.krebs.hosts.xu; path = "/bku/wu-home"; };
|
||||||
dst = { host = config.krebs.hosts.cd; path = "/tmp/backups/xu-test"; };
|
startAt = "05:00";
|
||||||
|
|
||||||
#startAt = "0,6,12,18:00";
|
|
||||||
startAt = "minutely";
|
|
||||||
snapshots = {
|
snapshots = {
|
||||||
minutely = { format = "%Y-%m-%dT%H:%M"; retain = 5; };
|
|
||||||
hourly = { format = "%Y-%m-%dT%H"; retain = 4; };
|
|
||||||
daily = { format = "%Y-%m-%d"; retain = 7; };
|
daily = { format = "%Y-%m-%d"; retain = 7; };
|
||||||
weekly = { format = "%YW%W"; retain = 4; };
|
weekly = { format = "%YW%W"; retain = 4; };
|
||||||
monthly = { format = "%Y-%m"; retain = 12; };
|
monthly = { format = "%Y-%m"; retain = 12; };
|
||||||
yearly = { format = "%Y"; };
|
yearly = { format = "%Y"; };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
#xu-test-wu = {
|
|
||||||
# method = "push";
|
|
||||||
# dst = { user = tv; host = wu; path = "/krebs/backup/xu-test"; };
|
|
||||||
#};
|
|
||||||
cd-test-xu = {
|
|
||||||
method = "pull";
|
|
||||||
src = { host = config.krebs.hosts.cd; path = "/tmp/cd-test"; };
|
|
||||||
dst = { host = config.krebs.hosts.xu; path = "/tmp/backups/cd-test"; };
|
|
||||||
startAt = "minutely";
|
|
||||||
snapshots = {
|
|
||||||
minutely = { format = "%Y-%m-%dT%H:%M"; retain = 5; };
|
|
||||||
hourly = { format = "%Y-%m-%dT%H"; retain = 4; };
|
|
||||||
daily = { format = "%Y-%m-%d"; retain = 7; };
|
|
||||||
weekly = { format = "%YW%W"; retain = 4; };
|
|
||||||
monthly = { format = "%Y-%m"; retain = 12; };
|
|
||||||
yearly = { format = "%Y"; };
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user