You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/docs/contributing/api-compatibility.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,7 +11,8 @@ after an upgrade or downgrade of cert-manager.
11
11
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
12
12
last resort. In general the main criteria by which we'd determine whether a change is acceptable would be user value.
13
13
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`.
Copy file name to clipboardExpand all lines: content/docs/releases/release-notes/release-notes-1.18.md
+41Lines changed: 41 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,6 +9,47 @@ cert-manager v1.18 includes:
9
9
10
10
## Major Themes
11
11
12
+
### The default value of `Certificate.Spec.PrivateKey.RotationPolicy` is now `Always`
13
+
14
+
> ⚠️ Breaking change
15
+
16
+
We have changed the default value of `Certificate.Spec.PrivateKey.RotationPolicy` from `Never` to `Always`.
17
+
18
+
Why? Because the old default was unintuitive and insecure.
19
+
For example, if a private key is exposed, users may (reasonably) assume that
20
+
re-issuing a certificate (e.g. using `cmctl renew`) will generate a new private
21
+
key, but it won't unless the user has explicitly set `rotationPolicy: Always` on the Certificate resource.
22
+
23
+
This change is feature gated and is enabled by default, because it has been fast-tracked to beta status.
24
+
25
+
Users who want to preserve the old default have two options:
26
+
1. Explicitly set `rotationPolicy: Never` on your Certificate resources.
27
+
2. Turn off the feature gate in this release and explicitly set
28
+
`rotationPolicy: Never` on your Certificates before release 1.19.
29
+
In release 1.19, the feature will be marked as GA and it will no longer be
30
+
possible to turn off the feature.
31
+
32
+
The following Helm chart values can be used to turn off the feature gate:
33
+
34
+
```yaml
35
+
# values.yaml
36
+
config:
37
+
featureGates:
38
+
DefaultPrivateKeyRotationPolicyAlways: false
39
+
```
40
+
41
+
> ℹ️ The old default value `Never` was always intended to be changed before API `v1`, as can be seen in the description of the [original PR](https://github.com/cert-manager/cert-manager/pull/2814):
42
+
> > For backward compatibility, the empty value is treated as 'Never' which matches the behavior we have today.
43
+
> > In a future API version, we can flip this default to be Always.
44
+
>
45
+
> 📖 See [Issue: 7601: Change `PrivateKey.RotationPolicy` to default to Always](https://github.com/cert-manager/cert-manager/issues/7601) to read the proposal for this change and the discussion around it.
46
+
>
47
+
> 📖 Read [cert-manager component configuration](../../installation/configuring-components.md) to learn more about feature gates.
48
+
>
49
+
> 📖 Read our updated [API compatibility statement](../../contributing/api-compatibility.md) which now reflects our new, more flexible, approach to changing API defaults, with a view to introducing other "sane" default API values in future releases.
50
+
>
51
+
> 📖 Read [Issuance behavior: Rotation of the private key](../../usage/certificate.md#issuance-behavior-rotation-of-the-private-key) to learn more about private key rotation in cert-manager.
52
+
12
53
### Copy annotations from Ingress or Gateway to the Certificate
13
54
14
55
We've added a new configuration option to the cert-manager controller: `--extra-certificate-annotations`, which allows you to specify annotation keys to be copied from an Ingress or Gateway resource to the resulting Certificate object.
0 commit comments