搜索

4.11. 添加自定义清单

download PDF

自定义清单是一个 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 变量。

流程

  1. 创建一个自定义清单文件。
  2. 使用合适的文件格式的扩展名保存自定义清单文件。
  3. 刷新 API 令牌:

    $ source refresh-token
  4. 运行以下命令,将自定义清单添加到集群中:

    $ 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 将清单编码为一个字符串,并省略回车。带回车的的编码将产生一个异常。

  5. 验证辅助安装程序是否添加了清单:

    $ 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 替换为清单文件的名称。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.