Files
alo-cluster/common/consul.nix
2024-09-13 13:38:15 +01:00

45 lines
904 B
Nix

{ pkgs, config, ... }:
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;
telemetry = {
prometheus_retention_time = "24h";
disable_hostname = true;
};
};
};
environment.persistence."/persist".directories = [ "/var/lib/consul" ];
networking.firewall = {
allowedTCPPorts = [
8600
8500
8301
8302
8300
];
allowedUDPPorts = [
8600
8301
8302
];
};
}