From 565ee07812ff8663e2159155bd8eee29034c7855 Mon Sep 17 00:00:00 2001 From: Charlotte Van Petegem Date: Wed, 23 Dec 2020 11:52:22 +0100 Subject: [PATCH] Manage data-access container declaratively --- containers/data-access/config.nix | 23 +++++++++++++++++ containers/data-access/config.secret.nix | Bin 0 -> 4248 bytes containers/data-access/default.nix | 30 +++++++++++++++++++++++ containers/data-access/secret.nix | Bin 0 -> 270 bytes flake.lock | 6 ++--- machines/urithiru/default.nix | 1 + machines/urithiru/secret.nix | Bin 1309 -> 1277 bytes modules/default.nix | 18 +++++++++++--- 8 files changed, 72 insertions(+), 6 deletions(-) create mode 100644 containers/data-access/config.nix create mode 100644 containers/data-access/config.secret.nix create mode 100644 containers/data-access/default.nix create mode 100644 containers/data-access/secret.nix diff --git a/containers/data-access/config.nix b/containers/data-access/config.nix new file mode 100644 index 00000000..f98849e6 --- /dev/null +++ b/containers/data-access/config.nix @@ -0,0 +1,23 @@ +{ pkgs, ... }: { + + imports = [ + ./config.secret.nix + ]; + + users.users.data = { + isNormalUser = true; + home = "/home/data"; + description = "Data Access"; + uid = 1000; + group = "users"; + }; + services.openssh = { + enable = true; + passwordAuthentication = false; + permitRootLogin = "no"; + hostKeys = [ + { bits = 4096; path = "/var/secrets/ssh_host_rsa_key"; type = "rsa"; } + { path = "/var/secrets/ssh_host_ed25519_key"; type = "ed25519"; } + ]; + }; +} diff --git a/containers/data-access/config.secret.nix b/containers/data-access/config.secret.nix new file mode 100644 index 0000000000000000000000000000000000000000..c3261cfeed0bedb2234f40fe589c80ecf5551376 GIT binary patch literal 4248 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 E0lt}k#sB~S literal 1309 zcmZQ@_Y83kiVO&0h~t@1x1hykZREj&XSCF7-X6WoV4SA*Z{-UAp4}qhT=|w|e64@l z4E|1ExX$?InMZq`DnzY4(6X@K`DTOYlc0l(-yFEC;;{ZQ=Z?ejpLxrkDKxL_s|h)h zHS5Z)DceszvgzM>BQAQ?Ym5AS?tXK9o_5$gdT`R&H}pTtg4W*_X6#C@XH8d#aeefM zKmVi1*Dr~`w>`V;liquid4ui0mCtR~>&s4A_d-tM5ZmPTXM2`??FpVyzV142?>U#? z31XbHJ)2XGHQZo1_P;&){j8e54r1!5td}HDRRtaCmRn-ya`^j?8&7>qkB0JgX-!@5 zf4PF{^XAIj$KpZ4A+pbdXWEyX<-585hEDH1b6r)QndY(AwkYX!UbZ^g9m#WR%6GNA z_WsMtM!6RkKVH4d<^Cd<&>N+?-)%bc9({MLIk9egzDR-oor!Zp|M0MJ#x=f8Zi<~2 zWg{rn^57%+l0%U4U9L+vdwBL(MhVGc)4J1+9K`6cbAlInWpvSy^XT+q`3(4K+gHm*dz(b;ITtq1 zQmN6y_3i8pa+X(8eWrbzbZ&>>MW?)p$LoqGOs{6#JI#VIR5)y6E9|sn^duI=IcPgg_VY zO-+}tsb+`%75H8pCEdEf*7IP{!yAIJZxps#?KR*sPPLto^lVyn!SD8MR(&#>^S$FN zqr2VL=|rz|_`r1UONO5Q8aB&66E~f%jNh^QRK-Gh6UGYmV=W*0O%lHTt$BVVbDMhH z&2NGt-F*{yt)o;N&(M1Q^wXXwE>>}%~G`+iZ4|I06I$G>Y`;D*#sG74vN4l9QzF3I+`cz5J{ z>1i$xp9-f5h39_iyg2*eta1PA#^Vwf)l~nR{|Ohh464|_$f&L2-(3YC>woF2u2K&# z%qV4Wn5%D@;sp~msCe)hqNX~i_{8v+P@*O?lDK9?EE)L%ycIZT9j;{9e z0_}q9E0&e?Y>L@#99NSd_~4&GSjhJ?*?e+dHhWy2xH@(72FagV;G+`plE3!QyB{7= zED1$Rrr2uEI5*Ys)2b}jm4%|qxpX~eaVlyRelL)}xZpC ze)U17k0mr>Mp>ll1?krut4~k+b=~xy^sz}#CI77cTbFlXgX-lI>NozFzKe_fbh31# g@~^~rjqX`LBtvCgc8MN%sr#ji-)!Gy*5~HM0N3z_aR2}S diff --git a/modules/default.nix b/modules/default.nix index c2d03c6e..eab0ffbf 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -40,6 +40,11 @@ default = false; example = true; }; + + hasContainers = lib.mkOption { + default = false; + example = true; + }; }; config = { @@ -61,6 +66,11 @@ ripgrep ]; + console = { + font = "Lat2-Terminus16"; + keyMap = "us"; + }; + i18n = { defaultLocale = "en_IE.UTF-8"; extraLocaleSettings = { @@ -68,9 +78,11 @@ }; }; - console = { - font = "Lat2-Terminus16"; - keyMap = "us"; + networking.nat = lib.mkIf config.chvp.hasContainers { + enable = true; + enableIPv6 = true; + internalInterfaces = [ "ve-+" ]; + externalInterface = "eno3"; }; users = {