I discovered cert-manager after our SSL certs expired on Black Friday weekend and killed our entire e-commerce site for 4 hours. Nothing like watching revenue tank while you fumble with Let's Encrypt CLI tools at 3am, trying to explain to the CEO why "certificate expired" means customers can't buy anything.
cert-manager saves your ass when certificates expire and you're the one getting paged. Jetstack created it in 2016 after getting tired of the same certificate management nightmare we all face. The CNCF graduated it on November 12, 2024 because literally everyone was using it anyway - might as well make it official.
The Three Things That Actually Matter
Certificate Resources: You define what domains need certs using Kubernetes custom resources. cert-manager watches these and handles the renewal dance automatically through the ACME protocol. Set it once, forget it exists until something breaks (which it rarely does).
Issuer/ClusterIssuer Resources: Point to your certificate authority. Let's Encrypt for public stuff, HashiCorp Vault PKI for internal certificates, or whatever enterprise CA your security team is obsessing over this quarter. ClusterIssuer works cluster-wide; Issuer is namespace-scoped.
CertificateRequest Resources: The actual certificate signing requests that follow the X.509 standard. You usually don't touch these - cert-manager creates them automatically when certificates need renewal. Only mess with these if you know what you're doing or debugging failed certificate issuance.
The Numbers Don't Lie (Because Everyone's Been Burned)
The 500+ million monthly downloads sound like marketing bullshit but they're real - it's because we've all been there. Your site goes down because some certificate you forgot about expired. Kubernetes adoption surveys show 86% of production clusters run cert-manager because manual cert renewal is like playing Russian roulette with production.
Real talk: I've personally seen Let's Encrypt rate limits fuck over teams who waited until the last minute to renew 20+ domain certs. That 50 certificates per domain per week limit hits hard when you're scrambling.
What Works (And What Doesn't)
HTTP-01 challenges work great until your ingress controller decides to shit the bed. Let's Encrypt tries to validate ownership by hitting yourdomain.com/.well-known/acme-challenge/some-token
and if that returns 404 or times out, you're fucked. I've spent hours debugging ingress-nginx configuration just to get ACME working again.
DNS-01 challenges are your friend for internal services and wildcard certs, but DNS provider APIs are consistently terrible. cert-manager creates TXT records like _acme-challenge.example.com
to prove domain ownership. Works with Route53, Cloudflare, Google Cloud DNS, and 50+ other providers. DNS propagation can take forever though - GoDaddy is especially slow as hell.
The latest version 1.18.2 from July 2, 2025 fixes private key rotation edge cases that caused certificates to randomly fail validation. Nothing revolutionary, just fewer "why the fuck did this break" moments. Always check the upgrade guide - cert-manager migrations have burned me before when webhook configurations changed between versions.