Releases: cert-manager/cert-manager
v1.15.0-alpha.0
This is the first alpha release of cert-manager 1.15, which will be released in April or May 2024. The aim of this first alpha is to let people try out using serviceAccountRef
with an external Vault. Read the page serviceAccountRef
with external Vault to know more.
Note
The cmctl
and kubectl_cert-manager
binaries have been moved to https://github.com/cert-manager/cmctl/releases.
📜 Changes since v1.14.0
Feature
- Add support to specify a custom key alias in a JKS Keystore (#6807, @bwaldrep)
- Add the ability to communicate with Vault via mTLS when strict client certificates is enabled at Vault server side (#6614, @rodrigorfk)
- Added an option to provide additional audiences in the service account auth section for Vault. Read the page
serviceAccountRef
with external Vault to know more. (#6718, @andrey-dubnik) - Venafi Issuer now sends a cert-manager HTTP User-Agent header in all Venafi Rest API requests.
For example:cert-manager-certificaterequests-issuer-venafi/v1.15.0+(linux/amd64)+cert-manager/ef068a59008f6ed919b98a7177921ddc9e297200
. (#6865, @wallrj) - Added a new Ingress annotation for copying specific Ingress annotations to Certificate's secretTemplate (#6839, @mangeshhambarde)
- Added option to define additional token audiences for the Vault Kubernetes auth (#6744, @andrey-dubnik)
- Allow
cert-manager.io/allow-direct-injection
in annotations (#6801, @jkroepke) ⚠️ Possibly breaking: Helm will now keep the CRDs when you uninstall cert-manager by default to prevent accidental data loss
Add newcrds.keep
andcrds.enabled
Helm options which will replace theinstallCRDs
option.
Bug or Regression
- BUGFIX: Fixes issue with JSON-logging, where only a subset of the log messages were output as JSON. (#6779, @inteon)
- BUGFIX: JKS and PKCS12 stores now contain the full set of CAs specified by an issuer (#6806, @bwaldrep)
- BUGFIX: cainjector leaderelection flag/ config option defaults are missing (#6816, @inteon)
- BUGFIX: cert-manager issuers incorrectly copied the critical flag from the CSR instead of re-calculating that field themselves. (#6724, @inteon)
- Breaking Change: Fixed unintended certificate chain is used if
preferredChain
is configured. (#6755, @import-shiburin) - Bugfix: LiteralSubjects with a #= value can result in memory issues due to faulty BER parser (github.com/go-asn1-ber/asn1-ber). (#6770, @inteon)
- Fix backwards incompatible removal of default prometheus Service resource. (#6699, @inteon)
- Fix broken cainjector image value in Helm chart (#6692, @SgtCoDFish)
- Helm: Fix a bug in the logic that differentiates between 0 and an empty value. (#6713, @inteon)
- Make sure the Azure SDK error messages are stable. (#6676, @inteon)
- When using the literalSubject on a Certificate, the webhook validation for the common name now also points to the literalSubject. (#6767, @lunarwhite)
Other (Cleanup or Flake)
- Bump base images (#6840, @inteon)
- Bump github.com/go-jose/go-jose to v3.0.3 to fix CVE-2024-28180 (#6854, @wallrj)
- Removed deprecated util functions that have been replaced by the
slices
andk8s.io/apimachinery/pkg/util
packages.
Removed deprecated CSR functions which have been replaced with other functions in thepkg/util/pki
package. (#6730, @inteon) - Upgrade go to 1.21.8: fixes CVE-2024-24783 (#6823, @inteon)
- Upgrade go to latest version 1.22.1 (#6831, @inteon)
- Upgrade google.golang.org/protobuf: fixing GO-2024-2611 (#6827, @inteon)
cmctl
andkubectl cert-manger
have been moved to the https://github.com/cert-manager/cmctl repo and will be versioned separately starting with cmctl v2.0.0 (#6663, @inteon)
v1.14.4
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
cert-manager 1.14 brings a variety of features, security improvements and bug fixes, including: support for creating X.509 certificates with "Other Name" fields, and support for creating CA certificates with "Name Constraints" and "Authority Information Accessors" extensions.
⚠️ Known Issues
- ACME Issuer (Let's Encrypt): wrong certificate chain may be used if preferredChain is configured: see release docs for more info and mitigations
ℹ️ Documentation
Release notes
Upgrade notes
Installation instructions
🔧 Breaking changes
See Breaking changes in v1.14.0 release notes
📜 Changes since v1.14.3
Bug or Regression
- Allow
cert-manager.io/allow-direct-injection
in annotations (#6809, @jetstack-bot) - BUGFIX: JKS and PKCS12 stores now contain the full set of CAs specified by an issuer (#6812, @jetstack-bot)
- BUGFIX: cainjector leaderelection flag/ config option defaults are missing (#6819, @jetstack-bot)
Other (Cleanup or Flake)
- Bump base images. (#6842, @inteon)
- Upgrade Helm: fix CVE-2024-26147 alert (#6834, @inteon)
- Upgrade go to 1.21.8: fixes CVE-2024-24783 (#6825, @jetstack-bot)
- Upgrade google.golang.org/protobuf: fixing GO-2024-2611 (#6829, @inteon)
v1.13.5
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
⚠️ Known Issues
- ACME Issuer (Let's Encrypt): wrong certificate chain may be used if preferredChain is configured: see release docs for more info and mitigations
ℹ️ Documentation
Release notes
Upgrade notes
Installation instructions
🔧 Breaking changes
See Breaking changes in v1.13.0 release notes
📜 Changes since v1.13.4
Bug or Regression
- Allow
cert-manager.io/allow-direct-injection
in annotations (#6810, @jetstack-bot) - BUGFIX: JKS and PKCS12 stores now contain the full set of CAs specified by an issuer (#6814, @inteon)
- BUGFIX: fix race condition due to registering and using global runtime.Scheme variables (#6832, @inteon)
Other (Cleanup or Flake)
v1.12.9
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
⚠️ Known Issues
-
ACME Issuer (Let's Encrypt): wrong certificate chain may be used if preferredChain is configured: see release docs for more info and mitigations
-
If you misconfigure two Certificate resources to have the same target Secret resource, cert-manager will generate a MANY CertificateRequests, possibly causing high CPU usage and/ or high costs due to the large number of certificates issued (see #6406).
This problem was resolved in v1.13.2 and other later versions, but the fix cannot be easily backported to v1.12.x. We recommend using v1.12.x with caution (avoid misconfigured Certificate resources) or upgrading to a newer version.
ℹ️ Documentation
Release notes
Upgrade notes
Installation instructions
🔧 Breaking changes
See Breaking changes in v1.12.0 release notes
📜 Changes since v1.12.8
Bug or Regression
- Allow
cert-manager.io/allow-direct-injection
in annotations (#6811, @jetstack-bot) - BUGFIX: JKS and PKCS12 stores now contain the full set of CAs specified by an issuer (#6813, @inteon)
- BUGFIX: fix race condition due to registering and using global runtime.Scheme variables (#6833, @inteon)
Other (Cleanup or Flake)
- Bump base images to the latest version. (#6843, @jetstack-bot)
- Upgrade go to 1.21.8: fixes CVE-2024-24783 (#6826, @jetstack-bot)
- Upgrade google.golang.org/protobuf: fixing GO-2024-2611 (#6830, @inteon)
v1.14.3
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
cert-manager 1.14 brings a variety of features, security improvements and bug fixes, including: support for creating X.509 certificates with "Other Name" fields, and support for creating CA certificates with "Name Constraints" and "Authority Information Accessors" extensions.
⚠️ Known Issues
- ACME Issuer (Let's Encrypt): wrong certificate chain may be used if preferredChain is configured: see release docs for more info and mitigations
- cainjector leaderelection is incorrectly disabled by default because the flag/ config option defaults are missing (#6819)
ℹ️ Documentation
Release notes
Upgrade notes
Installation instructions
🔧 Breaking changes
See Breaking changes in v1.14.0 release notes
📜 Changes since v1.14.2
Bug or Regression
- BUGFIX: Fixes issue with JSON-logging, where only a subset of the log messages were output as JSON. (#6781, @jetstack-bot)
- BUGFIX: LiteralSubjects with a #= value can result in memory issues due to faulty BER parser (github.com/go-asn1-ber/asn1-ber). (#6774, @jetstack-bot)
v1.13.4
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
⚠️ Known Issues
- ACME Issuer (Let's Encrypt): wrong certificate chain may be used if preferredChain is configured: see release docs for more info and mitigations
ℹ️ Documentation
Release notes
Upgrade notes
Installation instructions
🔧 Breaking changes
See Breaking changes in v1.13.0 release notes
📜 Changes since v1.13.3
Bug or Regression
- BUGFIX: LiteralSubjects with a #= value can result in memory issues due to faulty BER parser (github.com/go-asn1-ber/asn1-ber). (#6772, @jetstack-bot)
Other (Cleanup or Flake)
- Bump go to 1.20.14 (#6736, @jetstack-bot)
- Cert-manager is now built with Go 1.20.12 (#6544, @wallrj)
- Cert-manager is now built with Go 1.20.13 (#6630, @SgtCoDFish)
- Fix CVE 2023 48795 by upgrading to golang.org/x/[email protected] (#6675, @wallrj)
- Fix GHSA-7ww5-4wqc-m92c by upgrading to
github.com/containerd/[email protected]
(#6684, @wallrj)
v1.12.8
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
⚠️ Known Issues
-
ACME Issuer (Let's Encrypt): wrong certificate chain may be used if preferredChain is configured: see release docs for more info and mitigations
-
If you misconfigure two Certificate resources to have the same target Secret resource, cert-manager will generate a MANY CertificateRequests, possibly causing high CPU usage and/ or high costs due to the large number of certificates issued (see #6406).
This problem was resolved in v1.13.2 and other later versions, but the fix cannot be easily backported to v1.12.x. We recommend using v1.12.x with caution (avoid misconfigured Certificate resources) or upgrading to a newer version.
ℹ️ Documentation
Release notes
Upgrade notes
Installation instructions
🔧 Breaking changes
See Breaking changes in v1.12.0 release notes
📜 Changes since v1.12.7
Bug or Regression
- BUGFIX: LiteralSubjects with a #= value can result in memory issues due to faulty BER parser (github.com/go-asn1-ber/asn1-ber). (#6773, @jetstack-bot)
Other (Cleanup or Flake)
- Bump go to 1.20.14 (#6733, @SgtCoDFish)
- Cert-manager is now built with Go 1.20.13 (#6629, @SgtCoDFish)
- Fix CVE 2023 48795 by upgrading to golang.org/x/[email protected] (#6678, @wallrj)
- Fix GHSA-7ww5-4wqc-m92c by upgrading to
github.com/containerd/[email protected]
(#6689, @wallrj)
v1.14.2
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
cert-manager 1.14 brings a variety of features, security improvements and bug fixes, including: support for creating X.509 certificates with "Other Name" fields, and support for creating CA certificates with "Name Constraints" and "Authority Information Accessors" extensions.
⚠️ Known Issues
- ACME Issuer (Let's Encrypt): wrong certificate chain may be used if
preferredChain
is configured: see release docs for more info and mitigations - Logging-format json sometimes writes plaintext messages (see #6768). FIXED in v1.14.3
ℹ️ Documentation
Release notes
Upgrade notes
Installation instructions
🔧 Breaking changes
See Breaking changes
in v1.14.0 release notes
📜 Changes since v1.14.1
Bug or Regression
- BUGFIX: cert-manager CA and SelfSigned issuers incorrectly copied the critical flag from the CSR instead of re-calculating that field themselves. (#6727, @jetstack-bot)
- Helm: Fix a bug in the logic that differentiates between 0 and an empty value. (#6729, @jetstack-bot)
Other (Cleanup or Flake)
- Bump golang to 1.21.7 (#6735, @jetstack-bot)
v1.14.1
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
cert-manager 1.14 brings a variety of features, security improvements and bug fixes, including: support for creating X.509 certificates with "Other Name" fields, and support for creating CA certificates with "Name Constraints" and "Authority Information Accessors" extensions.
⚠️ This version has known issues. Please installv1.14.2
instead.
⚠️ Known Issues (please install v1.14.2
)
- ACME Issuer (Let's Encrypt): wrong certificate chain may be used if
preferredChain
is configured: see release docs for more info and mitigations - In cert-manager v1.14.0 and v1.14.1, the
CA
andSelfSigned
issuers issue certificates with SANs set to non-critical even when the subject is empty. It incorrectly copies the critical field from the CSR.
🔧 Breaking changes
See Breaking changes
in v1.14.0 release notes
ℹ️ Documentation
📜 Changes since v1.14.0
Bug or Regression
- Fix broken cainjector image value in Helm chart (#6693, @SgtCoDFish)
- Fix bug in cmctl namespace detection which prevented it being used as a startupapicheck image in namespaces other than cert-manager. (#6706, @inteon)
- Fix bug in cmctl which caused
cmctl experimental install
to panic. (#6706, @inteon)
v1.14.0
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
cert-manager 1.14 brings a variety of features, security improvements and bug fixes, including: support for creating X.509 certificates with "Other Name" fields, and support for creating CA certificates with "Name Constraints" and "Authority Information Accessors" extensions.
⚠️ This version has known issues. Please installv1.14.2
instead.
⚠️ Known Issues (please install v1.14.2
)
- ACME Issuer (Let's Encrypt): wrong certificate chain may be used if
preferredChain
is configured: see release docs for more info and mitigations - In cert-manager v1.14.0 and v1.14.1, the
CA
andSelfSigned
issuers issue certificates with SANs set to non-critical even when the subject is empty. It incorrectly copies the critical field from the CSR. - During the release of
v1.14.0
, the Helm chart for this version was found to use the wrong OCI image for thecainjector
Deployment,
which caused the Helm installation to fail.
In order to complete the release, the cert-manager team have manually updated the Helm chart for this version,
which contains all the Helm chart fixes which are inv1.14.1
. - A bug in cmctl namespace detection prevents it being used as a
startupapicheck
image in namespaces other than cert-manager. - A bug in cmctl causes
cmctl experimental install
to panic.
🔧 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.
🗺️ Major Themes
New X.509 Features
The cert-manager Certificate resource now allows you to configure a subset of "Other Name" SANs,
which are described in the Subject Alternative Name section of RFC 5280 (on page 37).
We specifically support any otherName
type with a UTF-8
value, such as the User Principal Name or sAMAccountName
.
These are useful when issuing unique certificates for authenticating with LDAP systems such as Microsoft Active Directory.
For example you can create certificates with this block in the spec:
otherNames:
- oid: 1.3.6.1.4.1.311.20.2.3 # UPN OID
utf8Value: [email protected]
The feature is still in alpha stage and requires you to enable the OtherName
feature flag in the controller and webhook components.
New CA certificate Features
You can now specify the X.509 v3 Authority Information Accessors extension,
with URLs for certificates issued by the CA issuer.
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
Security
An ongoing security audit of the cert-manager code revealed some weaknesses which we have addressed in this release,
such as using more secure default settings in the HTTP servers that serve metrics, healthz and pprof endpoints.
This will help mitigate denial-of-service attacks against those important services.
All the cert-manager containers are now configured with read only root file system by default,
to prevent unexpected changes to the file system of the OCI image.
And it is now possible to configure the metrics server to use HTTPS rather than HTTP,
so that clients can verify the identity of the metrics server.
Other
The liveness probe of the cert-manager controller Pod is now enabled by default.
There is a new option .spec.keystores.pkcs12.algorithms
to specify encryption and MAC algorithms for PKCS.
🤝 Community
Thanks again to all open-source contributors with commits in this release, including:
- @ABWassim
- @JoeNorth
- @allenmunC1
- @asapekia
- @jeremycampbell
- @jkroepke
- @jsoref
- @lauraseidler
- @pevidex
- @phillebaba
- @snorwin
- @tanujd11
- @tberreis
- @vinny
Thanks also to the following cert-manager maintainers for their contributions during this release:
Equally thanks to everyone who provided feedback, helped users and raised issues on GitHub and Slack and joined our meetings!
Thanks also to the CNCF, which provides resources and support, and to the AWS open source team for being good community members and for their maintenance of the PrivateCA Issuer.
In addition, massive thanks to Venafi for contributing developer time and resources towards the continued maintenance of cert-manager projects.
📜 Changes
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 yourpodTemplate
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)- Add TLS support to the metrics endpoint through either a certificate file or through dynamically issued certificates (#6574, @ThatsMrTalbot)
- Helm Chart: allow changing the default Deployment
revisionHistoryLimit
(#6248, @tberreis) - Security: Limit the size of the response b...