2026-07-19 09:29:17 -07:00
|
|
|
# k8s/bootstrap/ingress/riotpiao-com-cert.yaml
|
|
|
|
|
# Public wildcard cert for *.riotpiao.com, signed by Let's Encrypt (DNS-01 via
|
2026-10-24 02:30:48 -07:00
|
|
|
# Cloudflare, see ../cert-manager/letsencrypt-issuer.yaml).
|
2026-07-19 09:29:17 -07:00
|
|
|
#
|
2026-10-24 02:30:48 -07:00
|
|
|
# nginx serves this secret as its default-ssl-certificate
|
|
|
|
|
# (../ingress/nginx-values.yaml), so every Ingress that omits a tls: block uses
|
|
|
|
|
# it. Do not add per-host tls: blocks for *.riotpiao.com hosts: they create a
|
|
|
|
|
# second, single-host certificate and split the wildcard coverage.
|
|
|
|
|
#
|
|
|
|
|
# Renewal is automatic and does not drop traffic:
|
|
|
|
|
# - cert-manager starts a new order 30 days before expiry (renewBefore).
|
|
|
|
|
# - cert-manager writes the renewed pair into the same secret.
|
|
|
|
|
# - ingress-nginx watches the secret and hot-reloads. No pod restart.
|
|
|
|
|
# - The old pair stays valid until the new one is written, so no gap exists.
|
|
|
|
|
#
|
|
|
|
|
# The DNS-01 self-check must reach the public resolvers directly. Without the
|
|
|
|
|
# --dns01-recursive-nameservers flags in ../../cert-manager/cert-manager-values.yaml
|
|
|
|
|
# the self-check never sees the TXT record and renewal stalls until expiry.
|
2026-07-19 09:29:17 -07:00
|
|
|
apiVersion: cert-manager.io/v1
|
|
|
|
|
kind: Certificate
|
|
|
|
|
metadata:
|
|
|
|
|
name: riotpiao-com-tls
|
|
|
|
|
namespace: ingress-nginx
|
|
|
|
|
spec:
|
|
|
|
|
secretName: riotpiao-com-tls
|
|
|
|
|
dnsNames:
|
|
|
|
|
- "*.riotpiao.com"
|
|
|
|
|
- "riotpiao.com"
|
|
|
|
|
issuerRef:
|
2026-07-21 11:10:22 -07:00
|
|
|
name: letsencrypt-prod
|
2026-07-19 09:29:17 -07:00
|
|
|
kind: ClusterIssuer
|
|
|
|
|
duration: 2160h # 90 days (LE max)
|
|
|
|
|
renewBefore: 720h # renew 30 days before expiry
|