8.2.3. 使用 API 转换工具直接转换自定义资源
此流程描述了如何使用 API 转换工具将 OpenShift 集群中的 AMQ Streams 自定义资源直接转换为适用于 v1beta2 的格式。为此,请使用 convert-resource (cr)命令。命令使用 Kubernetes API 进行转换。
您可以根据 kind 属性指定一个或多个 AMQ Streams 自定义资源类型,也可以转换所有类型。您还可以将特定命名空间或所有命名空间用于转换。以命名空间为目标时,您可以转换该命名空间中的所有自定义资源,或通过指定名称和类型来转换单个自定义资源。
另外,您可以使用 convert-file 流程转换和应用描述自定义资源的 YAML 文件。
先决条件
-
支持
v1beta2API 版本的一个 Cluster Operator 已启动且正在运行。 - API 转换工具,随发行工件一起提供。
- 该工具需要 Java 11(OpenJDK)。
步骤需要一个具有 RBAC 权限的用户 admin 帐户,以便:
-
使用
--name选项获取转换的 AMQ Streams 自定义资源 -
在不使用
--name选项的情况下列出正在转换的 AMQ Streams 自定义资源 - 替换正在转换的 AMQ Streams 自定义资源
-
使用
使用 CLI 帮助来了解更多有关 API 转换工具的信息,以及 convert-resource 命令可用的标记:
bin/api-conversion.sh help bin/api-conversion.sh help convert-resource
bin/api-conversion.sh help
bin/api-conversion.sh help convert-resource
如果您使用 Windows,请对此流程使用 bin/api-conversion.cmd。
| 标志 | 描述 |
|---|---|
|
| 指定要转换的自定义资源种类,或者在没有指定的情况下转换所有资源 |
|
| 转换所有命名空间中的自定义资源 |
|
| 指定 OpenShift 命名空间或 OpenShift 项目,否则使用当前命名空间(如果未指定) |
|
|
如果使用 |
流程
使用
convert-resource命令和相应的标志运行 API 转换工具。示例 1,转换当前命名空间中的所有 AMQ Streams 资源:
bin/api-conversion.sh convert-resource
bin/api-conversion.sh convert-resourceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例 2 转换所有命名空间中的所有 AMQ Streams 资源:
bin/api-conversion.sh convert-resource --all-namespaces
bin/api-conversion.sh convert-resource --all-namespacesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例 3,转换
my-kafka命名空间中的所有 AMQ Streams 资源:bin/api-conversion.sh convert-resource --namespace my-kafka
bin/api-conversion.sh convert-resource --namespace my-kafkaCopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例 4,仅转换所有命名空间中的 Kafka 资源:
bin/api-conversion.sh convert-resource --all-namespaces --kind Kafka
bin/api-conversion.sh convert-resource --all-namespaces --kind KafkaCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例如,在所有命名空间中转换 Kafka 和 Kafka Connect 资源:
bin/api-conversion.sh convert-resource --all-namespaces --kind Kafka --kind KafkaConnect
bin/api-conversion.sh convert-resource --all-namespaces --kind Kafka --kind KafkaConnectCopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例 6,在
my-的 Kafka 自定义资源:kafka 命名空间中转换名为 my-clusterbin/api-conversion.sh convert-resource --kind Kafka --namespace my-kafka --name my-cluster
bin/api-conversion.sh convert-resource --kind Kafka --namespace my-kafka --name my-clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证自定义资源是否已转换。
oc get KIND CUSTOM-RESOURCE-NAME -o yaml
oc get KIND CUSTOM-RESOURCE-NAME -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow