4.11. 添加自定义清单
自定义清单是一个 JSON 或 YAML 文件,其包含辅助安装程序用户界面目前不支持的高级配置。您可以创建一个自定义清单,或使用第三方提供的清单。要使用 API 创建一个自定义清单,请使用 /v2/clusters/$CLUSTER_ID/manifests 端点。
您可以使用辅助安装程序 API 将 base64 编码的自定义清单上传到 openshift
文件夹或 manifests
文件夹。对允许的自定义清单数量没有限制。
您只能一次上传一个 base64 编码的 JSON 清单。但是,每个上传的 base64 编码的 YAML 文件可以包含多个自定义清单。上传多文档 YAML 清单比单独添加 YAML 文件要快。
对于包含一个自定义清单的文件,可接受的文件扩展名包括 .yaml
、.yml
或 .json
。
一个自定义清单示例
{ "apiVersion": "machineconfiguration.openshift.io/v1", "kind": "MachineConfig", "metadata": { "labels": { "machineconfiguration.openshift.io/role": "primary" }, "name": "10_primary_storage_config" }, "spec": { "config": { "ignition": { "version": "3.2.0" }, "storage": { "disks": [ { "device": "</dev/xxyN>", "partitions": [ { "label": "recovery", "startMiB": 32768, "sizeMiB": 16384 } ] } ], "filesystems": [ { "device": "/dev/disk/by-partlabel/recovery", "label": "recovery", "format": "xfs" } ] } } } }
对于包含多个自定义清单的文件,可接受的文件类型包括 .yaml
或 .yml
。
多个自定义清单示例
apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: master name: 99-openshift-machineconfig-master-kargs spec: kernelArguments: - loglevel=7 --- apiVersion: machineconfiguration.openshift.io/v2 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: worker name: 98-openshift-machineconfig-worker-kargs spec: kernelArguments: - loglevel=5
- 当在 Oracle Cloud Infrastructure (OCI)外部平台上安装 OpenShift Container Platform 时,您必须添加 Oracle 提供的自定义清单。对于其它外部合作伙伴集成,如 vSphere 或 Nutanix,此步骤是可选的。
- 有关自定义清单的更多信息,请参阅 其它资源。
先决条件
-
您已生成了一个有效的
API_TOKEN
。令牌每 15 分钟过期一次。 -
您已注册了一个新的集群定义,并将
cluster_id
导出到$CLUSTER_ID
BASH 变量。
流程
- 创建一个自定义清单文件。
- 使用合适的文件格式的扩展名保存自定义清单文件。
刷新 API 令牌:
$ source refresh-token
运行以下命令,将自定义清单添加到集群中:
$ curl -X POST "https://api.openshift.com/api/assisted-install/v2/clusters/$CLUSTER_ID/manifests" \ -H "Authorization: Bearer $API_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "file_name":"manifest.json", "folder":"manifests", "content":"'"$(base64 -w 0 ~/manifest.json)"'" }' | jq
将
manifest.json
替换为清单文件的名称。manifest.json
的第二个实例是文件的路径。确保路径正确。输出示例
{ "file_name": "manifest.json", "folder": "manifests" }
注意base64 -w 0
命令使用 base64 将清单编码为一个字符串,并省略回车。带回车的的编码将产生一个异常。验证辅助安装程序是否添加了清单:
$ curl -X GET "https://api.openshift.com/api/assisted-install/v2/clusters/$CLUSTER_ID/manifests/files?folder=manifests&file_name=manifest.json" -H "Authorization: Bearer $API_TOKEN"
将
manifest.json
替换为清单文件的名称。
其他资源