From e304e2ee59542db44de9c9f0be803e22eb58d3bc Mon Sep 17 00:00:00 2001 From: Artur Faizullin Date: Wed, 10 Jul 2024 09:46:51 +0200 Subject: [PATCH 1/3] nixos/opentelemetry-collector: Accept changes from linter Follow the boyscout rule. --- .../monitoring/opentelemetry-collector.nix | 43 ++++++++++--------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/nixos/modules/services/monitoring/opentelemetry-collector.nix b/nixos/modules/services/monitoring/opentelemetry-collector.nix index 459cc8532490..4a10a9f9361b 100644 --- a/nixos/modules/services/monitoring/opentelemetry-collector.nix +++ b/nixos/modules/services/monitoring/opentelemetry-collector.nix @@ -6,8 +6,9 @@ let cfg = config.services.opentelemetry-collector; opentelemetry-collector = cfg.package; - settingsFormat = pkgs.formats.yaml {}; -in { + settingsFormat = pkgs.formats.yaml { }; +in +{ options.services.opentelemetry-collector = { enable = mkEnableOption "Opentelemetry Collector"; @@ -15,7 +16,7 @@ in { settings = mkOption { type = settingsFormat.type; - default = {}; + default = { }; description = '' Specify the configuration for Opentelemetry Collector in Nix. @@ -35,9 +36,9 @@ in { config = mkIf cfg.enable { assertions = [{ assertion = ( - (cfg.settings == {}) != (cfg.configFile == null) + (cfg.settings == { }) != (cfg.configFile == null) ); - message = '' + message = '' Please specify a configuration for Opentelemetry Collector with either 'services.opentelemetry-collector.settings' or 'services.opentelemetry-collector.configFile'. @@ -48,21 +49,23 @@ in { description = "Opentelemetry Collector Service Daemon"; wantedBy = [ "multi-user.target" ]; - serviceConfig = let - conf = if cfg.configFile == null - then settingsFormat.generate "config.yaml" cfg.settings - else cfg.configFile; - in - { - ExecStart = "${getExe opentelemetry-collector} --config=file:${conf}"; - DynamicUser = true; - Restart = "always"; - ProtectSystem = "full"; - DevicePolicy = "closed"; - NoNewPrivileges = true; - WorkingDirectory = "/var/lib/opentelemetry-collector"; - StateDirectory = "opentelemetry-collector"; - }; + serviceConfig = + let + conf = + if cfg.configFile == null + then settingsFormat.generate "config.yaml" cfg.settings + else cfg.configFile; + in + { + ExecStart = "${getExe opentelemetry-collector} --config=file:${conf}"; + DynamicUser = true; + Restart = "always"; + ProtectSystem = "full"; + DevicePolicy = "closed"; + NoNewPrivileges = true; + WorkingDirectory = "/var/lib/opentelemetry-collector"; + StateDirectory = "opentelemetry-collector"; + }; }; }; } From 40013729d39a2618a06c86bfb6c8843468367cfb Mon Sep 17 00:00:00 2001 From: Artur Faizullin Date: Thu, 11 Jul 2024 08:23:20 +0200 Subject: [PATCH 2/3] nixos/opentelemetry-collector: Use SupplementaryGroups to add the dynamic user to systemd-journal group OpenTelemetry collector's Journald Receiver has not enough permissions --- nixos/modules/services/monitoring/opentelemetry-collector.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nixos/modules/services/monitoring/opentelemetry-collector.nix b/nixos/modules/services/monitoring/opentelemetry-collector.nix index 4a10a9f9361b..695fe3ef27ec 100644 --- a/nixos/modules/services/monitoring/opentelemetry-collector.nix +++ b/nixos/modules/services/monitoring/opentelemetry-collector.nix @@ -65,6 +65,10 @@ in NoNewPrivileges = true; WorkingDirectory = "/var/lib/opentelemetry-collector"; StateDirectory = "opentelemetry-collector"; + SupplementaryGroups = [ + # allow to read the systemd journal for opentelemetry-collector + "systemd-journal" + ]; }; }; }; From 4e3c5fb7137f34623598667c8a80bae2d8d66169 Mon Sep 17 00:00:00 2001 From: Artur Faizullin Date: Thu, 11 Jul 2024 08:27:29 +0200 Subject: [PATCH 3/3] nixos/opentelemetry-collector: Avoid using a fixed hardcoded path Follow the boyscout rule. --- nixos/modules/services/monitoring/opentelemetry-collector.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/services/monitoring/opentelemetry-collector.nix b/nixos/modules/services/monitoring/opentelemetry-collector.nix index 695fe3ef27ec..d9b8c27ccdfe 100644 --- a/nixos/modules/services/monitoring/opentelemetry-collector.nix +++ b/nixos/modules/services/monitoring/opentelemetry-collector.nix @@ -63,7 +63,7 @@ in ProtectSystem = "full"; DevicePolicy = "closed"; NoNewPrivileges = true; - WorkingDirectory = "/var/lib/opentelemetry-collector"; + WorkingDirectory = "%S/opentelemetry-collector"; StateDirectory = "opentelemetry-collector"; SupplementaryGroups = [ # allow to read the systemd journal for opentelemetry-collector