consul service: add package option
This commit is contained in:
parent
506b491edd
commit
8cb22c0a63
@ -7,7 +7,7 @@ let
|
|||||||
cfg = config.services.consul;
|
cfg = config.services.consul;
|
||||||
|
|
||||||
configOptions = { data_dir = dataDir; } //
|
configOptions = { data_dir = dataDir; } //
|
||||||
(if cfg.webUi then { ui_dir = "${pkgs.consul.ui}"; } else { }) //
|
(if cfg.webUi then { ui_dir = "${cfg.package.ui}"; } else { }) //
|
||||||
cfg.extraConfig;
|
cfg.extraConfig;
|
||||||
|
|
||||||
configFiles = [ "/etc/consul.json" "/etc/consul-addrs.json" ]
|
configFiles = [ "/etc/consul.json" "/etc/consul-addrs.json" ]
|
||||||
@ -30,6 +30,15 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
package = mkOption {
|
||||||
|
type = types.package;
|
||||||
|
default = pkgs.consul;
|
||||||
|
description = ''
|
||||||
|
The package used for the Consul agent and CLI.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
webUi = mkOption {
|
webUi = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
@ -155,7 +164,7 @@ in
|
|||||||
etc."consul.json".text = builtins.toJSON configOptions;
|
etc."consul.json".text = builtins.toJSON configOptions;
|
||||||
# We need consul.d to exist for consul to start
|
# We need consul.d to exist for consul to start
|
||||||
etc."consul.d/dummy.json".text = "{ }";
|
etc."consul.d/dummy.json".text = "{ }";
|
||||||
systemPackages = with pkgs; [ consul ];
|
systemPackages = [ cfg.package ];
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.services.consul = {
|
systemd.services.consul = {
|
||||||
@ -167,14 +176,14 @@ in
|
|||||||
(filterAttrs (n: _: hasPrefix "consul.d/" n) config.environment.etc);
|
(filterAttrs (n: _: hasPrefix "consul.d/" n) config.environment.etc);
|
||||||
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = "@${pkgs.consul}/bin/consul consul agent -config-dir /etc/consul.d"
|
ExecStart = "@${cfg.package}/bin/consul consul agent -config-dir /etc/consul.d"
|
||||||
+ concatMapStrings (n: " -config-file ${n}") configFiles;
|
+ concatMapStrings (n: " -config-file ${n}") configFiles;
|
||||||
ExecReload = "${pkgs.consul}/bin/consul reload";
|
ExecReload = "${cfg.package}/bin/consul reload";
|
||||||
PermissionsStartOnly = true;
|
PermissionsStartOnly = true;
|
||||||
User = if cfg.dropPrivileges then "consul" else null;
|
User = if cfg.dropPrivileges then "consul" else null;
|
||||||
TimeoutStartSec = "0";
|
TimeoutStartSec = "0";
|
||||||
} // (optionalAttrs (cfg.leaveOnStop) {
|
} // (optionalAttrs (cfg.leaveOnStop) {
|
||||||
ExecStop = "${pkgs.consul}/bin/consul leave";
|
ExecStop = "${cfg.package}/bin/consul leave";
|
||||||
});
|
});
|
||||||
|
|
||||||
path = with pkgs; [ iproute gnugrep gawk consul ];
|
path = with pkgs; [ iproute gnugrep gawk consul ];
|
||||||
@ -221,7 +230,7 @@ in
|
|||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
after = [ "consul.service" ];
|
after = [ "consul.service" ];
|
||||||
|
|
||||||
path = [ pkgs.consul ];
|
path = [ cfg.package ];
|
||||||
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = ''
|
ExecStart = ''
|
||||||
|
Loading…
x
Reference in New Issue
Block a user