From 2036550a460d046adbb0364fb3da3a987a00caba Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Tue, 12 Mar 2019 17:32:29 -0400 Subject: [PATCH] nixos/docker-registry: Allow use of non-filesystem storage Previously this module precluded use of storage backends other than `filesystem`. It is now possible to configure another storage backend manually by setting `services.dockerRegistry.storagePath` to `null` and configuring the other backend via `extraConfig`. --- .../modules/services/misc/docker-registry.nix | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/nixos/modules/services/misc/docker-registry.nix b/nixos/modules/services/misc/docker-registry.nix index f3d90e532c8..c87607d2666 100644 --- a/nixos/modules/services/misc/docker-registry.nix +++ b/nixos/modules/services/misc/docker-registry.nix @@ -14,9 +14,10 @@ let log.fields.service = "registry"; storage = { cache.blobdescriptor = blobCache; - filesystem.rootdirectory = cfg.storagePath; delete.enabled = cfg.enableDelete; - }; + } // (if cfg.storagePath != null + then { filesystem.rootdirectory = cfg.storagePath; } + else {}); http = { addr = "${cfg.listenAddress}:${builtins.toString cfg.port}"; headers.X-Content-Type-Options = ["nosniff"]; @@ -61,9 +62,12 @@ in { }; storagePath = mkOption { - type = types.path; + type = types.nullOr types.path; default = "/var/lib/docker-registry"; - description = "Docker registry storage path."; + description = '' + Docker registry storage path for the filesystem storage backend. Set to + null to configure another backend via extraConfig. + ''; }; enableDelete = mkOption { @@ -140,9 +144,12 @@ in { startAt = optional cfg.enableGarbageCollect cfg.garbageCollectDates; }; - users.users.docker-registry = { - createHome = true; - home = cfg.storagePath; - }; + users.users.docker-registry = + if cfg.storagePath != null + then { + createHome = true; + home = cfg.storagePath; + } + else {}; }; }