jql: 8.0.0 -> 8.0.2 (#362884)
[NixPkgs.git] / nixos / modules / services / cluster / pacemaker / default.nix
blob2a0866e1363bac16ca8a3a24fd83d58173c7836c
2   config,
3   lib,
4   pkgs,
5   ...
6 }:
7 let
8   cfg = config.services.pacemaker;
9 in
11   # interface
12   options.services.pacemaker = {
13     enable = lib.mkEnableOption "pacemaker";
15     package = lib.mkPackageOption pkgs "pacemaker" { };
16   };
18   # implementation
19   config = lib.mkIf cfg.enable {
20     assertions = [
21       {
22         assertion = config.services.corosync.enable;
23         message = ''
24           Enabling services.pacemaker requires a services.corosync configuration.
25         '';
26       }
27     ];
29     environment.systemPackages = [ cfg.package ];
31     # required by pacemaker
32     users.users.hacluster = {
33       isSystemUser = true;
34       group = "pacemaker";
35       home = "/var/lib/pacemaker";
36     };
37     users.groups.pacemaker = { };
39     systemd.tmpfiles.rules = [
40       "d /var/log/pacemaker 0700 hacluster pacemaker -"
41     ];
43     systemd.packages = [ cfg.package ];
44     systemd.services.pacemaker = {
45       wantedBy = [ "multi-user.target" ];
46       serviceConfig = {
47         StateDirectory = "pacemaker";
48         StateDirectoryMode = "0700";
49       };
50     };
51   };