From 23c7c10f5a5ed83dca001d7382e5b89981277f8c Mon Sep 17 00:00:00 2001 From: tv Date: Sat, 6 Feb 2016 15:11:30 +0100 Subject: krebs.retiolum.hosts: change type to attrsOf host --- krebs/4lib/types.nix | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'krebs/4lib') diff --git a/krebs/4lib/types.nix b/krebs/4lib/types.nix index c596d0f9d..6c396a132 100644 --- a/krebs/4lib/types.nix +++ b/krebs/4lib/types.nix @@ -119,16 +119,18 @@ types // rec { default = {}; }; tinc = mkOption { - type = let net-config = config; in nullOr (submodule ({ config, ... }: { + type = let net = config; in nullOr (submodule ({ config, ... }: { options = { config = mkOption { type = str; - default = '' - ${optionalString (net-config.via != null) - (concatMapStringsSep "\n" (a: "Address = ${a}") net-config.via.addrs)} - ${concatMapStringsSep "\n" (a: "Subnet = ${a}") net-config.addrs} - ${config.pubkey} - ''; + default = concatStringsSep "\n" ( + (optionals (net.via != null) + (map (a: "Address = ${a}") net.via.addrs)) + ++ + (map (a: "Subnet = ${a}") net.addrs) + ++ + [config.pubkey] + ); }; pubkey = mkOption { type = str; -- cgit v1.3.1 From 29746aec06b7d42d3c87245f6f14f048234251e4 Mon Sep 17 00:00:00 2001 From: tv Date: Sat, 6 Feb 2016 18:54:01 +0100 Subject: krebs.{backup.plans,hosts,users}.*.name: add default value --- krebs/3modules/backup.nix | 3 ++- krebs/3modules/lass/default.nix | 4 ++-- krebs/3modules/makefu/default.nix | 4 ++-- krebs/3modules/mv/default.nix | 4 ++-- krebs/3modules/shared/default.nix | 4 ++-- krebs/3modules/tv/default.nix | 4 ++-- krebs/4lib/types.nix | 6 ++++-- makefu/2configs/backup.nix | 2 +- tv/2configs/backup.nix | 2 +- 9 files changed, 18 insertions(+), 15 deletions(-) (limited to 'krebs/4lib') diff --git a/krebs/3modules/backup.nix b/krebs/3modules/backup.nix index a1f335905..17d8a3c98 100644 --- a/krebs/3modules/backup.nix +++ b/krebs/3modules/backup.nix @@ -12,7 +12,7 @@ let enable = mkEnableOption "krebs.backup" // { default = true; }; plans = mkOption { default = {}; - type = types.attrsOf (types.submodule ({ + type = types.attrsOf (types.submodule ({ config, ... }: { # TODO enable = mkEnableOption "TODO" // { default = true; }; options = { method = mkOption { @@ -20,6 +20,7 @@ let }; name = mkOption { type = types.str; + default = config._module.args.name; }; src = mkOption { type = types.krebs.file-location; diff --git a/krebs/3modules/lass/default.nix b/krebs/3modules/lass/default.nix index 26b0947bb..c880ea788 100644 --- a/krebs/3modules/lass/default.nix +++ b/krebs/3modules/lass/default.nix @@ -3,7 +3,7 @@ with lib; { - hosts = addNames { + hosts = { echelon = { cores = 2; dc = "lass"; #dc = "cac"; @@ -214,7 +214,7 @@ with lib; }; }; - users = addNames { + users = { lass = { pubkey = readFile ../../Zpubkeys/lass.ssh.pub; mail = "lass@mors.retiolum"; diff --git a/krebs/3modules/makefu/default.nix b/krebs/3modules/makefu/default.nix index 38e773b53..693a954ab 100644 --- a/krebs/3modules/makefu/default.nix +++ b/krebs/3modules/makefu/default.nix @@ -3,7 +3,7 @@ with lib; { - hosts = addNames { + hosts = { pnp = { cores = 1; dc = "makefu"; #vm on 'omo' @@ -364,7 +364,7 @@ TNs2RYfwDy/r6H/hDeB/BSngPouedEVcPwIDAQAB ssh.pubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIcxWFEPzke/Sdd9qNX6rSJgXal8NmINYajpFCxXfYdj root@gum"; }; }; - users = addNames rec { + users = rec { makefu = { mail = "makefu@pornocauster.retiolum"; pubkey = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCl3RTOHd5DLiVeUbUr/GSiKoRWknXQnbkIf+uNiFO+XxiqZVojPlumQUVhasY8UzDzj9tSDruUKXpjut50FhIO5UFAgsBeMJyoZbgY/+R+QKU00Q19+IiUtxeFol/9dCO+F4o937MC0OpAC10LbOXN/9SYIXueYk3pJxIycXwUqhYmyEqtDdVh9Rx32LBVqlBoXRHpNGPLiswV2qNe0b5p919IGcslzf1XoUzfE3a3yjk/XbWh/59xnl4V7Oe7+iQheFxOT6rFA30WYwEygs5As//ZYtxvnn0gA02gOnXJsNjOW9irlxOUeP7IOU6Ye3WRKFRR0+7PS+w8IJLag2xb makefu@pornocauster"; diff --git a/krebs/3modules/mv/default.nix b/krebs/3modules/mv/default.nix index 6da2abc85..70417157f 100644 --- a/krebs/3modules/mv/default.nix +++ b/krebs/3modules/mv/default.nix @@ -3,7 +3,7 @@ with lib; { - hosts = addNames { + hosts = { stro = { cores = 4; dc = "mv"; @@ -31,7 +31,7 @@ with lib; ssh.pubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM+7Qa51l0NSkBiaK2s8vQEoeObV3UPZyEzMxfUK/ZAO root@stro"; }; }; - users = addNames { + users = { mv_stro = { mail = "mv@stro.retiolum"; pubkey = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCxM34g1GUm5EtU00DAOlGSx8MsCWunhGTrozurj460QT7EdUbZvj0AcrQC0lP9kaZyhX+KueTjmLC+ICsnlHYeg4zoSEnSAUkccuyZxfgynVc4wrpfNAc1nHjDhDb/ulnC+8wNxvxUpI0XlBgu/Y7AbbChZj3ofv6uGGHJKfG3uSyCkt9VTCi1KwydHpe9P252N8NbopnbnkT0EMkRHruh7ICEKr4/ivmUL/IUrbFicEeCy4SeRAl8+00x4WqqvbBPzgdXn0AIjKLvus3dBoQubJNpUoXnyXJbElnit5a7QcgZJNLMbV0kf9zzCGduxkADzHkAFB9D4PuSMYt62iy12QlGbm80A9ncuwaSyJf7hPTvNbU8VyCblyfRz/SCaudUrfk5Xbxxu26FHi4hZqr3IUQt4T8pD8JWYGl4n2ZKnD8hHz/jrmNBK8h9d+VFafU9t1hRxlFsW1AhMEM+kfWClyhfTcKBKbml2a657lgUEVmlZt+18kwwsivM1QhHNTgxn5urRXRkh1VQ40UQroVuV1OUmvAngyAthF441VPGc5z7kEI+D4qjmUjSy6k4dvEy/RGfsAgJCf63zilRuUbL68f2OpxE8aeZZUXPvgdLml284pry7+C5sjlnCDoJfCj/yhdVx6mU9pWUd/Q97CLQewbsYhMzsqlBlIkXuipkDQ== mv@stro"; diff --git a/krebs/3modules/shared/default.nix b/krebs/3modules/shared/default.nix index 91d92857b..52aa4de41 100644 --- a/krebs/3modules/shared/default.nix +++ b/krebs/3modules/shared/default.nix @@ -32,7 +32,7 @@ let }; }); in { - hosts = addNames { + hosts = { wolf = { dc = "shack"; nets = { @@ -68,7 +68,7 @@ in { ssh.pubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKYMXMWZIK0jjnZDM9INiYAKcwjXs2241vew54K8veCR"; }; } // testHosts; - users = addNames { + users = { shared = { mail = "spam@krebsco.de"; pubkey = "lol"; # TODO krebs.users.shared.pubkey should be unnecessary diff --git a/krebs/3modules/tv/default.nix b/krebs/3modules/tv/default.nix index 9adb0ce11..ca07acd17 100644 --- a/krebs/3modules/tv/default.nix +++ b/krebs/3modules/tv/default.nix @@ -6,7 +6,7 @@ with lib; dns.providers = { de.viljetic = "regfish"; }; - hosts = addNames { + hosts = { cd = rec { cores = 2; dc = "tv"; #dc = "cac"; @@ -351,7 +351,7 @@ with lib; ssh.pubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPnjfceKuHNQu7S4eYFN1FqgzMqiL7haNZMh2ZLhvuhK root@xu"; }; }; - users = addNames rec { + users = rec { mv = { mail = "mv@cd.retiolum"; pubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGer9e2+Lew7vnisgBbsFNECEIkpNJgEaqQqgb9inWkQ mv@vod"; diff --git a/krebs/4lib/types.nix b/krebs/4lib/types.nix index 6c396a132..2907a413a 100644 --- a/krebs/4lib/types.nix +++ b/krebs/4lib/types.nix @@ -10,6 +10,7 @@ types // rec { options = { name = mkOption { type = label; + default = config._module.args.name; }; dc = mkOption { type = label; @@ -155,19 +156,20 @@ types // rec { merge = mergeOneOption; }; - user = submodule { + user = submodule ({ config, ... }: { options = { mail = mkOption { type = str; # TODO retiolum mail address }; name = mkOption { type = str; # TODO + default = config._module.args.name; }; pubkey = mkOption { type = str; }; }; - }; + }); # TODO addr = str; diff --git a/makefu/2configs/backup.nix b/makefu/2configs/backup.nix index ed6d1f4a7..936f31c1c 100644 --- a/makefu/2configs/backup.nix +++ b/makefu/2configs/backup.nix @@ -24,7 +24,7 @@ let }; }; in { - krebs.backup.plans = addNames { + krebs.backup.plans = { wry-to-omo_var-www = defaultPull wry "/var/www"; }; } diff --git a/tv/2configs/backup.nix b/tv/2configs/backup.nix index ce937a744..f4d368557 100644 --- a/tv/2configs/backup.nix +++ b/tv/2configs/backup.nix @@ -1,7 +1,7 @@ { config, lib, ... }: with lib; { - krebs.backup.plans = addNames { + krebs.backup.plans = { wu-home-xu = { method = "push"; src = { host = config.krebs.hosts.wu; path = "/home"; }; -- cgit v1.3.1 From 30306159af3aac4f04db60f27637480bbecaaa1d Mon Sep 17 00:00:00 2001 From: tv Date: Sat, 6 Feb 2016 19:37:14 +0100 Subject: add krebs.types.{filename,username} --- krebs/4lib/types.nix | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'krebs/4lib') diff --git a/krebs/4lib/types.nix b/krebs/4lib/types.nix index 2907a413a..f91503794 100644 --- a/krebs/4lib/types.nix +++ b/krebs/4lib/types.nix @@ -162,7 +162,7 @@ types // rec { type = str; # TODO retiolum mail address }; name = mkOption { - type = str; # TODO + type = username; default = config._module.args.name; }; pubkey = mkOption { @@ -194,4 +194,20 @@ types // rec { }; }; }; + + # POSIX.1‐2013, 3.278 Portable Filename Character Set + filename = mkOptionType { + name = "POSIX filename"; + check = let + filename-chars = stringToCharacters + "-.0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; + in s: all (flip elem filename-chars) (stringToCharacters s); + merge = mergeOneOption; + }; + + # POSIX.1-2013, 3.431 User Name + username = mkOptionType { + name = "POSIX username"; + check = s: filename.check s && substring 0 1 s != "-"; + }; } -- cgit v1.3.1 From 52fd80748d95b522561a477a1869d6923516f633 Mon Sep 17 00:00:00 2001 From: tv Date: Sun, 7 Feb 2016 05:08:32 +0100 Subject: krebs.types.{hostname,label}: check RFC952 --- krebs/4lib/types.nix | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'krebs/4lib') diff --git a/krebs/4lib/types.nix b/krebs/4lib/types.nix index f91503794..52eb764ef 100644 --- a/krebs/4lib/types.nix +++ b/krebs/4lib/types.nix @@ -175,8 +175,6 @@ types // rec { addr = str; addr4 = str; addr6 = str; - hostname = str; - label = str; krebs.file-location = types.submodule { options = { @@ -195,6 +193,22 @@ types // rec { }; }; + # RFC952, B. Lexical grammar, + hostname = mkOptionType { + name = "hostname"; + check = x: all label.check (splitString "." x); + merge = mergeOneOption; + }; + + # RFC952, B. Lexical grammar, + # RFC1123, 2.1 Host Names and Numbers + label = mkOptionType { + name = "label"; + # TODO case-insensitive labels + check = x: match "[0-9A-Za-z]([0-9A-Za-z-]*[0-9A-Za-z])?" x != null; + merge = mergeOneOption; + }; + # POSIX.1‐2013, 3.278 Portable Filename Character Set filename = mkOptionType { name = "POSIX filename"; -- cgit v1.3.1 From 7a9f130c1230faf9662000dbd9ba8f06170bf254 Mon Sep 17 00:00:00 2001 From: tv Date: Mon, 8 Feb 2016 03:21:01 +0100 Subject: krebs: rm types.host.dc --- krebs/3modules/lass/default.nix | 6 ------ krebs/3modules/makefu/default.nix | 11 ----------- krebs/3modules/mv/default.nix | 1 - krebs/3modules/shared/default.nix | 1 - krebs/3modules/tv/default.nix | 8 -------- krebs/4lib/types.nix | 3 --- 6 files changed, 30 deletions(-) (limited to 'krebs/4lib') diff --git a/krebs/3modules/lass/default.nix b/krebs/3modules/lass/default.nix index c880ea788..2b3b285f2 100644 --- a/krebs/3modules/lass/default.nix +++ b/krebs/3modules/lass/default.nix @@ -6,7 +6,6 @@ with lib; hosts = { echelon = { cores = 2; - dc = "lass"; #dc = "cac"; nets = rec { internet = { addrs4 = ["162.252.241.33"]; @@ -40,7 +39,6 @@ with lib; }; prism = { cores = 4; - dc = "lass"; #dc = "cac"; nets = rec { internet = { addrs4 = ["213.239.205.240"]; @@ -72,7 +70,6 @@ with lib; ssh.pubkey = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQChm4sqQ2bUZj+2YnTf6G5HHRTpSe1jTUhJRnwcYPYZKF+CBqBncipRpuGlGXEsptNa+7ZMcQC0ySsz5SUOMt3Ih+NehVe/qt3VtRz0l0MgOWmH2qBwKK9Y4IuxrJQzUmP4UGlOGlFj9DORssSMOyFIG4eZ9k2qMn3xal0NVRfGTShKlouWsiUILZ8I+sDNE00z8DAYesgc1yazvRnjzvLkRxdNdpYiAFBbmXMpPKK95McRJaWsuNSeal9kd5p5PagWcgN4DZ6+ebzz3NKnmzk4j+vuHX0U9lTXBqKMlzzmM2YNLRtDPfrtJNyHqLpZUpFhJKqZCD+4/0zdrzRfC7Th+5czzUCSvHiKPVsqw5eOdiQX6EyzNAF5zpkpRp//QdUNNXC5/Ku6GKCO491+TuA8VCha0fOwBONccTLUI/hGNmCh88mLbukVoeGJrbYNCOA/6kEz7ZLEveU4i+TT7okhDElMsNk+AWCZ8/NdJQNX3/K6+JJ9qAn+/yC8LdjgYYJ2oU/aw5/HyOgiQ0z4n9UfQ7j+nHysY9CQb1b3guX7yjJoc3KpNXCXEztuIRHjFD1EP8NRTSmGjsa/VjLmTLSsqjD+7IE5mT0tO5RJvmagDgdJSr/iR5D9zjW7hx7ttvektrlp9g0v3CiCFVaW4l95hGYT0HaNBLJ5R0YHm0lD+Q=="; }; fastpoke = { - dc = "lass"; nets = rec { internet = { addrs4 = ["193.22.164.36"]; @@ -103,7 +100,6 @@ with lib; }; cloudkrebs = { cores = 1; - dc = "lass"; #dc = "cac"; nets = rec { internet = { addrs4 = ["104.167.113.104"]; @@ -136,7 +132,6 @@ with lib; }; uriel = { cores = 1; - dc = "lass"; nets = { gg23 = { addrs4 = ["10.23.1.12"]; @@ -167,7 +162,6 @@ with lib; }; mors = { cores = 2; - dc = "lass"; nets = { gg23 = { addrs4 = ["10.23.1.11"]; diff --git a/krebs/3modules/makefu/default.nix b/krebs/3modules/makefu/default.nix index 693a954ab..2811c0c52 100644 --- a/krebs/3modules/makefu/default.nix +++ b/krebs/3modules/makefu/default.nix @@ -6,7 +6,6 @@ with lib; hosts = { pnp = { cores = 1; - dc = "makefu"; #vm on 'omo' nets = { retiolum = { addrs4 = ["10.243.0.210"]; @@ -30,7 +29,6 @@ with lib; }; tsp = { cores = 1; - dc = "makefu"; #x200 nets = { retiolum = { addrs4 = ["10.243.0.212"]; @@ -58,7 +56,6 @@ with lib; }; pornocauster = { cores = 2; - dc = "makefu"; #x220 nets = { retiolum = { addrs4 = ["10.243.0.91"]; @@ -90,7 +87,6 @@ with lib; vbob = { cores = 2; - dc = "makefu"; #vm local nets = { retiolum = { addrs4 = ["10.243.1.91"]; @@ -116,7 +112,6 @@ with lib; }; flap = rec { cores = 1; - dc = "cac"; #vps extraZones = { "krebsco.de" = '' @@ -152,7 +147,6 @@ with lib; }; pigstarter = rec { cores = 1; - dc = "frontrange"; #vps extraZones = { "krebsco.de" = '' @@ -191,7 +185,6 @@ with lib; }; wry = rec { cores = 1; - dc = "makefu"; #dc = "cac"; extraZones = { "krebsco.de" = '' euer IN A ${head nets.internet.addrs4} @@ -248,7 +241,6 @@ with lib; }; filepimp = rec { cores = 1; - dc = "makefu"; #nas nets = { retiolum = { @@ -273,7 +265,6 @@ with lib; omo = rec { cores = 2; - dc = "makefu"; #AMD E350 nets = { retiolum = { @@ -299,7 +290,6 @@ with lib; }; wbob = rec { cores = 1; - dc = "none"; nets = { retiolm = { addrs4 = ["10.243.214.15/32"]; @@ -323,7 +313,6 @@ TNs2RYfwDy/r6H/hDeB/BSngPouedEVcPwIDAQAB gum = rec { cores = 1; - dc = "online.net"; #root-server extraZones = { "krebsco.de" = '' diff --git a/krebs/3modules/mv/default.nix b/krebs/3modules/mv/default.nix index 7245c143d..8803cb249 100644 --- a/krebs/3modules/mv/default.nix +++ b/krebs/3modules/mv/default.nix @@ -6,7 +6,6 @@ with lib; hosts = { stro = { cores = 4; - dc = "mv"; nets = { retiolum = { addrs4 = ["10.243.111.111"]; diff --git a/krebs/3modules/shared/default.nix b/krebs/3modules/shared/default.nix index 52aa4de41..df4c529bf 100644 --- a/krebs/3modules/shared/default.nix +++ b/krebs/3modules/shared/default.nix @@ -34,7 +34,6 @@ let in { hosts = { wolf = { - dc = "shack"; nets = { shack = { addrs4 = [ "10.42.2.150" ]; diff --git a/krebs/3modules/tv/default.nix b/krebs/3modules/tv/default.nix index abcc67933..9a0b99396 100644 --- a/krebs/3modules/tv/default.nix +++ b/krebs/3modules/tv/default.nix @@ -9,7 +9,6 @@ with lib; hosts = { cd = rec { cores = 2; - dc = "tv"; #dc = "cac"; extraZones = { # TODO generate krebsco.de zone from nets and don't use extraZones at all "krebsco.de" = '' @@ -65,7 +64,6 @@ with lib; }; mkdir = rec { cores = 1; - dc = "tv"; #dc = "cac"; nets = rec { internet = { addrs4 = ["104.167.114.142"]; @@ -193,7 +191,6 @@ with lib; }; nomic = { cores = 2; - dc = "tv"; #dc = "gg23"; nets = rec { gg23 = { addrs4 = ["10.23.1.110"]; @@ -235,7 +232,6 @@ with lib; }; rmdir = rec { cores = 1; - dc = "tv"; #dc = "cac"; nets = rec { internet = { addrs4 = ["167.88.34.182"]; @@ -287,8 +283,6 @@ with lib; }; wu = { cores = 4; - # TODO wu is mobile, so dc means "home data center" - dc = "tv"; #dc = "gg23"; nets = { gg23 = { addrs4 = ["10.23.1.37"]; @@ -322,8 +316,6 @@ with lib; }; xu = { cores = 4; - # TODO xu is mobile, so dc means "home data center" - dc = "tv"; #dc = "gg23"; nets = { gg23 = { addrs4 = ["10.23.1.38"]; diff --git a/krebs/4lib/types.nix b/krebs/4lib/types.nix index 52eb764ef..873f3ddfb 100644 --- a/krebs/4lib/types.nix +++ b/krebs/4lib/types.nix @@ -12,9 +12,6 @@ types // rec { type = label; default = config._module.args.name; }; - dc = mkOption { - type = label; - }; cores = mkOption { type = positive; }; -- cgit v1.3.1