summary refs log tree commit diff
path: root/nixos/modules/services/networking/consul.nix
diff options
context:
space:
mode:
authorNathan Zadoks <nathan@nathan7.eu>2016-01-08 00:54:43 +0100
committerNathan Zadoks <nathan@nathan7.eu>2016-01-08 01:44:28 +0100
commit8cb22c0a63b6f0f77376d3ea0d3d3d90d983e47d (patch)
tree01e2604c73c4e0e523751e6762281b24b41ade6b /nixos/modules/services/networking/consul.nix
parent506b491edd4937df63a2594a5d14b86d9e870710 (diff)
downloadnixpkgs-8cb22c0a63b6f0f77376d3ea0d3d3d90d983e47d.tar
nixpkgs-8cb22c0a63b6f0f77376d3ea0d3d3d90d983e47d.tar.gz
nixpkgs-8cb22c0a63b6f0f77376d3ea0d3d3d90d983e47d.tar.bz2
nixpkgs-8cb22c0a63b6f0f77376d3ea0d3d3d90d983e47d.tar.lz
nixpkgs-8cb22c0a63b6f0f77376d3ea0d3d3d90d983e47d.tar.xz
nixpkgs-8cb22c0a63b6f0f77376d3ea0d3d3d90d983e47d.tar.zst
nixpkgs-8cb22c0a63b6f0f77376d3ea0d3d3d90d983e47d.zip
consul service: add package option
Diffstat (limited to 'nixos/modules/services/networking/consul.nix')
-rw-r--r--nixos/modules/services/networking/consul.nix21
1 files changed, 15 insertions, 6 deletions
diff --git a/nixos/modules/services/networking/consul.nix b/nixos/modules/services/networking/consul.nix
index 66838735c4d..7337eb873c7 100644
--- a/nixos/modules/services/networking/consul.nix
+++ b/nixos/modules/services/networking/consul.nix
@@ -7,7 +7,7 @@ let
   cfg = config.services.consul;
 
   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;
 
   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 {
         type = types.bool;
         default = false;
@@ -155,7 +164,7 @@ in
         etc."consul.json".text = builtins.toJSON configOptions;
         # We need consul.d to exist for consul to start
         etc."consul.d/dummy.json".text = "{ }";
-        systemPackages = with pkgs; [ consul ];
+        systemPackages = [ cfg.package ];
       };
 
       systemd.services.consul = {
@@ -167,14 +176,14 @@ in
             (filterAttrs (n: _: hasPrefix "consul.d/" n) config.environment.etc);
 
         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;
-          ExecReload = "${pkgs.consul}/bin/consul reload";
+          ExecReload = "${cfg.package}/bin/consul reload";
           PermissionsStartOnly = true;
           User = if cfg.dropPrivileges then "consul" else null;
           TimeoutStartSec = "0";
         } // (optionalAttrs (cfg.leaveOnStop) {
-          ExecStop = "${pkgs.consul}/bin/consul leave";
+          ExecStop = "${cfg.package}/bin/consul leave";
         });
 
         path = with pkgs; [ iproute gnugrep gawk consul ];
@@ -221,7 +230,7 @@ in
         wantedBy = [ "multi-user.target" ];
         after = [ "consul.service" ];
 
-        path = [ pkgs.consul ];
+        path = [ cfg.package ];
 
         serviceConfig = {
           ExecStart = ''