Files
alo-cluster/hosts/common/seaweedfs.nix

55 lines
1.2 KiB
Nix

{ pkgs, config, lib, ... }:
with builtins;
let
masters = {
c1 = "192.168.1.71:9333";
c2 = "192.168.1.72:9333";
c3 = "192.168.1.73:9333";
};
master_enabled = masters ? ${config.networking.hostName};
in
{
imports = [ ./seaweedfs_lib.nix ];
services.seaweedfs.master = {
enable = master_enabled;
peers = attrValues masters;
extraConfig = {
ip = head (split ":" masters.${config.networking.hostName});
defaultReplication = "001";
};
};
services.seaweedfs.filer = {
enable = true;
master = attrValues masters;
};
services.seaweedfs.volumes = {
default = {
enable = true;
mserver = attrValues masters;
dir = [ "/persist/weed/volume-default" ];
extraConfig = {
dataCenter = "alo";
rack = "g";
};
};
};
users.users.seaweedfs.group = "seaweedfs";
users.groups.seaweedfs = {};
environment.persistence."/persist".directories = [
"/var/lib/seaweedfs"
];
networking.firewall.allowedTCPPorts = [
config.services.seaweedfs.volumes.default.port
19333
config.services.seaweedfs.filer.port
18888
] ++ (if master_enabled then [
config.services.seaweedfs.master.port
19333
] else [ ]);
}