feat(ap-prod): init #621

Open
ecoppens wants to merge 36 commits from feat/ap-prod into main
Owner

#592 but cleaner

https://git.dgnum.eu/DGNum/infrastructure/pulls/592 but cleaner
We should use the right DHCPv4.

Signed-off-by: Ryan Lahfa <ryan@dgnum.eu>
This makes the experience nicer.

Signed-off-by: Ryan Lahfa <ryan@dgnum.eu>
This is useful to reconfigure A/B in memory.

Signed-off-by: Ryan Lahfa <ryan@dgnum.eu>
feat(scripts): add scripts for liminix systems
All checks were successful
Run pre-commit on all files / pre-commit (push) Successful in 25s
Check meta / check_dns (pull_request) Successful in 16s
Check meta / check_meta (pull_request) Successful in 17s
Check workflows / check_workflows (pull_request) Successful in 18s
Build all the nodes / Jaccess01 (pull_request) Successful in 25s
Build all the nodes / Jaccess04 (pull_request) Successful in 24s
Run pre-commit on all files / pre-commit (pull_request) Successful in 35s
Build all the nodes / netcore01 (pull_request) Successful in 24s
Build all the nodes / netcore02 (pull_request) Successful in 23s
Build all the nodes / bridge01 (pull_request) Successful in 1m4s
Build all the nodes / hypervisor03 (pull_request) Successful in 1m4s
Build all the nodes / cof02 (pull_request) Successful in 1m6s
Build all the nodes / build01 (pull_request) Successful in 1m8s
Build all the nodes / hypervisor01 (pull_request) Successful in 1m12s
Build all the nodes / geo02 (pull_request) Successful in 1m13s
Build all the nodes / geo01 (pull_request) Successful in 1m13s
Build all the nodes / hypervisor02 (pull_request) Successful in 1m12s
Build all the nodes / compute01 (pull_request) Successful in 1m20s
Build all the nodes / iso (pull_request) Successful in 1m19s
Build all the nodes / lab-router01 (pull_request) Successful in 1m5s
Build all the nodes / rescue01 (pull_request) Successful in 1m1s
Build all the nodes / krz01 (pull_request) Successful in 1m22s
Build all the nodes / tower01 (pull_request) Successful in 51s
Build all the nodes / storage01 (pull_request) Successful in 51s
Build the shell / build-shell (pull_request) Successful in 23s
Build all the nodes / web02 (pull_request) Successful in 50s
Build all the nodes / zulip01 (pull_request) Successful in 50s
Build all the nodes / vault01 (pull_request) Successful in 1m1s
Build all the nodes / web03 (pull_request) Successful in 58s
Build all the nodes / web01 (pull_request) Successful in 1m7s
c55b059445
lbailly requested changes 2025-09-08 19:05:10 +02:00
Dismissed
lbailly left a comment
Member

il y a un truc qui m'agace un peu dans certaines fonctions de nodes/liminix.nix, mais faut voir si on peut vraiment faire plus clean

il y a un truc qui m'agace un peu dans certaines fonctions de `nodes/liminix.nix`, mais faut voir si on peut vraiment faire plus clean
@ -0,0 +11,4 @@
admin-vlan = svc.vlan.build {
ifname = "admin";
primary = config.hardware.networkInterfaces.lan;
vid = "3001";
Member

vid = toString meta.isp.vlans."admin-ap".id pour évité les mauvaise surprise.

`vid = toString meta.isp.vlans."admin-ap".id` pour évité les mauvaise surprise.
ecoppens marked this conversation as resolved
@ -0,0 +114,4 @@
services = {
# wlan0 is the 2.4GHz interface.
hostap-1 = lib.mkIf (!is5GOnly) (
Member

inherit (lib) mkIf; (aussi valable pour warn)

`inherit (lib) mkIf;` (aussi valable pour warn)
ecoppens marked this conversation as resolved
@ -21,0 +41,4 @@
}:
singleAttr name {
inherit is5GOnly;
channelIndex = lib.mod channelIndex 3;
Member

on peut ajouter le mod dans le inherit (lib)

on peut ajouter le mod dans le inherit (lib)
ecoppens marked this conversation as resolved
@ -21,0 +108,4 @@
let
f =
self:
{ }
Member

tu peux utiliser fuseAttrs plutôt que de faire plein de //

tu peux utiliser fuseAttrs plutôt que de faire plein de //
ecoppens marked this conversation as resolved
@ -21,0 +147,4 @@
# CD
// singleFloor {
name = ap: "AP-CD2-${builtins.toString ap}";
ap-range = mkRange 1 5;
Member

il y a un AP de moins en vrai

il y a un AP de moins en vrai
Author
Owner

le problème est que c'est déjà déployé, si on change la numérotation, ça devient chiant à redéployer: je pense qu'on peut attendre pour l'été prochain de le virer de l'infra?
En attendant ça peut devenir l'AP dummy :)

le problème est que c'est déjà déployé, si on change la numérotation, ça devient chiant à redéployer: je pense qu'on peut attendre pour l'été prochain de le virer de l'infra? En attendant ça peut devenir l'AP dummy :)
Author
Owner

il a été supprimé :)

il a été supprimé :)
ecoppens marked this conversation as resolved
@ -21,0 +188,4 @@
"16"
];
in
"AP-MB${builtins.toString f}-${room ap}";
Member

