将软件添加到您的私人目录中
加载软件的过程包括将版本导入到专用目录,配置部署详细信息,设置任何许可证需求以及验证该版本是否可以成功安装在您需要的目标基础结构上。
准备工作
-
将源代码上传到GitHub, GitLab,或Azure代码库中的发布版本。 有关更多信息,请参阅 设置源代码存储库。
-
验证您是否正在使用现收现付帐户或预订帐户。 请参阅 查看帐户类型 以获取更多信息。
-
确保为您分配了对目录管理服务的编辑者角色。 请参阅 分配对帐户管理服务的访问权。
-
设置先前为您创建的测试环境:
-
安装 IBM Cloud CLI 和 IBM Cloud Schematics 插件。 请参阅 设置 CLI。
-
将包含产品安装指示信息的自述文件上载到源存储库。 请参阅 设置源代码存储库。
-
对于容器化应用程序:
- 创建 Kubernetes 集群 或 Red Hat OpenShift 集群。
- 对于到 IBM Cloud Kubernetes Service的部署,设置 Helm Chart。
- 要部署到 Red Hat OpenShift,请设置 Helm Chart 或 操作程序。
-
对于虚拟服务器映像:
- 查看 支持的映像 的列表。
- 如果需要,请创建 Terraform 模板。 VPC 的虚拟服务器映像不需要 Terraform 模板。
- 创建 IBM Cloud Object Storage 的实例,并将映像添加到存储区。
-
将版本导入到专用目录
完成以下步骤以将软件版本导入到专用目录。 您的专用目录是在 设置以销售软件 过程中为您创建的。
-
在 IBM Cloud 控制台中,单击 导航菜单 图标
> 合作伙伴中心 > 我的产品。
-
选择要加入的产品。
-
从“软件”选项卡中,单击 导入版本。
-
选择部署方法。
-
选择是从专用存储库还是公共存储库添加产品。 对于“操作程序”,请选择源存储库,然后选择专用或公共存储库。
-
输入您的源文件 URL。
您可以查看每种软件类型的以下受支持格式列表:
- Helm Chart:
https://raw.githubusercontent.com/IBM/charts/master/repo/ibm-helm
- Node-RED 运算符:
https://github.com/IBM-Cloud/operator-bundle-sample/archive/refs/tags/v0.0.3.tar.gz
- 来自 Red Hat OpenShift on IBM Cloud 注册表的操作程序捆绑软件: 例如,从已认证的存储库中的可用操作程序列表中选择
Akka Cluster Operator
。 - OVA 映像:
https://github.com/gcatalog/OVA-sample/blob/main/ova-sample.yaml
- Terraform 模板:
https://github.com/IBM-Cloud/terraform-sample/archive/refs/tags/v1.1.0.tar.gz
- 使用Terraform的虚拟服务器镜像:
https://github.com/IBM-Cloud/isv-vsi-product-deploy-sample/releases/download/v1.0/isv-vsi-product-deploy-sample.tar.gz
- VPC 的虚拟服务器映像: 从已导入到 VPC 的可用映像列表中选择映像,或者将新映像导入到帐户。
VPC 的虚拟服务器映像一次只能添加到一个专用目录中的一个产品。 如果要导入的虚拟服务器映像已导入到其他产品中,那么必须先从该产品中除去该映像,或者删除该产品,然后再将该虚拟服务器映像添加到新产品中。
如果要从专用存储库添加产品,那么可以选择提供个人访问令牌,也可以使用私钥。 您可以向用户授予对私钥的访问权,将令牌添加到私钥,集中管理所有令牌并访问私钥允许的私钥,而不是授予用户个人访问令牌。
如果软件位于“GitLab,,则必须使用个人访问令牌,因为”GitLab不支持使用项目访问令牌下载发布版本。 您可以按照 此处的说明创建一个具有 "
read_api
权限的个人访问令牌。- 如果您正在使用个人访问令牌,请选择 否 以指示您未使用私钥,并提供个人访问令牌。
- 如果您正在使用私钥,请选择 是,然后单击 从 Secrets Manager中选择。 选择服务实例,私钥组和私钥。 如果您未看到私钥,请确保您正在使用正确的私钥组和服务实例。
如果您尚未创建私钥,或者如果您没有正确的访问权来使用私钥,那么可能会显示消息
No service instance available
,即使您具有已创建的服务实例也是如此。 - Helm Chart:
-
如果适用,请设置部署目标并添加软件版本。
-
单击 添加版本。
配置版本详细信息
- 从版本列表中,单击包含软件的行。
- 查看版本详细信息,然后点击“下一步”。
- 根据您的软件类型,可能还有其他步骤,包括设置部署值。
- 单击下一步。
设置部署值
如果适用于您的软件类型,您可以设置用户在安装软件时需要指定的部署值。 您可以添加新的部署值或从现有版本导入部署值。
添加新的部署值
- 单击 配置版本 > 下一步。
- 点击添加部署值。
- 在表中,选择 参数 > 添加 以选择并添加所有选项。
- 如果需要,您可以通过从表中选择参数并单击 编辑来定制这些参数。
导入现有值
如果先前为现有版本设置了部署值,并且要将这些值导入到当前版本,请完成以下步骤。
导入的值不会替换已添加到当前版本的任何部署值。
- 单击 配置版本 > 下一步。
- 点击添加部署值。
- 点击“从旧版本导入值”
- 选择包含您要导入的值的版本。
- 单击导入。
- 如果需要,您可以通过从表中选择参数并单击 编辑来定制这些参数。
编辑输出值描述
您可以改进 Terraform 模板的输出值的描述,以帮助用户更好地了解参数的用途。 可以更新模板中包含的任何输出值的描述。
要添加输出值,需要将其包含在 Terraform 模板的新导入版本中。
完成以下步骤以编辑产品的输出值描述:
- 单击 配置版本 > 下一步。
- 从“输出值描述”部分中,提供要更新的参数的新描述。
- 单击下一步。
定义 IAM 访问权
如果适用于您的软件类型,您可以从 IBM Cloud 目录添加安装产品所需的服务访问角色和平台访问角色。 您可以定义新的 IAM 访问权或导入在较低版本中设置的 IAM 访问权。
定义新的 IAM 访问权
使用以下步骤来定义产品的访问权:
- 单击 配置版本 > 下一步 > 下一步。
- 单击添加。
- 选择服务以及所需的服务和平台访问权。
- 服务访问角色允许使用服务和执行服务 API 调用。
- 平台访问角色允许在平台资源上执行操作,如创建实例、将实例连接到应用程序以及分配用户访问权限。
- 单击保存。
导入现有 IAM 访问权
如果先前为现有版本定义了 IAM 访问权,并且要将值导入到当前版本,请完成以下步骤。
导入的 IAM 访问权不会替换已添加到当前版本的任何 IAM 访问权。
- 单击 配置版本 > 下一步 > 下一步。
- 单击添加。
- 单击 从先前版本导入 IAM 访问权。
- 选择包含要导入的 IAM 访问权的版本。
- 单击添加。
添加许可协议
如果用户在安装软件时需要接受 IBM Cloud 服务协议之外的任何许可协议,请提供每份协议的 URL 或从现有版本导入许可证。
添加新的许可协议
- 单击 添加许可协议 > 添加许可证。
- 输入姓名和 URL,点击添加许可证。
- 输入所有其他许可协议后,单击 下一步。
导入许可协议
如果您先前为现有版本添加了许可协议,并且想要将许可证导入到当前版本,请完成以下步骤。
导入的许可证不会替换已添加到当前版本的任何许可协议。
- 单击 添加许可协议 > 添加许可证。
- 点击“从旧版本导入许可证”。
- 选择包含您要导入的许可证的版本。
- 单击导入。
查看自述文件
用户安装软件时,可以通过单击“自述文件”链接来查看产品信息。 “自述文件”链接中的信息是根据您上载到源存储库的自述文件生成的。
- 从“编辑自述文件”选项卡中,单击 编辑 图标
。
- 预览在用户安装软件时如何向其显示自述文件中的信息。
- 要进行更新,请单击“自述文件”部分标题旁边的 编辑 图标
。
- 单击保存。
- 单击下一步。
如果要导入 VPC 的虚拟服务器映像,那么不会自动生成自述文件。 复制并粘贴 自述文件模板 的内容,并根据需要进行更新。
验证产品
用于验证产品的步骤可能根据您加入的软件类型而有所不同。
- 从“验证产品”选项卡中,配置验证目标,然后单击 下一步。 此步骤仅适用于 Helm Chart 和操作程序。
- 配置工作空间,然后单击 下一步。 此步骤仅适用于具有 Terraform 的 Helm Chart,操作程序,Terraform 模板和虚拟服务器映像。
- 点击 验证。
要监视验证过程的进度,请单击 查看日志。
使用 API 验证软件
您可以通过调用 目录管理 API来验证软件。
String authRefreshToken = "{authRefreshToken}";
String versionLocator = "{versionLocator}";
ValidationInstallOptions installOptions = new ValidationInstallOptions.Builder().xAuthRefreshToken(authRefreshToken).versionLocId(versionLocator).build();
Response<Void> response = service.validationInstall(installOptions).execute();
System.out.println(response.getResult());
versionLocator = "{versionLocator}";
authRefreshToken = "{authRefreshToken}";
response = await service.validationInstall({ 'versionLocatorId': versionLocator, 'xAuthRefreshToken': authRefreshToken });
console.log(response);
authRefreshToken="{authRefreshToken}"
versionLocator = "{versionLocator}"
response = self.service.validation_install(version_locator_id=versionLocator, x_auth_refresh_token=authRefreshToken)
print(response)
versionLocator := "{versionLocator}"
authRefreshToken := "{authRefreshToken}"
installOptions := service.NewValidationInstallOptions(versionLocator, authRefreshToken)
response, _ := service.ValidationInstall(installOptions)
fmt.Println(response)
管理安全性和合规性控制
控件是用于满足安全性和合规性需求的保护措施。 只有受 Security and Compliance Center支持,格式正确且由“代码风险分析”和 Security and Compliance Center 扫描验证的控件才会显示在目录中。 有关更多信息,请参阅 自述文件中的格式化控件。
- 单击 添加控件。
- 选择概要文件。
- 选择您想要添加到您的版本中的控件。
- 单击添加。
- 在 Code Risk Analyzer 扫描部分中,单击 运行扫描。
- 请等待扫描完成。
- 在 " Security and Compliance Center " 扫描部分中,选择您扫描的概要文件。
- 选择 Security and Compliance Center 扫描。
- 单击 添加扫描。
- 单击下一步。
复审需求
您必须完成验证以及任何其他需求才能发布产品。