Skip to content

Releases: cert-manager/cert-manager

v1.16.2

20 Nov 19:21
v1.16.2
33df0f2
Compare
Choose a tag to compare

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

19 Nov 12:57
v1.15.4
85dd399
Compare
Choose a tag to compare

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)

v1.12.14

18 Nov 17:34
v1.12.14
70a0309
Compare
Choose a tag to compare

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

09 Oct 13:48
ff50c06
Compare
Choose a tag to compare

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 and podDisruptionBudget.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 in v1.16.1. (#7342, @inteon)

v1.16.0

03 Oct 15:00
67c897d
Compare
Choose a tag to compare

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

  1. Helm Chart: JSON schema prevents the chart being used as a sub-chart on Rancher RKE.
  2. ACME DNS01 ClusterIssuer fail while loading credentials from Secret resources.

❗ Breaking changes

  1. Helm schema validation may reject your existing Helm values files if they contain typos or unrecognized fields.
  2. Venafi Issuer may fail to renew certificates if the requested duration conflicts with the CA’s minimum or maximum policy settings in Venafi.
  3. 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 to renewBefore (#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 or AWS_DEFAULT_REGION) if issuer.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.
    Added disableAutoApproval and approveSignerNames Helm chart options. (#7049, @inteon)
  • Make it easier to configure cert-manager using Helm by defaulting config.apiVersion and config.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 when cainjector 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 and AWS_DEFAULT_REGION environment variables, which is set by the IAM for Service Accounts (IRSA) webhook and by the Pod Identity webhook.
    The issuer.spec.acme.solvers.dns01.route53.region field is now optional.
    The API documentation of the region 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 value cainjector.extraEnv, allows you to set custom environment variables in the cainjector Pod.
    Helm: New value startupapicheck.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 the github.com/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 fix GHSA-xr7q-jx4m-x55m (#7164, @SgtCoDFish)
  • Bump the go-retryablehttp dependency to fix CVE-2024-6104 (#7125, @SgtCoDFish)
  • Fix Azure DNS causing panics whenever authentication error happens (#7177, @eplightning)
  • Fix incorrect indentation of endpointAdditionalProperties in the PodMonitor 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...
Read more

v1.16.0-beta.0

26 Sep 11:46
f3b2a98
Compare
Choose a tag to compare
v1.16.0-beta.0 Pre-release
Pre-release

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 ALPHA WatchList / 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 or AWS_DEFAULT_REGION) if issuer.spec.acme.solvers.dns01.route53.region is empty; regardless of the flags --issuer-ambient-credentials and --cluster-issuer-ambient-credentials. (#7299, @wallrj)

v1.16.0-alpha.1

23 Sep 13:48
v1.16.0-alpha.1
8276d84
Compare
Choose a tag to compare
v1.16.0-alpha.1 Pre-release
Pre-release

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

📜 Changes since v1.16.0-alpha.0

Feature

  • Added app.kubernetes.io/managed-by: "cert-manager" to cert-manager-webhook-ca (#7154, @jrcichra)
  • Allow the user to specify a Pod template when using GatewayAPI HTTP01 solver, this mirrors the behaviour when using the Ingress HTTP01 solver. (#7211, @ThatsMrTalbot)
  • Create tokenrequest RBAC for the cert-manager serviceaccount by default (#7213, @Jasper-Ben)
  • Append cert-manager user-agent string to all AWS API requests, including IMDS and STS requests. (#7295, @wallrj)
  • Log AWS SDK warnings and API requests at cert-manager debug level to help debug AWS Route53 problems in the field. (#7292, @wallrj)
  • Pass down specified duration to venafi client instead of using the CA default only. (#7104, @Guitarkalle)
  • 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)
  • Adding configuation for the pod security context of HTTP-01 solver pods. (#5373, @aidy)

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 the following issue:

    metadata.finalizers: "finalizer.acme.cert-manager.io": prefer a domain-qualified finalizer name to avoid accidental conflicts with other finalizer writers

    (#7273, @jsoref)

  • Bug fix: 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)

  • 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)

  • Prevent aggressive Route53 retries caused by STS authentication failures by removing the Amazon Request ID from STS errors. (#7259, @wallrj)

  • Handle errors arising from challenges missing from the ACME server (#7202, @bdols)

  • The Route53 DNS01 solver of the ACME Issuer can now detect the AWS region from the AWS_REGION and AWS_DEFAULT_REGION environment variables, which is set by the IAM for Service Accounts (IRSA) webhook and by the Pod Identity webhook. (#7287, @wallrj)

  • The issuer.spec.acme.solvers.dns01.route53.region field is now optional. (#7287, @wallrj)

  • The API documentation of the region field has been updated to explain when and how the region value is used. (#7287, @wallrj)

  • The KeyUsages x509 extension is no longer added when there are no key usages set in accordance to RFC 5280 Section 4.2.1.3. (#7250, @inteon)

Other (Cleanup or Flake)

  • Bug fix: before upgrading to client-go v0.31.0, users might have seen a lot of "reflector.go: unable to sync list result: internal error: cannot cast object DeletedFinalStateUnknown" errors. This has been fixed by upgrading to client-go v0.31.0. (#7237, @inteon)
  • Old API versions were removed from the codebase: (#7278, @inteon)
    • [acme.]cert-manager.io/v1alpha2
    • [acme.]cert-manager.io/v1alpha3
    • [acme.]cert-manager.io/v1beta1

v1.15.3

16 Aug 08:09
0448418
Compare
Choose a tag to compare

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

🔗 See v1.15.0 for more information about cert-manager 1.15 and read-before-upgrade info.

📜 Changes since v1.15.2

Bug or Regression

  • 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. (#7232, @cert-manager-bot)

v1.12.13

08 Aug 17:00
a4704b2
Compare
Choose a tag to compare

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

📖 Read the release documentation to learn more more about the features introduced in 1.12.

📜 Changes since v1.12.12

This patch release fixes the following vulnerabilities: CVE-2024-6104, CVE-2024-24791, CVE-2024-25620, CVE-2024-26147, and CVE-2024-41110.

ℹ️ This version contains an unusually large number of Go dependency changes for
a patch release. The cert-manager maintainers are confident that it is stable
because it has passed the same extensive suite of tests as previous 1.12
releases. But if you are importing cert-manager 1.12 as a Go module you will
notice that the minimum Go version is 1.21, and the k8s.io modules are now
updated to 0.29.

This reason for the large number of Go dependency changes is that the Helm SDK
has been updated to fix security vulnerabilities in cmctl. This required the
k8s.io modules to be updated from 0.27 to 0.29 in all components. Those
newer minor versions of the Kubernetes modules pulled in new transitive
dependencies, and incremented the minimum Go version from 1.20 to 1.21.

Bugfixes

  • Bump the go-retryablehttp dependency to fix CVE-2024-6104 (#7128, @SgtCoDFish)
  • Updated Helm dependency to resolve CVE-2024-25620 and CVE-2024-26147 and Docker dependency to resolve CVE-2024-41110 (#7214, @ThatsMrTalbot)
  • Updates Go to 1.21.13 to resolve CVE-2024-24791 (#7216, @ThatsMrTalbot)

v1.15.2

30 Jul 13:25
48216fb
Compare
Choose a tag to compare

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

🔗 See v1.15.0 for more information about cert-manager 1.15 and read-before-upgrade info.

📜 Changes since v1.15.1

Bug or Regression

  • BUGFIX route53: explicitly set the aws-global STS region which is now required by the github.com/aws/aws-sdk-go-v2 library. (#7189, @cert-manager-bot)
  • Bump grpc-go to fix GHSA-xr7q-jx4m-x55m (#7167, @SgtCoDFish)
  • Fix Azure DNS causing panics whenever authentication error happens (#7188, @cert-manager-bot)
  • Fix incorrect value and indentation of endpointAdditionalProperties in the PodMonitor template of the Helm chart (#7191, @inteon)
  • Fixes ACME HTTP01 challenge behavior when using Gateway API to prevent unbounded creation of HTTPRoute resources (#7186, @cert-manager-bot)
  • Upgrade golang from 1.22.3 to 1.22.5 (#7165, @github-actions)