diff options
author | Vladimír Čunát <v@cunat.cz> | 2023-10-08 10:16:06 +0200 |
---|---|---|
committer | Vladimír Čunát <v@cunat.cz> | 2023-10-08 10:16:06 +0200 |
commit | 2ec92384d7f81b6a6cfd5d9c9285af48c3f4fad1 (patch) | |
tree | 6ca3a236a2670838fbe1af22ccff02445a45c751 /nixos/modules | |
parent | 20fa19f5292240cc7aae26d0aed125ddc3f95248 (diff) | |
parent | 6b66e2fc9cd0f27771e12ef87cea6c40938c0840 (diff) | |
download | nixlib-2ec92384d7f81b6a6cfd5d9c9285af48c3f4fad1.tar nixlib-2ec92384d7f81b6a6cfd5d9c9285af48c3f4fad1.tar.gz nixlib-2ec92384d7f81b6a6cfd5d9c9285af48c3f4fad1.tar.bz2 nixlib-2ec92384d7f81b6a6cfd5d9c9285af48c3f4fad1.tar.lz nixlib-2ec92384d7f81b6a6cfd5d9c9285af48c3f4fad1.tar.xz nixlib-2ec92384d7f81b6a6cfd5d9c9285af48c3f4fad1.tar.zst nixlib-2ec92384d7f81b6a6cfd5d9c9285af48c3f4fad1.zip |
Merge #258361: nixos/knot: compatibility with 23.05 config
Diffstat (limited to 'nixos/modules')
-rw-r--r-- | nixos/modules/services/networking/knot.nix | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/nixos/modules/services/networking/knot.nix b/nixos/modules/services/networking/knot.nix index d98c0ce25bf4..4f6ac945cf97 100644 --- a/nixos/modules/services/networking/knot.nix +++ b/nixos/modules/services/networking/knot.nix @@ -103,11 +103,15 @@ let in result; configFile = if cfg.settingsFile != null then - assert cfg.settings == {} && cfg.keyFiles == []; + # Note: with extraConfig, the 23.05 compat code did include keyFiles from settingsFile. + assert cfg.settings == {} && (cfg.keyFiles == [] || cfg.extraConfig != null); cfg.settingsFile - else pkgs.writeTextFile { + else + mkConfigFile yamlConfig; + + mkConfigFile = configString: pkgs.writeTextFile { name = "knot.conf"; - text = (concatMapStringsSep "\n" (file: "include: ${file}") cfg.keyFiles) + "\n" + yamlConfig; + text = (concatMapStringsSep "\n" (file: "include: ${file}") cfg.keyFiles) + "\n" + configString; # TODO: maybe we could do some checks even when private keys complicate this? checkPhase = lib.optionalString (cfg.keyFiles == []) '' ${cfg.package}/bin/knotc --config=$out conf-check @@ -174,7 +178,7 @@ in { description = lib.mdDoc '' As alternative to ``settings``, you can provide whole configuration directly in the almost-YAML format of Knot DNS. - You might want to utilize ``writeTextFile`` for this. + You might want to utilize ``pkgs.writeText "knot.conf" "longConfigString"`` for this. ''; }; @@ -189,9 +193,9 @@ in { }; }; imports = [ - # Compatibility with NixOS 23.05. At least partial, as it fails assert if used with keyFiles. + # Compatibility with NixOS 23.05. (mkChangedOptionModule [ "services" "knot" "extraConfig" ] [ "services" "knot" "settingsFile" ] - (config: pkgs.writeText "knot.conf" config.services.knot.extraConfig) + (config: mkConfigFile config.services.knot.extraConfig) ) ]; |