Skip to content

Commit ce91c8e

Browse files
authored
Merge pull request #41758 from windsonsea/guidey
Indent consistently and wrap long lines in deprecation-guide.md
2 parents c2bc1f4 + 9bcd39b commit ce91c8e

File tree

1 file changed

+84
-56
lines changed

1 file changed

+84
-56
lines changed

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

Lines changed: 84 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,9 @@ The **discovery.k8s.io/v1beta1** API version of EndpointSlice is no longer serve
8383
* Migrate manifests and API clients to use the **discovery.k8s.io/v1** API version, available since v1.21.
8484
* All existing persisted objects are accessible via the new API
8585
* 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
8989

9090
#### Event {#event-v125}
9191

@@ -94,14 +94,20 @@ The **events.k8s.io/v1beta1** API version of Event is no longer served as of v1.
9494
* Migrate manifests and API clients to use the **events.k8s.io/v1** API version, available since v1.19.
9595
* All existing persisted objects are accessible via the new API
9696
* 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)
105111

106112
#### HorizontalPodAutoscaler {#horizontalpodautoscaler-v125}
107113

@@ -117,11 +123,14 @@ The **policy/v1beta1** API version of PodDisruptionBudget is no longer served as
117123
* Migrate manifests and API clients to use the **policy/v1** API version, available since v1.21.
118124
* All existing persisted objects are accessible via the new API
119125
* 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.
121129

122130
#### PodSecurityPolicy {#psp-v125}
123131

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.
125134

126135
Migrate to [Pod Security Admission](/docs/concepts/security/pod-security-admission/)
127136
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:
142151

143152
#### Webhook resources {#webhook-resources-v122}
144153

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.
146156

147157
* Migrate manifests and API clients to use the **admissionregistration.k8s.io/v1** API version, available since v1.16.
148158
* All existing persisted objects are accessible via the new APIs
149159
* 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`
156168

157169
#### CustomResourceDefinition {#customresourcedefinition-v122}
158170

@@ -161,16 +173,19 @@ The **apiextensions.k8s.io/v1beta1** API version of CustomResourceDefinition is
161173
* Migrate manifests and API clients to use the **apiextensions.k8s.io/v1** API version, available since v1.16.
162174
* All existing persisted objects are accessible via the new API
163175
* 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
188+
(fixes [#66531](https://github.com/kubernetes/kubernetes/issues/66531))
174189

175190
#### APIService {#apiservice-v122}
176191

@@ -189,11 +204,12 @@ The **authentication.k8s.io/v1beta1** API version of TokenReview is no longer se
189204

190205
#### SubjectAccessReview resources {#subjectaccessreview-resources-v122}
191206

192-
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.
193209

194210
* Migrate manifests and API clients to use the **authorization.k8s.io/v1** API version, available since v1.6.
195211
* 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))
197213

198214
#### CertificateSigningRequest {#certificatesigningrequest-v122}
199215

@@ -202,13 +218,15 @@ The **certificates.k8s.io/v1beta1** API version of CertificateSigningRequest is
202218
* Migrate manifests and API clients to use the **certificates.k8s.io/v1** API version, available since v1.19.
203219
* All existing persisted objects are accessible via the new API
204220
* 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
212230

213231
#### Lease {#lease-v122}
214232

@@ -225,11 +243,12 @@ The **extensions/v1beta1** and **networking.k8s.io/v1beta1** API versions of Ing
225243
* Migrate manifests and API clients to use the **networking.k8s.io/v1** API version, available since v1.19.
226244
* All existing persisted objects are accessible via the new API
227245
* 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`.
233252

234253
#### IngressClass {#ingressclass-v122}
235254

@@ -241,7 +260,8 @@ The **networking.k8s.io/v1beta1** API version of IngressClass is no longer serve
241260

242261
#### RBAC resources {#rbac-resources-v122}
243262

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.
245265

246266
* Migrate manifests and API clients to use the **rbac.authorization.k8s.io/v1** API version, available since v1.8.
247267
* 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
285305
* Migrate manifests and API clients to use the **apps/v1** API version, available since v1.9.
286306
* All existing persisted objects are accessible via the new API
287307
* 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`)
291313

292314
#### Deployment {#deployment-v116}
293315

@@ -296,11 +318,15 @@ The **extensions/v1beta1**, **apps/v1beta1**, and **apps/v1beta2** API versions
296318
* Migrate manifests and API clients to use the **apps/v1** API version, available since v1.9.
297319
* All existing persisted objects are accessible via the new API
298320
* 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`)
304330

305331
#### StatefulSet {#statefulset-v116}
306332

@@ -309,8 +335,10 @@ The **apps/v1beta1** and **apps/v1beta2** API versions of StatefulSet are no lon
309335
* Migrate manifests and API clients to use the **apps/v1** API version, available since v1.9.
310336
* All existing persisted objects are accessible via the new API
311337
* 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`)
314342

315343
#### ReplicaSet {#replicaset-v116}
316344

@@ -319,7 +347,7 @@ The **extensions/v1beta1**, **apps/v1beta1**, and **apps/v1beta2** API versions
319347
* Migrate manifests and API clients to use the **apps/v1** API version, available since v1.9.
320348
* All existing persisted objects are accessible via the new API
321349
* 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
323351

324352
#### PodSecurityPolicy {#psp-v116}
325353

0 commit comments

Comments
 (0)