feat(web03): mail config for pole #804

Merged
mdebray merged 3 commits from pole-mail into main 2026-06-07 22:41:17 +02:00
Member
No description provided.
feat(web03): draft mail config for pole
All checks were successful
Run pre-commit on all files / pre-commit (push) Successful in 18s
Run pre-commit on all files / pre-commit (pull_request) Successful in 17s
7d18b6598f
aandres changed title from feat(web03): mail config for pole to WIP: feat(web03): mail config for pole 2026-06-01 02:24:32 +02:00
aandres left a comment

à travailler avec aandres/poleSubscribe#6

à travailler avec https://git.dgnum.eu/aandres/poleSubscribe/pulls/6
@ -44,6 +44,7 @@ python3.pkgs.buildPythonApplication rec {
django-extensions
django-modeltranslation
dj-database-url
loadcredential
Author
Member

repris de vector mais peut-être à ne pas utiliser étant donné la config déjà présente pour la secret key django

repris de vector mais peut-être à ne pas utiliser étant donné la config déjà présente pour la secret key django
Owner

Tu utilises mon truc (SecretFileValue) dans ton fichier settings.py, ducoup tu n'as pas besoin de loadcredential (c'est un wrapper créé par Tom pour load des credentials avec le système de SystemD https://systemd.io/CREDENTIALS/)

Tu utilises mon truc (`SecretFileValue`) dans ton fichier `settings.py`, ducoup tu n'as pas besoin de `loadcredential` (c'est un wrapper créé par Tom pour load des credentials avec le système de SystemD https://systemd.io/CREDENTIALS/)
aandres marked this conversation as resolved
@ -41,2 +44,4 @@
] (name: config.age.secrets."polesubcribe-${toLower name}_file".path);
environment = {
DJANGO_SECRET_KEY_FILE = "%d/django_secret";
Author
Member

La SECRET_KEY semble être déjà gérée ici donc il y a deux fonctionnements différents si je garde les lignes dessus

La SECRET_KEY semble être déjà gérée ici donc il y a deux fonctionnements différents si je garde les lignes dessus
Owner

Il faut défitivement faire commme la ligne DJANGO_SECRET_KEY_FILE:

  • Si tu utilises loadcredential dans ton code python, ce qui ~requiert de ne pas utiliser django_configurations (en tout cas à chaque fois que Tom l'utilise, il n'utilise pas django_configurations), loadcredential va savoir lire directement dans le dossier de credentials (dicté par l'envars $CREDENTIALS_DIRECTORY cf. https://systemd.io/CREDENTIALS/) le bon fichier et ducoup tu n'as juste qu'à bien mettre les mappings que tu veux dans LoadCredential (ici avec le wrapper DGNum)
  • Si tu utilises SecretValueFile et donc django_configurations, il faut un envar, par exemple pour EMAIL_HOST_PASSWORD = SecretFileValue():
    • Soit DJANGO_EMAIL_HOST_PASSWORD=<le secret>
    • Soit DJANGO_EMAIL_HOST_PASSWORD_FILE=<le chemin vers le fichier contenant le secret>

Tu peux aussi modifier le préfixe/l'envar exactement comme avec values.Value (puisque SecretValueFile est un wrapper autour de values.Value)

Donc, par exemple ici avec DJANGO_SECRET_KEY_FILE, ça pointe vers %d/django_secret qui va être remplacé par systemd par /run/credentials/polesubscribe.service/django_secret (cf. le lien précédent sur les crédentials dans systemd): donc ça veut aussi dire qu'il faut charger le secret grâce à LoadCredential pour que ce fichier existe.

Tu peux éviter de charge le secret avec LoadCredential (pas dans l'infra de la DGNum hein), en pointant directement DJANGO_SECRET_KEY_FILE vers config.age.secrets."polesubscribe-django_secret_file".path, mais il ne faut pas oublier de mettre des groupes supplémentaires (avec SupplementaryGroups) pour que l'unit Systemd puisse correctement lire le fichier.

Il faut défitivement faire commme la ligne `DJANGO_SECRET_KEY_FILE`: - Si tu utilises `loadcredential` dans ton code python, ce qui ~requiert de ne pas utiliser `django_configurations` (en tout cas à chaque fois que Tom l'utilise, il n'utilise pas `django_configurations`), `loadcredential` va savoir lire directement dans le dossier de credentials (dicté par l'envars `$CREDENTIALS_DIRECTORY` cf. https://systemd.io/CREDENTIALS/) le bon fichier et ducoup tu n'as juste qu'à bien mettre les mappings que tu veux dans `LoadCredential` (ici avec le wrapper DGNum) - Si tu utilises `SecretValueFile` et donc `django_configurations`, il faut un envar, par exemple pour `EMAIL_HOST_PASSWORD = SecretFileValue()`: - Soit `DJANGO_EMAIL_HOST_PASSWORD=<le secret>` - Soit `DJANGO_EMAIL_HOST_PASSWORD_FILE=<le chemin vers le fichier contenant le secret>` Tu peux aussi modifier le préfixe/l'envar exactement comme avec `values.Value` (puisque `SecretValueFile` est un wrapper autour de `values.Value`) Donc, par exemple ici avec `DJANGO_SECRET_KEY_FILE`, ça pointe vers `%d/django_secret` qui va être remplacé par systemd par `/run/credentials/polesubscribe.service/django_secret` (cf. le lien précédent sur les crédentials dans systemd): donc ça veut aussi dire qu'il faut charger le secret grâce à `LoadCredential` pour que ce fichier existe. Tu peux éviter de charge le secret avec `LoadCredential` (pas dans l'infra de la DGNum hein), en pointant directement `DJANGO_SECRET_KEY_FILE` vers `config.age.secrets."polesubscribe-django_secret_file".path`, mais il ne faut pas oublier de mettre des groupes supplémentaires (avec `SupplementaryGroups`) pour que l'unit Systemd puisse correctement lire le fichier.
aandres marked this conversation as resolved
@ -41,0 +41,4 @@
credentials = genAttrs [
"SECRET_KEY"
"EMAIL_HOST_PASSWORD"
] (name: config.age.secrets."polesubcribe-${toLower name}_file".path);
Author
Member

J'imagine qu'un fichier soit être créé qque part pour que cette ligne fonctionne

J'imagine qu'un fichier soit être créé qque part pour que cette ligne fonctionne
Owner

Exactement dans machines/nixos/web03/secrets:

  • Editer secrets.nix pour dclarer le secret
  • Editer le secret et le chiffrer avec agenix -e nomdufichier
Exactement dans `machines/nixos/web03/secrets`: - Editer `secrets.nix` pour dclarer le secret - Editer le secret et le chiffrer avec `agenix -e nomdufichier`
aandres marked this conversation as resolved
@ -58,6 +63,12 @@ in
"alice+polesubscribe@dgnum.eu"
]
];
POLE_EMAIL_HOST = "kurisu.lahfa.xyz";
Author
Member

noms et contenus des variables repris de la config vector

noms et contenus des variables repris de la config vector
aandres marked this conversation as resolved
@ -59,2 +64,4 @@
]
];
POLE_EMAIL_HOST = "kurisu.lahfa.xyz";
POLE_EMAIL_HOST_USER = "web-services@infra.dgnum.eu";
Owner

