feat(ap-prod): init #621
Labels
No labels
awaiting
awaiting-author
awaiting
awaiting-reviewer
bot
deployed
Silenced alert
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
5 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
DGNum/infrastructure!621
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/ap-prod"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
#592 but cleaner
pkgsand addzyxel-bootconfigto levitation 590501efe8c55b0594458af123fbfail 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";vid = toString meta.isp.vlans."admin-ap".idpour évité les mauvaise surprise.@ -0,0 +114,4 @@services = {# wlan0 is the 2.4GHz interface.hostap-1 = lib.mkIf (!is5GOnly) (inherit (lib) mkIf;(aussi valable pour warn)@ -21,0 +41,4 @@}:singleAttr name {inherit is5GOnly;channelIndex = lib.mod channelIndex 3;on peut ajouter le mod dans le inherit (lib)
@ -21,0 +108,4 @@letf =self:{ }tu peux utiliser fuseAttrs plutôt que de faire plein de //
@ -21,0 +147,4 @@# CD// singleFloor {name = ap: "AP-CD2-${builtins.toString ap}";ap-range = mkRange 1 5;il y a un AP de moins en vrai
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 :)
il a été supprimé :)
@ -21,0 +188,4 @@"16"];in"AP-MB${builtins.toString f}-${room ap}";pas besoin de préciser builtins pour toString
@ -21,0 +228,4 @@aps:builtins.listToAttrs (lib.imap0 (idx: v: {inherit (v) name;{ name, value }: nameValuePair name (value // ...)@ -21,0 +230,4 @@lib.imap0 (idx: v: {inherit (v) name;value = v.value // {"apIndex" = idx;les guillemet sont supperflu
@ -32,0 +270,4 @@sshKeys = optional (hasAttr name apMeta) apMeta.${name}.sshKey;need-ci = false;Faudrait en avoir un en ci, même si c'est un AP dummy
@ -32,0 +277,4 @@adminIpis5GOnlychannelIndexapIndexnit: se sera ptet mieux d'avoir la gen de BSSID ici plutôt que dans la config de l'ap
8af123fbfa6d151c3284ad61f2070c9fb7154cc1c26b345af69b4d34aa64pour 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 ?)007c76ad475d77402cc55d77402cc5ad8fa12185ec70a0ad7fdbbf4c2dcedbbf4c2dce91637d09660c33fc6ca80044bf3640@ -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; })c'est sur l'host et pas l'AP ?
c'est vrai que ça devrait pas être là ça ahah
0044bf3640c603c7447cpetit 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.nodestu peux pas plutot te fier au system, comme pour les switch ?
et je pense on peut le mettre directement dans dgn-isp, c'est exactement le même code pour les trois vault
@lbailly wrote in #621 (comment):
c'est ce que je me disais, mais rien d'autre à part les vaults auront le dgn-isp d'activé?
@lbailly wrote in #621 (comment):
pas bête ^^
c603c7447cd8a6644b8bd8a6644b8bbfed5642aabfed5642aa2de75256d82de75256d800b86dbad2@ -27,3 +34,3 @@inherit hostname;};}) cfg.monitoring.aps;}) aps;je pensais plutôt à set dgn-isp.monitoring.aps 😅
dans la section config du default me parait adapté
@lbailly wrote in #621 (comment):
j'avais déjà oublié cette option lol
00b86dbad2e6e17ea9f8e6e17ea9f84e338208834e338208831b41230bfd@rlahfa pour la partie liminix tu sera bien mieux caller que moi
il a cru le poto
Pour avoir les scripts dans le shell, il faut les définir dans
scripts/default.nixavec leur dépendances@ -290,12 +292,18 @@ in[pkgs.lonpkgs.rageNon, si tu en as besoin pour un script, ça va en dépendance dans
scripts/default.nixce 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 @@...}:letparentConfig = config;Ce renommage est inutile
@ -0,0 +46,4 @@zyxel-bootconfig];# Only keep root, which should inherit from DGN access control's root permissions.users.root = config.users.root;@ -0,0 +35,4 @@mtdutilsmin-collect-garbagehostapd-radiusubusnit: tu devrais trier la liste
@ -16,1 +16,4 @@# }{ lib, ... }:letinherit (lib.extra) genFuse singleAttr fuseAttrs;nit: trie l'inherit
@ -22,0 +61,4 @@genFuse (apRel:letap = apRel + ap-range.from;Ç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
@ -22,0 +90,4 @@genFuse (floorRel:letfloor = floorRel + floor-range.from;Pareil que pour
apL64@ -0,0 +1,13 @@# SPDX-FileCopyrightText: 2024 Maurice Debray <maurice.debray@dgnum.eu>## SPDX-License-Identifier: EUPL-1.2Le nom du script convient pas, a minima ça devrait être
export-ap-radius-secretvu ce qu'il fait@ -0,0 +14,4 @@FIRMWARE_OUTPUT="$2"dumpimage -T flat_dt -p 0 $ZYXEL_NWA_FIT -o $FIRMWARE_OUTPUTTu peux enlever la ligne vide
@ -0,0 +38,4 @@exit 1fiif toplevel="$(nom-build $(colmena eval -E "{ nodes, ... }: nodes.$@.config.system.outputs.systemConfiguration" --instantiate))"; thenFais le en plusieurs étapes:
Et t'auras plus besoin du
iffaudrait modifier
scripts/netconf-apply.shpour match alors ^^@ -0,0 +40,4 @@if toplevel="$(nom-build $(colmena eval -E "{ nodes, ... }: nodes.$@.config.system.outputs.systemConfiguration" --instantiate))"; thenecho systemConfiguration $toplevel aimed at $root_prefixsleep 3Hmmm ?
Si tu veux te laisser le temps d'interrompre demande un input à l'user plutôt
avec un timeout? ça reviendrait au même non?
Sans timeout
@ -0,0 +41,4 @@if toplevel="$(nom-build $(colmena eval -E "{ nodes, ... }: nodes.$@.config.system.outputs.systemConfiguration" --instantiate))"; thenecho systemConfiguration $toplevel aimed at $root_prefixsleep 3min-copy-closure --root "$root_prefix" $target_host $toplevelMet chaque variable entre quotes
@ -0,0 +42,4 @@echo systemConfiguration $toplevel aimed at $root_prefixsleep 3min-copy-closure --root "$root_prefix" $target_host $toplevel$ssh_command $target_host "$root_prefix/$toplevel/bin/install" "$root_prefix"same
@ -0,0 +9,4 @@set -euxo pipefailusage() {echo "./ftp_zeroday.sh [FIT-IMAGE] [IP]"C'est pas le bon nom de fichier
1b41230bfd65ce6375fdNew commits pushed, approval review dismissed automatically according to repository settings
65ce6375fd95f2b5146d95f2b5146d4976779f56@ -0,0 +6,4 @@letinherit (pkgs.pseudofile) dir symlink;dns = [rajouter un TODO pour utiliser nos propres DNS.
@ -0,0 +16,4 @@"pool.ntp.org" = [ "iburst" ];};makestep = {Options ultra obscures, ça sert à quoi?
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-radiusmin-collect-garbagemtdutilsA-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 =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…
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 = {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",À 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?
Ils sont pas pareil,
02:5B:6A:00:00:00vs02:5B:6A:01:00:00, le 4ème octet diffère46A1-1 et 46A-2 ont le même bssid2G non?
@rlahfa wrote in #621/files (comment):
non le dernier octet diffère
ouais je sais pas lire
@ -39,6 +42,17 @@ letcolmenajq];liminix-rebuild = [Pourquoi ne pas utiliser des shebang avec des
nix-shell?Par demande de Tom dans la précédente review ;)
Parce que on veut une version spécifique de colmena ?
@ -0,0 +1,17 @@# SPDX-FileCopyrightText: 2024 Ryan Lahfa <ryan.lahfa@dgnum.eu>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 =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.2Maybe un commentaire sur comment l'utiliser ? (et idéalement un check si il est bien sourcé et pas exec)
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.