Releases: cert-manager/cert-manager
v1.17.0-alpha.0
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
v1.17.0 is a minor feature release including several improvements. Full release notes will be provided later.
Please help the project by testing this release!
Changes
Feature
- Potentially BREAKING: The CA and SelfSigned issuers now use SHA512 when signing with RSA keys 4096 bits and above, and SHA384 when signing with RSA keys 3072 bits and above. If you were previously using a larger RSA key as a CA, be sure to check that your systems support the new hash algorithms. (#7368, @SgtCoDFish)
- Add CAInjectorMerging feature gate to the ca-injector, enabling this will change the behaviour of the ca-injector to merge in new CA certificates instead of outright replacing the existing one. (#7469, @ThatsMrTalbot)
- Added image pull secrets to deployments when service accounts aren't created (#7411, @TheHenrick)
- Added the ability to customize client ID when using username/password authentication for Venafi client (#7484, @ilyesAj)
- Helm: New value
webhook.extraEnv
, allows you to set custom environment variables in the webhook Pod.
Helm: New valuecainjector.extraEnv
, allows you to set custom environment variables in the cainjector Pod.
Helm: New valuestartupapicheck.extraEnv
, allows you to set custom environment variables in the startupapicheck Pod. (#7317, @wallrj) - Increase the amount of PEM data
pki.DecodeX509CertificateSetBytes
is able to parse, to enable reading larger TLS trust bundles (#7464, @SgtCoDFish) - New configuration option tenantID for the AzureDNS provider when using managed identities with service principals. This enhancement allows users to specify the tenant ID when using managed identities, offering better flexibility in multi-tenant environments. (#7376, @jochenrichter)
- Promote the
UseDomainQualifiedFinalizer
feature to Beta. (#7488, @jsoref)
Documentation
- Add example for IPv6 in
--dns01-recursive-nameservers
(#7367, @SgtCoDFish) - Updated the chart documentation to show
enableGatewayAPI
in the config example. (#7354, @puerco)
Bug or Regression
- BUGFIX: A change in v1.16.0 caused cert-manager's ACME ClusterIssuer to look in the wrong namespace for resources required for the issuance (eg. credential Secrets). This is now fixed in v1.16.1+ and v1.17.0+ (#7339, @inteon)
- BUGFIX: Helm will now accept percentages for the
podDisruptionBudget.minAvailable
andpodDisruptionBudget.maxAvailable
values. (#7343, @inteon) - Fix ACME HTTP-01 solver for IPv6 endpoints (#7391, @Peac36)
- Fix the behavior of
renewBeforePercentage
to comply with its spec (#7421, @adam-sroka) - Helm: allow
enabled
to be set as a value to toggle cert-manager as a dependency. (#7350, @inteon) - SECURITY (low risk): Limit maxiumum allowed PEM size to prevent potential DoS in cert-manager controller from attacker-controlled PEM. See GHSA-r4pg-vg54-wxx4 (#7400, @SgtCoDFish)
- The Certificate object will no longer create CertificateRequest or Secret objects while being deleted (#7361, @ThatsMrTalbot)
- The issuer will now more quickly retry when its linked Secret is updated to fix an issue that caused a high back-off timeout. (#7455, @inteon)
- Upgrades Venafi vCert library fixing a bug which caused the RSA 3072 bit key size for TPP certificate enrollment to not work. (#7498, @inteon)
Other (Cleanup or Flake)
⚠️ Potentially BREAKING: Log messages that were not structured have now been replaced with structured logs. If you were matching on specific log strings, this could break your setup. (#7461, @inteon)- DEPRECATION: The
ValidateCAA
feature gate is now deprecated, with removal scheduled for cert-manager 1.18. In 1.17, enabling this feature gate will print a warning. (#7491, @jsoref) - Remove
Neither --kubeconfig nor --master was specified
warning message when the controller and the webhook services boot (#7457, @Peac36)
v1.16.3
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
v1.16.3 is a patch release mainly focused around bumping dependencies to address reported CVEs: CVE-2024-45337 and CVE-2024-45338.
We don't believe that cert-manager is actually vulnerable; this release is instead intended to satisfy vulnerability scanners.
It also includes a bug fix to the new renewBeforePercentage
field. If you were using renewBeforePercentage
, see PR #7421 for more information.
Changes
Bug
- Bump
golang.org/x/net
andgolang.org/x/crypto
to address CVE-2024-45337 and CVE-2024-45338 (#7485, @erikgb) - Fix the behaviour of
renewBeforePercentage
to comply with its spec (#7441, @cert-manager-bot)
Other
- Bump go to 1.23.4 (#7489, @erikgb)
- Bump base images to latest available (#7508, @SgtCoDFish)
v1.15.5
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
cert-manager v1.15.5 contains simple dependency bumps to address reported CVEs (CVE-2024-45337 and CVE-2024-45338).
We don't believe that cert-manager is actually vulnerable; this release is instead intended to satisfy vulnerability scanners.
Changes
Bug or Regression
- Bump golang.org/x/net to address CVE-2024-45337 and CVE-2024-45338 (#7496, @wallrj)
Other (Cleanup or Flake)
- Bump to go 1.22.10 (#7507, @SgtCoDFish)
v1.12.15
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
cert-manager v1.12.15
contains simple dependency bumps to address reported CVEs (CVE-2024-45337
and CVE-2024-45338
).
We don't believe that cert-manager is actually vulnerable; this release is instead intended to satisfy vulnerability scanners.
It's important to note also that cert-manager v1.12 LTS has older base images which are no longer updated. These base images don't contain much, but they do contain time zone data which can get out of date.
To preserve original functionality, we don't intend to change the base images for cert-manager v1.12 LTS unless there's a very serious issue. As such, scanners may report issues with an out-of-date time zone database. If you require a newer base image, you should upgrade to a newer version of cert-manager.
What's Changed
- Bump golang.org/x/net and golang.org/x/crypto to address CVE-2024-45337 and CVE-2024-45338 by @wallrj in #7497
Full Changelog: v1.12.14...v1.12.15
v1.16.2
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
This patch release of cert-manager 1.16 makes several changes to how PEM input is validated, adding maximum sizes appropriate to the type of PEM data which is being parsed.
This is to prevent an unacceptable slow-down in parsing specially crafted PEM data. The issue was found by Google's OSS-Fuzz project.
The issue is low severity; to exploit the PEM issue would require privileged access which would likely allow Denial-of-Service through other methods.
Note also that since most PEM data parsed by cert-manager comes from ConfigMap
or Secret
resources which have a max size limit of approximately 1MB, it's difficult to force cert-manager to parse large amounts of PEM data.
Further information is available in GHSA-r4pg-vg54-wxx4
In addition, the version of Go used to build cert-manager 1.16 was updated along with the base images.
Changes by Kind
Bug or Regression
- Set a maximum size for PEM inputs which cert-manager will accept to remove possibility of taking a long time to process an input (#7401, @SgtCoDFish)
Other (Cleanup or Flake)
- Bump go to 1.23.3 and bump base images to latest available (#7431, @SgtCoDFish)
v1.15.4
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
This patch release of cert-manager 1.15 makes several changes to how PEM input is validated, adding maximum sizes appropriate to the type of PEM data which is being parsed.
This is to prevent an unacceptable slow-down in parsing specially crafted PEM data. The issue was found by Google's OSS-Fuzz project.
The issue is low severity; to exploit the PEM issue would require privileged access which would likely allow Denial-of-Service through other methods.
Note also that since most PEM data parsed by cert-manager comes from ConfigMap
or Secret
resources which have a max size limit of approximately 1MB, it's difficult to force cert-manager to parse large amounts of PEM data.
Further information is available in GHSA-r4pg-vg54-wxx4
In addition, the version of Go used to build cert-manager 1.15 was updated along with the base images, and a Route53 bug fix was backported.
Changes by Kind
Bug or Regression
- Bugfix: Prevent aggressive Route53 retries caused by STS authentication failures by removing the Amazon Request ID from STS errors. (#7261, @cert-manager-bot)
- Set a maximum size for PEM inputs which cert-manager will accept to remove possibility of taking a long time to process an input (#7402, @SgtCoDFish)
Other (Cleanup or Flake)
- Bump go to 1.22.9 (#7424, @SgtCoDFish)
- Upgrade Go to 1.22.8, the latest available patch release (#7406, @SgtCoDFish)
v1.12.14
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
This patch release of cert-manager 1.12 makes several changes to how PEM input is validated, adding maximum sizes appropriate to the type of PEM data which is being parsed.
This is to prevent an unacceptable slow-down in parsing specially crafted PEM data. The issue was found by Google's OSS-Fuzz project.
The issue is low severity; to exploit the PEM issue would require privileged access which would likely allow Denial-of-Service through other methods.
Note also that since most PEM data parsed by cert-manager comes from ConfigMap
or Secret
resources which have a max size limit of approximately 1MB, it's difficult to force cert-manager to parse large amounts of PEM data.
Further information is available in GHSA-r4pg-vg54-wxx4
This patch release also fix an issue reported by Trivy, although that issue is low severity and is not expected to be relevant to cert-manager.
Bug Fixes
- Set a maximum size for PEM inputs which cert-manager will accept to remove possibility of taking a long time to process an input (#7403, @SgtCoDFish)
- Fix CVE-2024-5174 in
github.com/golang-jwt/jwt/v4
(#7407, @SgtCoDFish)
v1.16.1
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
The cert-manager 1.16 release includes: new Helm chart features, more Prometheus metrics, memory optimizations, and various improvements and bug fixes for the ACME issuer and Venafi Issuer.
📖 Read the complete 1.16 release notes before upgrading.
📜Changes since v1.16.0
Bug or Regression
- BUGFIX: Helm schema validation: the new schema validation was too strict for the "global" section. Since the global section is shared across all charts and sub-charts, we must also allow unknown fields. (#7348,
@inteon
) - BUGFIX: Helm will now accept percentages for the
podDisruptionBudget.minAvailable
andpodDisruptionBudget.maxAvailable
values. (#7345,@inteon
) - Helm: allow
enabled
to be set as a value to toggle cert-manager as a dependency. (#7356,@inteon
) - BUGFIX: A change in
v1.16.0
caused cert-manager's ACME ClusterIssuer to look in the wrong namespace for resources required for the issuance (e.g. credential Secrets). This is now fixed inv1.16.1
. (#7342,@inteon
)
v1.16.0
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
The cert-manager 1.16 release includes: new Helm chart features, more Prometheus metrics, memory optimizations, and various improvements and bug fixes for the ACME issuer and Venafi Issuer.
📖 Read the complete 1.16 release notes at cert-manager.io.
⚠️ Known issues
- Helm Chart: JSON schema prevents the chart being used as a sub-chart on Rancher RKE.
- ACME DNS01 ClusterIssuer fail while loading credentials from Secret resources.
❗ Breaking changes
- Helm schema validation may reject your existing Helm values files if they contain typos or unrecognized fields.
- Venafi Issuer may fail to renew certificates if the requested duration conflicts with the CA’s minimum or maximum policy settings in Venafi.
- Venafi Issuer may fail to renew Certificates if the issuer has been configured for TPP with username-password authentication.
📖 Read the complete 1.16 release notes at cert-manager.io.
📜 Changes since v1.15.0
📖 Read the complete 1.16 release notes at cert-manager.io.
Feature
- Add
SecretRef
support for Venafi TPP issuer CA Bundle (#7036,@sankalp-at-gh
) - Add
renewBeforePercentage
alternative torenewBefore
(#6987,@cbroglie
) - Add a metrics server to the cainjector (#7194,
@wallrj
) - Add a metrics server to the webhook (#7182,
@wallrj
) - Add client certificate auth method for Vault issuer (#4330,
@joshmue
) - Add process and go runtime metrics for controller (#6966,
@mindw
) - Added
app.kubernetes.io/managed-by: cert-manager
label to the cert-manager-webhook-ca Secret (#7154,@jrcichra
) - Allow the user to specify a Pod template when using GatewayAPI HTTP01 solver, this mirrors the behavior when using the Ingress HTTP01 solver. (#7211,
@ThatsMrTalbot
) - Create token request RBAC for the cert-manager ServiceAccount by default (#7213,
@Jasper-Ben
) - Feature: Append cert-manager user-agent string to all AWS API requests, including IMDS and STS requests. (#7295,
@wallrj
) - Feature: Log AWS SDK warnings and API requests at cert-manager debug level to help debug AWS Route53 problems in the field. (#7292,
@wallrj
) - Feature: The Route53 DNS solver of the ACME Issuer will now use regional STS endpoints computed from the region that is supplied in the Issuer spec or in the
AWS_REGION
environment variable.
Feature: The Route53 DNS solver of the ACME Issuer now uses the "ambient" region (AWS_REGION
orAWS_DEFAULT_REGION
) ifissuer.spec.acme.solvers.dns01.route53.region
is empty; regardless of the flags--issuer-ambient-credentials
and--cluster-issuer-ambient-credentials
. (#7299,@wallrj
) - Helm: adds JSON schema validation for the Helm values. (#7069,
@inteon
) - If the
--controllers
flag only specifies disabled controllers, the default controllers are now enabled implicitly.
AddeddisableAutoApproval
andapproveSignerNames
Helm chart options. (#7049,@inteon
) - Make it easier to configure cert-manager using Helm by defaulting
config.apiVersion
andconfig.kind
within the Helm chart. (#7126,@ThatsMrTalbot
) - Now passes down specified duration to Venafi client instead of using the CA default only. (#7104,
@Guitarkalle
) - Reduce the memory usage of
cainjector
, by only caching the metadata of Secret resources.
Reduce the load on the K8S API server whencainjector
starts up, by only listing the metadata of Secret resources. (#7161,@wallrj
) - The Route53 DNS01 solver of the ACME Issuer can now detect the AWS region from the
AWS_REGION
andAWS_DEFAULT_REGION
environment variables, which is set by the IAM for Service Accounts (IRSA) webhook and by the Pod Identity webhook.
Theissuer.spec.acme.solvers.dns01.route53.region
field is now optional.
The API documentation of theregion
field has been updated to explain when and how the region value is used. (#7287,@wallrj
) - Venafi TPP issuer can now be used with a username & password combination with OAuth. Fixes #4653.
Breaking: cert-manager will no longer use the API Key authentication method which was deprecated in 20.2 and since removed in 24.1 of TPP. (#7084,@hawksight
) - You can now configure the pod security context of HTTP-01 solver pods. (#5373,
@aidy
) - Helm: New value
webhook.extraEnv
, allows you to set custom environment variables in the webhook Pod.
Helm: New valuecainjector.extraEnv
, allows you to set custom environment variables in the cainjector Pod.
Helm: New valuestartupapicheck.extraEnv
, allows you to set custom environment variables in the startupapicheck Pod. (#7319,@wallrj
)
Bug or Regression
- Adds support (behind a flag) to use a domain qualified finalizer. If the feature is enabled (which is not by default), it should prevent Kubernetes from reporting:
metadata.finalizers: "finalizer.acme.cert-manager.io": prefer a domain-qualified finalizer name to avoid accidental conflicts with other finalizer writers
(#7273,@jsoref
) - BUGFIX Route53: explicitly set the
aws-global
STS region which is now required by thegithub.aaakk.us.kg/aws/aws-sdk-go-v2
library. (#7108,@inteon
) - BUGFIX: fix issue that caused Vault issuer to not retry signing when an error was encountered. (#7105,
@inteon
) - BUGFIX: the dynamic certificate source used by the webhook TLS server failed to detect a root CA approaching expiration, due to a calculation error. This will cause the webhook TLS server to fail renewing its CA certificate. Please upgrade before the expiration of this CA certificate is reached. (#7230,
@inteon
) - Bugfix: Prevent aggressive Route53 retries caused by IRSA authentication failures by removing the Amazon Request ID from errors wrapped by the default credential cache. (#7291,
@wallrj
) - Bugfix: Prevent aggressive Route53 retries caused by STS authentication failures by removing the Amazon Request ID from STS errors. (#7259,
@wallrj
) - Bump
grpc-go
to fixGHSA-xr7q-jx4m-x55m
(#7164,@SgtCoDFish
) - Bump the
go-retryablehttp
dependency to fixCVE-2024-6104
(#7125,@SgtCoDFish
) - Fix Azure DNS causing panics whenever authentication error happens (#7177,
@eplightning
) - Fix incorrect indentation of
endpointAdditionalProperties
in thePodMonitor
template of the Helm chart (#7190,@wallrj
) - Fixes ACME HTTP01 challenge behavior when using Gateway API to prevent unbounded creation of HTTPRoute resources (#7178,
@miguelvr
) - Handle errors arising from challenges missing from the ACME server (#7202,
@bdols
) - Helm BUGFIX: the cainjector ConfigMap was not mounted in the cainjector deployment. ([#7052](https://github.com/cert-mana...
v1.16.0-beta.0
cert-manager is the easiest way to automatically manage certificates in Kubernetes and OpenShift clusters.
📖 Read the draft 1.16 release notes for a full list of changes since 1.15, including breaking changes and major themes.
📜 Changes since v1.16.0-alpha.1
Feature
- Feature: Add a new
ClientWatchList
feature flag to cert-manager controller, cainjector and webhook, which allows the components to use of the ALPHAWatchList
/ Streaming list feature of the Kubernetes API server. This reduces the load on the Kubernetes API server when cert-manager starts up and reduces the peak memory usage in the cert-manager components. (#7175, @wallrj) - Feature: The Route53 DNS solver of the ACME Issuer will now use regional STS endpoints computed from the region that is supplied in the Issuer spec or in the
AWS_REGION
environment variable.
Feature: The Route53 DNS solver of the ACME Issuer now uses the "ambient" region (AWS_REGION
orAWS_DEFAULT_REGION
) ifissuer.spec.acme.solvers.dns01.route53.region
is empty; regardless of the flags--issuer-ambient-credentials
and--cluster-issuer-ambient-credentials
. (#7299, @wallrj)