treewide: use attrs instead of list for types.loaOf options
This commit is contained in:
@@ -22,9 +22,9 @@ let
|
||||
# Generate Datadog configuration files for each configured checks.
|
||||
# This works because check configurations have predictable paths,
|
||||
# and because JSON is a valid subset of YAML.
|
||||
makeCheckConfigs = entries: mapAttrsToList (name: conf: {
|
||||
source = pkgs.writeText "${name}-check-conf.yaml" (builtins.toJSON conf);
|
||||
target = "datadog-agent/conf.d/${name}.d/conf.yaml";
|
||||
makeCheckConfigs = entries: mapAttrs' (name: conf: {
|
||||
name = "datadog-agent/conf.d/${name}.d/conf.yaml";
|
||||
value.source = pkgs.writeText "${name}-check-conf.yaml" (builtins.toJSON conf);
|
||||
}) entries;
|
||||
|
||||
defaultChecks = {
|
||||
@@ -34,10 +34,11 @@ let
|
||||
|
||||
# Assemble all check configurations and the top-level agent
|
||||
# configuration.
|
||||
etcfiles = with pkgs; with builtins; [{
|
||||
source = writeText "datadog.yaml" (toJSON ddConf);
|
||||
target = "datadog-agent/datadog.yaml";
|
||||
}] ++ makeCheckConfigs (cfg.checks // defaultChecks);
|
||||
etcfiles = with pkgs; with builtins;
|
||||
{ "datadog-agent/datadog.yaml" = {
|
||||
source = writeText "datadog.yaml" (toJSON ddConf);
|
||||
};
|
||||
} // makeCheckConfigs (cfg.checks // defaultChecks);
|
||||
|
||||
# Apply the configured extraIntegrations to the provided agent
|
||||
# package. See the documentation of `dd-agent/integrations-core.nix`
|
||||
@@ -204,7 +205,7 @@ in {
|
||||
config = mkIf cfg.enable {
|
||||
environment.systemPackages = [ datadogPkg pkgs.sysstat pkgs.procps pkgs.iproute ];
|
||||
|
||||
users.extraUsers.datadog = {
|
||||
users.users.datadog = {
|
||||
description = "Datadog Agent User";
|
||||
uid = config.ids.uids.datadog;
|
||||
group = "datadog";
|
||||
@@ -212,7 +213,7 @@ in {
|
||||
createHome = true;
|
||||
};
|
||||
|
||||
users.extraGroups.datadog.gid = config.ids.gids.datadog;
|
||||
users.groups.datadog.gid = config.ids.gids.datadog;
|
||||
|
||||
systemd.services = let
|
||||
makeService = attrs: recursiveUpdate {
|
||||
@@ -224,7 +225,7 @@ in {
|
||||
Restart = "always";
|
||||
RestartSec = 2;
|
||||
};
|
||||
restartTriggers = [ datadogPkg ] ++ map (etc: etc.source) etcfiles;
|
||||
restartTriggers = [ datadogPkg ] ++ attrNames etcfiles;
|
||||
} attrs;
|
||||
in {
|
||||
datadog-agent = makeService {
|
||||
|
||||
Reference in New Issue
Block a user