nixos/vector: add option to disable the configuration validation

Currently, during built time the configuration gets checked by vector.
This can be a problem if [environment
variables](https://vector.dev/docs/reference/environment_variables/) are
interpolated into the configuration. In this case the validation can be
disabled. This came up in trying to find a solution for
[#377889](https://github.com/NixOS/nixpkgs/issues/377889).
This commit is contained in:
weriomat
2025-07-14 16:38:04 +02:00
parent 9fab35aa55
commit 6b4ce1ee23

View File

@@ -6,7 +6,6 @@
}:
let
cfg = config.services.vector;
in
{
options.services.vector = {
@@ -31,6 +30,14 @@ in
'';
};
validateConfig = lib.mkOption {
type = lib.types.bool;
default = true;
description = ''
Enable the checking of the vector config during build time. This should be disabled when interpolating environment variables.
'';
};
settings = lib.mkOption {
type = (pkgs.formats.json { }).type;
default = { };
@@ -53,7 +60,7 @@ in
let
format = pkgs.formats.toml { };
conf = format.generate "vector.toml" cfg.settings;
validateConfig =
validatedConfig =
file:
pkgs.runCommand "validate-vector-conf"
{
@@ -65,7 +72,9 @@ in
'';
in
{
ExecStart = "${lib.getExe cfg.package} --config ${validateConfig conf} --graceful-shutdown-limit-secs ${builtins.toString cfg.gracefulShutdownLimitSecs}";
ExecStart = "${lib.getExe cfg.package} --config ${
if cfg.validateConfig then (validatedConfig conf) else conf
} --graceful-shutdown-limit-secs ${builtins.toString cfg.gracefulShutdownLimitSecs}";
DynamicUser = true;
Restart = "always";
StateDirectory = "vector";