Skip to content

[tech] Configurer TIPIMAIL sur preprod et prod #3237

@Viczei

Description

@Viczei

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éployer preprod et soumettre une déclaration avec un compte de test → vérifier que l'accusé de réception arrive bien
  • Vérifier les logs audit.action_log : mail.receipt_send en status = success
  • Prévoir un mécanisme de bounce / monitoring Tipimail (taux de délivrabilité)
  • Confirmer l'adresse MAIL_FROM finale (index@travail.gouv.fr ? autre ?) — sur master c'est EgaPro <index@travail.gouv.fr>

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)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Status

In review

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions