vuls: init at 0.27.0
[NixPkgs.git] / nixos / modules / services / monitoring / prometheus / exporters / artifactory.nix
blobe98982c0dd312466c8ca45bd82a16fa562133023
1 { config, lib, pkgs, options, ... }:
3 let
4   cfg = config.services.prometheus.exporters.artifactory;
5   inherit (lib) mkOption types concatStringsSep;
6 in
8   port = 9531;
9   extraOpts = {
10     scrapeUri = mkOption {
11       type = types.str;
12       default = "http://localhost:8081/artifactory";
13       description = ''
14         URI on which to scrape JFrog Artifactory.
15       '';
16     };
18     artiUsername = mkOption {
19       type = types.str;
20       description = ''
21         Username for authentication against JFrog Artifactory API.
22       '';
23     };
25     artiPassword = mkOption {
26       type = types.str;
27       default = "";
28       description = ''
29         Password for authentication against JFrog Artifactory API.
30         One of the password or access token needs to be set.
31       '';
32     };
34     artiAccessToken = mkOption {
35       type = types.str;
36       default = "";
37       description = ''
38         Access token for authentication against JFrog Artifactory API.
39         One of the password or access token needs to be set.
40       '';
41     };
42   };
43   serviceOpts = {
44     serviceConfig = {
45       ExecStart = ''
46         ${pkgs.prometheus-artifactory-exporter}/bin/artifactory_exporter \
47           --web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
48           --artifactory.scrape-uri ${cfg.scrapeUri} \
49           ${concatStringsSep " \\\n  " cfg.extraFlags}
50       '';
51       Environment = [
52         "ARTI_USERNAME=${cfg.artiUsername}"
53         "ARTI_PASSWORD=${cfg.artiPassword}"
54         "ARTI_ACCESS_TOKEN=${cfg.artiAccessToken}"
55       ];
56     };
57   };