Skip to content

Commit 5aa26aa

Browse files
Merge pull request #1708 from cert-manager/release-next
Release cert-manager v1.18.0
2 parents 2f860b3 + ed75687 commit 5aa26aa

File tree

30 files changed

+569
-78
lines changed

30 files changed

+569
-78
lines changed

.spelling

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -544,6 +544,7 @@ ulrichgi
544544
uncomment
545545
unencrypted
546546
uninstallation
547+
unintuitive
547548
unredacted
548549
unschedule
549550
untrusted

content/docs/cli/cainjector.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Flags:
1818
--config string Path to a file containing a CAInjectorConfiguration object used to configure the controller
1919
--enable-apiservices-injectable Inject CA data to annotated APIServices. This functionality is not required if cainjector is only used as cert-manager's internal component and setting it to false might reduce memory consumption (default true)
2020
--enable-certificates-data-source Enable configuring cert-manager.io Certificate resources as potential sources for CA data. Requires cert-manager.io Certificate CRD to be installed. This data source can be disabled to reduce memory consumption if you only use cainjector as part of cert-manager's installation (default true)
21-
--enable-customresourcedefinitions-injectable Inject CA data to annotated CustomResourceDefinitions. This functionality is not required if cainjecor is only used as cert-manager's internal component and setting it to false might slightly reduce memory consumption (default true)
21+
--enable-customresourcedefinitions-injectable Inject CA data to annotated CustomResourceDefinitions. This functionality is not required if cainjector is only used as cert-manager's internal component and setting it to false might slightly reduce memory consumption (default true)
2222
--enable-mutatingwebhookconfigurations-injectable Inject CA data to annotated MutatingWebhookConfigurations. This functionality is required for cainjector to work correctly as cert-manager's internal component (default true)
2323
--enable-profiling Enable profiling for controller.
2424
--enable-validatingwebhookconfigurations-injectable Inject CA data to annotated ValidatingWebhookConfigurations. This functionality is required for cainjector to correctly function as cert-manager's internal component (default true)

