Fix octodns setup
This commit is contained in:
parent
78198f18b2
commit
404f6c8d3e
10 changed files with 238 additions and 178 deletions
modules/common
|
@ -1,4 +1,9 @@
|
|||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
format = pkgs.formats.yaml { };
|
||||
cfg = config.satellite.dns;
|
||||
|
@ -12,32 +17,29 @@ in
|
|||
config.satellite.dns.octodns =
|
||||
let
|
||||
grouped = builtins.groupBy (entry: entry.zone) cfg.records;
|
||||
cpLines = lib.mapAttrsToList
|
||||
(zone: group:
|
||||
let
|
||||
grouped = builtins.groupBy (entry: entry.at) group;
|
||||
contents = lib.mapAttrs
|
||||
(at: entries: lib.lists.forEach entries
|
||||
(entry:
|
||||
let
|
||||
content =
|
||||
if builtins.typeOf entry.value == "list"
|
||||
then { values = entry.value; }
|
||||
else { inherit (entry) value; };
|
||||
cloudflare =
|
||||
if entry.enableCloudflareProxy then {
|
||||
octodns.cloudflare.proxied = true;
|
||||
} else { };
|
||||
in
|
||||
{ inherit (entry) ttl type; }
|
||||
// content // cloudflare
|
||||
))
|
||||
grouped;
|
||||
file = format.generate "${zone}.yaml" contents;
|
||||
in
|
||||
"cp ${file} $out/${zone}.yaml"
|
||||
)
|
||||
grouped;
|
||||
cpLines = lib.mapAttrsToList (
|
||||
zone: group:
|
||||
let
|
||||
grouped = builtins.groupBy (entry: entry.at) group;
|
||||
contents = lib.mapAttrs (
|
||||
at: entries:
|
||||
lib.lists.forEach entries (
|
||||
entry:
|
||||
let
|
||||
content =
|
||||
if builtins.typeOf entry.value == "list" then
|
||||
{ values = entry.value; }
|
||||
else
|
||||
{ inherit (entry) value; };
|
||||
cloudflare = if entry.enableCloudflareProxy then { octodns.cloudflare.proxied = true; } else { };
|
||||
in
|
||||
{ inherit (entry) ttl type; } // content // cloudflare
|
||||
)
|
||||
) grouped;
|
||||
file = format.generate "${zone}.yaml" contents;
|
||||
in
|
||||
"cp ${file} $out/${zone}.yaml"
|
||||
) grouped;
|
||||
in
|
||||
pkgs.runCommand "octodns-zones" { } ''
|
||||
mkdir $out
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue