diff options
author | tv <tv@shackspace.de> | 2015-07-23 00:37:21 +0200 |
---|---|---|
committer | tv <tv@shackspace.de> | 2015-07-23 00:37:21 +0200 |
commit | 504b1b90e809934a01357450ccdf35c4e4afc74d (patch) | |
tree | 2b6a539ad2a9f3c4d4b2cf24034cea7e239acb51 /3modules/tv/consul.nix | |
parent | 14ac6d3bba12f07bd8aa79221b9c64469fe03046 (diff) |
* tv identity: define type harder
Diffstat (limited to '3modules/tv/consul.nix')
-rw-r--r-- | 3modules/tv/consul.nix | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/3modules/tv/consul.nix b/3modules/tv/consul.nix index db0cd7a9e..312faa02f 100644 --- a/3modules/tv/consul.nix +++ b/3modules/tv/consul.nix @@ -5,8 +5,7 @@ # TODO consul-bootstrap HOST that actually does is # TODO tools to inspect state of a cluster in outage state -with builtins; -with lib; +with import ../../4lib/tv { inherit lib pkgs; }; let cfg = config.tv.consul; @@ -24,10 +23,10 @@ let enable = mkEnableOption "tv.consul"; dc = mkOption { - type = types.unspecified; + type = types.label; }; hosts = mkOption { - type = with types; listOf unspecified; + type = with types; listOf host; }; encrypt-file = mkOption { type = types.str; # TODO path (but not just into store) @@ -38,7 +37,7 @@ let default = "/var/lib/consul"; }; self = mkOption { - type = types.unspecified; + type = types.host; }; server = mkOption { type = types.bool; @@ -56,9 +55,11 @@ let log_level = "INFO"; #node_name = server = cfg.server; - bind_addr = cfg.self.addr; # TODO cfg.addr enable_syslog = true; - retry_join = map (getAttr "addr") (filter (host: host.fqdn != cfg.self.fqdn) cfg.hosts); + retry_join = + # TODO allow consul in other nets than retiolum [maybe] + concatMap (host: host.nets.retiolum.addrs) + (filter (host: host.name != cfg.self.name) cfg.hosts); leave_on_terminate = true; } // optionalAttrs cfg.server { bootstrap_expect = length cfg.hosts; |