cert-manager 0.1: Automated TLS for Kubernetes Workloads
K8s Guru
2 min read

Table of Contents
Introduction
On July 17, 2017, Jetstack released cert-manager 0.1 (the successor to kube-lego), introducing a Kubernetes-native controller to request and renew TLS certificates from ACME providers like Let’s Encrypt. With cert-manager, ingress TLS stops being a manual chore and becomes a declarative resource.
Core Capabilities
Kubernetes Custom Resources
- Defines
CertificateandIssuerCRDs to represent certificate requests and issuers. - Supports cluster-wide
ClusterIssuerobjects for multi-namespace reuse. - Stores signed certificates as Kubernetes secrets ready for ingress controllers.
ACME Automation
- Implements the ACME v1 challenge flow for HTTP-01 and DNS-01.
- Automatically provisions solver pods and cleans them up after validation.
- Handles proactive renewals before expiration, minimizing outage windows.
Extensible Providers
- Works with Let’s Encrypt, HashiCorp Vault, and self-signed issuers from day one.
- Exposes a pluggable issuer interface paving the way for Venafi and Google CAS integrations.
- Ships with ready-to-use examples for NGINX Ingress and Traefik.
Getting Started
Install CRDs and the controller deployment:
kubectl apply -f cert-manager.yamlCreate a
ClusterIssuerfor Let’s Encrypt staging:apiVersion: certmanager.k8s.io/v1alpha1 kind: ClusterIssuer metadata: name: letsencrypt-staging spec: acme: server: https://acme-staging.api.letsencrypt.org/directory email: [email protected] privateKeySecretRef: name: letsencrypt-staging http01: {}Annotate your ingress with
certmanager.k8s.io/cluster-issuer: letsencrypt-staging.Watch cert-manager create solver pods, issue the certificate, and populate the target secret.
Practical Tips (Avoid ACME Surprises)
- Use Let’s Encrypt staging first (as shown) to validate your HTTP-01/DNS-01 flow without tripping production rate limits.
- For HTTP-01, make sure your ingress controller can actually route
/.well-known/acme-challenge/to solver pods (rewrites and global redirects are common culprits). - For DNS-01, expect a different class of failures: slow DNS propagation and missing IAM permissions are more common than Kubernetes issues.
- Keep issuer credentials tightly scoped; an
Issuerthat can update “any DNS record in the company” tends to become an incident later.
Ecosystem Fit
- Secures frontends published by ExternalDNS 0.1 and Traefik 1.4.
- Complements Istio 0.1 by automating mesh gateways that terminate TLS.
- Integrates with Kubernetes 1.7 RBAC for scoped certificate issuance.
Summary
| Aspect | Details |
|---|---|
| Release Date | July 17, 2017 |
| Key Innovations | Certificate CRDs, ACME automation, pluggable issuers |
| Why it Matters | Turns TLS provisioning into a declarative, GitOps-friendly workflow |
cert-manager 0.1 set the foundation for pervasive, automated TLS across Kubernetes clusters, removing the toil of manual certificate renewal cycles.