pas besoin de préciser builtins pour toString

pas besoin de préciser builtins pour toString
ecoppens marked this conversation as resolved
@ -21,0 +228,4 @@
aps:
builtins.listToAttrs (
lib.imap0 (idx: v: {
inherit (v) name;
Member

{ name, value }: nameValuePair name (value // ...)

`{ name, value }: nameValuePair name (value // ...)`
ecoppens marked this conversation as resolved
@ -21,0 +230,4 @@
lib.imap0 (idx: v: {
inherit (v) name;
value = v.value // {
"apIndex" = idx;
Member

les guillemet sont supperflu

les guillemet sont supperflu
ecoppens marked this conversation as resolved
@ -32,0 +270,4 @@
sshKeys = optional (hasAttr name apMeta) apMeta.${name}.sshKey;
need-ci = false;
Member

Faudrait en avoir un en ci, même si c'est un AP dummy

Faudrait en avoir un en ci, même si c'est un AP dummy
ecoppens marked this conversation as resolved
@ -32,0 +277,4 @@
adminIp
is5GOnly
channelIndex
apIndex
Member

nit: se sera ptet mieux d'avoir la gen de BSSID ici plutôt que dans la config de l'ap

nit: se sera ptet mieux d'avoir la gen de BSSID ici plutôt que dans la config de l'ap
ecoppens marked this conversation as resolved
feat(meta): move bssid generation to meta/nodes/liminix
Some checks failed
Check meta / check_meta (pull_request) Successful in 18s
Check workflows / check_workflows (pull_request) Successful in 18s
Build all the nodes / Jaccess01 (pull_request) Successful in 29s
Build all the nodes / Jaccess04 (pull_request) Successful in 28s
Run pre-commit on all files / pre-commit (push) Successful in 30s
Run pre-commit on all files / pre-commit (pull_request) Successful in 40s
Build all the nodes / AP-CD2-4 (pull_request) Failing after 42s
Build all the nodes / netcore01 (pull_request) Successful in 25s
Build all the nodes / netcore02 (pull_request) Successful in 25s
Build all the nodes / bridge01 (pull_request) Successful in 51s
Build all the nodes / cof02 (pull_request) Successful in 1m4s
Build all the nodes / geo01 (pull_request) Successful in 1m3s
Build all the nodes / build01 (pull_request) Successful in 1m7s
Build all the nodes / hypervisor01 (pull_request) Successful in 1m10s
Build all the nodes / hypervisor03 (pull_request) Successful in 1m10s
Build all the nodes / hypervisor02 (pull_request) Successful in 1m10s
Build all the nodes / geo02 (pull_request) Successful in 1m10s
Build all the nodes / lab-router01 (pull_request) Successful in 1m4s
Build all the nodes / iso (pull_request) Successful in 1m19s
Build all the nodes / compute01 (pull_request) Successful in 1m22s
Build all the nodes / storage01 (pull_request) Successful in 57s
Build all the nodes / krz01 (pull_request) Successful in 1m28s
Build all the nodes / rescue01 (pull_request) Successful in 1m2s
Build all the nodes / tower01 (pull_request) Successful in 50s
Build the shell / build-shell (pull_request) Successful in 29s
Build all the nodes / vault01 (pull_request) Successful in 58s
Build all the nodes / web02 (pull_request) Successful in 51s
Build all the nodes / web01 (pull_request) Successful in 1m5s
Build all the nodes / zulip01 (pull_request) Successful in 44s
Build all the nodes / web03 (pull_request) Successful in 51s
ad61f2070c
chore(liminix): update
All checks were successful
Check meta / check_meta (pull_request) Successful in 18s
Check workflows / check_workflows (pull_request) Successful in 20s
Build all the nodes / Jaccess04 (pull_request) Successful in 28s
Build all the nodes / Jaccess01 (pull_request) Successful in 28s
Build all the nodes / netcore02 (pull_request) Successful in 29s
Run pre-commit on all files / pre-commit (push) Successful in 32s
Build all the nodes / netcore01 (pull_request) Successful in 31s
Run pre-commit on all files / pre-commit (pull_request) Successful in 41s
Build all the nodes / bridge01 (pull_request) Successful in 55s
Build all the nodes / build01 (pull_request) Successful in 57s
Build all the nodes / geo01 (pull_request) Successful in 1m5s
Build all the nodes / hypervisor03 (pull_request) Successful in 1m5s
Build all the nodes / lab-router01 (pull_request) Successful in 1m5s
Build all the nodes / hypervisor01 (pull_request) Successful in 1m12s
Build all the nodes / hypervisor02 (pull_request) Successful in 1m12s
Build all the nodes / geo02 (pull_request) Successful in 1m13s
Build all the nodes / cof02 (pull_request) Successful in 1m14s
Build all the nodes / iso (pull_request) Successful in 1m18s
Build all the nodes / rescue01 (pull_request) Successful in 1m21s
Build all the nodes / tower01 (pull_request) Successful in 1m8s
Build all the nodes / storage01 (pull_request) Successful in 1m15s
Build the shell / build-shell (pull_request) Successful in 35s
Build all the nodes / krz01 (pull_request) Successful in 1m43s
Build all the nodes / zulip01 (pull_request) Successful in 1m16s
Build all the nodes / vault01 (pull_request) Successful in 1m30s
Build all the nodes / web02 (pull_request) Successful in 1m19s
Build all the nodes / web03 (pull_request) Successful in 1m21s
Build all the nodes / web01 (pull_request) Successful in 1m26s
Build all the nodes / compute01 (pull_request) Successful in 1m59s
Build all the nodes / AP-CD2-4 (pull_request) Successful in 3m50s
c26b345af6
requested review from lbailly 2025-09-09 10:40:32 +02:00
Member

pour match avec #630 quand vous ferez le rebase, le needs-ci doit passer en null, ou la même str pour tout les AP (par exemple... AP ?)

pour match avec https://git.dgnum.eu/DGNum/infrastructure/pulls/630 quand vous ferez le rebase, le needs-ci doit passer en `null`, ou la même str pour tout les AP (par exemple... AP ?)
feat(meta): remove APs information generation from apIndex and add ap-test
Some checks failed
Build all the nodes / Paccess10 (pull_request) Failing after 18s
Build all the nodes / Paccess08 (pull_request) Failing after 18s
Build all the nodes / Paccess12 (pull_request) Failing after 18s
Build all the nodes / bridge01 (pull_request) Failing after 18s
Build all the nodes / build01 (pull_request) Failing after 19s
Build all the nodes / cof02 (pull_request) Failing after 18s
Build all the nodes / compute01 (pull_request) Failing after 17s
Build all the nodes / geo01 (pull_request) Failing after 18s
Build all the nodes / geo02 (pull_request) Failing after 16s
Build all the nodes / hypervisor01 (pull_request) Failing after 17s
Build all the nodes / hypervisor02 (pull_request) Failing after 17s
Build all the nodes / hypervisor03 (pull_request) Failing after 17s
Build all the nodes / iso (pull_request) Failing after 17s
Build all the nodes / netcore01 (pull_request) Failing after 16s
Build all the nodes / krz01 (pull_request) Failing after 17s
Build all the nodes / lab-router01 (pull_request) Failing after 17s
Build all the nodes / netcore02 (pull_request) Failing after 18s
Build all the nodes / netcore03 (pull_request) Failing after 17s
Build all the nodes / netcore04 (pull_request) Failing after 18s
Build all the nodes / storage01 (pull_request) Failing after 17s
Build all the nodes / rescue01 (pull_request) Failing after 18s
Build all the nodes / tower01 (pull_request) Failing after 17s
Build all the nodes / vault01 (pull_request) Failing after 16s
Build all the nodes / vault02 (pull_request) Failing after 17s
Build all the nodes / vault03 (pull_request) Failing after 16s
Build all the nodes / web01 (pull_request) Failing after 17s
Build all the nodes / web02 (pull_request) Failing after 16s
Build all the nodes / web03 (pull_request) Failing after 16s
Build all the nodes / zulip01 (pull_request) Failing after 16s
Build the shell / build-shell (pull_request) Failing after 21s
007c76ad47
feat(vault0x): use APs informations from meta
Some checks failed
Build all the nodes / build01 (pull_request) Successful in 43s
Build all the nodes / sw-Jourdan (pull_request) Successful in 25s
Build all the nodes / sw-Montrouge (pull_request) Successful in 25s
Build all the nodes / bridge01 (pull_request) Successful in 53s
Build all the nodes / sw-Pantheon (pull_request) Successful in 25s
Build all the nodes / hypervisor11 (pull_request) Successful in 1m3s
Build all the nodes / hypervisor13 (pull_request) Successful in 1m3s
Build all the nodes / geo02 (pull_request) Successful in 1m5s
Build all the nodes / hypervisor02 (pull_request) Successful in 1m4s
Build all the nodes / hypervisor03 (pull_request) Successful in 1m4s
Build all the nodes / hypervisor12 (pull_request) Successful in 1m13s
Build all the nodes / lab-router01 (pull_request) Successful in 1m13s
Build all the nodes / hypervisor01 (pull_request) Successful in 1m15s
Build all the nodes / geo01 (pull_request) Successful in 1m16s
Build all the nodes / iso (pull_request) Successful in 1m15s
Build all the nodes / cof02 (pull_request) Successful in 1m17s
Build all the nodes / rescue01 (pull_request) Successful in 1m15s
Build all the nodes / tower01 (pull_request) Successful in 51s
Build all the nodes / storage01 (pull_request) Successful in 1m5s
Build all the nodes / compute01 (pull_request) Successful in 1m25s
Build all the nodes / krz01 (pull_request) Successful in 1m24s
Build the shell / build-shell (pull_request) Successful in 24s
Build all the nodes / web02 (pull_request) Successful in 38s
Build all the nodes / vault01 (pull_request) Successful in 1m27s
Build all the nodes / zulip01 (pull_request) Successful in 1m7s
Build all the nodes / vault03 (pull_request) Successful in 1m26s
Build all the nodes / web01 (pull_request) Successful in 1m23s
Build all the nodes / web03 (pull_request) Successful in 1m13s
Build all the nodes / vault02 (pull_request) Successful in 1m41s
Build all the nodes / AP (pull_request) Failing after 3m58s
7c1ad1045f
fix(ci): group APs by site for CI
All checks were successful
Build all the nodes / optic-loop (pull_request) Successful in 23s
Build all the nodes / bridge01 (pull_request) Successful in 57s
Build all the nodes / hypervisor13 (pull_request) Successful in 1m2s
Build all the nodes / hypervisor02 (pull_request) Successful in 1m3s
Build all the nodes / hypervisor11 (pull_request) Successful in 1m2s
Build all the nodes / hypervisor01 (pull_request) Successful in 1m4s
Build all the nodes / build01 (pull_request) Successful in 1m6s
Build all the nodes / cof02 (pull_request) Successful in 1m7s
Build all the nodes / hypervisor12 (pull_request) Successful in 1m11s
Build all the nodes / geo01 (pull_request) Successful in 1m12s
Build all the nodes / geo02 (pull_request) Successful in 1m13s
Build all the nodes / hypervisor03 (pull_request) Successful in 1m13s
Build all the nodes / iso (pull_request) Successful in 1m12s
Build all the nodes / compute01 (pull_request) Successful in 1m16s
Build all the nodes / lab-router01 (pull_request) Successful in 59s
Build all the nodes / krz01 (pull_request) Successful in 1m4s
Build all the nodes / sw-Jourdan (pull_request) Successful in 23s
Build all the nodes / rescue01 (pull_request) Successful in 49s
Build all the nodes / sw-Montrouge (pull_request) Successful in 23s
Build all the nodes / storage01 (pull_request) Successful in 39s
Build all the nodes / sw-Pantheon (pull_request) Successful in 24s
Build the shell / build-shell (pull_request) Successful in 25s
Build all the nodes / tower01 (pull_request) Successful in 38s
Build all the nodes / web02 (pull_request) Successful in 41s
Build all the nodes / zulip01 (pull_request) Successful in 42s
Build all the nodes / web03 (pull_request) Successful in 48s
Build all the nodes / vault01 (pull_request) Successful in 1m40s
Build all the nodes / vault02 (pull_request) Successful in 1m55s
Build all the nodes / vault03 (pull_request) Successful in 1m54s
Build all the nodes / web01 (pull_request) Successful in 2m0s
ec70a0ad7f
chore(liminix): update
All checks were successful
Build all the nodes / geo01 (pull_request) Successful in 36s
Build all the nodes / compute01 (pull_request) Successful in 53s
Build all the nodes / geo02 (pull_request) Successful in 39s
Build all the nodes / AP-jourdan (pull_request) Successful in 1m11s
Build all the nodes / hypervisor01 (pull_request) Successful in 36s
Build all the nodes / hypervisor02 (pull_request) Successful in 36s
Build all the nodes / hypervisor03 (pull_request) Successful in 36s
Build all the nodes / AP-montrouge (pull_request) Successful in 1m38s
Build all the nodes / hypervisor11 (pull_request) Successful in 35s
Build all the nodes / hypervisor12 (pull_request) Successful in 37s
Build all the nodes / hypervisor13 (pull_request) Successful in 36s
Build all the nodes / AP-pantheon (pull_request) Successful in 1m56s
Build all the nodes / iso (pull_request) Successful in 43s
Build all the nodes / optic-loop (pull_request) Successful in 21s
Build all the nodes / lab-router01 (pull_request) Successful in 36s
Build all the nodes / sw-Jourdan (pull_request) Successful in 21s
Build all the nodes / sw-Montrouge (pull_request) Successful in 21s
Build all the nodes / sw-Pantheon (pull_request) Successful in 22s
Build all the nodes / storage01 (pull_request) Successful in 42s
Build all the nodes / krz01 (pull_request) Successful in 1m2s
Build all the nodes / rescue01 (pull_request) Successful in 49s
Build all the nodes / tower01 (pull_request) Successful in 34s
Build the shell / build-shell (pull_request) Successful in 22s
Build all the nodes / vault01 (pull_request) Successful in 1m25s
Build all the nodes / vault02 (pull_request) Successful in 1m25s
Build all the nodes / zulip01 (pull_request) Successful in 1m7s
Build all the nodes / web02 (pull_request) Successful in 1m12s
Build all the nodes / web03 (pull_request) Successful in 1m13s
Build all the nodes / vault03 (pull_request) Successful in 1m27s
Build all the nodes / web01 (pull_request) Successful in 1m25s
0c33fc6ca8
default.nix Outdated
@ -299,0 +305,4 @@
(pkgs.callPackage (sources.liminix + "/pkgs/min-copy-closure") { nix = pkgs.lix; })
# Daemon-less garbage collection for Liminix systems.
(pkgs.callPackage (sources.liminix + "/pkgs/min-collect-garbage") { nix = pkgs.lix; })
Member

c'est sur l'host et pas l'AP ?

c'est sur l'host et pas l'AP ?
Author
Owner

c'est vrai que ça devrait pas être là ça ahah

c'est vrai que ça devrait pas être là ça ahah
ecoppens marked this conversation as resolved
lbailly requested changes 2025-09-15 22:51:11 +02:00
Dismissed
lbailly left a comment
Member

petit détail de rien du tout, sinon LGTM

petit détail de rien du tout, sinon LGTM
@ -65,2 +66,3 @@
monitoring = {
aps = builtins.fromJSON (builtins.readFile ./aps.json);
aps = mapAttrs (_: node: node.extra-args.adminIp) (
filterAttrs (name: node: (hasPrefix "AP" name) && (node.site == config.dgn-isp.site)) meta.nodes
Member

tu peux pas plutot te fier au system, comme pour les switch ?

tu peux pas plutot te fier au system, comme pour les switch ?
Member

et je pense on peut le mettre directement dans dgn-isp, c'est exactement le même code pour les trois vault

et je pense on peut le mettre directement dans dgn-isp, c'est exactement le même code pour les trois vault
Author
Owner

@lbailly wrote in #621 (comment):

et je pense on peut le mettre directement dans dgn-isp, c'est exactement le même code pour les trois vault

c'est ce que je me disais, mais rien d'autre à part les vaults auront le dgn-isp d'activé?

@lbailly wrote in https://git.dgnum.eu/DGNum/infrastructure/pulls/621#issuecomment-18039: > et je pense on peut le mettre directement dans dgn-isp, c'est exactement le même code pour les trois vault c'est ce que je me disais, mais rien d'autre à part les vaults auront le dgn-isp d'activé?
Author
Owner

@lbailly wrote in #621 (comment):

tu peux pas plutot te fier au system, comme pour les switch ?

pas bête ^^

@lbailly wrote in https://git.dgnum.eu/DGNum/infrastructure/pulls/621#issuecomment-18038: > tu peux pas plutot te fier au system, comme pour les switch ? pas bête ^^
ecoppens marked this conversation as resolved
@ -27,3 +34,3 @@
inherit hostname;
};
}) cfg.monitoring.aps;
}) aps;
Member

je pensais plutôt à set dgn-isp.monitoring.aps 😅

je pensais plutôt à set dgn-isp.monitoring.aps 😅
Member

dans la section config du default me parait adapté

dans la section config du default me parait adapté
Author
Owner

@lbailly wrote in #621 (comment):

je pensais plutôt à set dgn-isp.monitoring.aps 😅

j'avais déjà oublié cette option lol

@lbailly wrote in https://git.dgnum.eu/DGNum/infrastructure/pulls/621#issuecomment-18051: > je pensais plutôt à set dgn-isp.monitoring.aps :sweat_smile: j'avais déjà oublié cette option lol
ecoppens marked this conversation as resolved
lbailly approved these changes 2025-09-15 23:18:26 +02:00
Dismissed
Member

@rlahfa pour la partie liminix tu sera bien mieux caller que moi

@rlahfa pour la partie liminix tu sera bien mieux caller que moi
requested review from rlahfa 2025-09-15 23:19:04 +02:00
lbailly dismissed lbailly's review 2025-09-15 23:21:51 +02:00
Reason:

il a cru le poto

lbailly approved these changes 2025-09-15 23:32:24 +02:00
Dismissed
thubrecht left a comment
Owner

Pour avoir les scripts dans le shell, il faut les définir dans scripts/default.nix avec leur dépendances

Pour avoir les scripts dans le shell, il faut les définir dans `scripts/default.nix` avec leur dépendances
@ -290,12 +292,18 @@ in
[
pkgs.lon
pkgs.rage
Owner

Non, si tu en as besoin pour un script, ça va en dépendance dans scripts/default.nix

Non, si tu en as besoin pour un script, ça va en dépendance dans `scripts/default.nix`
Author
Owner

ce qui est relou c'est que le script est bash only, donc si t'as pas bash (parce que tu dois sourcer le fichier), t'es obligé t'utiliser rage directement, donc je dirais que c'est pas que pour un script

ce qui est relou c'est que le script est bash only, donc si t'as pas bash (parce que tu dois sourcer le fichier), t'es obligé t'utiliser rage directement, donc je dirais que c'est pas que pour un script
@ -0,0 +9,4 @@
...
}:
let
parentConfig = config;
Owner

Ce renommage est inutile

Ce renommage est inutile
ecoppens marked this conversation as resolved
@ -0,0 +46,4 @@
zyxel-bootconfig
];
# Only keep root, which should inherit from DGN access control's root permissions.
users.root = config.users.root;
Owner
users = { inherit (config.users) root; };
```nix users = { inherit (config.users) root; }; ```
ecoppens marked this conversation as resolved
@ -0,0 +35,4 @@
mtdutils
min-collect-garbage
hostapd-radius
ubus
Owner

nit: tu devrais trier la liste

nit: tu devrais trier la liste
ecoppens marked this conversation as resolved
@ -16,1 +16,4 @@
# }
{ lib, ... }:
let
inherit (lib.extra) genFuse singleAttr fuseAttrs;
Owner

nit: trie l'inherit

nit: trie l'inherit
ecoppens marked this conversation as resolved
@ -22,0 +61,4 @@
genFuse (
apRel:
let
ap = apRel + ap-range.from;
Owner

Ça sert pas à grand chose de définir cette variable si tu l'utilises qu'une fois, inline la et rajoute un commentaire plutôt

Ça sert pas à grand chose de définir cette variable si tu l'utilises qu'une fois, inline la et rajoute un commentaire plutôt
ecoppens marked this conversation as resolved
@ -22,0 +90,4 @@
genFuse (
floorRel:
let
floor = floorRel + floor-range.from;
Owner

Pareil que pour ap L64

Pareil que pour `ap` L64
ecoppens marked this conversation as resolved
@ -0,0 +1,13 @@
# SPDX-FileCopyrightText: 2024 Maurice Debray <maurice.debray@dgnum.eu>
#
# SPDX-License-Identifier: EUPL-1.2
Owner

Le nom du script convient pas, a minima ça devrait être export-ap-radius-secret vu ce qu'il fait

Le nom du script convient pas, a minima ça devrait être `export-ap-radius-secret` vu ce qu'il fait
ecoppens marked this conversation as resolved
@ -0,0 +14,4 @@
FIRMWARE_OUTPUT="$2"
dumpimage -T flat_dt -p 0 $ZYXEL_NWA_FIT -o $FIRMWARE_OUTPUT
Owner

Tu peux enlever la ligne vide

Tu peux enlever la ligne vide
ecoppens marked this conversation as resolved
@ -0,0 +38,4 @@
exit 1
fi
if toplevel="$(nom-build $(colmena eval -E "{ nodes, ... }: nodes.$@.config.system.outputs.systemConfiguration" --instantiate))"; then
Owner

Fais le en plusieurs étapes:

drv=$(colmena eval -E "{ nodes, ... }: nodes.$@.config.system.outputs.systemConfiguration" --instantiate)
toplevel=$(nom-build "$drv")

Et t'auras plus besoin du if

Fais le en plusieurs étapes: ```bash drv=$(colmena eval -E "{ nodes, ... }: nodes.$@.config.system.outputs.systemConfiguration" --instantiate) toplevel=$(nom-build "$drv") ``` Et t'auras plus besoin du `if`
Author
Owner

faudrait modifier scripts/netconf-apply.sh pour match alors ^^

faudrait modifier `scripts/netconf-apply.sh` pour match alors ^^
ecoppens marked this conversation as resolved
@ -0,0 +40,4 @@
if toplevel="$(nom-build $(colmena eval -E "{ nodes, ... }: nodes.$@.config.system.outputs.systemConfiguration" --instantiate))"; then
echo systemConfiguration $toplevel aimed at $root_prefix
sleep 3
Owner

Hmmm ?

Hmmm ?
Owner

Si tu veux te laisser le temps d'interrompre demande un input à l'user plutôt

Si tu veux te laisser le temps d'interrompre demande un input à l'user plutôt
Author
Owner

avec un timeout? ça reviendrait au même non?

avec un timeout? ça reviendrait au même non?
Owner

Sans timeout

Sans timeout
@ -0,0 +41,4 @@
if toplevel="$(nom-build $(colmena eval -E "{ nodes, ... }: nodes.$@.config.system.outputs.systemConfiguration" --instantiate))"; then
echo systemConfiguration $toplevel aimed at $root_prefix
sleep 3
min-copy-closure --root "$root_prefix" $target_host $toplevel
Owner

Met chaque variable entre quotes

Met chaque variable entre quotes
ecoppens marked this conversation as resolved
@ -0,0 +42,4 @@
echo systemConfiguration $toplevel aimed at $root_prefix
sleep 3
min-copy-closure --root "$root_prefix" $target_host $toplevel
$ssh_command $target_host "$root_prefix/$toplevel/bin/install" "$root_prefix"
Owner

same

same
ecoppens marked this conversation as resolved
@ -0,0 +9,4 @@
set -euxo pipefail
usage() {
echo "./ftp_zeroday.sh [FIT-IMAGE] [IP]"
Owner

C'est pas le bon nom de fichier

C'est pas le bon nom de fichier
ecoppens marked this conversation as resolved
requested review from mdebray 2025-09-15 23:41:17 +02:00
ecoppens dismissed lbailly's review 2025-09-16 09:56:40 +02:00
Reason:

New commits pushed, approval review dismissed automatically according to repository settings

@ -0,0 +6,4 @@
let
inherit (pkgs.pseudofile) dir symlink;
dns = [
Owner

rajouter un TODO pour utiliser nos propres DNS.

rajouter un TODO pour utiliser nos propres DNS.
@ -0,0 +16,4 @@
"pool.ntp.org" = [ "iburst" ];
};
makestep = {
Owner

Options ultra obscures, ça sert à quoi?

Options ultra obscures, ça sert à quoi?
Owner

C'est le threshold à partir duquel la clock jump aulieu d'accélérer. C'est de la config plutôt standard de chrony et documenté dans la manpage de chrony.conf mais on peut ajouter un commentaire c'est vrai

C'est le threshold à partir duquel la clock jump aulieu d'accélérer. C'est de la config plutôt standard de chrony et documenté dans la manpage de chrony.conf mais on peut ajouter un commentaire c'est vrai
@ -0,0 +33,4 @@
defaultProfile.packages = with pkgs; [
hostapd-radius
min-collect-garbage
mtdutils
Owner

A-t-on vraiment besoin de mtdutils tout entier sur le système cible? Ça rajoute combien en espace?

A-t-on vraiment besoin de mtdutils tout entier sur le système cible? Ça rajoute combien en espace?
@ -0,0 +88,4 @@
# No DNS here, hostapd do not support this mode.
auth_server_addr = "10.0.253.1";
auth_server_port = 1812;
auth_server_shared_secret =
Owner

TODO: faut qu'on décide comment on gère ça et probablement qu'on ait un simili-agenix pour les APs ou autre chose…

TODO: faut qu'on décide comment on gère ça et probablement qu'on ait un simili-agenix pour les APs ou autre chose…
Owner

imo on peut laisser ça à une followup. l'objectif premier de la pr c'est de rapprocher main de la réalité de ce que je comprends (a minima ça doit pas bloquer la pr, mais si elias est motivé pour l'implem...)

imo on peut laisser ça à une followup. l'objectif premier de la pr c'est de rapprocher main de la réalité de ce que je comprends (a minima ça doit pas bloquer la pr, mais si elias est motivé pour l'implem...)
@ -0,0 +108,4 @@
};
in
{
hardware.wlanMacAddresses = {
Owner

le casing comme ça c'est chelou, tout est en dashed lowercase normalement?

le casing comme ça c'est chelou, tout est en dashed lowercase normalement?
@ -0,0 +3,4 @@
"ip": "10.0.253.2",
"mac": "f4:4d:5c:ff:65:36",
"sshKey": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEN/cTa9mC3Z1Thh+l9faXHMO5uXN7GSBznO+I8mO4fM",
"bssid2G": "02:5B:6A:00:00:00",
Owner

À quel moment on a décidé d'avoir les mêmes BSSIDs pour tous les APs d'une même zone sur les 2 radios différentes?

À quel moment on a décidé d'avoir les mêmes BSSIDs pour tous les APs d'une même zone sur les 2 radios différentes?
Owner

Ils sont pas pareil, 02:5B:6A:00:00:00 vs 02:5B:6A:01:00:00, le 4ème octet diffère

Ils sont pas pareil, `02:5B:6A:00:00:00` vs `02:5B:6A:01:00:00`, le 4ème octet diffère
Owner

46A1-1 et 46A-2 ont le même bssid2G non?

46A1-1 et 46A-2 ont le même bssid2G non?
Author
Owner

@rlahfa wrote in #621/files (comment):

46A1-1 et 46A-2 ont le même bssid2G non?

non le dernier octet diffère

@rlahfa wrote in https://git.dgnum.eu/DGNum/infrastructure/pulls/621/files#issuecomment-18104: > 46A1-1 et 46A-2 ont le même bssid2G non? non le dernier octet diffère
Owner

ouais je sais pas lire

ouais je sais pas lire
rlahfa marked this conversation as resolved
@ -39,6 +42,17 @@ let
colmena
jq
];
liminix-rebuild = [
Owner

Pourquoi ne pas utiliser des shebang avec des nix-shell ?

Pourquoi ne pas utiliser des shebang avec des `nix-shell` ?
Author
Owner

Par demande de Tom dans la précédente review ;)

Par demande de Tom dans la précédente review ;)
Owner

Parce que on veut une version spécifique de colmena ?

Parce que on veut une version spécifique de colmena ?
ecoppens marked this conversation as resolved
@ -0,0 +1,17 @@
# SPDX-FileCopyrightText: 2024 Ryan Lahfa <ryan.lahfa@dgnum.eu>
Owner

Imo il faut merge ce fichier avec addresses.nix. D'expérience on modifie souvent les fichiers ensemble

Imo il faut merge ce fichier avec addresses.nix. D'expérience on modifie souvent les fichiers ensemble
@ -22,0 +93,4 @@
}
) (lenRange floor-range);
AP =
Owner

C'est maybe naif mais pk on a toujours ça alors qu'on a le json, je pensais le json remplaçais ce point fixe

C'est maybe naif mais pk on a toujours ça alors qu'on a le json, je pensais le json remplaçais ce point fixe
@ -0,0 +1,14 @@
# SPDX-FileCopyrightText: 2024 Maurice Debray <maurice.debray@dgnum.eu>
#
# SPDX-License-Identifier: EUPL-1.2
Owner

Maybe un commentaire sur comment l'utiliser ? (et idéalement un check si il est bien sourcé et pas exec)

Maybe un commentaire sur comment l'utiliser ? (et idéalement un check si il est bien sourcé et pas exec)
All checks were successful
Check meta / check_dns (pull_request) Successful in 15s
Required
Details
Check meta / check_meta (pull_request) Successful in 16s
Required
Details
Check workflows / check_workflows (pull_request) Successful in 17s
Required
Details
Run pre-commit on all files / pre-commit (push) Successful in 32s
Required
Details
Build all the nodes / AP-test (pull_request) Successful in 29s
Required
Details
Run pre-commit on all files / pre-commit (pull_request) Successful in 33s
Required
Details
Build all the nodes / build01 (pull_request) Successful in 39s
Required
Details
Build all the nodes / bridge01 (pull_request) Successful in 39s
Required
Details
Build all the nodes / cof02 (pull_request) Successful in 38s
Required
Details
Build all the nodes / geo01 (pull_request) Successful in 37s
Required
Details
Build all the nodes / compute01 (pull_request) Successful in 55s
Required
Details
Build all the nodes / AP-jourdan (pull_request) Successful in 1m12s
Required
Details
Build all the nodes / geo02 (pull_request) Successful in 41s
Required
Details
Build all the nodes / hypervisor01 (pull_request) Successful in 35s
Required
Details
Build all the nodes / hypervisor02 (pull_request) Successful in 36s
Required
Details
Build all the nodes / hypervisor03 (pull_request) Successful in 36s
Required
Details
Build all the nodes / AP-montrouge (pull_request) Successful in 1m36s
Required
Details
Build all the nodes / hypervisor13 (pull_request) Successful in 38s
Required
Details
Build all the nodes / hypervisor11 (pull_request) Successful in 39s
Required
Details
Build all the nodes / hypervisor12 (pull_request) Successful in 39s
Required
Details
Build all the nodes / optic-loop (pull_request) Successful in 21s
Required
Details
Build all the nodes / iso (pull_request) Successful in 45s
Required
Details
Build all the nodes / AP-pantheon (pull_request) Successful in 2m1s
Required
Details
Build all the nodes / lab-router01 (pull_request) Successful in 35s
Required
Details
Build all the nodes / sw-Jourdan (pull_request) Successful in 21s
Required
Details
Build all the nodes / sw-Montrouge (pull_request) Successful in 21s
Required
Details
Build all the nodes / sw-Pantheon (pull_request) Successful in 22s
Required
Details
Build all the nodes / krz01 (pull_request) Successful in 58s
Required
Details
Build all the nodes / storage01 (pull_request) Successful in 38s
Required
Details
Build all the nodes / rescue01 (pull_request) Successful in 45s
Required
Details
Build all the nodes / tower01 (pull_request) Successful in 34s
Required
Details
Build all the nodes / web02 (pull_request) Successful in 36s
Required
Details
Build all the nodes / vault01 (pull_request) Successful in 1m24s
Required
Details
Build all the nodes / zulip01 (pull_request) Successful in 1m3s
Required
Details
Build all the nodes / web03 (pull_request) Successful in 1m15s
Required
Details
Build all the nodes / vault02 (pull_request) Successful in 1m32s
Required
Details
Build all the nodes / web01 (pull_request) Successful in 1m28s
Required
Details
Build all the nodes / vault03 (pull_request) Successful in 1m31s
Required
Details
Build the shell / build-shell (pull_request) Successful in 50s
Required
Details
This pull request has changes requested by an official reviewer.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feat/ap-prod:feat/ap-prod
git switch feat/ap-prod
Sign in to join this conversation.
No description provided.