Skip to content

feat(tenants): tenant.mail voor SMTP per tenant - #146

Draft
rubenvdlinde wants to merge 1 commit into
mainfrom
feat/tenant-mail-smtp
Draft

rubenvdlinde wants to merge 1 commit into
mainfrom
feat/tenant-mail-smtp

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Collaborator

Wat

Een tenant kan nu mail versturen via SMTP met tenant.mail in zijn
tenantbestand (enabled, fromAddress, domain, optioneel port en
secure). Aanleiding: de demotenant zuiddrecht-prod heeft mail nodig voor
registratie en notificaties, en geen tenant op het platform had SMTP.

  • De ApplicationSet zet bij tenant.mail.enabled: true de env vars
    MAIL_FROM_ADDRESS, MAIL_DOMAIN, SMTP_SECURE, SMTP_PORT en, uit
    nextcloud-secrets, SMTP_HOST, SMTP_NAME, SMTP_PASSWORD, en zet
    nextcloud.defaultConfigs.smtp.config.php aan voor alleen die tenant.
  • De secret-sleutels (smtp-host, smtp-username, smtp-password) zijn
    optional. Bewust niet via nextcloud.mail.enabled van de chart: daar zijn
    ze verplicht en blijft de pod in CreateContainerConfigError zolang ze
    ontbreken.
  • create-tenant-secret.sh schrijft de smtp-* sleutels mee als SMTP_HOST,
    SMTP_USERNAME en SMTP_PASSWORD gezet zijn (alle drie of geen).
    env.example noemde ze al, het script deed er niets mee.
  • validate-values.sh controleert tenant.mail; elf nieuwe fixtures in
    tests/cases/tenant-mail-*.

Blast radius: geen. Alle 89 tenants renderen byte voor byte gelijk (values en
manifests, vergeleken met helm template en de goTemplate-emulatie van de
ApplicationSet). Alleen een tenant die tenant.mail zet, krijgt nieuwe env vars
en een extra configbestand, en herstart dus.

Nog niet: SMTP-sleutels voor tenants met tenant.secrets.managed: true (ESO).

Gecontroleerd

Lokaal: scripts/verify.sh, nextcloud-platform/tests/run-tests.sh en pre-commit run --all-files --hook-stage pre-push geven exit 0. Alle 89 bestaande tenants renderen byte-identiek (values en manifests). Niet gedraaid: niets tegen een cluster.

Opt-in per tenant; platformwijziging, dus mergen ma tot do na 17:00 en daarna nextcloud-platform-bootstrap syncen. Eerste gebruiker: tenant zuiddrecht-prod (#145).

🤖 Generated with Claude Code

Een tenant zet SMTP aan met tenant.mail (enabled, fromAddress, domain,
optioneel port en secure). De ApplicationSet zet dan MAIL_*/SMTP_* env vars
(host en login uit nextcloud-secrets: smtp-host, smtp-username, smtp-password,
optional) en zet smtp.config.php van de chart aan voor alleen die tenant.
create-tenant-secret.sh schrijft de smtp-* sleutels mee als SMTP_HOST,
SMTP_USERNAME en SMTP_PASSWORD gezet zijn. validate-values.sh controleert
tenant.mail, met elf fixtures.

Alle 89 tenants renderen byte voor byte gelijk (values en manifests).
Aanleiding: demotenant zuiddrecht-prod (registratie, Woo, notificaties).
@rubenvdlinde rubenvdlinde added the change/platform Platform- of gemengde wijziging: raakt shared values, Argo-wiring, scripts of policy label Oct 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

change/platform Platform- of gemengde wijziging: raakt shared values, Argo-wiring, scripts of policy

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant