Compare commits
47 commits
b384357636
...
6eee030b7a
Author | SHA1 | Date | |
---|---|---|---|
6eee030b7a | |||
75cebf4ed6 | |||
bc3cd82731 | |||
9cdf964c6c | |||
bb22fe0176 | |||
d1f2bc1227 | |||
a48ee00f3d | |||
9ed3655ccf | |||
945698a3ea | |||
f75c7b8522 | |||
b258bab23e | |||
e2296eace7 | |||
304ae6e53c | |||
f322208f66 | |||
7c4615ecfb | |||
ec38e10fa9 | |||
5d9ff62afe | |||
6d78b69601 | |||
7129d44078 | |||
76d205d114 | |||
c8c9a6fbce | |||
a1cad2efcd | |||
c7f4e59908 | |||
baed1ce871 | |||
014c1f9cd2 | |||
34704c8f08 | |||
ccc2a47880 | |||
05cd729e90 | |||
8d0a2f00cc | |||
ff26e1ebc1 | |||
b848084dd8 | |||
fe8ddd4094 | |||
030b680b33 | |||
b453b0bb21 | |||
b6e0390555 | |||
bbe3373c2e | |||
0ed4870b65 | |||
8ec13f5c87 | |||
5d52f72940 | |||
1af67b80ed | |||
a810717843 | |||
bd39fc5d07 | |||
25c001c182 | |||
d944dee3bc | |||
aac5163a8b | |||
01c74f62cf | |||
0110a4a0c3 |
7 changed files with 13 additions and 41 deletions
|
@ -5,16 +5,15 @@
|
||||||
start_all()
|
start_all()
|
||||||
|
|
||||||
with subtest("should form cluster"):
|
with subtest("should form cluster"):
|
||||||
nodes = [ n for n in machines if n != nowhere ]
|
for machine in machines:
|
||||||
for machine in nodes:
|
|
||||||
machine.succeed("systemctl start consul-ready.service")
|
machine.succeed("systemctl start consul-ready.service")
|
||||||
for machine in nodes:
|
for machine in machines:
|
||||||
consulConfig = json.loads(machine.succeed("cat /etc/consul.json"))
|
consulConfig = json.loads(machine.succeed("cat /etc/consul.json"))
|
||||||
addr = consulConfig["addresses"]["http"]
|
addr = consulConfig["addresses"]["http"]
|
||||||
port = consulConfig["ports"]["http"]
|
port = consulConfig["ports"]["http"]
|
||||||
setEnv = f"CONSUL_HTTP_ADDR={addr}:{port}"
|
setEnv = f"CONSUL_HTTP_ADDR={addr}:{port}"
|
||||||
memberList = machine.succeed(f"{setEnv} consul members --status=alive")
|
memberList = machine.succeed(f"{setEnv} consul members --status=alive")
|
||||||
for machine2 in nodes:
|
for machine2 in machines:
|
||||||
assert machine2.name in memberList
|
assert machine2.name in memberList
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
|
@ -93,9 +93,5 @@ in
|
||||||
nodes = config.services.wireguard.nodes.mesh;
|
nodes = config.services.wireguard.nodes.mesh;
|
||||||
shared = false;
|
shared = false;
|
||||||
};
|
};
|
||||||
simulacrum = {
|
|
||||||
enable = true;
|
|
||||||
settings = ./test.nix;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,26 +0,0 @@
|
||||||
{ cluster, lib, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
testScript = ''
|
|
||||||
start_all()
|
|
||||||
${lib.pipe cluster.config.services.wireguard.nodes.mesh [
|
|
||||||
(map (node: /*python*/ ''
|
|
||||||
${node}.wait_for_unit("wireguard-wgmesh.target")
|
|
||||||
''))
|
|
||||||
(lib.concatStringsSep "\n")
|
|
||||||
]}
|
|
||||||
|
|
||||||
${lib.pipe cluster.config.services.wireguard.nodes.mesh [
|
|
||||||
(map (node: /*python*/ ''
|
|
||||||
with subtest("${node} can reach all other nodes"):
|
|
||||||
${lib.pipe (cluster.config.services.wireguard.otherNodes.mesh node) [
|
|
||||||
(map (peer: /*python*/ ''
|
|
||||||
${node}.succeed("ping -c3 ${cluster.config.hostLinks.${peer}.mesh.extra.meshIp}")
|
|
||||||
''))
|
|
||||||
(lib.concatStringsSep "\n ")
|
|
||||||
]}
|
|
||||||
''))
|
|
||||||
(lib.concatStringsSep "\n")
|
|
||||||
]}
|
|
||||||
'';
|
|
||||||
}
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ cluster, config, depot, pkgs, ... }:
|
{ config, depot, pkgs, ... }:
|
||||||
{
|
{
|
||||||
users.motd = builtins.readFile ./motd.txt;
|
users.motd = builtins.readFile ./motd.txt;
|
||||||
environment.interactiveShellInit = let
|
environment.interactiveShellInit = let
|
||||||
|
@ -8,11 +8,6 @@
|
||||||
grep = exec pkgs.gnugrep "grep";
|
grep = exec pkgs.gnugrep "grep";
|
||||||
countUsers = '' ${util "who"} -q | ${util "head"} -n1 | ${util "tr"} ' ' \\n | ${util "uniq"} | ${util "wc"} -l'';
|
countUsers = '' ${util "who"} -q | ${util "head"} -n1 | ${util "tr"} ' ' \\n | ${util "uniq"} | ${util "wc"} -l'';
|
||||||
countSessions = '' ${util "who"} -q | ${util "head"} -n1 | ${util "wc"} -w'';
|
countSessions = '' ${util "who"} -q | ${util "head"} -n1 | ${util "wc"} -w'';
|
||||||
|
|
||||||
rev = if cluster.config.simulacrum then
|
|
||||||
"simulacrum"
|
|
||||||
else
|
|
||||||
depot.rev or "\${BRED}(✘)\${CO}\${BWHITE} Dirty";
|
|
||||||
in ''
|
in ''
|
||||||
(
|
(
|
||||||
# Reset colors
|
# Reset colors
|
||||||
|
@ -45,7 +40,7 @@
|
||||||
echo -e " █ ''${BGREEN}(✓)''${CO} ''${BWHITE}You are using a genuine Private Void™ system.''${CO}"
|
echo -e " █ ''${BGREEN}(✓)''${CO} ''${BWHITE}You are using a genuine Private Void™ system.''${CO}"
|
||||||
echo " █"
|
echo " █"
|
||||||
echo -e " █ ''${BWHITE}OS Version....:''${CO} NixOS ''${CAB}${config.system.nixos.version}''${CO}"
|
echo -e " █ ''${BWHITE}OS Version....:''${CO} NixOS ''${CAB}${config.system.nixos.version}''${CO}"
|
||||||
echo -e " █ ''${BWHITE}Configuration.:''${CO} ''${CAB}${rev}''${CO}"
|
echo -e " █ ''${BWHITE}Configuration.:''${CO} ''${CAB}${depot.rev or "\${BRED}(✘)\${CO}\${BWHITE} Dirty"}''${CO}"
|
||||||
echo -e " █ ''${BWHITE}Uptime........:''${CO} $(${uptime} -p | ${util "cut"} -d ' ' -f2- | GREP_COLORS='mt=01;35' ${grep} --color=always '[0-9]*')"
|
echo -e " █ ''${BWHITE}Uptime........:''${CO} $(${uptime} -p | ${util "cut"} -d ' ' -f2- | GREP_COLORS='mt=01;35' ${grep} --color=always '[0-9]*')"
|
||||||
echo -e " █ ''${BWHITE}SSH Logins....:''${CO} There are currently ''${CAB}$(${countUsers})''${CO} users logged in on ''${CAB}$(${countSessions})''${CO} sessions"
|
echo -e " █ ''${BWHITE}SSH Logins....:''${CO} There are currently ''${CAB}$(${countUsers})''${CO} users logged in on ''${CAB}$(${countSessions})''${CO} sessions"
|
||||||
)
|
)
|
||||||
|
|
|
@ -29,6 +29,7 @@ in
|
||||||
reflection = ./reflection;
|
reflection = ./reflection;
|
||||||
shell-config = ./shell-config;
|
shell-config = ./shell-config;
|
||||||
ssh = ./ssh;
|
ssh = ./ssh;
|
||||||
|
system-info = ./system-info;
|
||||||
system-recovery = ./system-recovery;
|
system-recovery = ./system-recovery;
|
||||||
systemd-extras = ./systemd-extras;
|
systemd-extras = ./systemd-extras;
|
||||||
tested = ./tested;
|
tested = ./tested;
|
||||||
|
@ -55,6 +56,7 @@ in
|
||||||
motd
|
motd
|
||||||
networking
|
networking
|
||||||
nix-config-server
|
nix-config-server
|
||||||
|
system-info
|
||||||
system-recovery
|
system-recovery
|
||||||
tested
|
tested
|
||||||
];
|
];
|
||||||
|
|
5
modules/system-info/default.nix
Normal file
5
modules/system-info/default.nix
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{ depot, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
system.configurationRevision = depot.rev or null;
|
||||||
|
}
|
|
@ -7,6 +7,7 @@ let
|
||||||
in
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
|
debug = lib.warn "debug mode is enabled" true;
|
||||||
perSystem = { filters, pkgs, self', system, ... }: {
|
perSystem = { filters, pkgs, self', system, ... }: {
|
||||||
checks = lib.mkIf (system == "x86_64-linux") {
|
checks = lib.mkIf (system == "x86_64-linux") {
|
||||||
ascensions = pkgs.callPackage ./ascensions.nix {
|
ascensions = pkgs.callPackage ./ascensions.nix {
|
||||||
|
|
Loading…
Add table
Reference in a new issue