Skip to content

Commit ec4df0f

Browse files
committed
Address review comments
1 parent 6a6fc84 commit ec4df0f

File tree

2 files changed

+42
-33
lines changed

2 files changed

+42
-33
lines changed

content/en/docs/contribute/style/style-guide.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -576,6 +576,10 @@ Avoid making promises or giving hints about the future. If you need to talk abou
576576
an alpha feature, put the text under a heading that identifies it as alpha
577577
information.
578578
579+
An exception to this rule is documentation about announced deprecations
580+
targeting removal in future versions. One example of documentation like this
581+
is the [Deprecated API migration guide](/docs/reference/using-api/deprecation-guide/).
582+
579583
### Avoid statements that will soon be out of date
580584
581585
Avoid words like "currently" and "new." A feature that is new today might not be

content/en/docs/reference/using-api/deprecation-guide.md

Lines changed: 38 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ reviewers:
66
- smarterclayton
77
title: "Deprecated API Migration Guide"
88
weight: 45
9-
content_type: api_reference
9+
content_type: reference
1010
---
1111

1212
<!-- overview -->
@@ -25,15 +25,23 @@ deprecated API versions to newer and more stable API versions.
2525

2626
The **v1.25** release will stop serving the following deprecated API versions:
2727

28-
#### Event
28+
#### Event {#event-v125}
2929

3030
The **events.k8s.io/v1beta1** API version of Event will no longer be served in v1.25.
3131

3232
* Migrate manifests and API clients to use the **events.k8s.io/v1** API version, available since v1.19.
3333
* All existing persisted objects are accessible via the new API
34-
* Notable changes
35-
36-
#### RuntimeClass
34+
* Notable changes in **events.k8s.io/v1**:
35+
* `type` is limited to `Normal` and `Warning`
36+
* `involvedObject` is renamed to `regarding`
37+
* `action`, `reason`, `reportingComponent`, and `reportingInstance` are required when creating new **events.k8s.io/v1** Events
38+
* use `eventTime` instead of the deprecated `firstTimestamp` field (which is renamed to `deprecatedFirstTimestamp` and not permitted in new **events.k8s.io/v1** Events)
39+
* use `series.lastObservedTime` instead of the deprecated `lastTimestamp` field (which is renamed to `deprecatedLastTimestamp` and not permitted in new **events.k8s.io/v1** Events)
40+
* use `series.count` instead of the deprecated `count` field (which is renamed to `deprecatedCount` and not permitted in new **events.k8s.io/v1** Events)
41+
* use `reportingComponent` instead of the deprecated `source.component` field (which is renamed to `deprecatedSource.component` and not permitted in new **events.k8s.io/v1** Events)
42+
* use `reportingInstance` instead of the deprecated `source.host` field (which is renamed to `deprecatedSource.host` and not permitted in new **events.k8s.io/v1** Events)
43+
44+
#### RuntimeClass {#runtimeclass-v125}
3745

3846
RuntimeClass in the **node.k8s.io/v1beta1** API version will no longer be served in v1.25.
3947

@@ -45,12 +53,12 @@ RuntimeClass in the **node.k8s.io/v1beta1** API version will no longer be served
4553

4654
The **v1.22** release will stop serving the following deprecated API versions:
4755

48-
#### MutatingWebhookConfiguration and ValidatingWebhookConfiguration
56+
#### Webhook resources {#webhook-resources-v122}
4957

5058
The **admissionregistration.k8s.io/v1beta1** API version of MutatingWebhookConfiguration and ValidatingWebhookConfiguration will no longer be served in v1.22.
5159

5260
* Migrate manifests and API clients to use the **admissionregistration.k8s.io/v1** API version, available since v1.16.
53-
* All existing persisted objects are accessible via the new API
61+
* All existing persisted objects are accessible via the new APIs
5462
* Notable changes:
5563
* `webhooks[*].failurePolicy` default changed from `Ignore` to `Fail` for v1
5664
* `webhooks[*].matchPolicy` default changed from `Exact` to `Equivalent` for v1
@@ -59,7 +67,7 @@ The **admissionregistration.k8s.io/v1beta1** API version of MutatingWebhookConfi
5967
* `webhooks[*].admissionReviewVersions` default value is removed and the field made required for v1 (supported versions for AdmissionReview are `v1` and `v1beta1`)
6068
* `webhooks[*].name` must be unique in the list for objects created via `admissionregistration.k8s.io/v1`
6169

62-
#### CustomResourceDefinitions
70+
#### CustomResourceDefinition {#customresourcedefinition-v122}
6371

6472
The **apiextensions.k8s.io/v1beta1** API version of CustomResourceDefinition will no longer be served in v1.22.
6573

