nixos/gerrit: allow configuring replication declaratively (#91200)
This commit is contained in:
parent
a4de542abe
commit
c27fc6a5e5
@ -17,6 +17,10 @@ let
|
|||||||
lib.generators.toGitINI cfg.settings
|
lib.generators.toGitINI cfg.settings
|
||||||
);
|
);
|
||||||
|
|
||||||
|
replicationConfig = pkgs.writeText "replication.conf" (
|
||||||
|
lib.generators.toGitINI cfg.replicationSettings
|
||||||
|
);
|
||||||
|
|
||||||
# Wrap the gerrit java with all the java options so it can be called
|
# Wrap the gerrit java with all the java options so it can be called
|
||||||
# like a normal CLI app
|
# like a normal CLI app
|
||||||
gerrit-cli = pkgs.writeShellScriptBin "gerrit" ''
|
gerrit-cli = pkgs.writeShellScriptBin "gerrit" ''
|
||||||
@ -106,6 +110,15 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
replicationSettings = mkOption {
|
||||||
|
type = gitIniType;
|
||||||
|
default = {};
|
||||||
|
description = ''
|
||||||
|
Replication configuration. This will be generated to the
|
||||||
|
<literal>etc/replication.config</literal> file.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
plugins = mkOption {
|
plugins = mkOption {
|
||||||
type = types.listOf types.package;
|
type = types.listOf types.package;
|
||||||
default = [];
|
default = [];
|
||||||
@ -138,6 +151,13 @@ in
|
|||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
||||||
|
assertions = [
|
||||||
|
{
|
||||||
|
assertion = cfg.replicationSettings != {} -> elem "replication" cfg.builtinPlugins;
|
||||||
|
message = "Gerrit replicationSettings require enabling the replication plugin";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
services.gerrit.settings = {
|
services.gerrit.settings = {
|
||||||
cache.directory = "/var/cache/gerrit";
|
cache.directory = "/var/cache/gerrit";
|
||||||
container.heapLimit = cfg.jvmHeapLimit;
|
container.heapLimit = cfg.jvmHeapLimit;
|
||||||
@ -194,6 +214,7 @@ in
|
|||||||
|
|
||||||
# copy the config, keep it mutable because Gerrit
|
# copy the config, keep it mutable because Gerrit
|
||||||
ln -sfv ${gerritConfig} etc/gerrit.config
|
ln -sfv ${gerritConfig} etc/gerrit.config
|
||||||
|
ln -sfv ${replicationConfig} etc/replication.config
|
||||||
|
|
||||||
# install the plugins
|
# install the plugins
|
||||||
rm -rf plugins
|
rm -rf plugins
|
||||||
|
Loading…
Reference in New Issue
Block a user