feat: Add overriding of content addressed services on a per-cache basis

This commit is contained in:
sinavir 2024-07-18 22:21:54 +02:00
parent c1e3a00f2a
commit 8da219ee1e

View file

@ -63,6 +63,20 @@ in
example = "nix+https://cache.nixos.org?trusted-public-keys=cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="; example = "nix+https://cache.nixos.org?trusted-public-keys=cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=";
default = null; default = null;
}; };
blob-service-addr = lib.mkOption {
type = with lib.types; nullOr str;
default = null;
description = ''
Use a specific blob service and do not use the mutualized one.
'';
};
directory-service-addr = lib.mkOption {
type = with lib.types; nullOr str;
default = null;
description = ''
Use a specific directory address and do not use the mutualized one.
'';
};
}; };
} }
) )
@ -116,8 +130,16 @@ in
wants = [ "tvix-castore.service" ]; wants = [ "tvix-castore.service" ];
after = [ "tvix-castore.service" ]; after = [ "tvix-castore.service" ];
environment = { environment = {
BLOB_SERVICE_ADDR = "grpc+unix://%t/tvix-castore/socket"; BLOB_SERVICE_ADDR =
DIRECTORY_SERVICE_ADDR = "grpc+unix://%t/tvix-castore/socket"; if cfg.blob-service-addr != null then
cfg.blob-service-addr
else
"grpc+unix://%t/tvix-castore/socket";
DIRECTORY_SERVICE_ADDR =
if cfg.directory-service-addr != null then
cfg.directory-service-addr
else
"grpc+unix://%t/tvix-castore/socket";
PATH_INFO_SERVICE_ADDR = "sled://%S/${stateDir}/pathinfo.sled"; PATH_INFO_SERVICE_ADDR = "sled://%S/${stateDir}/pathinfo.sled";
REMOTE_PATH_INFO_SERVICE_ADDR = lib.mkIf ( REMOTE_PATH_INFO_SERVICE_ADDR = lib.mkIf (
cfg.remote-path-info-service-addr != null cfg.remote-path-info-service-addr != null