meta rework #230

Closed
mdebray wants to merge 3 commits from meta_rework into main
Owner

Plusieurs refactorisations:

  • Les clefs sont dans meta mnt
  • keys/defaults.nix a été drastiquement simplifié pour ne servir que pour les secrets.nix (il faudrait peut-être séparer le module nixos du fichier secrets que mange agenix pour se séparer de l'instanciation de meta dans keys.nix)
  • on utilise l'overlay de nix-pkgs mnt pour une intégration plus smooth
  • Le changement le plus opinionated selon moi: meta maintenant est un module (sauf le dns et la liste des versions nixpkgs supportés)
  • J'ai fix agenix pour le rekeying au passage
  • La partie patch des sources et import de la lib se fait dorénavant dans sources.nix
Plusieurs refactorisations: - [x] Les clefs sont dans meta mnt - [x] `keys/defaults.nix` a été drastiquement simplifié pour ne servir que pour les `secrets.nix` (il faudrait peut-être séparer le module nixos du fichier secrets que mange agenix pour se séparer de l'instanciation de meta dans keys.nix) - [x] on utilise l'overlay de nix-pkgs mnt pour une intégration plus smooth - [x] Le changement le plus opinionated selon moi: `meta` maintenant est un module (sauf le dns et la liste des versions nixpkgs supportés) - [x] J'ai fix agenix pour le rekeying au passage - [x] La partie patch des sources et import de la lib se fait dorénavant dans sources.nix
mdebray added 5 commits 2025-01-09 17:53:05 +01:00
chore: revert meta stuff
Get rid of the weird half nix half module stuff.
feat(nix-pkgs): use overlay
Some checks failed
Check meta / check_dns (push) Successful in 15s
Check meta / check_meta (push) Successful in 15s
Run pre-commit on all files / pre-commit (push) Successful in 38s
Check meta / check_meta (pull_request) Successful in 15s
Check meta / check_dns (pull_request) Successful in 15s
Check workflows / check_workflows (pull_request) Successful in 16s
Build all the nodes / ap01 (pull_request) Failing after 46s
Build all the nodes / netcore02 (pull_request) Failing after 2m29s
Build all the nodes / bridge01 (pull_request) Successful in 3m42s
Build all the nodes / geo02 (pull_request) Successful in 4m4s
Build all the nodes / hypervisor02 (pull_request) Successful in 4m4s
Build all the nodes / geo01 (pull_request) Successful in 4m4s
Build all the nodes / tower01 (pull_request) Successful in 3m49s
Build all the nodes / hypervisor03 (pull_request) Successful in 4m3s
Build all the nodes / vault01 (pull_request) Successful in 3m49s
Run pre-commit on all files / pre-commit (pull_request) Successful in 23s
Build the shell / build-shell (pull_request) Successful in 27s
Build all the nodes / hypervisor01 (pull_request) Successful in 4m35s
Build all the nodes / rescue01 (pull_request) Successful in 4m45s
Build all the nodes / web02 (pull_request) Successful in 2m18s
Build all the nodes / web01 (pull_request) Successful in 4m40s
Build all the nodes / web03 (pull_request) Successful in 2m20s
Build all the nodes / compute01 (pull_request) Successful in 6m9s
Build all the nodes / storage01 (pull_request) Successful in 7m31s
ea6236eede
mdebray force-pushed meta_rework from ea6236eede to e78bbe966d 2025-01-09 21:16:31 +01:00 Compare
Author
Owner

Evaluation de la performance

Output de time { colmena build --on compute01,storage01,web01,web02,web03,tower01,geo01,geo02 > /dev/null 2>&1; } pour chaque commit (en utilisant le shell de ce commit) :

commit e78bbe966d50a5c4dd4cd62bc426aa0676c55aaa
real    1m6.746s
user    0m46.150s
sys     0m8.564s

commit adb19213339e4c89fb3dabd222ae03b6ba4e201e
real    1m12.647s
user    0m51.524s
sys     0m8.805s

commit b1d7c7d1c7f070f8351714cabe2acd9c1cde476f
real    1m8.769s
user    0m47.892s
sys     0m8.740s

commit a57d96c8f58a52a494c61262f0f5e0d83be1d754
real    1m10.571s
user    0m49.526s
sys     0m8.681s

commit 83a76f9d12b5df14bf477c9840fe133283272a57
real    1m9.366s
user    0m48.215s
sys     0m8.881s

Sur un run précédent on observe de la variabilité de l'ordre de qq secondes.

Conclusion: Pas de changements drastique en terme de la perf pour l'eval

# Evaluation de la performance Output de `time { colmena build --on compute01,storage01,web01,web02,web03,tower01,geo01,geo02 > /dev/null 2>&1; }` pour chaque commit (en utilisant le shell de ce commit) : ``` commit e78bbe966d50a5c4dd4cd62bc426aa0676c55aaa real 1m6.746s user 0m46.150s sys 0m8.564s commit adb19213339e4c89fb3dabd222ae03b6ba4e201e real 1m12.647s user 0m51.524s sys 0m8.805s commit b1d7c7d1c7f070f8351714cabe2acd9c1cde476f real 1m8.769s user 0m47.892s sys 0m8.740s commit a57d96c8f58a52a494c61262f0f5e0d83be1d754 real 1m10.571s user 0m49.526s sys 0m8.681s commit 83a76f9d12b5df14bf477c9840fe133283272a57 real 1m9.366s user 0m48.215s sys 0m8.881s ``` Sur un run précédent on observe de la variabilité de l'ordre de qq secondes. **Conclusion:** Pas de changements drastique en terme de la perf pour l'eval
mdebray changed title from WIP: meta rework to meta rework 2025-01-09 22:41:17 +01:00
Author
Owner

PS: les changements de hash sont principalement causés par le fait qu'on patch un peu différemment les sources

PS: les changements de hash sont principalement causés par le fait qu'on patch un peu différemment les sources
mdebray force-pushed meta_rework from e78bbe966d to 07a014047f 2025-01-09 23:45:09 +01:00 Compare
mdebray force-pushed meta_rework from 07a014047f to 5778d31548 2025-01-16 00:19:17 +01:00 Compare
thubrecht reviewed 2025-01-16 08:46:44 +01:00
@ -9,3 +9,4 @@
"bupstash-put_key"
"forgejo-mailer_password_file"
"forgejo_runners-token_file"
"garage-environment_file"
Owner

Oubli lors du rebase, y'a plus d'env file

Oubli lors du rebase, y'a plus d'env file
Author
Owner

Ouais. Mais j'ai des pb aussi avec l'évaluation de lix mnt (apple-sdk_11 n'existe plus). Je pousse une nouvelle version dès que ça marche

Ouais. Mais j'ai des pb aussi avec l'évaluation de lix mnt (`apple-sdk_11` n'existe plus). Je pousse une nouvelle version dès que ça marche
mdebray marked this conversation as resolved
Owner

Ce serait bien de séparer le coeur du rework, et l'import de l'overlay de nix-pkgs (sur lequel je suis pas chaud). Je pense que c'est une mauvaise idée d'appliquer l'overlay de manière globale et il vaut mieux faire des overlay locaux plus ciblés. Ça évite d'avoir une version modifié de django-allauth qui se retrouve partout par exemple alors que y'en aurait besoin que pour dgsi

Ce serait bien de séparer le coeur du rework, et l'import de l'overlay de nix-pkgs (sur lequel je suis pas chaud). Je pense que c'est une mauvaise idée d'appliquer l'overlay de manière globale et il vaut mieux faire des overlay locaux plus ciblés. Ça évite d'avoir une version modifié de django-allauth qui se retrouve partout par exemple alors que y'en aurait besoin que pour dgsi
Author
Owner

Ce serait bien de séparer le coeur du rework, et l'import de l'overlay de nix-pkgs (sur lequel je suis pas chaud). Je pense que c'est une mauvaise idée d'appliquer l'overlay de manière globale et il vaut mieux faire des overlay locaux plus ciblés. Ça évite d'avoir une version modifié de django-allauth qui se retrouve partout par exemple alors que y'en aurait besoin que pour dgsi

C'est pour ça qu'il y a plusieurs commits (mais vu qu'on a pas Gerrit ça marche pas en fait). Je vais ouvrir une PR séparée du coup.

nix-pkgs apporte des choses en plus de mises à jours ? (sauf pour le patch des webhooks)

> Ce serait bien de séparer le coeur du rework, et l'import de l'overlay de nix-pkgs (sur lequel je suis pas chaud). Je pense que c'est une mauvaise idée d'appliquer l'overlay de manière globale et il vaut mieux faire des overlay locaux plus ciblés. Ça évite d'avoir une version modifié de django-allauth qui se retrouve partout par exemple alors que y'en aurait besoin que pour dgsi C'est pour ça qu'il y a plusieurs commits (mais vu qu'on a pas Gerrit ça marche pas en fait). Je vais ouvrir une PR séparée du coup. nix-pkgs apporte des choses en plus de mises à jours ? (sauf pour le patch des webhooks)
mdebray force-pushed meta_rework from 5778d31548 to c3f61a49e9 2025-01-16 10:58:14 +01:00 Compare
mdebray force-pushed meta_rework from c3f61a49e9 to 5d4ddb9a1f 2025-01-16 11:00:37 +01:00 Compare
mdebray force-pushed meta_rework from 5d4ddb9a1f to 92b2dcef36 2025-01-16 11:05:45 +01:00 Compare
mdebray changed title from meta rework to WIP: meta rework 2025-01-16 11:05:53 +01:00
Author
Owner

Waiting #258

Waiting https://git.dgnum.eu/DGNum/infrastructure/pulls/258
mdebray force-pushed meta_rework from 92b2dcef36 to 8ce8ecc636 2025-01-16 11:20:58 +01:00 Compare
mdebray force-pushed meta_rework from 8ce8ecc636 to 121bbc4896 2025-01-16 11:27:06 +01:00 Compare
mdebray force-pushed meta_rework from 121bbc4896 to d6bf6f6d7f 2025-01-16 11:36:07 +01:00 Compare
mdebray changed title from WIP: meta rework to meta rework 2025-01-16 12:18:02 +01:00
thubrecht reviewed 2025-01-16 12:40:33 +01:00
@ -20,0 +28,4 @@
email = "catvayor@dgnum.eu";
username = "lbailly";
sshKeys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAA16foz+XzwKwyIR4wFgNIAE3Y7AfXyEsUZFVVz8Rie catvayor@katvayor"
Owner

Ses nouvelles clés SSH ont été drop durant le rebase

Ses nouvelles clés SSH ont été drop durant le rebase
mdebray marked this conversation as resolved
thubrecht reviewed 2025-01-16 12:41:50 +01:00
sources.nix Outdated
@ -0,0 +5,4 @@
# SPDX-License-Identifier: EUPL-1.2
let
unpatchedSources = import ./npins;
Owner

sources et patchedSources plutôt

`sources` et `patchedSources` plutôt
thubrecht reviewed 2025-01-16 12:44:33 +01:00
@ -0,0 +29,4 @@
let
names = meta.nodes.${node}.admins;
in
unique (getMemberKeys names ++ getNodeKeys [ node ]);
Owner

Tu oublies complètement adminGroups

Tu oublies complètement `adminGroups`
mdebray marked this conversation as resolved
Author
Owner

Bon je vais refaire un check d'égalité des hash parce que les rebases successifs ont l'air d'avoir drop plein de choses

Bon je vais refaire un check d'égalité des hash parce que les rebases successifs ont l'air d'avoir drop plein de choses
mdebray force-pushed meta_rework from d6bf6f6d7f to 1aac564ede 2025-01-23 09:38:01 +01:00 Compare
mdebray force-pushed meta_rework from 1aac564ede to 58ea284824 2025-01-23 09:51:51 +01:00 Compare
thubrecht reviewed 2025-01-23 23:54:38 +01:00
@ -0,0 +5,4 @@
# SPDX-License-Identifier: EUPL-1.2
let
unpatchedSources = import ./npins;
Owner

__rawSources = import ./npins;

__rawSources = import ./npins;
@ -0,0 +7,4 @@
let
unpatchedSources = import ./npins;
bootstrapNixpkgs = import unpatchedSources.nixos-unstable { };
Owner

pkgs = import __rawSources.nixos-unstable { };

pkgs = import __rawSources.nixos-unstable { };
@ -0,0 +10,4 @@
bootstrapNixpkgs = import unpatchedSources.nixos-unstable { };
patch = (import ./lib/nix-patches { patchFile = ./patches; }).base {
pkgs = bootstrapNixpkgs;
Owner

inherit pkgs;

inherit pkgs;
@ -0,0 +35,4 @@
;
fullLib = bootstrapNixpkgs.lib.extend libOverlay;
}
Owner

Okay, en fait ce serait mieux que ce fichier s'appelle bootstrap.nix, et ça donnerait un attrset avec:

rec {
  sources = ...
  pkgs = pkgs // { lib = pkgs.lib.extend overlays.lib; };
  unpatchedSources = ...
  overlays.lib = _: lib: { extra = import ./lib/nix-lib { inherit lib; }; };
}
Okay, en fait ce serait mieux que ce fichier s'appelle `bootstrap.nix`, et ça donnerait un attrset avec: ```nix rec { sources = ... pkgs = pkgs // { lib = pkgs.lib.extend overlays.lib; }; unpatchedSources = ... overlays.lib = _: lib: { extra = import ./lib/nix-lib { inherit lib; }; }; } ```
thubrecht closed this pull request 2025-02-06 13:59:46 +01:00
Some checks failed
Check workflows / check_workflows (pull_request) Successful in 16s
Required
Details
Check meta / check_meta (pull_request) Successful in 17s
Required
Details
Check meta / check_dns (pull_request) Successful in 18s
Required
Details
Run pre-commit on all files / pre-commit (push) Successful in 25s
Required
Details
Build all the nodes / ap01 (pull_request) Successful in 32s
Required
Details
Build all the nodes / netcore02 (pull_request) Successful in 31s
Required
Details
Build all the nodes / geo01 (pull_request) Successful in 1m35s
Required
Details
Build all the nodes / tower01 (pull_request) Successful in 1m41s
Required
Details
Build all the nodes / storage01 (pull_request) Successful in 1m57s
Required
Details
Build all the nodes / web02 (pull_request) Successful in 1m41s
Required
Details
Build the shell / build-shell (pull_request) Successful in 34s
Required
Details
Build all the nodes / bridge01 (pull_request) Successful in 2m44s
Required
Details
Run pre-commit on all files / pre-commit (pull_request) Successful in 35s
Required
Details
Build all the nodes / hypervisor01 (pull_request) Successful in 2m53s
Required
Details
Build all the nodes / hypervisor02 (pull_request) Successful in 2m54s
Required
Details
Build all the nodes / hypervisor03 (pull_request) Successful in 3m3s
Required
Details
Build all the nodes / build01 (pull_request) Successful in 3m20s
Required
Details
Build all the nodes / geo02 (pull_request) Successful in 3m21s
Required
Details
Build all the nodes / web01 (pull_request) Successful in 2m51s
Required
Details
Build all the nodes / vault01 (pull_request) Successful in 2m59s
Required
Details
Build all the nodes / web03 (pull_request) Successful in 1m48s
Required
Details
Build all the nodes / rescue01 (pull_request) Successful in 3m14s
Required
Details
Build all the nodes / compute01 (pull_request) Failing after 2m50s
Required
Details

Pull request closed

Sign in to join this conversation.
No description provided.