grafana-alloy: don't build the frontend twice
[NixPkgs.git] / nixos / modules / services / cluster / pacemaker / default.nix
blob92cd9311eb7d5503dd9a885a80ef3eb7444bfc42
1 { config, lib, pkgs, ... }:
2 let
3   cfg = config.services.pacemaker;
4 in
6   # interface
7   options.services.pacemaker = {
8     enable = lib.mkEnableOption "pacemaker";
10     package = lib.mkPackageOption pkgs "pacemaker" { };
11   };
13   # implementation
14   config = lib.mkIf cfg.enable {
15     assertions = [ {
16       assertion = config.services.corosync.enable;
17       message = ''
18         Enabling services.pacemaker requires a services.corosync configuration.
19       '';
20     } ];
22     environment.systemPackages = [ cfg.package ];
24     # required by pacemaker
25     users.users.hacluster = {
26       isSystemUser = true;
27       group = "pacemaker";
28       home = "/var/lib/pacemaker";
29     };
30     users.groups.pacemaker = {};
32     systemd.tmpfiles.rules = [
33       "d /var/log/pacemaker 0700 hacluster pacemaker -"
34     ];
36     systemd.packages = [ cfg.package ];
37     systemd.services.pacemaker = {
38       wantedBy = [ "multi-user.target" ];
39       serviceConfig = {
40         StateDirectory = "pacemaker";
41         StateDirectoryMode = "0700";
42       };
43     };
44   };