move source config from module system to 1systems/*/source.nix

This commit is contained in:
lassulus 2017-07-11 11:26:24 +02:00
parent 9215b5b688
commit 3363a8746c
37 changed files with 229 additions and 182 deletions

View File

@ -1,18 +1,17 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
let let
inherit (import ../4lib { inherit pkgs lib; }) getDefaultGateway; inherit (import <stockholm/lass/4lib> { inherit pkgs lib; }) getDefaultGateway;
ip = config.krebs.build.host.nets.internet.ip4.addr; ip = config.krebs.build.host.nets.internet.ip4.addr;
in { in {
imports = [ imports = [
../. <stockholm/lass>
../2configs/retiolum.nix <stockholm/lass/2configs/retiolum.nix>
../2configs/os-templates/CAC-CentOS-7-64bit.nix <stockholm/lass/2configs/os-templates/CAC-CentOS-7-64bit.nix>
../2configs/exim-retiolum.nix <stockholm/lass/2configs/exim-retiolum.nix>
../2configs/git.nix <stockholm/lass/2configs/git.nix>
../2configs/realwallpaper.nix <stockholm/lass/2configs/realwallpaper.nix>
../2configs/privoxy-retiolum.nix <stockholm/lass/2configs/privoxy-retiolum.nix>
{ {
networking.interfaces.enp2s1.ip4 = [ networking.interfaces.enp2s1.ip4 = [
{ {

View File

@ -0,0 +1,3 @@
import <stockholm/lass/source.nix> {
name = "cloudkrebs";
}

View File

@ -2,11 +2,10 @@
{ {
imports = [ imports = [
../. <stockholm/lass>
../2configs/retiolum.nix <stockholm/lass/2configs/retiolum.nix>
<nixpkgs/nixos/modules/profiles/qemu-guest.nix> <nixpkgs/nixos/modules/profiles/qemu-guest.nix>
#../2configs/exim-retiolum.nix <stockholm/lass/2configs/git.nix>
../2configs/git.nix
{ {
boot.loader.grub = { boot.loader.grub = {
device = "/dev/vda"; device = "/dev/vda";
@ -56,7 +55,7 @@
} }
{ {
imports = [ imports = [
../2configs/websites/fritz.nix <stockholm/lass/2configs/websites/fritz.nix>
]; ];
krebs.iptables.tables.filter.INPUT.rules = [ krebs.iptables.tables.filter.INPUT.rules = [
{ predicate = "-p tcp --dport http"; target = "ACCEPT"; } { predicate = "-p tcp --dport http"; target = "ACCEPT"; }

View File

@ -0,0 +1,3 @@
import <stockholm/lass/source.nix> {
name = "dishfire";
}

View File

@ -1,22 +1,20 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
let let
inherit (import ../4lib { inherit pkgs lib; }) getDefaultGateway; inherit (import <stockholm/lass/4lib> { inherit pkgs lib; }) getDefaultGateway;
ip = config.krebs.build.host.nets.internet.ip4.addr; ip = config.krebs.build.host.nets.internet.ip4.addr;
in { in {
imports = [ imports = [
../. <stockholm/lass>
../2configs/retiolum.nix <stockholm/lass/2configs/retiolum.nix>
../2configs/os-templates/CAC-CentOS-7-64bit.nix <stockholm/lass/2configs/os-templates/CAC-CentOS-7-64bit.nix>
../2configs/exim-retiolum.nix <stockholm/lass/2configs/exim-retiolum.nix>
../2configs/realwallpaper.nix <stockholm/lass/2configs/realwallpaper.nix>
../2configs/privoxy-retiolum.nix <stockholm/lass/2configs/privoxy-retiolum.nix>
../2configs/git.nix <stockholm/lass/2configs/git.nix>
#../2configs/redis.nix <stockholm/lass/2configs/go.nix>
../2configs/go.nix <stockholm/lass/2configs/ircd.nix>
../2configs/ircd.nix <stockholm/lass/2configs/newsbot-js.nix>
../2configs/newsbot-js.nix
{ {
networking.interfaces.enp2s1.ip4 = [ networking.interfaces.enp2s1.ip4 = [
{ {
@ -34,9 +32,6 @@ in {
sound.enable = false; sound.enable = false;
} }
{ {
imports = [
../3modules/dnsmasq.nix
];
lass.dnsmasq = { lass.dnsmasq = {
enable = true; enable = true;
config = '' config = ''

View File

@ -0,0 +1,3 @@
import <stockholm/lass/source.nix> {
name = "echelon";
}

View File

@ -1,19 +1,18 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
with import <stockholm/lib>;
{ {
imports = [ imports = [
../. <stockholm/lass>
../2configs/retiolum.nix <stockholm/lass/2configs/retiolum.nix>
../2configs/hw/tp-x220.nix <stockholm/lass/2configs/hw/tp-x220.nix>
../2configs/git.nix <stockholm/lass/2configs/git.nix>
../2configs/exim-retiolum.nix <stockholm/lass/2configs/exim-retiolum.nix>
../2configs/baseX.nix <stockholm/lass/2configs/baseX.nix>
../2configs/browsers.nix <stockholm/lass/2configs/browsers.nix>
../2configs/programs.nix <stockholm/lass/2configs/programs.nix>
../2configs/fetchWallpaper.nix <stockholm/lass/2configs/fetchWallpaper.nix>
../2configs/backups.nix <stockholm/lass/2configs/backups.nix>
../2configs/games.nix <stockholm/lass/2configs/games.nix>
]; ];
krebs.build.host = config.krebs.hosts.icarus; krebs.build.host = config.krebs.hosts.icarus;

View File

@ -0,0 +1,4 @@
import <stockholm/lass/source.nix> {
name = "icarus";
secure = true;
}

View File

@ -4,12 +4,11 @@ with import <stockholm/lib>;
{ {
imports = [ imports = [
<nixpkgs/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix> <nixpkgs/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix>
../../krebs <stockholm/krebs>
../3modules <stockholm/lass/3modules>
../5pkgs <stockholm/lass/5pkgs>
../2configs/mc.nix <stockholm/lass/2configs/mc.nix>
../2configs/nixpkgs.nix <stockholm/lass/2configs/vim.nix>
../2configs/vim.nix
{ {
# /dev/stderr doesn't work. I don't know why # /dev/stderr doesn't work. I don't know why
# /proc/self doesn't seem to work correctly # /proc/self doesn't seem to work correctly

View File

@ -3,28 +3,27 @@
with import <stockholm/lib>; with import <stockholm/lib>;
{ {
imports = [ imports = [
../. <stockholm/lass>
../2configs/retiolum.nix <stockholm/lass/2configs/retiolum.nix>
../2configs/hw/tp-x220.nix <stockholm/lass/2configs/hw/tp-x220.nix>
../2configs/baseX.nix <stockholm/lass/2configs/baseX.nix>
../2configs/exim-retiolum.nix <stockholm/lass/2configs/exim-retiolum.nix>
../2configs/programs.nix <stockholm/lass/2configs/programs.nix>
../2configs/bitcoin.nix <stockholm/lass/2configs/bitcoin.nix>
../2configs/browsers.nix <stockholm/lass/2configs/browsers.nix>
../2configs/games.nix <stockholm/lass/2configs/games.nix>
../2configs/pass.nix <stockholm/lass/2configs/pass.nix>
../2configs/elster.nix <stockholm/lass/2configs/elster.nix>
../2configs/steam.nix <stockholm/lass/2configs/steam.nix>
../2configs/wine.nix <stockholm/lass/2configs/wine.nix>
../2configs/git.nix <stockholm/lass/2configs/git.nix>
../2configs/virtualbox.nix <stockholm/lass/2configs/virtualbox.nix>
../2configs/fetchWallpaper.nix <stockholm/lass/2configs/fetchWallpaper.nix>
#../2configs/c-base.nix <stockholm/lass/2configs/mail.nix>
../2configs/mail.nix <stockholm/lass/2configs/repo-sync.nix>
../2configs/repo-sync.nix <stockholm/lass/2configs/ircd.nix>
../2configs/ircd.nix <stockholm/lass/2configs/logf.nix>
../2configs/logf.nix <stockholm/lass/2configs/syncthing.nix>
../2configs/syncthing.nix
{ {
#risk of rain port #risk of rain port
krebs.iptables.tables.filter.INPUT.rules = [ krebs.iptables.tables.filter.INPUT.rules = [

View File

@ -0,0 +1,4 @@
import <stockholm/lass/source.nix> {
name = "mors";
secure = true;
}

View File

@ -4,13 +4,9 @@ with import <stockholm/lib>;
let let
ip = config.krebs.build.host.nets.internet.ip4.addr; ip = config.krebs.build.host.nets.internet.ip4.addr;
inherit (import <stockholm/lass/2configs/websites/util.nix> {inherit lib pkgs;})
manageCerts
;
in { in {
imports = [ imports = [
../. <stockholm/lass>
{ {
networking.interfaces.et0.ip4 = [ networking.interfaces.et0.ip4 = [
{ {
@ -26,33 +22,33 @@ in {
SUBSYSTEM=="net", ATTR{address}=="54:04:a6:7e:f4:06", NAME="et0" SUBSYSTEM=="net", ATTR{address}=="54:04:a6:7e:f4:06", NAME="et0"
''; '';
} }
../2configs/retiolum.nix <stockholm/lass/2configs/retiolum.nix>
../2configs/exim-smarthost.nix <stockholm/lass/2configs/exim-smarthost.nix>
../2configs/downloading.nix <stockholm/lass/2configs/downloading.nix>
../2configs/ts3.nix <stockholm/lass/2configs/ts3.nix>
../2configs/bitlbee.nix <stockholm/lass/2configs/bitlbee.nix>
../2configs/weechat.nix <stockholm/lass/2configs/weechat.nix>
../2configs/privoxy-retiolum.nix <stockholm/lass/2configs/privoxy-retiolum.nix>
../2configs/radio.nix <stockholm/lass/2configs/radio.nix>
../2configs/buildbot-standalone.nix <stockholm/lass/2configs/buildbot-standalone.nix>
../2configs/repo-sync.nix <stockholm/lass/2configs/repo-sync.nix>
../2configs/binary-cache/server.nix <stockholm/lass/2configs/binary-cache/server.nix>
../2configs/iodined.nix <stockholm/lass/2configs/iodined.nix>
../2configs/libvirt.nix <stockholm/lass/2configs/libvirt.nix>
../2configs/hfos.nix <stockholm/lass/2configs/hfos.nix>
../2configs/makefu-sip.nix <stockholm/lass/2configs/makefu-sip.nix>
../2configs/monitoring/server.nix <stockholm/lass/2configs/monitoring/server.nix>
../2configs/monitoring/monit-alarms.nix <stockholm/lass/2configs/monitoring/monit-alarms.nix>
../2configs/paste.nix <stockholm/lass/2configs/paste.nix>
../2configs/syncthing.nix <stockholm/lass/2configs/syncthing.nix>
../2configs/coders-irc.nix <stockholm/lass/2configs/coders-irc.nix>
../2configs/ciko.nix <stockholm/lass/2configs/ciko.nix>
{ {
lass.pyload.enable = true; lass.pyload.enable = true;
} }
{ {
imports = [ imports = [
../2configs/bepasty.nix <stockholm/lass/2configs/bepasty.nix>
]; ];
krebs.bepasty.servers."paste.r".nginx.extraConfig = '' krebs.bepasty.servers."paste.r".nginx.extraConfig = ''
if ( $server_addr = "${config.krebs.build.host.nets.internet.ip4.addr}" ) { if ( $server_addr = "${config.krebs.build.host.nets.internet.ip4.addr}" ) {
@ -170,8 +166,8 @@ in {
} }
{ {
imports = [ imports = [
../2configs/websites/domsen.nix <stockholm/lass/2configs/websites/domsen.nix>
../2configs/websites/lassulus.nix <stockholm/lass/2configs/websites/lassulus.nix>
]; ];
krebs.iptables.tables.filter.INPUT.rules = [ krebs.iptables.tables.filter.INPUT.rules = [
{ predicate = "-p tcp --dport http"; target = "ACCEPT"; } { predicate = "-p tcp --dport http"; target = "ACCEPT"; }
@ -195,7 +191,7 @@ in {
} }
{ {
imports = [ imports = [
../2configs/realwallpaper.nix <stockholm/lass/2configs/realwallpaper.nix>
]; ];
services.nginx.virtualHosts."lassul.us".locations."/wallpaper.png".extraConfig = '' services.nginx.virtualHosts."lassul.us".locations."/wallpaper.png".extraConfig = ''
alias /var/realwallpaper/realwallpaper.png; alias /var/realwallpaper/realwallpaper.png;

View File

@ -0,0 +1,3 @@
import <stockholm/lass/source.nix> {
name = "prism";
}

View File

@ -3,17 +3,17 @@
with import <stockholm/lib>; with import <stockholm/lib>;
{ {
imports = [ imports = [
../. <stockholm/lass>
../2configs/retiolum.nix <stockholm/lass/2configs/retiolum.nix>
../2configs/hw/tp-x220.nix <stockholm/lass/2configs/hw/tp-x220.nix>
../2configs/baseX.nix <stockholm/lass/2configs/baseX.nix>
../2configs/git.nix <stockholm/lass/2configs/git.nix>
../2configs/exim-retiolum.nix <stockholm/lass/2configs/exim-retiolum.nix>
../2configs/browsers.nix <stockholm/lass/2configs/browsers.nix>
../2configs/programs.nix <stockholm/lass/2configs/programs.nix>
../2configs/fetchWallpaper.nix <stockholm/lass/2configs/fetchWallpaper.nix>
../2configs/backups.nix <stockholm/lass/2configs/backups.nix>
../2configs/wine.nix <stockholm/lass/2configs/wine.nix>
#{ #{
# users.extraUsers = { # users.extraUsers = {
# root = { # root = {

View File

@ -0,0 +1,3 @@
import <stockholm/lass/source.nix> {
name = "shodan";
}

View File

@ -4,9 +4,9 @@ with builtins;
with import <stockholm/lib>; with import <stockholm/lib>;
{ {
imports = [ imports = [
../. <stockholm/lass>
../2configs/retiolum.nix <stockholm/lass/2configs/retiolum.nix>
../2configs/exim-retiolum.nix <stockholm/lass/2configs/exim-retiolum.nix>
{ {
# locke config # locke config
i18n.defaultLocale ="de_DE.UTF-8"; i18n.defaultLocale ="de_DE.UTF-8";

View File

@ -0,0 +1,3 @@
import <stockholm/lass/source.nix> {
name = "uriel";
}

View File

@ -6,7 +6,6 @@ with import <stockholm/lib>;
../2configs/binary-cache/client.nix ../2configs/binary-cache/client.nix
../2configs/gc.nix ../2configs/gc.nix
../2configs/mc.nix ../2configs/mc.nix
../2configs/nixpkgs.nix
../2configs/vim.nix ../2configs/vim.nix
../2configs/monitoring/client.nix ../2configs/monitoring/client.nix
./htop.nix ./htop.nix
@ -71,16 +70,7 @@ with import <stockholm/lib>;
krebs = { krebs = {
enable = true; enable = true;
search-domain = "r"; search-domain = "r";
build = { build.user = config.krebs.users.lass;
user = config.krebs.users.lass;
source = let inherit (config.krebs.build) host; in {
nixos-config.symlink = "stockholm/lass/1systems/${host.name}.nix";
secrets.file =
if getEnv "dummy_secrets" == "true"
then toString <stockholm/lass/2configs/tests/dummy-secrets>
else "/home/lass/secrets/${host.name}";
};
};
}; };
nix.useSandbox = true; nix.useSandbox = true;

View File

@ -1,8 +0,0 @@
{ ... }:
{
krebs.build.source.nixpkgs.git = {
url = https://cgit.lassul.us/nixpkgs;
ref = "d72efac";
};
}

24
lass/source.nix Normal file
View File

@ -0,0 +1,24 @@
with import <stockholm/lib>;
host@{ name, secure ? false }: let
builder = if getEnv "dummy_secrets" == "true"
then "buildbot"
else "lass";
_file = <stockholm> + "/lass/1systems/${name}/source.nix";
in
evalSource (toString _file) {
nixos-config.symlink = "stockholm/lass/1systems/${name}/config.nix";
secrets.file = getAttr builder {
buildbot = toString <stockholm/lass/2configs/tests/dummy-secrets>;
lass = "/home/lass/secrets/${name}";
};
stockholm.file = toString <stockholm>;
nixpkgs.git = {
url = https://cgit.lassul.us/nixpkgs;
# nixos-17.03
# + copytoram:
# 87a4615 & 334ac4f
# + acme permissions for groups
# fd7a8f1
ref = "0aac3fc";
};
}

View File

@ -3,7 +3,7 @@ let
en = { enable = true;}; en = { enable = true;};
in { in {
imports = [ imports = [
../. <stockholm/shared>
]; ];
krebs = { krebs = {
enable = true; enable = true;

View File

@ -0,0 +1,3 @@
import <stockholm/shared/source.nix> {
name = "test-all-krebs-modules";
}

View File

@ -2,7 +2,7 @@
{ {
imports = [ imports = [
../. <stockholm/shared>
{ {
boot.loader.grub = { boot.loader.grub = {
device = "/dev/sda"; device = "/dev/sda";

View File

@ -0,0 +1,3 @@
import <stockholm/shared/source.nix> {
name = "test-arch";
}

View File

@ -7,8 +7,8 @@ let
gw = "168.235.148.1"; gw = "168.235.148.1";
in { in {
imports = [ imports = [
../. <stockholm/shared>
../2configs/os-templates/CAC-CentOS-6.5-64bit.nix <stockholm/shared/2configs/os-templates/CAC-CentOS-6.5-64bit.nix>
{ {
networking.interfaces.enp11s0.ip4 = [ networking.interfaces.enp11s0.ip4 = [
{ {

View File

@ -0,0 +1,3 @@
import <stockholm/shared/source.nix> {
name = "test-centos6";
}

View File

@ -1,16 +0,0 @@
{ config, lib, pkgs, ... }:
let
inherit (lib) head;
in {
imports = [
../.
../2configs/os-templates/CAC-CentOS-7-64bit.nix
../2configs/temp/networking.nix
../2configs/temp/dirs.nix
];
sound.enable = false;
krebs.build.host = config.krebs.hosts.test-centos7;
}

View File

@ -0,0 +1,16 @@
{ config, lib, pkgs, ... }:
let
inherit (lib) head;
in {
imports = [
<stockholm/shared>
<stockholm/shared/2configs/os-templates/CAC-CentOS-7-64bit.nix>
<stockholm/shared/2configs/temp/networking.nix>
<stockholm/shared/2configs/temp/dirs.nix>
];
sound.enable = false;
krebs.build.host = config.krebs.hosts.test-centos7;
}

View File

@ -0,0 +1,3 @@
import <stockholm/shared/source.nix> {
name = "test-centos7";
}

View File

@ -2,7 +2,7 @@
{ {
imports = [ imports = [
../. <stockholm/shared>
]; ];
programs.ssh.startAgent = true; programs.ssh.startAgent = true;
programs.ssh.startAgent = false; programs.ssh.startAgent = false;

View File

@ -0,0 +1,3 @@
import <stockholm/shared/source.nix> {
name = "test-failing";
}

View File

@ -1,7 +1,7 @@
{ config, pkgs, lib, ... }: { config, pkgs, lib, ... }:
{ {
imports = [ imports = [
../. <stockholm/shared>
]; ];
krebs = { krebs = {
enable = true; enable = true;

View File

@ -0,0 +1,3 @@
import <stockholm/shared/source.nix> {
name = "test-minimal-deploy";
}

View File

@ -4,24 +4,24 @@ let
in in
{ {
imports = [ imports = [
../. <stockholm/shared>
<nixpkgs/nixos/modules/profiles/qemu-guest.nix> <nixpkgs/nixos/modules/profiles/qemu-guest.nix>
../2configs/collectd-base.nix <stockholm/shared/2configs/collectd-base.nix>
../2configs/central-stats-client.nix <stockholm/shared/2configs/central-stats-client.nix>
../2configs/save-diskspace.nix <stockholm/shared/2configs/save-diskspace.nix>
../2configs/cgit-mirror.nix <stockholm/shared/2configs/cgit-mirror.nix>
../2configs/graphite.nix <stockholm/shared/2configs/graphite.nix>
../2configs/repo-sync.nix <stockholm/shared/2configs/repo-sync.nix>
../2configs/shared-buildbot.nix <stockholm/shared/2configs/shared-buildbot.nix>
../2configs/shack/worlddomination.nix <stockholm/shared/2configs/shack/worlddomination.nix>
../2configs/shack/drivedroid.nix <stockholm/shared/2configs/shack/drivedroid.nix>
# ../2configs/shack/nix-cacher.nix # <stockholm/shared/2configs/shack/nix-cacher.nix>
../2configs/shack/mqtt_sub.nix <stockholm/shared/2configs/shack/mqtt_sub.nix>
../2configs/shack/muell_caller.nix <stockholm/shared/2configs/shack/muell_caller.nix>
../2configs/shack/radioactive.nix <stockholm/shared/2configs/shack/radioactive.nix>
../2configs/shack/share.nix <stockholm/shared/2configs/shack/share.nix>
]; ];
# use your own binary cache, fallback use cache.nixos.org (which is used by # use your own binary cache, fallback use cache.nixos.org (which is used by
@ -43,6 +43,7 @@ in
}; };
nix = { nix = {
# use the up to date prism cache
binaryCaches = [ binaryCaches = [
"http://cache.prism.r" "http://cache.prism.r"
"https://cache.nixos.org/" "https://cache.nixos.org/"

View File

@ -0,0 +1,3 @@
import <stockholm/shared/source.nix> {
name = "wolf";
}

View File

@ -7,18 +7,6 @@ with import <stockholm/lib>;
# TODO rename shared user to "krebs" # TODO rename shared user to "krebs"
krebs.build.user = mkDefault config.krebs.users.shared; krebs.build.user = mkDefault config.krebs.users.shared;
krebs.build.source = let inherit (config.krebs.build) host user; in {
nixos-config.symlink = "stockholm/${user.name}/1systems/${host.name}.nix";
nixpkgs.git = {
url = https://github.com/NixOS/nixpkgs;
ref = "72c9ed78d0b1d9d5f531805ddf5bf06bfd447614"; # nixos-17.03 @ 2017-06-17
};
secrets.file =
if getEnv "dummy_secrets" == "true"
then toString <stockholm/shared/6tests/data/secrets>
else "${getEnv "HOME"}/secrets/krebs/${host.name}";
stockholm.file = getEnv "PWD";
};
networking.hostName = config.krebs.build.host.name; networking.hostName = config.krebs.build.host.name;

19
shared/source.nix Normal file
View File

@ -0,0 +1,19 @@
with import <stockholm/lib>;
host@{ name, secure ? false }: let
builder = if getEnv "dummy_secrets" == "true"
then "buildbot"
else "shared";
_file = <stockholm> + "/shared/1systems/${name}/source.nix";
in
evalSource (toString _file) {
nixos-config.symlink = "stockholm/shared/1systems/${name}/config.nix";
secrets.file = getAttr builder {
buildbot = toString <stockholm/shared/6tests/data/secrets>;
lass = "${getEnv "HOME"}/secrets/krebs/${host.name}";
};
stockholm.file = toString <stockholm>;
nixpkgs.git = {
url = https://github.com/NixOS/nixpkgs;
ref = "72c9ed78d0b1d9d5f531805ddf5bf06bfd447614"; # nixos-17.03 @ 2017-06-17
};
}