content/docs/cli/controller.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ Flags:
2727
--concurrent-workers int The number of concurrent workers for each controller. (default 5)
2828
--config string Path to a file containing a ControllerConfiguration object used to configure the controller
2929
--controllers strings A list of controllers to enable. '--controllers=*' enables all on-by-default controllers, '--controllers=foo' enables just the controller named 'foo', '--controllers=*,-foo' disables the controller named 'foo'.
30-
All controllers: issuers, clusterissuers, certificates-metrics, ingress-shim, gateway-shim, orders, challenges, certificaterequests-issuer-acme, certificaterequests-approver, certificaterequests-issuer-ca, certificaterequests-issuer-selfsigned, certificaterequests-issuer-vault, certificaterequests-issuer-venafi, certificates-trigger, certificates-issuing, certificates-key-manager, certificates-request-manager, certificates-readiness, certificates-revision-manager (default [*])
31-
--copied-annotation-prefixes strings Specify which annotations should/shouldn't be copiedfrom Certificate to CertificateRequest and Order, as well as from CertificateSigningRequest to Order, by passing a list of annotation key prefixes.A prefix starting with a dash(-) specifies an annotation that shouldn't be copied. Example: '*,-kubectl.kuberenetes.io/'- all annotationswill be copied apart from the ones where the key is prefixed with 'kubectl.kubernetes.io/'. (default [*,-kubectl.kubernetes.io/,-fluxcd.io/,-argocd.argoproj.io/])
30+
All controllers: issuers, clusterissuers, certificates-metrics, ingress-shim, gateway-shim, orders, challenges, certificaterequests-issuer-acme, certificaterequests-approver, certificaterequests-issuer-ca, certificaterequests-issuer-selfsigned, certificaterequests-issuer-vault, certificaterequests-issuer-venafi, certificates-trigger, certificates-issuing, certificates-key-manager, certificates-request-manager, certificates-readiness, certificates-revision-manager, certificatesigningrequests-issuer-acme, certificatesigningrequests-issuer-ca, certificatesigningrequests-issuer-selfsigned, certificatesigningrequests-issuer-venafi, certificatesigningrequests-issuer-vault (default [*])
31+
--copied-annotation-prefixes strings Specify which annotations should/shouldn't be copiedfrom Certificate to CertificateRequest and Order, as well as from CertificateSigningRequest to Order, by passing a list of annotation key prefixes.A prefix starting with a dash(-) specifies an annotation that shouldn't be copied. Example: '*,-kubectl.kubernetes.io/'- all annotationswill be copied apart from the ones where the key is prefixed with 'kubectl.kubernetes.io/'. (default [*,-kubectl.kubernetes.io/,-fluxcd.io/,-argocd.argoproj.io/])
3232
--default-issuer-group string Group of the Issuer to use when the tls is requested but issuer group is not specified on the ingress resource. (default "cert-manager.io")
3333
--default-issuer-kind string Kind of the Issuer to use when the tls is requested but issuer kind is not specified on the ingress resource. (default "Issuer")
3434
--default-issuer-name string Name of the Issuer to use when the tls is requested but issuer name is not specified on the ingress resource.
@@ -38,10 +38,11 @@ Flags:
3838
--enable-certificate-owner-ref Whether to set the certificate resource as an owner of secret where the tls certificate is stored. When this flag is enabled, the secret will be automatically removed when the certificate resource is deleted.
3939
--enable-gateway-api Whether gateway API integration is enabled within cert-manager. The ExperimentalGatewayAPISupport feature gate must also be enabled (default as of 1.15).
4040
--enable-profiling Enable profiling for controller.
41+
--extra-certificate-annotations strings Extra annotation to be added by the ingress-shim controller to certificate object
4142
--feature-gates mapStringBool A set of key=value pairs that describe feature gates for alpha/experimental features. Options are:
42-
AdditionalCertificateOutputFormats=true|false (BETA - default=true)
4343
AllAlpha=true|false (ALPHA - default=false)
4444
AllBeta=true|false (BETA - default=false)
45+
DefaultPrivateKeyRotationPolicyAlways=true|false (BETA - default=true)
4546
ExperimentalCertificateSigningRequestControllers=true|false (ALPHA - default=false)
4647
ExperimentalGatewayAPISupport=true|false (BETA - default=true)
4748
LiteralCertificateSubject=true|false (BETA - default=true)
@@ -51,7 +52,6 @@ Flags:
5152
ServerSideApply=true|false (ALPHA - default=false)
5253
StableCertificateRequestName=true|false (BETA - default=true)
5354
UseCertificateRequestBasicConstraints=true|false (ALPHA - default=false)
54-
UseDomainQualifiedFinalizer=true|false (BETA - default=true)
5555
ValidateCAA=true|false (ALPHA - default=false)
5656
-h, --help help for controller
5757
--issuer-ambient-credentials Whether an issuer may make use of ambient credentials. 'Ambient Credentials' are credentials drawn from the environment, metadata services, or local files which are not explicitly configured in the Issuer API object. When this flag is enabled, the following sources for credentials are also used: AWS - All sources the Go SDK defaults to, notably including any EC2 IAM roles available via instance metadata.

content/docs/cli/webhook.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,19 @@ Flags:
2222
--dynamic-serving-leaf-duration duration leaf duration of serving certificates (default 168h0m0s)
2323
--enable-profiling Enable profiling for webhook.
2424
--feature-gates mapStringBool A set of key=value pairs that describe feature gates for alpha/experimental features. Options are:
25-
AdditionalCertificateOutputFormats=true|false (BETA - default=true)
2625
AllAlpha=true|false (ALPHA - default=false)
2726
AllBeta=true|false (BETA - default=false)
27+
DefaultPrivateKeyRotationPolicyAlways=true|false (BETA - default=true)
28+
ExperimentalCertificateSigningRequestControllers=true|false (ALPHA - default=false)
29+
ExperimentalGatewayAPISupport=true|false (BETA - default=true)
2830
LiteralCertificateSubject=true|false (BETA - default=true)
2931
NameConstraints=true|false (BETA - default=true)
3032
OtherNames=true|false (ALPHA - default=false)
33+
SecretsFilteredCaching=true|false (BETA - default=true)
34+
ServerSideApply=true|false (ALPHA - default=false)
35+
StableCertificateRequestName=true|false (BETA - default=true)
36+
UseCertificateRequestBasicConstraints=true|false (ALPHA - default=false)
37+
ValidateCAA=true|false (ALPHA - default=false)
3138
--healthz-port int32 port number to listen on for insecure healthz connections (default 6080)
3239
-h, --help help for webhook
3340
--kubeconfig string optional path to the kubeconfig used to connect to the apiserver. If not specified, in-cluster-config will be used

