summary refs log tree commit diff
path: root/nixos/modules/services/logging
diff options
context:
space:
mode:
authorZhaofeng Li <hello@zhaofeng.li>2021-08-25 22:17:17 -0700
committerZhaofeng Li <hello@zhaofeng.li>2021-08-25 22:54:39 -0700
commitb6ad701a2c6bf619fa9418a8e27c4940ce921456 (patch)
tree38d75b2bf686c4064d9fe09c526ca3b5849d1112 /nixos/modules/services/logging
parentce38fecabe49a76fcd08d03e7562b44b97109aa7 (diff)
downloadnixpkgs-b6ad701a2c6bf619fa9418a8e27c4940ce921456.tar
nixpkgs-b6ad701a2c6bf619fa9418a8e27c4940ce921456.tar.gz
nixpkgs-b6ad701a2c6bf619fa9418a8e27c4940ce921456.tar.bz2
nixpkgs-b6ad701a2c6bf619fa9418a8e27c4940ce921456.tar.lz
nixpkgs-b6ad701a2c6bf619fa9418a8e27c4940ce921456.tar.xz
nixpkgs-b6ad701a2c6bf619fa9418a8e27c4940ce921456.tar.zst
nixpkgs-b6ad701a2c6bf619fa9418a8e27c4940ce921456.zip
nixos/promtail: Allow write access to positions file if not in CacheDirectory
Because of `ProtectSystem=strict`, Promtail cannot write to the positions
file if it's not in its `CacheDirectory` (the default value).
Diffstat (limited to 'nixos/modules/services/logging')
-rw-r--r--nixos/modules/services/logging/promtail.nix4
1 files changed, 4 insertions, 0 deletions
diff --git a/nixos/modules/services/logging/promtail.nix b/nixos/modules/services/logging/promtail.nix
index 34211687dc1..95c83796ece 100644
--- a/nixos/modules/services/logging/promtail.nix
+++ b/nixos/modules/services/logging/promtail.nix
@@ -7,6 +7,9 @@ let
   '';
 
   allowSystemdJournal = cfg.configuration ? scrape_configs && lib.any (v: v ? journal) cfg.configuration.scrape_configs;
+
+  allowPositionsFile = !lib.hasPrefix "/var/cache/promtail" positionsFile;
+  positionsFile = cfg.configuration.positions.filename;
 in {
   options.services.promtail = with types; {
     enable = mkEnableOption "the Promtail ingresser";
@@ -53,6 +56,7 @@ in {
         RestrictSUIDSGID = true;
         PrivateMounts = true;
         CacheDirectory = "promtail";
+        ReadWritePaths = lib.optional allowPositionsFile (builtins.dirOf positionsFile);
 
         User = "promtail";
         Group = "promtail";