Repository navigation
[platform] Add wildcard certificate support for multi-tenant deployments #2400
Copy link
Copy link
Closed
Labels
area/networkingIssues or PRs related to networking (ingress, gateway, vpn, metallb, kube-ovn)Issues or PRs related to networking (ingress, gateway, vpn, metallb, kube-ovn)area/platformIssues or PRs related to platform infrastructure (bundle, flux, talos, installer)Issues or PRs related to platform infrastructure (bundle, flux, talos, installer)kind/featureCategorizes issue or PR as related to a new featureCategorizes issue or PR as related to a new featurepriority/important-soonMust be staffed and worked on either currently, or very soon, ideally in time for the next releaseMust be staffed and worked on either currently, or very soon, ideally in time for the next releasetriage/acceptedIndicates an issue is ready to be actively worked onIndicates an issue is ready to be actively worked on
Description
Activity
- addedkind/featureCategorizes issue or PR as related to a new featureCategorizes issue or PR as related to a new feature
on Apr 14, 2026 - addedarea/networkingIssues or PRs related to networking (ingress, gateway, vpn, metallb, kube-ovn)Issues or PRs related to networking (ingress, gateway, vpn, metallb, kube-ovn)area/platformIssues or PRs related to platform infrastructure (bundle, flux, talos, installer)Issues or PRs related to platform infrastructure (bundle, flux, talos, installer)triage/acceptedIndicates an issue is ready to be actively worked onIndicates an issue is ready to be actively worked onpriority/important-soonMust be staffed and worked on either currently, or very soon, ideally in time for the next releaseMust be staffed and worked on either currently, or very soon, ideally in time for the next release
on Jun 3, 2026 Tracked under epic #2811 as the ingress wildcard workstream, and kept as the canonical issue for it.
Two premises here have shifted since filing, worth updating:
- The dns01 solver is no longer Cloudflare-only —
packages/system/cert-manager-issuers/templates/cluster-issuers.yaml:40-85now supports cloudflare, route53, digitalocean and rfc2136. - Wildcard
Certificateresources already exist on the Gateway API path: in dns01 mode theTenantGatewaycontroller renders a per-apex wildcard (internal/controller/tenantgateway/renderers.go:368-426). The remaining gap is the default ingress-nginx path (gateway.enableddefaults tofalse,packages/core/platform/templates/apps.yaml:80), where every published hostname still mints its own per-host certificate via ingress-shim.
So the scope that remains here is: bring the same wildcard-backed issuance to the ingress-nginx path. The bring-your-own (externally-issued / purchased) wildcard case is tracked separately as #2812.
- The dns01 solver is no longer Cloudflare-only —
- added a commit that references this issue
on Jun 23, 2026
Metadata
Metadata
Assignees
Labels
area/networkingIssues or PRs related to networking (ingress, gateway, vpn, metallb, kube-ovn)Issues or PRs related to networking (ingress, gateway, vpn, metallb, kube-ovn)area/platformIssues or PRs related to platform infrastructure (bundle, flux, talos, installer)Issues or PRs related to platform infrastructure (bundle, flux, talos, installer)kind/featureCategorizes issue or PR as related to a new featureCategorizes issue or PR as related to a new featurepriority/important-soonMust be staffed and worked on either currently, or very soon, ideally in time for the next releaseMust be staffed and worked on either currently, or very soon, ideally in time for the next releasetriage/acceptedIndicates an issue is ready to be actively worked onIndicates an issue is ready to be actively worked on
Type
Projects
- StatusShow more project fieldsDone
What this issue is about
Currently, all TLS certificates in Cozystack are issued per-hostname via cert-manager ingress annotations. Each tenant endpoint (e.g.
s3.tenant-a.example.org,app.tenant-b.example.org) gets its own individual certificate from Let's Encrypt.This approach hits Let's Encrypt rate limits (50 certificates per registered domain per week) once the platform exceeds ~50 tenant endpoints, making it unsuitable for production multi-tenant deployments at scale.
Current limitations
*.tenants.example.orgor*.s3.example.orgcertscert-manager-issuerstemplates, other DNS providers not supportedProposed solution
Add a platform-level wildcard certificate mode. Example configuration in platform
values.yaml:Implementation would involve:
Certificateresources for each wildcard domain, storing the resulting TLS secretImpact
Release note
Add optional wildcard certificate support via dns01 solver for multi-tenant deployments at scale.