@@ -73,34 +81,34 @@ The **apiextensions.k8s.io/v1beta1** API version of CustomResourceDefinition wil
7381
* `spec.additionalPrinterColumns` is removed in v1; use `spec.versions[*].additionalPrinterColumns` instead
7482
* `spec.conversion.webhookClientConfig` is moved to `spec.conversion.webhook.clientConfig` in v1
7583
* `spec.conversion.conversionReviewVersions` is moved to `spec.conversion.webhook.conversionReviewVersions` in v1
76-
* `spec.versions[*].schema.openAPIV3Schema` is now required when creating v1 CustomResourceDefinitions, and must be a [structural schema](/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#specifying-a-structural-schema)
77-
* `spec.preserveUnknownFields: true` is disallowed when creating v1 CustomResourceDefinitions; it must be specified within schema definitions as `x-kubernetes-preserve-unknown-fields: true`
84+
* `spec.versions[*].schema.openAPIV3Schema` is now required when creating v1 CustomResourceDefinition objects, and must be a [structural schema](/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#specifying-a-structural-schema)
85+
* `spec.preserveUnknownFields: true` is disallowed when creating v1 CustomResourceDefinition objects; it must be specified within schema definitions as `x-kubernetes-preserve-unknown-fields: true`
7886
* In `additionalPrinterColumns` items, the `JSONPath` field was renamed to `jsonPath` in v1 (fixes [#66531](https://github.com/kubernetes/kubernetes/issues/66531))
7987

80-
#### APIService
88+
#### APIService {#apiservice-v122}
8189

8290
The **apiregistration.k8s.io/v1beta1** API version of APIService will no longer be served in v1.22.
8391

8492
* Migrate manifests and API clients to use the **apiregistration.k8s.io/v1** API version, available since v1.10.
8593
* All existing persisted objects are accessible via the new API
8694
* No notable changes
8795

88-
#### TokenReview
96+
#### TokenReview {#tokenreview-v122}
8997

9098
The **authentication.k8s.io/v1beta1** API version of TokenReview will no longer be served in v1.22.
9199

92100
* Migrate manifests and API clients to use the **authentication.k8s.io/v1** API version, available since v1.6.
93101
* No notable changes
94102

95-
#### SubjectAccessReview
103+
#### SubjectAccessReview resources {#subjectaccessreview-resources-v122}
96104

97105
The **authorization.k8s.io/v1beta1** API version of LocalSubjectAccessReview, SelfSubjectAccessReview, and SubjectAccessReview will no longer be served in v1.22.
98106

99107
* Migrate manifests and API clients to use the **authorization.k8s.io/v1** API version, available since v1.6.
100108
* Notable changes:
101109
* `spec.group` was renamed to `spec.groups` in v1 (fixes [#32709](https://github.com/kubernetes/kubernetes/issues/32709))
102110

103-
#### CertificateSigningRequest
111+
#### CertificateSigningRequest {#certificatesigningrequest-v122}
104112

105113
The **certificates.k8s.io/v1beta1** API version of CertificateSigningRequest will no longer be served in v1.22.
106114

@@ -115,15 +123,15 @@ The **certificates.k8s.io/v1beta1** API version of CertificateSigningRequest wil
115123
* `status.conditions[*].status` is now required
116124
* `status.certificate` must be PEM-encoded, and contain only `CERTIFICATE` blocks
117125

118-
#### Lease
126+
#### Lease {#lease-v122}
119127

120128
The **coordination.k8s.io/v1beta1** API version of Lease will no longer be served in v1.22.
121129

122130
* Migrate manifests and API clients to use the **coordination.k8s.io/v1** API version, available since v1.14.
123131
* All existing persisted objects are accessible via the new API
124132
* No notable changes
125133

126-
#### Ingress
134+
#### Ingress {#ingress-v122}
127135

128136
The **extensions/v1beta1** and **networking.k8s.io/v1beta1** API versions of Ingress will no longer be served in v1.22.
129137

@@ -136,31 +144,31 @@ The **extensions/v1beta1** and **networking.k8s.io/v1beta1** API versions of Ing
136144
* String backend `servicePort` fields are renamed to `service.port.name`
137145
* `pathType` is now required for each specified path. Options are `Prefix`, `Exact`, and `ImplementationSpecific`. To match the undefined `v1beta1` behavior, use `ImplementationSpecific`.
138146

139-
#### IngressClass
147+
#### IngressClass {#ingressclass-v122}
140148

141149
The **networking.k8s.io/v1beta1** API version of IngressClass will no longer be served in v1.22.
142150

143151
* Migrate manifests and API clients to use the **networking.k8s.io/v1** API version, available since v1.19.
144152
* All existing persisted objects are accessible via the new API
145153
* No notable changes
146154

147-
#### RBAC
155+
#### RBAC resources {#rbac-resources-v122}
148156

149157
The **rbac.authorization.k8s.io/v1beta1** API version of ClusterRole, ClusterRoleBinding, Role, and RoleBinding will no longer be served in v1.22.
150158

151159
* Migrate manifests and API clients to use the **networking.k8s.io/v1** API version, available since v1.8.
152-
* All existing persisted objects are accessible via the new API
160+
* All existing persisted objects are accessible via the new APIs
153161
* No notable changes
154162

155-
#### PriorityClass
163+
#### PriorityClass {#priorityclass-v122}
156164

157165
The **scheduling.k8s.io/v1beta1** API version of PriorityClass will no longer be served in v1.22.
158166

159167
* Migrate manifests and API clients to use the **scheduling.k8s.io/v1** API version, available since v1.14.
160168
* All existing persisted objects are accessible via the new API
161169
* No notable changes
162170

163-
#### Storage
171+
#### Storage resources {#storage-resources-v122}
164172

165173
The **storage.k8s.io/v1beta1** API version of CSIDriver, CSINode, StorageClass, and VolumeAttachment will no longer be served in v1.22.
166174

@@ -169,21 +177,21 @@ The **storage.k8s.io/v1beta1** API version of CSIDriver, CSINode, StorageClass,
169177
* CSINode is available in **storage.k8s.io/v1** since v1.17
170178
* StorageClass is available in **storage.k8s.io/v1** since v1.6
171179
* VolumeAttachment is available in **storage.k8s.io/v1** v1.13
172-
* All existing persisted objects are accessible via the new API
180+
* All existing persisted objects are accessible via the new APIs
173181
* No notable changes
174182

175183
### v1.16
176184

177185
The **v1.16** release stopped serving the following deprecated API versions:
178186

179-
#### NetworkPolicy
187+
#### NetworkPolicy {#networkpolicy-v116}
180188

181189
The **extensions/v1beta1** API version of NetworkPolicy is no longer served as of v1.16.
182190

183191
* Migrate manifests and API clients to use the **networking.k8s.io/v1** API version, available since v1.8.
184192
* All existing persisted objects are accessible via the new API
185193

186-
#### DaemonSet
194+
#### DaemonSet {#daemonset-v116}
187195

188196
The **extensions/v1beta1** and **apps/v1beta2** API versions of DaemonSet are no longer served as of v1.16.
189197

@@ -194,7 +202,7 @@ The **extensions/v1beta1** and **apps/v1beta2** API versions of DaemonSet are no
194202
* `spec.selector` is now required and immutable after creation; use the existing template labels as the selector for seamless upgrades
195203
* `spec.updateStrategy.type` now defaults to `RollingUpdate` (the default in `extensions/v1beta1` was `OnDelete`)
196204

197-
#### Deployment
205+
#### Deployment {#deployment-v116}
198206

199207
The **extensions/v1beta1**, **apps/v1beta1**, and **apps/v1beta2** API versions of Deployment are no longer served as of v1.16.
200208

@@ -207,7 +215,7 @@ The **extensions/v1beta1**, **apps/v1beta1**, and **apps/v1beta2** API versions
207215
* `spec.revisionHistoryLimit` now defaults to `10` (the default in `apps/v1beta1` was `2`, the default in `extensions/v1beta1` was to retain all)
208216
* `maxSurge` and `maxUnavailable` now default to `25%` (the default in `extensions/v1beta1` was `1`)
209217

210-
#### StatefulSet
218+
#### StatefulSet {#statefulset-v116}
211219

212220
The **apps/v1beta1** and **apps/v1beta2** API versions of StatefulSet are no longer served as of v1.16.
213221

@@ -217,7 +225,7 @@ The **apps/v1beta1** and **apps/v1beta2** API versions of StatefulSet are no lon
217225
* `spec.selector` is now required and immutable after creation; use the existing template labels as the selector for seamless upgrades
218226
* `spec.updateStrategy.type` now defaults to `RollingUpdate` (the default in `apps/v1beta1` was `OnDelete`)
219227

220-
#### ReplicaSet
228+
#### ReplicaSet {#replicaset-v116}
221229

222230
The **extensions/v1beta1**, **apps/v1beta1**, and **apps/v1beta2** API versions of ReplicaSet are no longer served as of v1.16.
223231

@@ -226,17 +234,14 @@ The **extensions/v1beta1**, **apps/v1beta1**, and **apps/v1beta2** API versions
226234
* Notable changes:
227235
* `spec.selector` is now required and immutable after creation; use the existing template labels as the selector for seamless upgrades
228236

229-
## What To Do
230-
231-
Kubernetes 1.22 will be released later in 2021, so be sure to audit
232-
your configuration and integrations now!
237+
## What to do
233238

234239
### Test with deprecated APIs disabled
235240

236241
You can test your clusters by starting an API server with specific API versions disabled
237242
to simulate upcoming removals. Add the following flag to the API server startup arguments:
238243

239-
`--runtime-config=$group/$version=false`
244+
`--runtime-config=<group>/<version>=false`
240245

241246
For example:
242247

@@ -262,4 +267,4 @@ to locate use of deprecated APIs.
262267
`kubectl-convert -f ./my-deployment.yaml --output-version apps/v1`
263268

264269
Note that this may use non-ideal default values. To learn more about a specific
265-
resource, check the Kubernetes [api reference](https://kubernetes.io/docs/reference/#api-reference).
270+
resource, check the Kubernetes [API reference](/docs/reference/kubernetes-api/).

0 commit comments

Comments
 (0)