Update Helm release cert-manager to v1.21.3

Share
Update Helm release cert-manager to v1.21.3
Photo by Robert Anasch / Unsplash

No problems deploying cert-manager to Proxmox VE K3s Kubernetes cluster via Helm Chart and Flux V2 reconciliation in a GitOps approach with dependency update facilitated by Mend's Renovate Bot.

Package Type Update Change
cert-manager (source) HelmChart patch v1.21.2 → v1.21.3

Release Notes

cert-manager/cert-manager (cert-manager)

v1.21.3

Compare Source

cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.

v1.21.3 removes trust in the compromised eMudhra CA (see eMudhra Compromise). The updated base images no longer include the "emSign ECC Root CA - G3" root certificate. Go 1.26.10 also makes crypto/x509 reject certificate chains that pass through the compromised intermediates (CVE-2026-111943).

It also fixes an ACME ARI renewal loop, stops the controller copying a private key from a Secret that the Certificate does not own, and quotes the proxy values in the Helm chart. It updates Go and several dependencies to fix reported security vulnerabilities.

All users should upgrade.

Changes by Kind

Bug or Regression
  • Added status.acme.ari.certID to track issuance of new certs and re-fetch ARI from CA. This fixes a renewal loop where a stale ARI window from the previous certificate triggered repeated re-issuance until the CA rate limit was hit. (#​9292, @​hjoshi123)
  • Helm chart: quote the http_proxy, https_proxy and no_proxy values when rendering the controller Deployment env vars, so values like *.example.com no longer break the manifest. (#​9407, @​pujitha24)
  • The requestmanager and issuing controllers now only consume the Secret named by status.nextPrivateKeySecretName when it carries the cert-manager.io/next-private-key label and is owned by the Certificate, matching the invariant the keymanager controller already enforces. Previously a principal able to write the certificates/status subresource, but not to read Secrets, could name any Secret in the namespace and have its private key copied into spec.secretName. The keymanager controller no longer creates the next private key Secret under the name in status.nextPrivateKeySecretName. It always uses a generated name, records a NotOwned Warning event when the field names a Secret it does not own, and repoints the field at the Secret it owns rather than deleting that Secret when the two disagree. The Secret named by spec.secretName is never treated as a next private key Secret, even if spec.secretTemplate labels it as one. (#​9368, @​wallrj)
Other (Cleanup or Flake)
  • Upgrade Go to 1.26.9, fixing CVEs in the crypto/tls, net/http, net/textproto and html/template packages. (#​9444, @​wallrj-cyberark)
  • Upgrade Go to 1.26.10, fixing a CVE in the crypto/x509 package. (#​9501, @​wallrj-cyberark)
  • Bump golang.org/x/net to v0.60.0 to fix reported security vulnerabilities (#​9451)
  • Bump go.opentelemetry.io/otel/exporters/otlp/otlptrace and otlptracegrpc to v1.45.0 to fix a reported security vulnerability (#​9374, #​9375)
  • Update distroless base images, removing the compromised "emSign ECC Root CA - G3" root certificate (#​9351, #​9414, #​9493, #​9495)

Read more

Me on Mastodon - This link is here for verification purposes.