Fractal Techware

Alert runbooks /

CertManagerCertificateNotReady

A cert-manager Certificate resource has had its Ready condition set to False or Unknown for a while.

   
Severity warning
Source cert-manager controller /metrics (v1.x)
Key metric certmanager_certificate_ready_status (labels name, condition)

What it means

cert-manager reports each Certificate’s Ready condition as a metric. The alert fires when a certificate stays not ready beyond a short grace period, which covers normal issuance time.

What breaks depends on the situation. For a new certificate, the Secret may not exist yet, so the ingress or webhook that references it has no valid TLS. For an existing one, the old certificate usually still works, and this is the earliest sign that renewal is failing.

Common causes

First checks

  1. List not-ready certificates across the cluster:
    kubectl get certificate -A | grep -v True
    
  2. See how long each has been failing:
    max by (exported_namespace, name, condition) (certmanager_certificate_ready_status{condition!="True"}) == 1
    
  3. Read the condition message and the chain:
    cmctl status certificate <name> -n <namespace>
    kubectl -n <namespace> describe certificaterequest
    
  4. For ACME issuers, find the stuck step:
    kubectl -n <namespace> get order,challenge
    kubectl -n <namespace> describe challenge <challenge>
    
  5. Confirm the issuer is ready:
    kubectl -n <namespace> describe issuer <issuer>
    

Fixing it

Fix what the failing resource reports: correct the issuerRef, repair the issuer’s credentials, make the challenge reachable, or fix the spec. Then run cmctl renew <name> -n <namespace> to retry right away rather than waiting for backoff. If a CertificateRequest was denied, update the approval policy or the request.