Skip to content

Releases: cert-manager/cert-manager

v1.12.1

25 May 14:48
3f5dbe1
Compare
Choose a tag to compare

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

v1.12.1 release contains a couple dependency bumps and changes to ACME external webhook library.

Known issues

⚠️ cert-manager v1.12.0, v1.12.1 and v1.12.2 all have known issues. You should install the latest patch release of v1.12 and skip over the affected versions.

  • cmctl API check is broken in v1.12.0 and v1.12.1. We suggest that you do not upgrade cmctl to this version. The fix was released in v1.12.2 (which has an additional issue, see below). See #6116 for context.
  • cainjector contains a memory leak in v1.12.0, v1.12.1 and v1.12.2 due to re-assignment of a log variable (see #6217). The fix was released in v1.12.3. See #6232 for further context.

Changes since v1.12.0

Other (Cleanup or Flake)

  • Don't run API Priority and Fairness controller in webhook's extension apiserver (#6085, @irbekrm)
  • Adds a warning for folks to not use controller feature gates helm value to configure webhook feature gates (#6100, @irbekrm)

Uncategorized

v1.11.3

25 May 12:48
570574d
Compare
Choose a tag to compare

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

v1.11.3 mostly contains ACME library changes. API Priority and Fairness feature is now disabled in the external webhook's extension apiserver.

Changes by Kind

Other (Cleanup or Flake)

  • API Priority and Fairness controller is now disabled in extension apiserver for DNS webhook implementation. (#6092, @irbekrm)
  • Adds a warning for folks to not use controller feature gates helm value to configure webhook feature gates (#6101, @irbekrm)

v1.12.0

19 May 12:53
bd192c4
Compare
Choose a tag to compare

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

cert-manager v1.12 brings support for JSON logging, a lower memory footprint, support for ephemeral service account tokens with Vault, improved dependency management and support for the ingressClassName field.

The full release notes are available at https://cert-manager.io/docs/release-notes/release-notes-1.12.

Known issues

⚠️ cert-manager v1.12.0, v1.12.1 and v1.12.2 all have known issues. You should install the latest patch release of v1.12 and skip over the affected versions.

  • cmctl API check is broken in v1.12.0 and v1.12.1. We suggest that you do not upgrade cmctl to this version. The fix was released in v1.12.2 (which has an additional issue, see below). See #6116 for context.
  • cainjector contains a memory leak in v1.12.0, v1.12.1 and v1.12.2 due to re-assignment of a log variable (see #6217). The fix was released in v1.12.3. See #6232 for further context.

Community

Thanks again to all open-source contributors with commits in this release, including:

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, joined our meetings and talked to us at Kubecon!

Special thanks to @erikgb for continuously great input and feedback and to @lucacome for always ensuring that our kube deps are up to date!

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 Jetstack (by Venafi) for contributing developer time and resources towards the continued maintenance of cert-manager projects.

Changes by Kind

Feature

  • POTENTIALLY BREAKING: the cert-manager binaries and some tests have been split into separate Go modules, allowing them to be easily patched independently. This should have no impact if you simply run cert-manager in your cluster. If you import cert-manager binaries, integration tests or end-to-end tests in Go, you may need to make code changes in response to this. See https://cert-manager.io/docs/contributing/importing/ for more details. (#5880, @SgtCoDFish)
  • Added support for JSON logging (using --logging-format=json) (#5828, @malovme)
  • Added the --concurrent-workers flag that lets you control the number of concurrent workers for each of our controllers. (#5936, @inteon)
  • Adds acme.solvers.http01.ingress.podTemplate.spec.imagePullSecrets field to issuer spec to allow to specify image pull secrets for the ACME HTTP01 solver pod. (#5801, @malovme)
  • Cainjector:
    • New flags were added to the cainjector binary. They can be used to modify what injectable kinds are enabled. If cainjector is only used as a cert-manager's internal component it is sufficient to only enable validatingwebhookconfigurations and mutatingwebhookconfigurations injectable resources; disabling the rest can improve memory consumption. By default all are enabled.
    • The --watch-certs flag was renamed to --enable-certificates-data-source. (#5766, @irbekrm)
  • Helm: Added PodDisruptionBudgets for cert-manager components to the Helm chart (disabled by default). (#3931, @e96wic)
  • Helm: Egress 6443/TCP is now allowed in the webhook. This is required for OpenShift and OKD clusters for which the Kubernetes API server listens on port 6443 instead of 443. (#5788, @ExNG)
  • Helm: you can now add volumes and volume mounts via Helm variables for the cainjector, webhook, and startupapicheck. (#5668, @waterfoul)
  • Helm: you can now enable the flags --dns01-recursive-nameservers, --enable-certificate-owner-ref, and --dns01-recursive-nameservers-only through Helm values. (#5614, @jkroepke)
  • The DigitalOcean issuer now sets a cert-manager user agent string. (#5869, @andrewsomething)
  • The HTTP-01 solver can now be configured to create Ingresses with an ingressClassName. The credit goes to @dsonck92 for implementing the initial PR. (#5849, @maelvls)
  • The Vault issuer can now be used with ephemeral Kubernetes tokens. With the new serviceAccountRef field, cert-manager generates a short-lived token associated to the service account to authenticate to Vault. Along with this new feature, we have added validation logic in the webhook in order to check the vault.auth field when creating an Issuer or ClusterIssuer. Previously, it was possible to create an Issuer or ClusterIssuer with an invalid value for vault.auth. (#5502, @maelvls)
  • The cert-manager controller container of the controller Pod now has a /livez endpoint and a default liveness probe, which fails if leader election has been lost and for some reason the process has not exited. The liveness probe is disabled by default. (#5962, @wallrj)
  • Upgraded Gateway API to v0.6.0. (#5768, @yulng)
  • Webhook now logs requests to mutating/validating webhook (with --v=5 flag) (#5975, @tobotg)

Design

  • Certificate issuances are always failed (and retried with a backoff) for denied or invalid CertificateRequests.
    This is not necessarily a breaking change as due to a race condition this may already have been the case. (#5887, @irbekrm)
  • The cainjector controller can now use server-side apply to patch mutatingwebhookconfigurations, validatingwebhookconfigurations, apiservices, and customresourcedefinitions. This feature is currently in alpha and is not enabled by default. To enable server-side apply for the cainjector, add the flag --feature-gates=ServerSideApply=true to the deployment. (#5991, @inteon)

Documentation

Bug or Regression

  • Cmctl renew now prints an error message unless Certificate name(s) or --all are supplied (#5896, @maumontesilva)
  • Cmctl: In order work around a hardcoded Kubernetes version in Helm, we now use a fake kube-apiserver version when generating the helm template when running cmctl x install. (#5720, @irbekrm)
  • Fix development environment and go vendoring on Linux arm64. (#5810, @SgtCoDFish)
  • Fix ordering of remote git tags when preparing integration tests (#5910, @SgtCoDFish)
  • Helm: the flag --acme-http01-solver-image given to the variable acmesolver.extraArgs now has precedence over the variable acmesolver.image. (#5693, @SgtCoDFish)
  • Ingress and Gateway resources will not be synced if deleted via foreground cascading. (#5878, @avi-08)
  • The auto-retry mechanism added in VCert 4.23.0 and part of cert-manager 1.11.0 (#5674) has been found to be faulty. Until this issue is fixed upstream, we now use a patched version of VCert. This patch will slowdown the issuance of certificates by 9% in case of heavy load on TPP. We aim to release at an ulterior date a patch release of cert-manager to fix this slowdown. (#5805,...
Read more

v1.12.0-beta.2

12 May 16:47
bd192c4
Compare
Choose a tag to compare
v1.12.0-beta.2 Pre-release
Pre-release

Changelog since v1.12.0-beta.1

Changes by Kind

Other (Cleanup or Flake)

v1.12.0-beta.1

09 May 11:22
50ac858
Compare
Choose a tag to compare
v1.12.0-beta.1 Pre-release
Pre-release

v1.12.0-beta.1

⚠️ cert-manager v1.12.0-beta.0 is a pre-release beta version intended for testing. It might not be suitable for production uses.

Changelog since v1.12.0-beta.0

Changes by Kind

Feature

  • Added support for json logging (using --logging-format=json) (#5828, @malovme)
  • The cert-manager controller container of the controller Pod now has a /livez endpoint and a default liveness probe, which fails if leader election has been lost and for some reason the process has not exited. The liveness probe is disabled by default. (#5962, @wallrj)
  • Webhook now logs requests to mutating/validating webhook (with --v=5 flag) (#5975, @tobotg)

Design

  • ServerSideApply: The feature gate ServerSideApply=true configures the ca-injector controller to use Kubernetes Server Side Apply on CA Injector injectable target resources. (#5991, @inteon)

Documentation

Bug or Regression

  • Adds missing comparisons for certain fields which were incorrectly skipped if a LiteralSubject was set (#5747, @inteon)
  • Check JKS/PKCS12 truststore in Secrets only if issuer provides the CA (#5972, @vinzent)

Other (Cleanup or Flake)

  • Caches metadata only for filtered Pods and Services (#5976, @irbekrm)
  • Storing the latest private key hash on issuer status prevents unnecessary calls to ACME server during controller startup (#6006, @vidarno)
  • Tests on Kubernetes v1.27.1 by default. (#5979, @irbekrm)
  • Updates Kubernetes libraries to v0.27.1. (#5961, @lucacome)

Uncategorized

  • Replaces our python boilerplate checker with an installed golang version, removing the need to have Python installed when developing or building cert-manager (#6000, @SgtCoDFish)

v1.11.2

09 May 16:26
4767427
Compare
Choose a tag to compare

Changelog since v1.11.1

Changes by Kind

Bug or Regression

Other (Cleanup or Flake)

v1.12.0-beta.0

21 Apr 18:03
83ab968
Compare
Choose a tag to compare
v1.12.0-beta.0 Pre-release
Pre-release

v1.12.0-beta.0

⚠️ cert-manager v1.12.0-beta.0 is a pre-release beta version intended for testing. It might not be suitable for production uses.

Changelog since v1.12.0-alpha.2

Changes by Kind

Feature

  • Added PodDisruptionBudgets for cert-manager components to the Helm chart (disabled by default). (#3931, @e96wic)
  • Added the --concurrent-workers flag that lets you control the number of concurrent workers for each of our controllers. (#5936, @inteon)
  • Cainjector:
    • adds a couple new flags to cainjector that can be used to modify what injectable kinds are enabled. If cainjector is only used as a cert-manager's internal component it is sufficient to only enable validatingwebhookconfigurations and mutatingwebhookconfigurations injectables- disabling the rest can improve memory consumption. By default all are enabled.
    • renames --watch-certs flag to --enable-certificates-data-source (#5766, @irbekrm)

Other (Cleanup or Flake)

  • ACME account registration is now re-verified if account key is manually changed. (#5949, @TrilokGeer)
  • Add make go-workspace target for generating a go.work file for local development (#5935, @SgtCoDFish)
  • Bump the distroless base images (#5929, @maelvls)
  • Ensures that annotations, labels and managed fields are not cached for partial metadata Secrets. (#5966, @irbekrm)
  • Filters Secret caching to ensure only relevant Secrets are cached in full. This should reduce controller's memory consumption in clusters with a large number of cert-manager unrelated Secret resources. The filtering functionality is currently placed behind SecretsFilteredCaching feature flag.
    The filtering mechanism might, in some cases, slightly slow down issuance or cause additional requests to kube apiserver, because unlabelled Secrets that cert-manager controller needs will now be retrieved from kube apiserver instead of being cached locally. To prevent this from happening, users can label all issuer Secrets with controller.cert-manager.io/fao: true label. (#5824, @irbekrm)
  • Updates Kubernetes libraries to v0.26.3. (#5907, @lucacome)
  • Upgrade to Go 1.20 (#5969, @wallrj)
  • Validates that certificate.spec.secretName is a valid Secret name (#5967, @avi-08)

v1.11.1

07 Apr 13:54
e3a2a80
Compare
Choose a tag to compare

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

In v1.11.1, we updated the base images used for cert-manager containers. In addition, the users of the Venafi issuer will see less certificates repeatedly failing.

If you are a user of Venafi TPP and have been having issues with the error message This certificate cannot be processed while it is in an error state. Fix any errors, and then click Retry, please use this version.

Changes since v1.11.0

Bug or Regression

  • Bump helm and other dependencies to fix CVEs, along with upgrading go and base images (#5815, @SgtCoDFish)
  • Bump the distroless base images (#5930, @maelvls)
  • The auto-retry mechanism added in VCert 4.23.0 and part of cert-manager 1.11.0 (#5674) has been found to be faulty. Until this issue is fixed upstream, we now use a patched version of VCert. This patch will slowdown the issuance of certificates by 9% in case of heavy load on TPP. We aim to release at an ulterior date a patch release of cert-manager to fix this slowdown. (#5819, @maelvls)
  • Use a fake-kube apiserver version when generating helm template in cmctl x install, to work around a hardcoded Kubernetes version in Helm. (#5726, @SgtCoDFish)

Other (Cleanup or Flake)

  • Bump keystore-go to v4.4.1 to work around an upstream rewrite of history (#5730, @SgtCoDFish)

v1.12.0-alpha.2

12 Apr 07:56
3c9cc34
Compare
Choose a tag to compare
v1.12.0-alpha.2 Pre-release
Pre-release

⚠️ cert-manager v1.12.0-alpha.2 is a pre-release alpha version intended for testing. It might not be suitable for production uses.

Changes since v1.12.0-alpha.1

Feature

  • POTENTIALLY BREAKING: Separates cert-manager binaries and some tests into separate go modules, allowing them to be easily patched independently. This should have no impact if you simply run cert-manager in your cluster. If you import cert-manager binaries, integration tests or end-to-end tests in Golang, you may need to make code changes in response to this. See https://cert-manager.io/docs/contributing/importing/ for more details (#5880, @SgtCoDFish)

Bug or Regression

  • Fix ordering of remote git tags when preparing integration tests (#5910, @SgtCoDFish)

Other (Cleanup or Flake)

  • Reduces the amount of ACME calls during an ACME certificate issuance.
    Warning: this PR slightly changes how Challenge names are calculated. To avoid duplicate issuances due to Challenges being recreated, ensure that there is no in-progress ACME certificate issuance when you upgrade to this version of cert-manager. (#5901, @irbekrm)

v1.12.0-alpha.1

03 Apr 15:08
fd9c01f
Compare
Choose a tag to compare
v1.12.0-alpha.1 Pre-release
Pre-release

⚠️ cert-manager v1.12.0-alpha.1 is a pre-release alpha version intended for testing. It might not be suitable for production uses.

Changes since v1.12.0-alpha.0

Feature

  • Adds acme.solvers.http01.ingress.podTemplate.spec.imagePullSecrets field to issuer spec to allow to specify image pull secrets for the ACME HTTP01 solver pod. (#5801, @malovme)
  • The DigitalOcean issuer now sets a cert-manager user agent string. (#5869, @andrewsomething)
  • The HTTP-01 solver can now be configured to create Ingresses with an ingressClassName. The credit goes to @dsonck92 for implementing the initial PR. (#5849, @maelvls)
  • Upgraded Gateway API to v0.6.0. (#5768, @yulng)

Design

  • Certificate issuances are always failed (and retried with a backoff) for denied or invalid CertificateRequests.
    This is not necessarily a breaking change as due to a race condition this may already have been the case. (#5887, @irbekrm)

Bug or Regression

  • Cmctl renew now prints an error message unless Certificate name(s) or --all are supplied (#5896, @maumontesilva)
  • Fix development environment and go vendoring on Linux ARM64. (#5810, @SgtCoDFish)
  • Ingress and Gateway resources will not be synced if deleted via foreground cascading. (#5878, @avi-08)
  • The auto-retry mechanism added in VCert 4.23.0 and part of cert-manager 1.11.0 (#5674) has been found to be faulty. Until this issue is fixed upstream, we now use a patched version of VCert. This patch will slowdown the issuance of certificates by 9% in case of heavy load on TPP. We aim to release at an ulterior date a patch release of cert-manager to fix this slowdown. (#5805, @inteon)
  • Upgrade to go 1.19.6 along with newer helm and containerd versions and updated base images (#5813, @SgtCoDFish)

Other (Cleanup or Flake)

Uncategorized

  • Add 6443/TCP to webhook egress rules (#5788, @ExNG)