colmena-liminx-ng #176

Closed
rlahfa wants to merge 29 commits from colmena-liminx-ng into main

29 commits

Author SHA1 Message Date
d1de030fdf feat: putain
Some checks failed
Run pre-commit on all files / check (push) Successful in 23s
Check meta / check_dns (pull_request) Failing after 19s
Check meta / check_meta (pull_request) Failing after 19s
Build all the nodes / bridge01 (pull_request) Failing after 21s
Build all the nodes / ap01 (pull_request) Failing after 22s
Build all the nodes / compute01 (pull_request) Failing after 21s
Check workflows / check_workflows (pull_request) Successful in 24s
Build all the nodes / geo02 (pull_request) Failing after 20s
Build all the nodes / geo01 (pull_request) Failing after 21s
Build all the nodes / vault01 (pull_request) Failing after 21s
Build all the nodes / rescue01 (pull_request) Failing after 21s
Build all the nodes / storage01 (pull_request) Failing after 21s
Build all the nodes / web01 (pull_request) Failing after 22s
Build all the nodes / web02 (pull_request) Failing after 20s
Build all the nodes / web03 (pull_request) Failing after 20s
Run pre-commit on all files / check (pull_request) Successful in 24s
Signed-off-by: Ryan Lahfa <ryan@dgnum.eu>
2024-12-07 12:17:03 +01:00
4b6ba491a5 feat(scripts/liminix): fail HARD and support root prefixes
Now that we possess the levitation technology, it's necessary to support
root prefixes for rebuild otherwise we will just overwrite our RAM disk
configuration.

Also, to avoid any issue, let's fail hard and avoid rebooting while
being in levitation for nothing.

Signed-off-by: Ryan Lahfa <ryan@dgnum.eu>
2024-12-07 12:11:58 +01:00
f952352297 feat(ap01): use levitation for mass rebuilds
To deal with mass rebuild disk space requirements, we can just levitate.

In the future, we will use levitation as a general-purpose mechanism for
partition layout migration, etc.

Signed-off-by: Ryan Lahfa <ryan@dgnum.eu>
2024-12-07 12:11:58 +01:00
6917a9dc40 feat(ap01): write nixpkgs version in /etc
It's useful for debugging.
We should also track our own revisions at some point.

Signed-off-by: Ryan Lahfa <ryan@dgnum.eu>
2024-12-07 12:11:58 +01:00
598a45843f feat(ap01): re-enable 2GHz
Signed-off-by: Ryan Lahfa <ryan@dgnum.eu>
2024-12-07 12:11:58 +01:00
180da3a14a fix(hive): misc fixes regarding the nixpkgs usage
Previously, we were using <nixpkgs> actually, we fixed liminix and this
file to ensure that we are instantiating the right nixpkgs.

This helps to deal with unexpected mass rebuilds.

Signed-off-by: Ryan Lahfa <ryan@dgnum.eu>
2024-12-07 12:11:58 +01:00
9b3a6c716b chore: upgrade liminix
Signed-off-by: Ryan Lahfa <ryan@dgnum.eu>
2024-12-07 12:11:58 +01:00
37ec30194d fix(ap01): bridge only once the WLAN is in operational state
It required a lot of technology, but hey, we now have it.

Signed-off-by: Ryan Lahfa <ryan@dgnum.eu>
2024-12-07 12:11:58 +01:00
48c05701ce feat(scripts): add Android profile building via Nix
Signed-off-by: Ryan Lahfa <ryan@dgnum.eu>
2024-12-07 12:11:58 +01:00
301fbcc26d fix(ap01): fix _one_ race condition when bridging the LAN
The remaining is hostapd notification that the WLAN interface is ready
to bridge.

Signed-off-by: Ryan Lahfa <ryan@dgnum.eu>
2024-12-07 12:11:58 +01:00
dd25537352 chore(ap01): cleanup
Signed-off-by: Ryan Lahfa <ryan@dgnum.eu>
2024-12-07 12:11:58 +01:00
98ef1d0a50 feat(ap01): add ubus
Signed-off-by: Ryan Lahfa <ryan@dgnum.eu>
2024-12-07 12:11:58 +01:00
cbc2f04737 feat(ap01): disable IPv6
Signed-off-by: Ryan Lahfa <ryan@dgnum.eu>
2024-12-07 12:11:58 +01:00
84ed2028cd feat(ap01): external RADIUS + DHCPv4 + jitterRNGd + stable bridge + default route
Signed-off-by: Ryan Lahfa <ryan@dgnum.eu>
2024-12-07 12:11:58 +01:00
d77fda073d fix(sources): update to the latest version of Liminix
With bridge fixes and many other things.

Signed-off-by: Ryan Lahfa <ryan@dgnum.eu>
2024-12-07 12:11:58 +01:00
32f4c33b76 feat(liminix-rebuild): support hive names directly
Thanks @catvayor, I'm so dumb.

Signed-off-by: Ryan Lahfa <ryan@dgnum.eu>
2024-12-07 12:11:58 +01:00
6d5ed92b2c feat(devshell): add kanidm & freeradius
Signed-off-by: Ryan Lahfa <ryan@dgnum.eu>
2024-12-07 12:11:49 +01:00
a82b3e25d9 chore(ap01): cleanup
Signed-off-by: Ryan Lahfa <ryan@dgnum.eu>
2024-12-07 12:10:50 +01:00
7cebe68c7c feat(scripts): add liminix-oriented scripts
- extraction for manual recovery via nandwrite
- liminix rebuild to interactively develop the AP

Signed-off-by: Ryan Lahfa <ryan@dgnum.eu>
2024-12-07 12:10:50 +01:00
c678bbb8df feat(ap01): enable fully RADIUS via internal RADIUS server
This adds two public keys.

For the private keys, heh…

Signed-off-by: Ryan Lahfa <ryan@dgnum.eu>
2024-12-07 12:10:50 +01:00
9d17167495 feat(devshell): add liminix-related tools
serial console, deployment tools and TFTP tool

Signed-off-by: Ryan Lahfa <ryan@dgnum.eu>
2024-12-07 12:06:04 +01:00
f9a6330d6a feat: add access control for APs via our custom modules
It works!

Signed-off-by: Ryan Lahfa <ryan@dgnum.eu>
2024-12-07 12:03:09 +01:00
3e42ea7098 feat: ensure that colmena repl can evaluate nodes.ap01
Bump to latest Liminix and use the new `defaults` function.

Signed-off-by: Ryan Lahfa <ryan@dgnum.eu>
2024-12-07 12:00:20 +01:00
f553fe9e05 feat: achieve custom evaluation in the framework
Signed-off-by: Ryan Lahfa <ryan@dgnum.eu>
2024-12-07 12:00:19 +01:00
ae130a47dc feat: Specialize nixpkgs as a function of the system 2024-12-07 11:58:01 +01:00
0f1cee70e1 feat: wip! wip! wip! 2024-12-07 11:54:58 +01:00
5c03bd91fb feat: enable liminix-rebuild
Signed-off-by: Ryan Lahfa <ryan@dgnum.eu>
2024-12-07 11:54:32 +01:00
336bbcbcfc feat: add liminix-rebuild in the shell
Signed-off-by: Ryan Lahfa <ryan@dgnum.eu>
2024-12-07 11:54:31 +01:00
8a65248d66 feat: init Liminix evaluation system
Very rudimentary; undocumented, untested in production. This is for testing purposes.

Signed-off-by: Ryan Lahfa <ryan@dgnum.eu>
2024-12-07 11:50:45 +01:00