manage
create-rsi-patch
创建或更新资源规范注入 (RSI) 补丁。
扩展描述
您可以使用资源规范注入 (RSI) 来创建补丁,以定制 Cloud Pak for Data 环境中的 pod。
您必须是集群管理员或项目管理员才能运行此命令。
重要信息: 仅当您是 Red Hat®
OpenShift® Container Platform上的高级用户时,才会创建 RSI 补丁。 您负责确保应用的任何补丁不会将问题引入到 Cloud Pak for Data 安装中。
您可以:
- 创建 RSI 补丁时更新指定的 pod
- 使用
apply-rsi-patches命令可同时应用所有活动的 RSI 补丁。 有关详细信息,请参阅apply-rsi-patches。
应用 RSI 补丁时, RSI Webhook 会重新启动具有满足以下任一条件的相应 pod 选择器标签的任何 pod:
- 具有过时补丁的 pod
- 尚未修补的 Pod
提示: 如果您计划应用多个 RSI 补丁,那么批量应用 RSI 补丁的破坏性较小。 有关详细信息,请参阅
manage
apply-rsi-patches如果要创建新补丁,请指定以下选项:
--cpd_instance_ns--description--patch_name--patch_spec--patch_type--selector--skip_apply--spec_format--state
如果要更新现有补丁,那么指定的选项取决于您尝试执行的操作。 必须至少指定:
--cpd_instance_ns--patch_name
您可以更改现有补丁的以下方面:
- --description
- 您可以更新补丁的描述。
--patch_spec- 您可以更改用于定义补丁的 JSON 文件的内容。
--state- 您可以使补丁处于活动状态或不活动状态。
- --selector
- 您可以更改应用补丁的 pod。
语法
cpd-cli manage enable-rsi \
--cpd_instance_ns=<project-name> \
--patch_name=<patch-name> \
[--patch_type=rsi_pod_env_var|rsi_pod_label|rsi_pod_annotation|rsi_pod_spec|rsi_pod_init_container|
rsi_pod_side_car_container] \
[--description=<patch-description>] \
[--patch_spec=/tmp/work/rsi/<patch-spec-JSON-file>] \
[--spec_format=json|json-merge|set-env] \
[--selector=<comma-separated-key-value-pairs-representing-the-match-labels>] \
[--state=active|inactive] \
[--skip_apply=true|false] \
[-vv][-vv][-vvv]
参数
enable-rsi 命令没有参数。
选项
| 选项 | 描述 |
|---|---|
--cpd_instance_ns |
要在其中创建或更新补丁的项目 (名称空间)。 如果有任何项目与此项目绑定,那么补丁也将应用于绑定项目。
|
--description |
补丁的描述。 使用描述来描述补丁的用途和意图。
|
--patch_name |
要创建或更新的补丁的名称。
|
--patch_spec |
包含补丁的 JSON 文件。 将文件保存在
|
--patch_type |
要创建的补丁的类型。
|
--selector |
通过指定一个或多个 pod 标签来指定补丁将应用于哪些 pod。 如果指定多个标签,那么补丁将应用于具有所有标签的 pod。 例如,如果指定
|
--skip_apply |
指定 RSI Webhook 是等待应用补丁,还是立即应用补丁。
|
--spec_format |
补丁规范 JSON 文件的格式。
|
--state |
指定补丁是否可由 RSI Webhook 应用。
|
-v-vv-vvv |
显示详细输出。 将列出从最不详细到最详细的选项。
|
示例
注: 以下示例使用建议的安装环境变量。
使用脚本为环境创建具有正确值的环境变量。 有关详细信息,请参阅 最佳实践: 设置安装变量。
- 创建应用于
zen-corePod 的新环境变量补丁 cpd-cli manage create-rsi-patch \ --cpd_instance_ns=${PROJECT_CPD_INSTANCE} \ --patch_type=rsi_pod_env_var \ --patch_name=sample-env-var-patch \ --patch_spec=/temp/work/rsi/zen-core-env-var.json \ --spec_format=json \ --selector=app.kubernetes.io/component:zen-core,component:zen-core \ --state=active- 更新现有补丁以使其处于不活动状态
cpd-cli manage create-rsi-patch \ --cpd_instance_ns=${PROJECT_CPD_INSTANCE} \ --patch_name=my-pod-annotation-patch \ --state=inactive