redis
This commit is contained in:
@@ -227,25 +227,15 @@ in
|
||||
OOMScoreAdjust = "-900";
|
||||
};
|
||||
|
||||
in listToAttrs (map (serviceName: {
|
||||
# Redis service optimizations
|
||||
redisServiceConfigs = listToAttrs (map (serviceName: {
|
||||
name = serviceName;
|
||||
value = { inherit serviceConfig; };
|
||||
}) redisServices);
|
||||
|
||||
# Firewall configuration
|
||||
networking.firewall = mkIf cfg.openFirewall {
|
||||
allowedTCPPorts =
|
||||
# Redis cluster ports
|
||||
(map (i: cfg.basePort + i) (range 0 (cfg.masters - 1))) ++
|
||||
# Replica ports
|
||||
(map (i: cfg.basePort + cfg.masters + i) (range 0 (cfg.masters * cfg.replicasPerMaster - 1))) ++
|
||||
# Cluster bus ports (node port + 10000)
|
||||
(map (i: cfg.basePort + i + 10000) (range 0 (cfg.masters - 1))) ++
|
||||
(map (i: cfg.basePort + cfg.masters + i + 10000) (range 0 (cfg.masters * cfg.replicasPerMaster - 1)));
|
||||
};
|
||||
|
||||
# Cluster initialization script
|
||||
systemd.services.redis-cluster-init = mkIf cfg.createCluster {
|
||||
# Cluster initialization service
|
||||
clusterInitService = mkIf cfg.createCluster {
|
||||
redis-cluster-init = {
|
||||
description = "Initialize Redis Cluster";
|
||||
after = map (i: "redis-master-${toString i}.service") (range 0 (cfg.masters - 1));
|
||||
wants = map (i: "redis-master-${toString i}.service") (range 0 (cfg.masters - 1));
|
||||
@@ -264,6 +254,21 @@ in
|
||||
ExecStartPre = "${pkgs.bash}/bin/bash -c 'for i in {1..30}; do ${pkgs.redis}/bin/redis-cli -p ${toString cfg.basePort} ping && break || sleep 2; done'";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
in redisServiceConfigs // clusterInitService;
|
||||
|
||||
# Firewall configuration
|
||||
networking.firewall = mkIf cfg.openFirewall {
|
||||
allowedTCPPorts =
|
||||
# Redis cluster ports
|
||||
(map (i: cfg.basePort + i) (range 0 (cfg.masters - 1))) ++
|
||||
# Replica ports
|
||||
(map (i: cfg.basePort + cfg.masters + i) (range 0 (cfg.masters * cfg.replicasPerMaster - 1))) ++
|
||||
# Cluster bus ports (node port + 10000)
|
||||
(map (i: cfg.basePort + i + 10000) (range 0 (cfg.masters - 1))) ++
|
||||
(map (i: cfg.basePort + cfg.masters + i + 10000) (range 0 (cfg.masters * cfg.replicasPerMaster - 1)));
|
||||
};
|
||||
|
||||
# Cluster management utilities
|
||||
environment.systemPackages = [ pkgs.redis ];
|
||||
|
||||
Reference in New Issue
Block a user