Skip to content

Commit dc244d0

Browse files
committed
[zh-cn]sync custom-resource-definition-versioning.md
Signed-off-by: xin.li <[email protected]>
1 parent 8477eac commit dc244d0

File tree

1 file changed

+180
-20
lines changed

1 file changed

+180
-20
lines changed

content/zh-cn/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definition-versioning.md

Lines changed: 180 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1070,6 +1070,49 @@ for a request to convert `CronTab` objects to `example.com/v1`:
10701070
下面的示例显示了包含在 `ConversionReview` 对象中的数据,
10711071
该请求意在将 `CronTab` 对象转换为 `example.com/v1`:
10721072

1073+
<!--
1074+
```yaml
1075+
{
1076+
"apiVersion": "apiextensions.k8s.io/v1",
1077+
"kind": "ConversionReview",
1078+
"request": {
1079+
# Random uid uniquely identifying this conversion call
1080+
"uid": "705ab4f5-6393-11e8-b7cc-42010a800002",
1081+
1082+
# The API group and version the objects should be converted to
1083+
"desiredAPIVersion": "example.com/v1",
1084+
1085+
# The list of objects to convert.
1086+
# May contain one or more objects, in one or more versions.
1087+
"objects": [
1088+
{
1089+
"kind": "CronTab",
1090+
"apiVersion": "example.com/v1beta1",
1091+
"metadata": {
1092+
"creationTimestamp": "2019-09-04T14:03:02Z",
1093+
"name": "local-crontab",
1094+
"namespace": "default",
1095+
"resourceVersion": "143",
1096+
"uid": "3415a7fc-162b-4300-b5da-fd6083580d66"
1097+
},
1098+
"hostPort": "localhost:1234"
1099+
},
1100+
{
1101+
"kind": "CronTab",
1102+
"apiVersion": "example.com/v1beta1",
1103+
"metadata": {
1104+
"creationTimestamp": "2019-09-03T13:02:01Z",
1105+
"name": "remote-crontab",
1106+
"resourceVersion": "12893",
1107+
"uid": "359a83ec-b575-460d-b553-d859cedde8a0"
1108+
},
1109+
"hostPort": "example.com:2345"
1110+
}
1111+
]
1112+
}
1113+
}
1114+
```
1115+
-->
10731116
{{< tabs name="ConversionReview_request" >}}
10741117
{{% tab name="apiextensions.k8s.io/v1" %}}
10751118
```yaml
@@ -1113,6 +1156,50 @@ for a request to convert `CronTab` objects to `example.com/v1`:
11131156
}
11141157
```
11151158
{{% /tab %}}
1159+
<!--
1160+
```yaml
1161+
{
1162+
# Deprecated in v1.16 in favor of apiextensions.k8s.io/v1
1163+
"apiVersion": "apiextensions.k8s.io/v1beta1",
1164+
"kind": "ConversionReview",
1165+
"request": {
1166+
# Random uid uniquely identifying this conversion call
1167+
"uid": "705ab4f5-6393-11e8-b7cc-42010a800002",
1168+
1169+
# The API group and version the objects should be converted to
1170+
"desiredAPIVersion": "example.com/v1",
1171+
1172+
# The list of objects to convert.
1173+
# May contain one or more objects, in one or more versions.
1174+
"objects": [
1175+
{
1176+
"kind": "CronTab",
1177+
"apiVersion": "example.com/v1beta1",
1178+
"metadata": {
1179+
"creationTimestamp": "2019-09-04T14:03:02Z",
1180+
"name": "local-crontab",
1181+
"namespace": "default",
1182+
"resourceVersion": "143",
1183+
"uid": "3415a7fc-162b-4300-b5da-fd6083580d66"
1184+
},
1185+
"hostPort": "localhost:1234"
1186+
},
1187+
{
1188+
"kind": "CronTab",
1189+
"apiVersion": "example.com/v1beta1",
1190+
"metadata": {
1191+
"creationTimestamp": "2019-09-03T13:02:01Z",
1192+
"name": "remote-crontab",
1193+
"resourceVersion": "12893",
1194+
"uid": "359a83ec-b575-460d-b553-d859cedde8a0"
1195+
},
1196+
"hostPort": "example.com:2345"
1197+
}
1198+
]
1199+
}
1200+
}
1201+
```
1202+
-->
11161203
{{% tab name="apiextensions.k8s.io/v1beta1" %}}
11171204
```yaml
11181205
{
@@ -1187,6 +1274,52 @@ Webhook 响应包含 200 HTTP 状态代码、`Content-Type: application/json`,
11871274

11881275
Webhook 的最简单成功响应示例:
11891276

1277+
<!--
1278+
```yaml
1279+
{
1280+
"apiVersion": "apiextensions.k8s.io/v1",
1281+
"kind": "ConversionReview",
1282+
"response": {
1283+
# must match <request.uid>
1284+
"uid": "705ab4f5-6393-11e8-b7cc-42010a800002",
1285+
"result": {
1286+
"status": "Success"
1287+
},
1288+
# Objects must match the order of request.objects, and have apiVersion set to <request.desiredAPIVersion>.
1289+
# kind, metadata.uid, metadata.name, and metadata.namespace fields must not be changed by the webhook.
1290+
# metadata.labels and metadata.annotations fields may be changed by the webhook.
1291+
# All other changes to metadata fields by the webhook are ignored.
1292+
"convertedObjects": [
1293+
{
1294+
"kind": "CronTab",
1295+
"apiVersion": "example.com/v1",
1296+
"metadata": {
1297+
"creationTimestamp": "2019-09-04T14:03:02Z",
1298+
"name": "local-crontab",
1299+
"namespace": "default",
1300+
"resourceVersion": "143",
1301+
"uid": "3415a7fc-162b-4300-b5da-fd6083580d66"
1302+
},
1303+
"host": "localhost",
1304+
"port": "1234"
1305+
},
1306+
{
1307+
"kind": "CronTab",
1308+
"apiVersion": "example.com/v1",
1309+
"metadata": {
1310+
"creationTimestamp": "2019-09-03T13:02:01Z",
1311+
"name": "remote-crontab",
1312+
"resourceVersion": "12893",
1313+
"uid": "359a83ec-b575-460d-b553-d859cedde8a0"
1314+
},
1315+
"host": "example.com",
1316+
"port": "2345"
1317+
}
1318+
]
1319+
}
1320+
}
1321+
```
1322+
-->
11901323
{{< tabs name="ConversionReview_response_success" >}}
11911324
{{% tab name="apiextensions.k8s.io/v1" %}}
11921325
```yaml
@@ -1234,6 +1367,53 @@ Webhook 的最简单成功响应示例:
12341367
}
12351368
```
12361369
{{% /tab %}}
1370+
<!--
1371+
```yaml
1372+
{
1373+
# Deprecated in v1.16 in favor of apiextensions.k8s.io/v1
1374+
"apiVersion": "apiextensions.k8s.io/v1beta1",
1375+
"kind": "ConversionReview",
1376+
"response": {
1377+
# must match <request.uid>
1378+
"uid": "705ab4f5-6393-11e8-b7cc-42010a800002",
1379+
"result": {
1380+
"status": "Failed"
1381+
},
1382+
# Objects must match the order of request.objects, and have apiVersion set to <request.desiredAPIVersion>.
1383+
# kind, metadata.uid, metadata.name, and metadata.namespace fields must not be changed by the webhook.
1384+
# metadata.labels and metadata.annotations fields may be changed by the webhook.
1385+
# All other changes to metadata fields by the webhook are ignored.
1386+
"convertedObjects": [
1387+
{
1388+
"kind": "CronTab",
1389+
"apiVersion": "example.com/v1",
1390+
"metadata": {
1391+
"creationTimestamp": "2019-09-04T14:03:02Z",
1392+
"name": "local-crontab",
1393+
"namespace": "default",
1394+
"resourceVersion": "143",
1395+
"uid": "3415a7fc-162b-4300-b5da-fd6083580d66"
1396+
},
1397+
"host": "localhost",
1398+
"port": "1234"
1399+
},
1400+
{
1401+
"kind": "CronTab",
1402+
"apiVersion": "example.com/v1",
1403+
"metadata": {
1404+
"creationTimestamp": "2019-09-03T13:02:01Z",
1405+
"name": "remote-crontab",
1406+
"resourceVersion": "12893",
1407+
"uid": "359a83ec-b575-460d-b553-d859cedde8a0"
1408+
},
1409+
"host": "example.com",
1410+
"port": "2345"
1411+
}
1412+
]
1413+
}
1414+
}
1415+
```
1416+
-->
12371417
{{% tab name="apiextensions.k8s.io/v1beta1" %}}
12381418
```yaml
12391419
{
@@ -1494,33 +1674,13 @@ The following is an example procedure to upgrade from `v1beta1` to `v1`.
14941674
3. 从 CustomResourceDefinition 的 `status.storedVersions` 字段中删除 `v1beta1`。
14951675

14961676
{{< note >}}
1497-
<!--
1498-
The flag `--subresource` is used with the kubectl get, patch, edit, and replace commands to
1499-
fetch and update the subresources, `status` and `scale`, for all the API resources that
1500-
support them. This flag is available starting from kubectl version v1.24. Previously, reading
1501-
subresources (like `status`) via kubectl involved using `kubectl --raw`, and updating
1502-
subresources using kubectl was not possible at all. Starting from v1.24, the `kubectl` tool
1503-
can be used to edit or patch the `status` subresource on a CRD object. See [How to patch a Deployment using the subresource flag](/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/#scale-kubectl-patch).
1504-
-->
1505-
`--subresource` 标志在 kubectl get、patch、edit 和 replace 命令中用于获取和更新所有支持它们的
1506-
API 资源的子资源、`status` 和 `scale`。此标志从 kubectl 版本 v1.24 开始可用。
1507-
以前通过 kubectl 读取子资源(如 `status`)涉及使用 `kubectl --raw`,并且根本不可能使用 kubectl 更新子资源。
1508-
从 v1.24 开始,`kubectl` 工具可用于编辑或修补有关 CRD 对象的 `status` 子资源。
1509-
请参阅[如何使用子资源标志修补 Deployment](/zh-cn/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/#scale-kubectl-patch)。
15101677

15111678
<!--
1512-
This page is part of the documentation for Kubernetes v{{< skew currentVersion >}}.
1513-
If you are running a different version of Kubernetes, consult the documentation for that release.
1514-
15151679
Here is an example of how to patch the `status` subresource for a CRD object using `kubectl`:
15161680
-->
1517-
此页面是 Kubernetes v{{< skew currentVersion >}} 文档的一部分。
1518-
如果你运行的是不同版本的 Kubernetes,请查阅相应版本的文档。
1519-
15201681
以下是如何使用 `kubectl` 为一个 CRD 对象修补 `status` 子资源的示例:
15211682

15221683
```bash
15231684
kubectl patch customresourcedefinitions <CRD_Name> --subresource='status' --type='merge' -p '{"status":{"storedVersions":["v1"]}}'
15241685
```
15251686
{{< /note >}}
1526-

0 commit comments

Comments
 (0)