0
0
Fork 0
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-07-13 21:50:33 +03:00

nixos/amazon-cloudwatch-agent: condense module options

This commit is contained in:
commiterate 2025-02-05 18:38:51 -05:00
parent 451b0d33a7
commit b2b7d1c7de

View file

@ -10,16 +10,6 @@ let
tomlFormat = pkgs.formats.toml { }; tomlFormat = pkgs.formats.toml { };
jsonFormat = pkgs.formats.json { }; jsonFormat = pkgs.formats.json { };
commonConfigurationFile =
if (cfg.commonConfigurationFile == null) then
(tomlFormat.generate "common-config.toml" cfg.commonConfiguration)
else
cfg.commonConfigurationFile;
configurationFile =
if (cfg.configurationFile == null) then
(jsonFormat.generate "amazon-cloudwatch-agent.json" cfg.configuration)
else
cfg.configurationFile;
# See https://docs.aws.amazon.com/prescriptive-guidance/latest/implementing-logging-monitoring-cloudwatch/create-store-cloudwatch-configurations.html#store-cloudwatch-configuration-s3. # See https://docs.aws.amazon.com/prescriptive-guidance/latest/implementing-logging-monitoring-cloudwatch/create-store-cloudwatch-configurations.html#store-cloudwatch-configuration-s3.
# #
# We don't use the multiple JSON configuration files feature, # We don't use the multiple JSON configuration files feature,
@ -33,8 +23,9 @@ in
enable = lib.mkEnableOption "Amazon CloudWatch Agent"; enable = lib.mkEnableOption "Amazon CloudWatch Agent";
package = lib.mkPackageOption pkgs "amazon-cloudwatch-agent" { }; package = lib.mkPackageOption pkgs "amazon-cloudwatch-agent" { };
commonConfigurationFile = lib.mkOption { commonConfigurationFile = lib.mkOption {
type = lib.types.nullOr lib.types.path; type = lib.types.path;
default = null; default = tomlFormat.generate "common-config.toml" cfg.commonConfiguration;
defaultText = lib.literalExpression ''tomlFormat.generate "common-config.toml" cfg.commonConfiguration'';
description = '' description = ''
Amazon CloudWatch Agent common configuration. See Amazon CloudWatch Agent common configuration. See
<https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-commandline-fleet.html#CloudWatch-Agent-profile-instance-first> <https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-commandline-fleet.html#CloudWatch-Agent-profile-instance-first>
@ -70,8 +61,9 @@ in
}; };
}; };
configurationFile = lib.mkOption { configurationFile = lib.mkOption {
type = lib.types.nullOr lib.types.path; type = lib.types.path;
default = null; default = jsonFormat.generate "amazon-cloudwatch-agent.json" cfg.configuration;
defaultText = lib.literalExpression ''jsonFormat.generate "amazon-cloudwatch-agent.json" cfg.configuration'';
description = '' description = ''
Amazon CloudWatch Agent configuration file. See Amazon CloudWatch Agent configuration file. See
<https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html> <https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html>
@ -200,8 +192,8 @@ in
LogsDirectory = "amazon-cloudwatch-agent"; LogsDirectory = "amazon-cloudwatch-agent";
ExecStartPre = builtins.concatStringsSep " " [ ExecStartPre = builtins.concatStringsSep " " [
"${cfg.package}/bin/config-translator" "${cfg.package}/bin/config-translator"
"-config ${commonConfigurationFile}" "-config ${cfg.commonConfigurationFile}"
"-input ${configurationFile}" "-input ${cfg.configurationFile}"
"-input-dir ${configurationDirectory}" "-input-dir ${configurationDirectory}"
"-mode ${cfg.mode}" "-mode ${cfg.mode}"
"-output \${RUNTIME_DIRECTORY}/amazon-cloudwatch-agent.toml" "-output \${RUNTIME_DIRECTORY}/amazon-cloudwatch-agent.toml"