Skip to main content

cert-manager

Purpose: Automated TLS certificate management

Version: v1.16.0 (Helm chart: cert-manager 1.16.0)

Namespace: cert-manager

Description

Manages certificates from Let's Encrypt, Venafi, and other certificate authorities. Automates certificate issuance and renewal using DNS-01 or HTTP-01 challenges.

Installation

Installed via ArgoCD from manifest: config/dev/resources/cert-manager.yaml

Configuration

ClusterIssuer

apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt-prod
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
email: admin@ssdk8s.xyz
privateKeySecretRef:
name: letsencrypt-prod
solvers:
- dns01:
cloudflare:
apiTokenSecretRef:
name: cloudflare-api-token
key: api-token

Certificate

apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: example-tls
namespace: default
spec:
secretName: example-tls
issuerRef:
name: letsencrypt-prod
kind: ClusterIssuer
dnsNames:
- example.ssdk8s.xyz
duration: 2160h
renewBefore: 360h

DNS Provider

Uses Cloudflare for DNS-01 challenges.

Secret: cloudflare-api-token in cert-manager namespace

Usage

Annotations for Ingress

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-app
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
spec:
tls:
- hosts:
- myapp.ssdk8s.xyz
secretName: myapp-tls

Components

ComponentPurpose
cert-managerCertificate controller
cert-manager-cainjectorCertificate injection
cert-manager-webhookValidation webhook

Default Certificate

All ingress resources automatically get TLS via Let's Encrypt.