cert-manager - v1.14.0-alpha.0

Security

This is a pre-release of cert-manager 1.14 which will be released on January 31 2024.

Known Issues

Breaking Changes

The startupapicheck job uses a new OCI image called "startupapicheck", instead of the ctl image.
If you run in an environment in which images cannot be pulled, be sure to include the new image.

The KeyUsage and BasicConstraints extensions will now be encoded as critical in the CertificateRequest's CSR blob.

Release Notes

📖 Read the draft cert-manager 1.14 release notes.

Feature

  • ACME challenge solver Pod for HTTP01 will get a default annotation of "cluster-autoscaler.kubernetes.io/safe-to-evict": "true". You can provide an annotation of "cluster-autoscaler.kubernetes.io/safe-to-evict": "false" in your podTemplate if you don't like this. (#6349, @jsoref)
  • Added a clock skew detector liveness probe that will force a restart in case we detect a skew between the internal monotonic clock and the system clock of more than 5 minutes.
    Also, the controller's liveness probe is now enabled by default. (#6328, @inteon)
  • Added a new flag (--dynamic-serving-leaf-duration) that can adjust the lifetime of the dynamic leaf certificates (#6552, @allenmunC1)
  • Added support for otherName SANS in Certificates (#6404, @SpectralHiss)
  • Added the option to specify the X.509 v3 Authority Information Accessors extension CA Issuers URLs for certificates issued by the CA issuer. (#6486, @jeremycampbell)
  • Adds cert-manager's new core infrastructure initiative badge! See more details on https://www.bestpractices.dev/projects/8079 (#6497, @SgtCoDFish)
  • All Pods are now configured with readOnlyRootFilesystem by default. (#6453, @wallrj)
  • MAYBE BREAKING: The startupapicheck job is now handled by an entirely new container called "startupapicheck". This replaces the previous ctl container. If you run in an environment in which images cannot be pulled, be sure to include the new container. (#6549, @SgtCoDFish)
  • New option .spec.keystores.pkcs12.algorithms to specify encryption and MAC algorithms for PKCS#12 keystores. Fixes issues #5957 and #6523. (#6548, @snorwin)
  • The ACME HTTP01 solver Pod is now configured with readOnlyRootFilesystem: true (#6462, @wallrj)
  • Updates the AWS SDK for Go to 1.48.7 to support Amazon EKS Pod Identity (#6519, @JoeNorth)
  • Users can now use name constraints in CA certificates. To know more details on name constraints check out RFC section https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.10 (#6500, @tanujd11)
  • ⚠️ potentially breaking ⚠️: The KeyUsage and BasicConstraints extensions will now be encoded as critical in the CertificateRequest's CSR blob. (#6053, @inteon)

Bug or Regression

  • BUGFIX[helm]: Fix issue where webhook feature gates were only set if controller feature gates are set. (#6380, @asapekia)
  • Controller ConfigMap if now created only if .Values.config is set. (#6357, @ABWassim)
  • Fix runaway bug caused by multiple Certificate resources that point to the same Secret resource. (#6406, @inteon)
  • Fix(helm): templating of required value in controller and webhook ConfigMap resources (#6435, @ABWassim)
  • Fixed a webhook validation error message when the key algorithm was invalid. (#6571, @pevidex)
  • Fixed error messaging when setting up vault issuer (#6433, @vinny)
  • GHSA-vgf6-pvf4-34rq: The webhook server now returns HTTP error 413 (Content Too Large) for requests with body size >= 3MiB. This is to mitigate DoS attacks that attempt to crash the webhook process by sending large requests that exceed the available memory.
    The webhook server now returns HTTP error 400 (Bad Request) if the request contains an empty body.
    The webhook server now returns HTTP error 500 (Internal Server Error) rather than crashing, if the code panics while handling a request. (#6498, @inteon)
  • Increase the default webhook timeout to its maximum value of 30 seconds, so that the underlying timeout error message has more chance of being returned to the end user. (#6488, @wallrj)
  • Listeners that do not support TLS on Gateway resources will now not raise BadConfig warnings anymore (#6347, @lauraseidler)
  • Mitigate potential Slowloris attacks by setting ReadHeaderTimeout in all http.Server instances (#6534, @wallrj)
  • The Venafi issuer now properly resets the certificate and should no longer get stuck with WebSDK CertRequest Module Requested Certificate or This certificate cannot be processed while it is in an error state. Fix any errors, and then click Retry.. (#6398, @maelvls)
  • Update experimental install and uninstall commands to have flag parity with the rest of the CLI (#6562, @ThatsMrTalbot)
  • Webhook ConfigMap if now created only if .Values.webhook.config is set. (#6360, @ABWassim)

Other (Cleanup or Flake)

  • Cert-manager is now built with Go 1.21.5 (#6545, @wallrj)
  • Bump Go to 1.21.3 to address CVE-2023-39325. Also bumps base images. (#6410, @SgtCoDFish)
  • Bump golang.org/x/net v0.15.0 => v0.17.0 as part of addressing CVE-2023-44487 / CVE-2023-39325 (#6427, @SgtCoDFish)
  • Check code for unintended use of crypto/md5, a weak cryptographic primitive; using golangci-lint / gosec (G501). (#6581, @wallrj)
  • Check code for unintended use of crypto/sha1, a weak cryptographic primitive; using golangci-lint / gosec (G505). (#6579, @wallrj)
  • Check code for unintended use of weak random number generator (math/rand instead of crypto/rand); using golangci-lint / gosec (G404). (#6582, @wallrj)
  • Cleanup: Restrict MutatingWebhookConfiguration to only CertificateRequest resources (#6311, @hawksight)
  • Deprecated pkg/util.RandStringRunes and pkg/controller/test.RandStringBytes. Use k8s.io/apimachinery/pkg/util/rand.String instead. (#6585, @wallrj)
  • Enabled verbose logging in startupapicheck by default, so that if it fails, users can know exactly what caused the failure. (#6495, @wallrj)
  • Fix gosec G601: Implicit memory aliasing of items from a range statement (#6551, @wallrj)
  • Fix handling of serial numbers in literal certificate subjects. Previously a serial number could be specified in subject.serialNumber while using a literal certificate subject. This was a mistake and has been fixed. (#6533, @inteon)
  • The end-to-end tests can now test the cert-manager Vault Issuer on an OpenShift cluster. (#6391, @wallrj)
  • Update cert-manager's distroless base images from Debian 11 to Debian 12. This should have no practical effects on users. (#6583, @inteon)
  • Updated all code using GatewayAPI to use the now GA v1 APIs (#6559, @ThatsMrTalbot)
  • Upgrade Go from 1.20.7 to 1.20.8. (#6369, @inteon)
  • Upgrade github.com/emicklei/go-restful/v3 to v3.11.0 because v3.10.2 is labeled as "DO NOT USE". (#6366, @inteon)
  • Use the new generic sets.Set type in place of the deprecated sets.String. (#6586, @wallrj)

Details

date
Jan. 4, 2024, 11:40 a.m.
name
v1.14.0-alpha.0
type
Pre-release
👇
Register or login to:
  • 🔍View and search all cert-manager releases.
  • 🛠️Create and share lists to track your tools.
  • 🚨Setup notifications for major, security, feature or patch updates.
  • 🚀Much more coming soon!
Continue with GitHub
Continue with Google
or