content/docs/configuration/acme/README.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,9 @@ spec:
5757
# Let's Encrypt will use this to contact you about expiring
5858
# certificates, and issues related to your account.
5959
60+
# If the ACME server supports profiles, you can specify the profile name here.
61+
# See #acme-certificate-profiles below.
62+
profile: tlsserver
6063
server: https://acme-staging-v02.api.letsencrypt.org/directory
6164
privateKeySecretRef:
6265
# Secret resource that will be used to store the account's private key.
@@ -80,6 +83,39 @@ Solvers come in the form of [`dns01`](./dns01/README.md) and
8083
these solver types, visit their respective documentation -
8184
[DNS01](./dns01/README.md), [HTTP01](./http01/README.md).
8285

86+
### ACME Certificate Profiles
87+
88+
> ℹ️ This feature is available in cert-manager `>= v1.18.0`.
89+
90+
An ACME Server *may* offer a selection of different certificate profiles to ACME Clients.
91+
92+
Use the optional `profile` field in the `Issuer` or `ClusterIssuer` to select a profile for your ACME orders.
93+
94+
Let's Encrypt already offers [a selection of profiles](https://letsencrypt.org/docs/profiles/).
95+
Other ACME servers may not yet support profiles or they might offer different profiles, so check your ACME server's documentation to see what profiles are available.
96+
97+
You can find out if your ACME server supports profiles by downloading the directory object.
98+
For example:
99+
100+
```bash
101+
curl -fsSL https://acme-staging-v02.api.letsencrypt.org/directory
102+
```
103+
104+
If profiles are supported you will see "profiles" among the fields of the JSON object.
105+
106+
If you do not specify a profile, the ACME server will use its default profile,
107+
which in the case of Let's Encrypt, is the `classic` profile.
108+
109+
> ⚠️ If you specify a profile and connect to an ACME server that does not yet support the [ACME Profiles Extension][rfc],
110+
> cert-manager will report an error on the CertificateRequest resource.
111+
>
112+
> ℹ️ If you specify a profile which the ACME server does not recognize,
113+
> cert-manager will report an error on the CertificateRequest resource.
114+
>
115+
> 📖 Read [ACME protocol extension for certificate profiles (IETF draft)][rfc] to learn more..
116+
117+
[rfc]: https://datatracker.ietf.org/doc/draft-aaron-acme-profiles/
118+
83119
### External Account Bindings
84120

85121
cert-manager supports using External Account Bindings with your ACME account.

content/docs/contributing/api-compatibility.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ after an upgrade or downgrade of cert-manager.
1111
In some cases, we may need to require users to take actions before upgrading or may need to diverge from the API compatibility promise but we'll treat this as an absolute
1212
last resort. In general the main criteria by which we'd determine whether a change is acceptable would be user value.
1313

14-
For example in the event of a truly critical bug, a fix that breaks the API compatibility promise by changing the default behavior of an API field _might_ be acceptable. As of yet, though, there has never been a need for such a change.
14+
Here are the breaking changes we have made to the `v1` API:
15+
* [cert-manger 1.18](../releases/release-notes/release-notes-1.18.md): The default value of `Certificate.Spec.PrivateKey.RotationPolicy` changed from `Never` to `Always`.
1516

1617
## Alpha / Beta API Versions
1718

content/docs/devops-tips/scaling-cert-manager.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ might accidentally or maliciously cause a denial of service for other users on t
7676

7777
## Set `revisionHistoryLimit: 1` on all Certificate resources
7878

79+
> ℹ️ Not needed with cert-manager `>= v1.18.0`, because the default value was changed to `1`.
80+
7981
By default, cert-manager will keep all the `CertificateRequest` resources that **it** creates
8082
([`revisionHistoryLimit`](../reference/api-docs.md#cert-manager.io/v1.CertificateSpec)):
8183

content/docs/manifest.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,14 @@
2020
"title": "Supported Releases",
2121
"path": "/docs/releases/README.md"
2222
},
23+
{
24+
"title": "1.18",
25+
"path": "/docs/releases/release-notes/release-notes-1.18.md"
26+
},
27+
{
28+
"title": "Upgrade 1.17 to 1.18",
29+
"path": "/docs/releases/upgrading/upgrading-1.17-1.18.md"
30+
},
2331
{
2432
"title": "1.17",
2533
"path": "/docs/releases/release-notes/release-notes-1.17.md"

0 commit comments

Comments
 (0)