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/en/docs/reference/using-api/deprecation-guide.md
+84-56Lines changed: 84 additions & 56 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -83,9 +83,9 @@ The **discovery.k8s.io/v1beta1** API version of EndpointSlice is no longer serve
83
83
* Migrate manifests and API clients to use the **discovery.k8s.io/v1** API version, available since v1.21.
84
84
* All existing persisted objects are accessible via the new API
85
85
* Notable changes in **discovery.k8s.io/v1**:
86
-
* use per Endpoint `nodeName` field instead of deprecated `topology["kubernetes.io/hostname"]` field
87
-
* use per Endpoint `zone` field instead of deprecated `topology["topology.kubernetes.io/zone"]` field
88
-
*`topology` is replaced with the `deprecatedTopology` field which is not writable in v1
86
+
* use per Endpoint `nodeName` field instead of deprecated `topology["kubernetes.io/hostname"]` field
87
+
* use per Endpoint `zone` field instead of deprecated `topology["topology.kubernetes.io/zone"]` field
88
+
*`topology` is replaced with the `deprecatedTopology` field which is not writable in v1
89
89
90
90
#### Event {#event-v125}
91
91
@@ -94,14 +94,20 @@ The **events.k8s.io/v1beta1** API version of Event is no longer served as of v1.
94
94
* Migrate manifests and API clients to use the **events.k8s.io/v1** API version, available since v1.19.
95
95
* All existing persisted objects are accessible via the new API
96
96
* Notable changes in **events.k8s.io/v1**:
97
-
*`type` is limited to `Normal` and `Warning`
98
-
*`involvedObject` is renamed to `regarding`
99
-
*`action`, `reason`, `reportingController`, and `reportingInstance` are required when creating new **events.k8s.io/v1** Events
100
-
* use `eventTime` instead of the deprecated `firstTimestamp` field (which is renamed to `deprecatedFirstTimestamp` and not permitted in new **events.k8s.io/v1** Events)
101
-
* use `series.lastObservedTime` instead of the deprecated `lastTimestamp` field (which is renamed to `deprecatedLastTimestamp` and not permitted in new **events.k8s.io/v1** Events)
102
-
* use `series.count` instead of the deprecated `count` field (which is renamed to `deprecatedCount` and not permitted in new **events.k8s.io/v1** Events)
103
-
* use `reportingController` instead of the deprecated `source.component` field (which is renamed to `deprecatedSource.component` and not permitted in new **events.k8s.io/v1** Events)
104
-
* 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)
97
+
*`type` is limited to `Normal` and `Warning`
98
+
*`involvedObject` is renamed to `regarding`
99
+
*`action`, `reason`, `reportingController`, and `reportingInstance` are required
100
+
when creating new **events.k8s.io/v1** Events
101
+
* use `eventTime` instead of the deprecated `firstTimestamp` field (which is renamed
102
+
to `deprecatedFirstTimestamp` and not permitted in new **events.k8s.io/v1** Events)
103
+
* use `series.lastObservedTime` instead of the deprecated `lastTimestamp` field
104
+
(which is renamed to `deprecatedLastTimestamp` and not permitted in new **events.k8s.io/v1** Events)
105
+
* use `series.count` instead of the deprecated `count` field
106
+
(which is renamed to `deprecatedCount` and not permitted in new **events.k8s.io/v1** Events)
107
+
* use `reportingController` instead of the deprecated `source.component` field
108
+
(which is renamed to `deprecatedSource.component` and not permitted in new **events.k8s.io/v1** Events)
109
+
* use `reportingInstance` instead of the deprecated `source.host` field
110
+
(which is renamed to `deprecatedSource.host` and not permitted in new **events.k8s.io/v1** Events)
@@ -117,11 +123,14 @@ The **policy/v1beta1** API version of PodDisruptionBudget is no longer served as
117
123
* Migrate manifests and API clients to use the **policy/v1** API version, available since v1.21.
118
124
* All existing persisted objects are accessible via the new API
119
125
* Notable changes in **policy/v1**:
120
-
* an empty `spec.selector` (`{}`) written to a `policy/v1` PodDisruptionBudget selects all pods in the namespace (in `policy/v1beta1` an empty `spec.selector` selected no pods). An unset `spec.selector` selects no pods in either API version.
126
+
* an empty `spec.selector` (`{}`) written to a `policy/v1` PodDisruptionBudget selects all
127
+
pods in the namespace (in `policy/v1beta1` an empty `spec.selector` selected no pods).
128
+
An unset `spec.selector` selects no pods in either API version.
121
129
122
130
#### PodSecurityPolicy {#psp-v125}
123
131
124
-
PodSecurityPolicy in the **policy/v1beta1** API version is no longer served as of v1.25, and the PodSecurityPolicy admission controller will be removed.
132
+
PodSecurityPolicy in the **policy/v1beta1** API version is no longer served as of v1.25,
133
+
and the PodSecurityPolicy admission controller will be removed.
125
134
126
135
Migrate to [Pod Security Admission](/docs/concepts/security/pod-security-admission/)
127
136
or a [3rd party admission webhook](/docs/reference/access-authn-authz/extensible-admission-controllers/).
@@ -142,17 +151,20 @@ The **v1.22** release stopped serving the following deprecated API versions:
142
151
143
152
#### Webhook resources {#webhook-resources-v122}
144
153
145
-
The **admissionregistration.k8s.io/v1beta1** API version of MutatingWebhookConfiguration and ValidatingWebhookConfiguration is no longer served as of v1.22.
154
+
The **admissionregistration.k8s.io/v1beta1** API version of MutatingWebhookConfiguration
155
+
and ValidatingWebhookConfiguration is no longer served as of v1.22.
146
156
147
157
* Migrate manifests and API clients to use the **admissionregistration.k8s.io/v1** API version, available since v1.16.
148
158
* All existing persisted objects are accessible via the new APIs
149
159
* Notable changes:
150
-
*`webhooks[*].failurePolicy` default changed from `Ignore` to `Fail` for v1
151
-
*`webhooks[*].matchPolicy` default changed from `Exact` to `Equivalent` for v1
152
-
*`webhooks[*].timeoutSeconds` default changed from `30s` to `10s` for v1
153
-
*`webhooks[*].sideEffects` default value is removed, and the field made required, and only `None` and `NoneOnDryRun` are permitted for v1
154
-
*`webhooks[*].admissionReviewVersions` default value is removed and the field made required for v1 (supported versions for AdmissionReview are `v1` and `v1beta1`)
155
-
*`webhooks[*].name` must be unique in the list for objects created via `admissionregistration.k8s.io/v1`
160
+
*`webhooks[*].failurePolicy` default changed from `Ignore` to `Fail` for v1
161
+
*`webhooks[*].matchPolicy` default changed from `Exact` to `Equivalent` for v1
162
+
*`webhooks[*].timeoutSeconds` default changed from `30s` to `10s` for v1
163
+
*`webhooks[*].sideEffects` default value is removed, and the field made required,
164
+
and only `None` and `NoneOnDryRun` are permitted for v1
165
+
*`webhooks[*].admissionReviewVersions` default value is removed and the field made
166
+
required for v1 (supported versions for AdmissionReview are `v1` and `v1beta1`)
167
+
*`webhooks[*].name` must be unique in the list for objects created via `admissionregistration.k8s.io/v1`
@@ -161,16 +173,19 @@ The **apiextensions.k8s.io/v1beta1** API version of CustomResourceDefinition is
161
173
* Migrate manifests and API clients to use the **apiextensions.k8s.io/v1** API version, available since v1.16.
162
174
* All existing persisted objects are accessible via the new API
163
175
* Notable changes:
164
-
*`spec.scope` is no longer defaulted to `Namespaced` and must be explicitly specified
165
-
*`spec.version` is removed in v1; use `spec.versions` instead
166
-
*`spec.validation` is removed in v1; use `spec.versions[*].schema` instead
167
-
*`spec.subresources` is removed in v1; use `spec.versions[*].subresources` instead
168
-
*`spec.additionalPrinterColumns` is removed in v1; use `spec.versions[*].additionalPrinterColumns` instead
169
-
*`spec.conversion.webhookClientConfig` is moved to `spec.conversion.webhook.clientConfig` in v1
170
-
*`spec.conversion.conversionReviewVersions` is moved to `spec.conversion.webhook.conversionReviewVersions` in v1
171
-
*`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)
172
-
*`spec.preserveUnknownFields: true` is disallowed when creating v1 CustomResourceDefinition objects; it must be specified within schema definitions as `x-kubernetes-preserve-unknown-fields: true`
173
-
* In `additionalPrinterColumns` items, the `JSONPath` field was renamed to `jsonPath` in v1 (fixes [#66531](https://github.com/kubernetes/kubernetes/issues/66531))
176
+
*`spec.scope` is no longer defaulted to `Namespaced` and must be explicitly specified
177
+
*`spec.version` is removed in v1; use `spec.versions` instead
178
+
*`spec.validation` is removed in v1; use `spec.versions[*].schema` instead
179
+
*`spec.subresources` is removed in v1; use `spec.versions[*].subresources` instead
180
+
*`spec.additionalPrinterColumns` is removed in v1; use `spec.versions[*].additionalPrinterColumns` instead
181
+
*`spec.conversion.webhookClientConfig` is moved to `spec.conversion.webhook.clientConfig` in v1
182
+
*`spec.conversion.conversionReviewVersions` is moved to `spec.conversion.webhook.conversionReviewVersions` in v1
183
+
*`spec.versions[*].schema.openAPIV3Schema` is now required when creating v1 CustomResourceDefinition objects,
184
+
and must be a [structural schema](/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#specifying-a-structural-schema)
185
+
*`spec.preserveUnknownFields: true` is disallowed when creating v1 CustomResourceDefinition objects;
186
+
it must be specified within schema definitions as `x-kubernetes-preserve-unknown-fields: true`
187
+
* In `additionalPrinterColumns` items, the `JSONPath` field was renamed to `jsonPath` in v1
The **authorization.k8s.io/v1beta1** API version of LocalSubjectAccessReview, SelfSubjectAccessReview, SubjectAccessReview, and SelfSubjectRulesReview is no longer served as of v1.22.
207
+
The **authorization.k8s.io/v1beta1** API version of LocalSubjectAccessReview,
208
+
SelfSubjectAccessReview, SubjectAccessReview, and SelfSubjectRulesReview is no longer served as of v1.22.
193
209
194
210
* Migrate manifests and API clients to use the **authorization.k8s.io/v1** API version, available since v1.6.
195
211
* Notable changes:
196
-
*`spec.group` was renamed to `spec.groups` in v1 (fixes [#32709](https://github.com/kubernetes/kubernetes/issues/32709))
212
+
*`spec.group` was renamed to `spec.groups` in v1 (fixes [#32709](https://github.com/kubernetes/kubernetes/issues/32709))
@@ -202,13 +218,15 @@ The **certificates.k8s.io/v1beta1** API version of CertificateSigningRequest is
202
218
* Migrate manifests and API clients to use the **certificates.k8s.io/v1** API version, available since v1.19.
203
219
* All existing persisted objects are accessible via the new API
204
220
* Notable changes in `certificates.k8s.io/v1`:
205
-
* For API clients requesting certificates:
206
-
* `spec.signerName` is now required (see [known Kubernetes signers](/docs/reference/access-authn-authz/certificate-signing-requests/#kubernetes-signers)), and requests for `kubernetes.io/legacy-unknown` are not allowed to be created via the `certificates.k8s.io/v1` API
207
-
* `spec.usages` is now required, may not contain duplicate values, and must only contain known usages
208
-
* For API clients approving or signing certificates:
209
-
*`status.conditions` may not contain duplicate types
210
-
*`status.conditions[*].status` is now required
211
-
*`status.certificate` must be PEM-encoded, and contain only `CERTIFICATE` blocks
221
+
* For API clients requesting certificates:
222
+
*`spec.signerName` is now required
223
+
(see [known Kubernetes signers](/docs/reference/access-authn-authz/certificate-signing-requests/#kubernetes-signers)),
224
+
and requests for `kubernetes.io/legacy-unknown` are not allowed to be created via the `certificates.k8s.io/v1` API
225
+
*`spec.usages` is now required, may not contain duplicate values, and must only contain known usages
226
+
* For API clients approving or signing certificates:
227
+
*`status.conditions` may not contain duplicate types
228
+
*`status.conditions[*].status` is now required
229
+
*`status.certificate` must be PEM-encoded, and contain only `CERTIFICATE` blocks
212
230
213
231
#### Lease {#lease-v122}
214
232
@@ -225,11 +243,12 @@ The **extensions/v1beta1** and **networking.k8s.io/v1beta1** API versions of Ing
225
243
* Migrate manifests and API clients to use the **networking.k8s.io/v1** API version, available since v1.19.
226
244
* All existing persisted objects are accessible via the new API
227
245
* Notable changes:
228
-
*`spec.backend` is renamed to `spec.defaultBackend`
229
-
* The backend `serviceName` field is renamed to `service.name`
230
-
* Numeric backend `servicePort` fields are renamed to `service.port.number`
231
-
* String backend `servicePort` fields are renamed to `service.port.name`
232
-
*`pathType` is now required for each specified path. Options are `Prefix`, `Exact`, and `ImplementationSpecific`. To match the undefined `v1beta1` behavior, use `ImplementationSpecific`.
246
+
*`spec.backend` is renamed to `spec.defaultBackend`
247
+
* The backend `serviceName` field is renamed to `service.name`
248
+
* Numeric backend `servicePort` fields are renamed to `service.port.number`
249
+
* String backend `servicePort` fields are renamed to `service.port.name`
250
+
*`pathType` is now required for each specified path. Options are `Prefix`,
251
+
`Exact`, and `ImplementationSpecific`. To match the undefined `v1beta1` behavior, use `ImplementationSpecific`.
233
252
234
253
#### IngressClass {#ingressclass-v122}
235
254
@@ -241,7 +260,8 @@ The **networking.k8s.io/v1beta1** API version of IngressClass is no longer serve
241
260
242
261
#### RBAC resources {#rbac-resources-v122}
243
262
244
-
The **rbac.authorization.k8s.io/v1beta1** API version of ClusterRole, ClusterRoleBinding, Role, and RoleBinding is no longer served as of v1.22.
263
+
The **rbac.authorization.k8s.io/v1beta1** API version of ClusterRole, ClusterRoleBinding,
264
+
Role, and RoleBinding is no longer served as of v1.22.
245
265
246
266
* Migrate manifests and API clients to use the **rbac.authorization.k8s.io/v1** API version, available since v1.8.
247
267
* All existing persisted objects are accessible via the new APIs
@@ -285,9 +305,11 @@ The **extensions/v1beta1** and **apps/v1beta2** API versions of DaemonSet are no
285
305
* Migrate manifests and API clients to use the **apps/v1** API version, available since v1.9.
286
306
* All existing persisted objects are accessible via the new API
287
307
* Notable changes:
288
-
*`spec.templateGeneration` is removed
289
-
*`spec.selector` is now required and immutable after creation; use the existing template labels as the selector for seamless upgrades
290
-
*`spec.updateStrategy.type` now defaults to `RollingUpdate` (the default in `extensions/v1beta1` was `OnDelete`)
308
+
*`spec.templateGeneration` is removed
309
+
*`spec.selector` is now required and immutable after creation; use the existing
310
+
template labels as the selector for seamless upgrades
311
+
*`spec.updateStrategy.type` now defaults to `RollingUpdate`
312
+
(the default in `extensions/v1beta1` was `OnDelete`)
291
313
292
314
#### Deployment {#deployment-v116}
293
315
@@ -296,11 +318,15 @@ The **extensions/v1beta1**, **apps/v1beta1**, and **apps/v1beta2** API versions
296
318
* Migrate manifests and API clients to use the **apps/v1** API version, available since v1.9.
297
319
* All existing persisted objects are accessible via the new API
298
320
* Notable changes:
299
-
*`spec.rollbackTo` is removed
300
-
*`spec.selector` is now required and immutable after creation; use the existing template labels as the selector for seamless upgrades
301
-
*`spec.progressDeadlineSeconds` now defaults to `600` seconds (the default in `extensions/v1beta1` was no deadline)
302
-
*`spec.revisionHistoryLimit` now defaults to `10` (the default in `apps/v1beta1` was `2`, the default in `extensions/v1beta1` was to retain all)
303
-
*`maxSurge` and `maxUnavailable` now default to `25%` (the default in `extensions/v1beta1` was `1`)
321
+
*`spec.rollbackTo` is removed
322
+
*`spec.selector` is now required and immutable after creation; use the existing
323
+
template labels as the selector for seamless upgrades
324
+
*`spec.progressDeadlineSeconds` now defaults to `600` seconds
325
+
(the default in `extensions/v1beta1` was no deadline)
326
+
*`spec.revisionHistoryLimit` now defaults to `10`
327
+
(the default in `apps/v1beta1` was `2`, the default in `extensions/v1beta1` was to retain all)
328
+
*`maxSurge` and `maxUnavailable` now default to `25%`
329
+
(the default in `extensions/v1beta1` was `1`)
304
330
305
331
#### StatefulSet {#statefulset-v116}
306
332
@@ -309,8 +335,10 @@ The **apps/v1beta1** and **apps/v1beta2** API versions of StatefulSet are no lon
309
335
* Migrate manifests and API clients to use the **apps/v1** API version, available since v1.9.
310
336
* All existing persisted objects are accessible via the new API
311
337
* Notable changes:
312
-
*`spec.selector` is now required and immutable after creation; use the existing template labels as the selector for seamless upgrades
313
-
*`spec.updateStrategy.type` now defaults to `RollingUpdate` (the default in `apps/v1beta1` was `OnDelete`)
338
+
*`spec.selector` is now required and immutable after creation;
339
+
use the existing template labels as the selector for seamless upgrades
340
+
*`spec.updateStrategy.type` now defaults to `RollingUpdate`
341
+
(the default in `apps/v1beta1` was `OnDelete`)
314
342
315
343
#### ReplicaSet {#replicaset-v116}
316
344
@@ -319,7 +347,7 @@ The **extensions/v1beta1**, **apps/v1beta1**, and **apps/v1beta2** API versions
319
347
* Migrate manifests and API clients to use the **apps/v1** API version, available since v1.9.
320
348
* All existing persisted objects are accessible via the new API
321
349
* Notable changes:
322
-
*`spec.selector` is now required and immutable after creation; use the existing template labels as the selector for seamless upgrades
350
+
*`spec.selector` is now required and immutable after creation; use the existing template labels as the selector for seamless upgrades
0 commit comments