about summary refs log tree commit diff
path: root/nixos/modules/services/backup
diff options
context:
space:
mode:
authordatafoo <34766150+datafoo@users.noreply.github.com>2023-09-01 11:48:51 +0200
committergithub-actions[bot] <github-actions[bot]@users.noreply.github.com>2023-11-27 09:41:22 +0000
commit0cb6160d8febf762b3af9f347a274f72566d525d (patch)
tree78c03ee7163425e6738b8a11ba77ce9f9dc5d721 /nixos/modules/services/backup
parent260cc445472a4607744a62d870f5816f3af0392b (diff)
nixos/syncoid: add possibility to use string type for sshKey options
The sshKey options do not need to be a valid path at build time. Using
string instead allow use case when the path is not known at build time
such as when using systemd credentials (e.g. `sshKey =
"\${CREDENTIALS_DIRECTORY}/zfs-replication_ed25519";`).

(cherry picked from commit e98fd99eb3a6c81a18ea9494f684764e75315e8f)
Diffstat (limited to 'nixos/modules/services/backup')
-rw-r--r--nixos/modules/services/backup/syncoid.nix8
1 files changed, 2 insertions, 6 deletions
diff --git a/nixos/modules/services/backup/syncoid.nix b/nixos/modules/services/backup/syncoid.nix
index 1a1df38617b55..f770108295759 100644
--- a/nixos/modules/services/backup/syncoid.nix
+++ b/nixos/modules/services/backup/syncoid.nix
@@ -123,9 +123,7 @@ in
     };
 
     sshKey = mkOption {
-      type = types.nullOr types.path;
-      # Prevent key from being copied to store
-      apply = mapNullable toString;
+      type = with types; nullOr (coercedTo path toString str);
       default = null;
       description = lib.mdDoc ''
         SSH private key file to use to login to the remote system. Can be
@@ -205,9 +203,7 @@ in
           recursive = mkEnableOption (lib.mdDoc ''the transfer of child datasets'');
 
           sshKey = mkOption {
-            type = types.nullOr types.path;
-            # Prevent key from being copied to store
-            apply = mapNullable toString;
+            type = with types; nullOr (coercedTo path toString str);
             description = lib.mdDoc ''
               SSH private key file to use to login to the remote system.
               Defaults to {option}`services.syncoid.sshKey` option.