Refactor common modules.
This commit is contained in:
@@ -1,44 +1,47 @@
|
||||
{ pkgs, config, ... }:
|
||||
{ pkgs, config, lib, ... }:
|
||||
let
|
||||
servers = [
|
||||
"c1"
|
||||
"c2"
|
||||
"c3"
|
||||
];
|
||||
server_enabled = builtins.elem config.networking.hostName servers;
|
||||
in
|
||||
{
|
||||
services.consul = {
|
||||
enable = true;
|
||||
webUi = true;
|
||||
interface.advertise = "eno1";
|
||||
extraConfig = {
|
||||
client_addr = "0.0.0.0";
|
||||
datacenter = "alo";
|
||||
server = server_enabled;
|
||||
bootstrap_expect = if server_enabled then (builtins.length servers + 2) / 2 else null;
|
||||
retry_join = builtins.filter (elem: elem != config.networking.hostName) servers;
|
||||
options.clusterRole.consulServer = lib.mkEnableOption "Consul server mode";
|
||||
|
||||
config = {
|
||||
services.consul = {
|
||||
enable = true;
|
||||
webUi = true;
|
||||
interface.advertise = "eno1";
|
||||
extraConfig = {
|
||||
client_addr = "0.0.0.0";
|
||||
datacenter = "alo";
|
||||
server = config.clusterRole.consulServer;
|
||||
bootstrap_expect = if config.clusterRole.consulServer then (builtins.length servers + 2) / 2 else null;
|
||||
retry_join = builtins.filter (elem: elem != config.networking.hostName) servers;
|
||||
telemetry = {
|
||||
prometheus_retention_time = "24h";
|
||||
disable_hostname = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
environment.persistence."/persist".directories = [ "/var/lib/consul" ];
|
||||
environment.persistence."/persist".directories = [ "/var/lib/consul" ];
|
||||
|
||||
networking.firewall = {
|
||||
allowedTCPPorts = [
|
||||
8600
|
||||
8500
|
||||
8301
|
||||
8302
|
||||
8300
|
||||
];
|
||||
allowedUDPPorts = [
|
||||
8600
|
||||
8301
|
||||
8302
|
||||
];
|
||||
networking.firewall = {
|
||||
allowedTCPPorts = [
|
||||
8600
|
||||
8500
|
||||
8301
|
||||
8302
|
||||
8300
|
||||
];
|
||||
allowedUDPPorts = [
|
||||
8600
|
||||
8301
|
||||
8302
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user