added backup to podman-mariadb

This commit is contained in:
mc-fucker 2023-11-13 18:24:58 +01:00
parent b93a119776
commit 74f5ff584d

View file

@ -61,6 +61,13 @@ in
example = "daily"; example = "daily";
}; };
backupRetention = mkOption {
description = "The amount of backups to keep.";
type = types.int;
default = 28;
example = "2";
};
}; };
})); }));
}; };
@ -99,22 +106,26 @@ in
}) cfgs); }) cfgs);
#systemd = mkMerge (mapAttrsToList (_: cfg: { systemd = mkMerge (mapAttrsToList (_: cfg: {
# services."podman-mariadb-${cfg.database}-backup" = { services."podman-mariadb-${cfg.database}-backup" = {
# description = "Backup of ${cfg.database} database"; description = "Backup of ${cfg.database} database";
# requisite = [ "podman-mariadb-${cfg.database}.service" ]; requisite = [ "podman-mariadb-${cfg.database}.service" ];
# serviceConfig = { serviceConfig = {
# ExecStart = "${pkgs.bash}/bin/bash -c '${pkgs.podman}/bin/podman exec postgresql-${cfg.database} pg_dumpall -c -U ${cfg.user} | ${pkgs.zstd}/bin/zstd -o ${cfg.backupPath}/${cfg.database}/\$(${pkgs.coreutils}/bin/date +%%F_%%R).sql.zst'" ; ExecStart =
# Type = "oneshot"; let
# }; retention = (toString cfg.backupRetention);
# }; in
# timers."podman-mariadb-${cfg.database}-backup" = { ''${pkgs.bash}/bin/bash -c "${pkgs.podman}/bin/podman exec mariadb-${cfg.database} /bin/bash -c 'MYSQL_PWD=$(cat $MARIADB_PASSWORD_FILE) mariadb-dump --all-databases -u${cfg.database}' | ${pkgs.zstd}/bin/zstd -o ${cfg.backupPath}/${cfg.database}/$(${pkgs.coreutils}/bin/date +%%F_%%R).sql.zst && find ${cfg.backupPath}/${cfg.database} -type f | sort | head -n -${retention} | xargs rm -v" '' ;
# timerConfig = { Type = "oneshot";
# OnCalendar = cfg.backupInterval; };
# }; };
# wantedBy = [ "podman-mariadb-${cfg.database}.service" ]; timers."podman-mariadb-${cfg.database}-backup" = {
# }; timerConfig = {
#}) cfgs); OnCalendar = cfg.backupInterval;
};
wantedBy = [ "podman-mariadb-${cfg.database}.service" ];
};
}) cfgs);
}; };