Contexte
Parent : #3175
La branche feat/issue-3177-maildev-setup a mis en place :
un module ~/modules/mail (nodemailer) avec sendMail + sendReceipt + 3 templates d'accusé de réception
MailDev déployé sur les review apps de dev (namespace + UI exposée)
Sur preprod et prod, MAIL_ENABLED=false pour éviter tout envoi tant qu'un vrai relais SMTP n'est pas provisionné
Il faut maintenant brancher TIPIMAIL comme relais SMTP sur preprod et prod pour activer les envois.
Point de départ : configuration actuelle sur master
La version actuelle en production utilise déjà TIPIMAIL. Les credentials sont stockés dans deux sealed-secrets bitnami :
Câblage dans .kontinuous/env/prod/values.yaml :
app :
envFrom :
- secretRef :
name : smtp-app
À faire
1. Sealed-secret Tipimail pour la V2
Les noms d'env vars de la V2 sont différents (cf. packages/app/src/env.js ) :
V2 (nouvelle)
V1 master (actuelle)
SMTP_HOST
MAILER_SMTP_HOST
SMTP_PORT
MAILER_SMTP_PORT
SMTP_USER
MAILER_SMTP_LOGIN
SMTP_PASS
MAILER_SMTP_PASSWORD
MAIL_FROM
MAILER_FROM_EMAIL
MAIL_ENABLED
MAILER_ENABLE
Deux options :
A. Créer un nouveau sealed-secret mail avec les clés renommées (SMTP_HOST, SMTP_USER, etc.) pour éviter la coexistence des deux conventions.
B. Réutiliser smtp-app existant et ajouter des mappings env: dans values.yaml pour exposer les valeurs sous les nouveaux noms.
L'option A est plus propre à long terme.
2. Preprod
3. Prod
Réutiliser / re-sceller les credentials Tipimail déjà présents dans smtp-app (option B) OU créer un nouveau secret mail (option A)
Idem preprod pour la configmap et le wiring secretRef
4. Validation
Dépendances
Blocking : Mise en place de MailDev #3177 (module mail + MailDev dev) — mergé dès que la PR est validée
Accès aux credentials Tipimail (secret manager SocialGouv)
Contexte
Parent : #3175
La branche feat/issue-3177-maildev-setup a mis en place :
~/modules/mail(nodemailer) avecsendMail+sendReceipt+ 3 templates d'accusé de réceptionMAIL_ENABLED=falsepour éviter tout envoi tant qu'un vrai relais SMTP n'est pas provisionnéIl faut maintenant brancher TIPIMAIL comme relais SMTP sur preprod et prod pour activer les envois.
Point de départ : configuration actuelle sur
masterLa version actuelle en production utilise déjà TIPIMAIL. Les credentials sont stockés dans deux sealed-secrets bitnami :
.kontinuous/env/prod/templates/smtp-app.sealed-secret.yaml— consommé par l'app Next.js, exposeMAILER_SMTP_HOST,MAILER_SMTP_LOGIN,MAILER_SMTP_PASSWORD,MAILER_SMTP_PORT,MAILER_SMTP_SSL,MAILER_SEND_EMAILS.kontinuous/env/prod/templates/smtp.sealed-secret.yaml— consommé par l'ancienne API Python, exposeEGAPRO_SMTP_*(obsolète pour la V2)Câblage dans
.kontinuous/env/prod/values.yaml:À faire
1. Sealed-secret Tipimail pour la V2
Les noms d'env vars de la V2 sont différents (cf.
packages/app/src/env.js) :SMTP_HOSTMAILER_SMTP_HOSTSMTP_PORTMAILER_SMTP_PORTSMTP_USERMAILER_SMTP_LOGINSMTP_PASSMAILER_SMTP_PASSWORDMAIL_FROMMAILER_FROM_EMAILMAIL_ENABLEDMAILER_ENABLEDeux options :
mailavec les clés renommées (SMTP_HOST,SMTP_USER, etc.) pour éviter la coexistence des deux conventions.smtp-appexistant et ajouter des mappingsenv:dansvalues.yamlpour exposer les valeurs sous les nouveaux noms.L'option A est plus propre à long terme.
2. Preprod
maildans.kontinuous/env/preprod/templates/mail.sealed-secret.yaml.kontinuous/env/preprod/templates/mail.configmap.yaml:MAIL_ENABLED: "true"SMTP_HOST,SMTP_PORT,MAIL_FROMsi non secrets- secretRef: { name: mail }dans.kontinuous/values.yaml(déjà fait côté configmap, reste à ajouter côté secret)3. Prod
smtp-app(option B) OU créer un nouveau secretmail(option A)secretRef4. Validation
audit.action_log:mail.receipt_sendenstatus = successMAIL_FROMfinale (index@travail.gouv.fr? autre ?) — sur master c'estEgaPro <index@travail.gouv.fr>Dépendances