1.5.7.2. 创建裸机资产

要使用 REST API 创建裸机资产,请执行以下操作:

  1. 获取 hub 集群的登录令牌,并通过命令行登录集群。例如:

    $ oc login --token=<login_token> --server=https://<hub_cluster_api_url>:6443
  2. 使用您要添加到集群的裸机资产详情修改以下 curl 命令,并运行命令。

    $ curl --location --request POST '<hub_cluster_api_url>:6443/apis/inventory.open-cluster-management.io/v1alpha1/namespaces/<bare_metal_asset_namespace>/baremetalassets?fieldManager=kubectl-create' \
    --header 'Authorization: Bearer <login_token>' \
    --header 'Content-Type: application/json' \
    --data-raw '{
        "apiVersion": "inventory.open-cluster-management.io/v1alpha1",
        "kind": "BareMetalAsset",
        "metadata": {
            "name": "<baremetalasset_name>",
            "namespace": "<bare_metal_asset_namespace>"
        },
        "spec": {
            "bmc": {
                "address": "ipmi://<ipmi_address>",
                "credentialsName": "<credentials-secret>"
            },
            "bootMACAddress": "<boot_mac_address>",
            "clusterName": "<cluster_name>",
            "hardwareProfile": "hardwareProfile",
            "role": "worker"
        }
    }'
    • Replacebaremetalasset-name 使用裸机资产的名称。创建后,受管集群中的 BareMetalHost 的名称与 hub 集群上对应的 BareMetalAsset 的名称相同。BareMetalHost 名称应始终与对应的 BareMetalAsset 名称匹配。
    • 使用创建裸机资产的集群命名空间替换 baremetalasset-namespace
    • out_of_band_ipport 替换为裸机资产的地址和端口。对于 Redfish 寻址,请使用以下地址格式: redfish://<out-band-ip>/redfish/v1/Systems/1
    • 根据计算机角色类型,将 role 替换为 workermaster 或保留为空。role 设置用于将裸机资产与集群中的特定机器角色类型匹配。BareMetalAsset 资源不应用于指定机器角色类型来填充另一个角色。role 角色值被用作键为 inventory.open-cluster-management.io/role 的标签的值。这可让集群管理应用程序或用户查询用于特定角色的清单。
    • 使用集群的名称替换 cluster_name,集群管理应用程序或用户使用该名称查询与特定集群关联的清单。保留这个值为空以创建裸机资产,而不将其添加到集群部署中。

      注:对于上一个 curl 命令,假设 API 服务器通过 HTTPS 提供,并可以安全地访问。在开发或测试环境中,您可以传递 --insecure 参数。

提示: 您可以将 --v=9 附加到 oc 命令来查看生成的操作的原始输出。这对于确定 oc 命令的 REST API 路由非常有用。