mirror of
https://github.com/cozystack/cozystack.git
synced 2026-11-09 14:02:56 +09:00
On the default ingress-nginx path (gateway.enabled=false) a DNS-01 solver still minted a per-host ACME certificate for every system service, hitting Let's Encrypt rate limits once a deployment exceeds ~50 endpoints. Add an opt-in publishing.certificates.wildcard toggle (default false) and compute, in apps.yaml, an effective wildcard secret name plus a wildcard-issue signal: when enabled with solver=dns01 and no operator-provided wildcardSecretName, the platform targets one shared wildcard cert (*.<root-host> + <root-host>) instead of per-host certs. Issuance is off by default because a single-label wildcard does not cover a custom service host outside *.<root-host> (e.g. a keycloak ingress.host, harbor host, or grafana host pointed at another domain); enabling it would otherwise switch such a host to the controller's default certificate and serve the wrong certificate. The operator-provided (BYO) name always wins and never triggers issuance; http01 cannot issue wildcards; and the Gateway API path issues its own wildcard via the controller, so all three are excluded. This reuses the existing wildcard-secret-name consumption path, so no per-service ingress template changes are needed. Part of #2811. Signed-off-by: Aleksei Sviridkin <f@lex.la>