grafana-alloy: don't build the frontend twice
[NixPkgs.git] / nixos / modules / services / monitoring / heapster.nix
blobb8ba3632cacacc6db77ddb8b2d4a7553b970ff0c
1 { config, lib, pkgs, ... }:
3 with lib;
5 let
6   cfg = config.services.heapster;
7 in {
8   options.services.heapster = {
9     enable = mkEnableOption "Heapster monitoring";
11     source = mkOption {
12       description = "Heapster metric source";
13       example = "kubernetes:https://kubernetes.default";
14       type = types.str;
15     };
17     sink = mkOption {
18       description = "Heapster metic sink";
19       example = "influxdb:http://localhost:8086";
20       type = types.str;
21     };
23     extraOpts = mkOption {
24       description = "Heapster extra options";
25       default = "";
26       type = types.separatedString " ";
27     };
29     package = mkPackageOption pkgs "heapster" { };
30   };
32   config = mkIf cfg.enable {
33     systemd.services.heapster = {
34       wantedBy = ["multi-user.target"];
35       after = ["cadvisor.service" "kube-apiserver.service"];
37       serviceConfig = {
38         ExecStart = "${cfg.package}/bin/heapster --source=${cfg.source} --sink=${cfg.sink} ${cfg.extraOpts}";
39         User = "heapster";
40       };
41     };
43     users.users.heapster = {
44       isSystemUser = true;
45       group = "heapster";
46       description = "Heapster user";
47     };
48     users.groups.heapster = {};
49   };