- Installing Cert-Manager with Helm
- Reviewing the sample “whoami” app and existing Ingress
- Creating a Let’s Encrypt staging Issuer
- Applying the Issuer and validating resources
- Updating the Ingress to request TLS
- Verifying the ACME challenge and certificate issuance
- Creating a Let’s Encrypt production Issuer and switching over
1. Install Cert-Manager
First, ensure you have Helm installed and a Kubernetes context pointing at your control plane.cert-manager namespace are in the Running state:
Make sure your cluster meets the Cert-Manager prerequisites.
2. Review the Test App and Ingress
We have a simple “whoami” deployment in thedefault namespace, fronted by Traefik:
3. Create a Let’s Encrypt Staging Issuer
To prevent hitting rate limits, start with the staging environment. Save this asstaging-issuer.yaml:
letsencrypt-staging in the secret list.
4. Update the Ingress for TLS
Modifywhoami-ingress.yaml to include the Cert-Manager annotation and a TLS block:
Ensure DNS for
test-example.com points to your Traefik load balancer before requesting a certificate.5. Verify the ACME Challenge and Certificate Issuance
Describe the Ingress again to confirm ACME resources:- A
cm-acme-http-solver-…backend under the ACME challenge path - An event
CreateCertificateindicatingweb-sslwas requested
6. Create a Let’s Encrypt Production Issuer
Once staging is validated, switch to the production environment. Createprod-issuer.yaml:
7. Switch Ingress to Production Issuer
Update the Ingress annotation to use the production Issuer:Issuer Configuration Summary
References
- Cert-Manager Documentation
- Let’s Encrypt ACME v2 API
- Traefik Ingress Controller
- Kubernetes Ingress Basics