Vu que c'est un service non-DGNum, je ne sais pas si on utilise cet email par contre? mais sinon ok

Vu que c'est un service non-DGNum, je ne sais pas si on utilise cet email par contre? mais sinon ok
Owner

On peut créer un nouvel email oui mais perso j'ai pas de pb à utiliser cet email pour tous les services qu'on héberge

On peut créer un nouvel email oui mais perso j'ai pas de pb à utiliser cet email pour tous les services qu'on héberge
aandres marked this conversation as resolved
mdebray requested changes 2026-06-05 16:17:19 +02:00
Dismissed
mdebray left a comment
  • Retirer le loadcredentials
  • Ajouter les secrets
- Retirer le loadcredentials - Ajouter les secrets
feat(web03): add secret from emails
All checks were successful
Run pre-commit on all files / pre-commit (push) Successful in 17s
Run pre-commit on all files / pre-commit (pull_request) Successful in 17s
7a67413145
aandres force-pushed pole-mail from 7a67413145
All checks were successful
Run pre-commit on all files / pre-commit (push) Successful in 17s
Run pre-commit on all files / pre-commit (pull_request) Successful in 17s
to 1c7c7bc985
All checks were successful
Run pre-commit on all files / pre-commit (push) Successful in 19s
Run pre-commit on all files / pre-commit (pull_request) Successful in 19s
2026-06-07 17:04:14 +02:00
Compare
aandres changed title from WIP: feat(web03): mail config for pole to feat(web03): mail config for pole 2026-06-07 17:06:58 +02:00
fix(web03): apply fix config
All checks were successful
Run pre-commit on all files / pre-commit (push) Successful in 18s
Run pre-commit on all files / pre-commit (pull_request) Successful in 18s
75ababb7b6
mdebray changed target branch from pole to main 2026-06-07 17:20:12 +02:00
aandres force-pushed pole-mail from 75ababb7b6
All checks were successful
Run pre-commit on all files / pre-commit (push) Successful in 18s
Run pre-commit on all files / pre-commit (pull_request) Successful in 18s
to af0e120dac
All checks were successful
Show derivation diffs / build01 (pull_request) Successful in 1m4s
Build all the nodes / web03 (pull_request) Successful in 1m6s
Build all the nodes / vault03 (pull_request) Successful in 1m6s
Show derivation diffs / cof02 (pull_request) Successful in 1m7s
Show derivation diffs / geo01 (pull_request) Successful in 41s
Show derivation diffs / compute01 (pull_request) Successful in 1m29s
Show derivation diffs / AP-jourdan (pull_request) Successful in 2m12s
Show derivation diffs / external01 (pull_request) Successful in 52s
Show derivation diffs / geo02 (pull_request) Successful in 47s
Show derivation diffs / hypervisors0 (pull_request) Successful in 53s
Show derivation diffs / optic-loop (pull_request) Successful in 18s
Show derivation diffs / lab-router01 (pull_request) Successful in 37s
Show derivation diffs / hypervisors1 (pull_request) Successful in 52s
Show derivation diffs / iso (pull_request) Successful in 53s
Show derivation diffs / sw-Jourdan (pull_request) Successful in 17s
Show derivation diffs / krz01 (pull_request) Successful in 55s
Show derivation diffs / sw-Montrouge (pull_request) Successful in 19s
Show derivation diffs / sw-Pantheon (pull_request) Successful in 19s
Show derivation diffs / AP-montrouge (pull_request) Successful in 3m18s
Show derivation diffs / storage01 (pull_request) Successful in 44s
Show derivation diffs / rescue01 (pull_request) Successful in 57s
Show derivation diffs / tower01 (pull_request) Successful in 41s
Run pre-commit on all files / pre-commit (pull_request) Successful in 20s
Show derivation diffs / AP-pantheon (pull_request) Successful in 3m56s
Show derivation diffs / web02 (pull_request) Successful in 37s
Show derivation diffs / web01 (pull_request) Successful in 1m6s
Show derivation diffs / vault01 (pull_request) Successful in 1m21s
Show derivation diffs / vault03 (pull_request) Successful in 1m19s
Show derivation diffs / vault02 (pull_request) Successful in 1m22s
Show derivation diffs / web03 (pull_request) Successful in 51s
2026-06-07 18:13:31 +02:00
Compare
mdebray approved these changes 2026-06-07 19:47:54 +02:00
aandres force-pushed pole-mail from af0e120dac
All checks were successful
Show derivation diffs / build01 (pull_request) Successful in 1m4s
Build all the nodes / web03 (pull_request) Successful in 1m6s
Build all the nodes / vault03 (pull_request) Successful in 1m6s
Show derivation diffs / cof02 (pull_request) Successful in 1m7s
Show derivation diffs / geo01 (pull_request) Successful in 41s
Show derivation diffs / compute01 (pull_request) Successful in 1m29s
Show derivation diffs / AP-jourdan (pull_request) Successful in 2m12s
Show derivation diffs / external01 (pull_request) Successful in 52s
Show derivation diffs / geo02 (pull_request) Successful in 47s
Show derivation diffs / hypervisors0 (pull_request) Successful in 53s
Show derivation diffs / optic-loop (pull_request) Successful in 18s
Show derivation diffs / lab-router01 (pull_request) Successful in 37s
Show derivation diffs / hypervisors1 (pull_request) Successful in 52s
Show derivation diffs / iso (pull_request) Successful in 53s
Show derivation diffs / sw-Jourdan (pull_request) Successful in 17s
Show derivation diffs / krz01 (pull_request) Successful in 55s
Show derivation diffs / sw-Montrouge (pull_request) Successful in 19s
Show derivation diffs / sw-Pantheon (pull_request) Successful in 19s
Show derivation diffs / AP-montrouge (pull_request) Successful in 3m18s
Show derivation diffs / storage01 (pull_request) Successful in 44s
Show derivation diffs / rescue01 (pull_request) Successful in 57s
Show derivation diffs / tower01 (pull_request) Successful in 41s
Run pre-commit on all files / pre-commit (pull_request) Successful in 20s
Show derivation diffs / AP-pantheon (pull_request) Successful in 3m56s
Show derivation diffs / web02 (pull_request) Successful in 37s
Show derivation diffs / web01 (pull_request) Successful in 1m6s
Show derivation diffs / vault01 (pull_request) Successful in 1m21s
Show derivation diffs / vault03 (pull_request) Successful in 1m19s
Show derivation diffs / vault02 (pull_request) Successful in 1m22s
Show derivation diffs / web03 (pull_request) Successful in 51s
to 5a790172a4
All checks were successful
Build all the nodes / web01 (pull_request) Successful in 59s
Build all the nodes / vault01 (pull_request) Successful in 1m11s
Build all the nodes / vault03 (pull_request) Successful in 1m8s
Build all the nodes / vault02 (pull_request) Successful in 1m11s
Show derivation diffs / geo01 (pull_request) Successful in 47s
Show derivation diffs / geo02 (pull_request) Successful in 41s
Show derivation diffs / external01 (pull_request) Successful in 58s
Show derivation diffs / compute01 (pull_request) Successful in 1m24s
Show derivation diffs / hypervisors0 (pull_request) Successful in 57s
Show derivation diffs / AP-jourdan (pull_request) Successful in 2m13s
Show derivation diffs / optic-loop (pull_request) Successful in 22s
Show derivation diffs / lab-router01 (pull_request) Successful in 48s
Show derivation diffs / hypervisors1 (pull_request) Successful in 59s
Show derivation diffs / krz01 (pull_request) Successful in 58s
Show derivation diffs / iso (pull_request) Successful in 59s
Show derivation diffs / sw-Jourdan (pull_request) Successful in 20s
Show derivation diffs / sw-Montrouge (pull_request) Successful in 19s
Show derivation diffs / sw-Pantheon (pull_request) Successful in 19s
Show derivation diffs / rescue01 (pull_request) Successful in 1m0s
Show derivation diffs / storage01 (pull_request) Successful in 44s
Show derivation diffs / AP-montrouge (pull_request) Successful in 3m31s
Show derivation diffs / tower01 (pull_request) Successful in 39s
Run pre-commit on all files / pre-commit (pull_request) Successful in 22s
Show derivation diffs / web02 (pull_request) Successful in 46s
Show derivation diffs / AP-pantheon (pull_request) Successful in 4m10s
Show derivation diffs / web03 (pull_request) Successful in 49s
Show derivation diffs / web01 (pull_request) Successful in 1m10s
Show derivation diffs / vault01 (pull_request) Successful in 1m20s
Show derivation diffs / vault03 (pull_request) Successful in 1m20s
Show derivation diffs / vault02 (pull_request) Successful in 1m26s
2026-06-07 21:07:39 +02:00
Compare
aandres force-pushed pole-mail from 5a790172a4
All checks were successful
Build all the nodes / web01 (pull_request) Successful in 59s
Build all the nodes / vault01 (pull_request) Successful in 1m11s
Build all the nodes / vault03 (pull_request) Successful in 1m8s
Build all the nodes / vault02 (pull_request) Successful in 1m11s
Show derivation diffs / geo01 (pull_request) Successful in 47s
Show derivation diffs / geo02 (pull_request) Successful in 41s
Show derivation diffs / external01 (pull_request) Successful in 58s
Show derivation diffs / compute01 (pull_request) Successful in 1m24s
Show derivation diffs / hypervisors0 (pull_request) Successful in 57s
Show derivation diffs / AP-jourdan (pull_request) Successful in 2m13s
Show derivation diffs / optic-loop (pull_request) Successful in 22s
Show derivation diffs / lab-router01 (pull_request) Successful in 48s
Show derivation diffs / hypervisors1 (pull_request) Successful in 59s
Show derivation diffs / krz01 (pull_request) Successful in 58s
Show derivation diffs / iso (pull_request) Successful in 59s
Show derivation diffs / sw-Jourdan (pull_request) Successful in 20s
Show derivation diffs / sw-Montrouge (pull_request) Successful in 19s
Show derivation diffs / sw-Pantheon (pull_request) Successful in 19s
Show derivation diffs / rescue01 (pull_request) Successful in 1m0s
Show derivation diffs / storage01 (pull_request) Successful in 44s
Show derivation diffs / AP-montrouge (pull_request) Successful in 3m31s
Show derivation diffs / tower01 (pull_request) Successful in 39s
Run pre-commit on all files / pre-commit (pull_request) Successful in 22s
Show derivation diffs / web02 (pull_request) Successful in 46s
Show derivation diffs / AP-pantheon (pull_request) Successful in 4m10s
Show derivation diffs / web03 (pull_request) Successful in 49s
Show derivation diffs / web01 (pull_request) Successful in 1m10s
Show derivation diffs / vault01 (pull_request) Successful in 1m20s
Show derivation diffs / vault03 (pull_request) Successful in 1m20s
Show derivation diffs / vault02 (pull_request) Successful in 1m26s
to d3fb654922
All checks were successful
Build all the nodes / vault01 (pull_request) Successful in 1m1s
Build all the nodes / web01 (pull_request) Successful in 1m5s
Build all the nodes / vault02 (pull_request) Successful in 1m11s
Build all the nodes / vault03 (pull_request) Successful in 1m11s
Show derivation diffs / compute01 (pull_request) Successful in 1m23s
Show derivation diffs / geo01 (pull_request) Successful in 50s
Show derivation diffs / geo02 (pull_request) Successful in 51s
Show derivation diffs / external01 (pull_request) Successful in 1m5s
Show derivation diffs / AP-jourdan (pull_request) Successful in 2m18s
Show derivation diffs / hypervisors0 (pull_request) Successful in 1m4s
Show derivation diffs / optic-loop (pull_request) Successful in 21s
Show derivation diffs / lab-router01 (pull_request) Successful in 42s
Show derivation diffs / hypervisors1 (pull_request) Successful in 54s
Show derivation diffs / iso (pull_request) Successful in 1m1s
Show derivation diffs / krz01 (pull_request) Successful in 58s
Show derivation diffs / sw-Jourdan (pull_request) Successful in 21s
Show derivation diffs / sw-Montrouge (pull_request) Successful in 24s
Show derivation diffs / sw-Pantheon (pull_request) Successful in 20s
Show derivation diffs / storage01 (pull_request) Successful in 46s
Show derivation diffs / AP-montrouge (pull_request) Successful in 3m32s
Show derivation diffs / rescue01 (pull_request) Successful in 59s
Show derivation diffs / tower01 (pull_request) Successful in 40s
Run pre-commit on all files / pre-commit (pull_request) Successful in 22s
Show derivation diffs / web02 (pull_request) Successful in 42s
Show derivation diffs / AP-pantheon (pull_request) Successful in 4m21s
Show derivation diffs / web03 (pull_request) Successful in 52s
Show derivation diffs / vault01 (pull_request) Successful in 1m23s
Show derivation diffs / vault03 (pull_request) Successful in 1m19s
Show derivation diffs / vault02 (pull_request) Successful in 1m25s
Show derivation diffs / web01 (pull_request) Successful in 1m14s
2026-06-07 21:14:05 +02:00
Compare
mdebray force-pushed pole-mail from d3fb654922
All checks were successful
Build all the nodes / vault01 (pull_request) Successful in 1m1s
Build all the nodes / web01 (pull_request) Successful in 1m5s
Build all the nodes / vault02 (pull_request) Successful in 1m11s
Build all the nodes / vault03 (pull_request) Successful in 1m11s
Show derivation diffs / compute01 (pull_request) Successful in 1m23s
Show derivation diffs / geo01 (pull_request) Successful in 50s
Show derivation diffs / geo02 (pull_request) Successful in 51s
Show derivation diffs / external01 (pull_request) Successful in 1m5s
Show derivation diffs / AP-jourdan (pull_request) Successful in 2m18s
Show derivation diffs / hypervisors0 (pull_request) Successful in 1m4s
Show derivation diffs / optic-loop (pull_request) Successful in 21s
Show derivation diffs / lab-router01 (pull_request) Successful in 42s
Show derivation diffs / hypervisors1 (pull_request) Successful in 54s
Show derivation diffs / iso (pull_request) Successful in 1m1s
Show derivation diffs / krz01 (pull_request) Successful in 58s
Show derivation diffs / sw-Jourdan (pull_request) Successful in 21s
Show derivation diffs / sw-Montrouge (pull_request) Successful in 24s
Show derivation diffs / sw-Pantheon (pull_request) Successful in 20s
Show derivation diffs / storage01 (pull_request) Successful in 46s
Show derivation diffs / AP-montrouge (pull_request) Successful in 3m32s
Show derivation diffs / rescue01 (pull_request) Successful in 59s
Show derivation diffs / tower01 (pull_request) Successful in 40s
Run pre-commit on all files / pre-commit (pull_request) Successful in 22s
Show derivation diffs / web02 (pull_request) Successful in 42s
Show derivation diffs / AP-pantheon (pull_request) Successful in 4m21s
Show derivation diffs / web03 (pull_request) Successful in 52s
Show derivation diffs / vault01 (pull_request) Successful in 1m23s
Show derivation diffs / vault03 (pull_request) Successful in 1m19s
Show derivation diffs / vault02 (pull_request) Successful in 1m25s
Show derivation diffs / web01 (pull_request) Successful in 1m14s
to 5dcda1a262
All checks were successful
Show derivation diffs / vault01 (pull_request) Successful in 1m32s
Show derivation diffs / vault03 (pull_request) Successful in 1m25s
Build all the nodes / geo01 (push) Successful in 39s
Build all the nodes / cof02 (push) Successful in 41s
Build all the nodes / external01 (push) Successful in 41s
Show derivation diffs / vault02 (pull_request) Successful in 1m40s
Build all the nodes / optic-loop (push) Successful in 32s
Build all the nodes / geo02 (push) Successful in 47s
Build all the nodes / lab-router01 (push) Successful in 45s
Build all the nodes / sw-Jourdan (push) Successful in 35s
Build all the nodes / sw-Montrouge (push) Successful in 35s
Build all the nodes / compute01 (push) Successful in 1m3s
Build all the nodes / AP-jourdan (push) Successful in 1m3s
Build all the nodes / sw-Pantheon (push) Successful in 27s
Build the shell / build-shell (push) Successful in 22s
Build all the nodes / krz01 (push) Successful in 48s
Build all the nodes / hypervisors1 (push) Successful in 48s
Build all the nodes / iso (push) Successful in 48s
Build all the nodes / hypervisors0 (push) Successful in 48s
Build all the nodes / tower01 (push) Successful in 32s
Build all the nodes / storage01 (push) Successful in 43s
Build all the nodes / web02 (push) Successful in 32s
Build all the nodes / rescue01 (push) Successful in 48s
Build all the nodes / AP-montrouge (push) Successful in 1m15s
Build all the nodes / web03 (push) Successful in 35s
Build all the nodes / vault01 (push) Successful in 46s
Build all the nodes / web01 (push) Successful in 43s
Build all the nodes / vault02 (push) Successful in 49s
Build all the nodes / vault03 (push) Successful in 51s
Build all the nodes / AP-pantheon (push) Successful in 1m31s
2026-06-07 22:37:11 +02:00
Compare
mdebray scheduled this pull request to auto merge when all checks succeed 2026-06-07 22:37:35 +02:00
mdebray deleted branch pole-mail 2026-06-07 22:41:17 +02:00
Sign in to join this conversation.
No description provided.