IBM Cloud Docs
促销管道

促销管道

提升管道将库存条目从一个环境提升到另一个环境,并创建提升拉取/合并请求。

促销管道步骤

  1. 获取促销和促销拉取/合并请求的输入。
  2. 将库存条目从源环境提升到目标环境。
  3. 创建提升拉取/合并请求。 编辑拉取/合并请求以指示要执行的更改。 监视可选字段和必填字段。
  4. 可选。 设置证据状态,并将聚集的证据摘要添加到提升拉取/合并请求。
  5. 合并拉取/合并请求。
  6. 如果功能部件已开启,请发送 Slack 通知。

运行提升管道

使用手动促销触发器来运行促销管道。 如果源 (主) 分支位于目标 (生产) 分支之前,那么管道将创建您可以复审和编辑的提升拉取/合并请求。 如果源分支位于目标后面,那么提升管道将失败并显示 All changes have already been promoted 消息。

要修改提升拉取/合并请求的缺省值,或者要从备用源提升到目标,用户可以从管道环境变量 UI 修改 输入

在运行持续部署管道之前,请确保已合并提升拉取/合并请求。 您可以在管道日志中找到拉取/合并请求 URL。

有关库存和促销过程的更多信息,请参阅 库存促销

部分促销库存商品

部分促销方法允许促销渠道促销可用库存的选定子集。

在这种情况下,库存条目将是库存存储库中存在的单个文件(库存类型),它将映射到本地文件系统上的唯一文件名

使用参数 inventory-includeinventory-exclude 启用部分促销方法。

使用时 inventory-include,该环境属性中提供的模式/文件名解析为其各自的条目并由管道提升。 同样,在 inventory-exclude 被排除在促销之外。

该格式利用 glob 模式(也支持完整路径),类似于 CC-pipeline 中遵循的格式。 有关 glob 模式的更多信息,请参阅 全局手动的。

部分促销中应用的筛选

部分提升应用了两个级别的过滤 - 使用 .inventoryignore 文件并根据给定的 glob 模式应用过滤 inventory-includeinventory-exclude

使用 .inventoryignore 文件

若要在每次部分升级运行以及 CD 管道运行中默认排除一组文件或文件夹,您可以将文件/文件夹列表添加到 .inventoryignore 文件来排除这些条目。

从中筛选出条目后,即可获得可用条目列表(管道可以提升的条目).inventoryignore 文件。

管道搜索 .inventoryignore 文件位于存储库的根目录。 如果您希望为库存排除文件指定不同的名称,您可以通过设置 inventory-ignore-file 作为管道内的环境属性的键。 确保此文件位于库存存储库的根目录。

使用 inventory-include 参数

筛选后可推广的条目列表 inventory-include 和/或 inventory-exclude

如果两者 inventory-includeinventory-exclude 存在,inventory-include 优先,然后 inventory-exclude 从包含列表定义的子集中排除项目。

如果提供了其中一个变量,管道将尝试解析 glob 模式的完整路径或仅直接文件名,并继续进行部分提升。

只有两个过滤级别之间的公共条目列表才会被管道提升。

inventory-include 和 inventory-exclude 参数的使用示例

本节展示了使用 glob 模式的示例,并将其合并到 inventory-includeinventory-exclude 参数。 这是库存存储库的示例目录结构,包含微服务、(嵌套)配置文件和 Helm 图表。

cd-pipeline-deps
my-application-plugin-component-config
my-application-plugin-component-diagnostic-monitor
configuration # directory entry
configuration/my-staging-region # directory entry
configuration/my-staging-region/environment-1-cluster # directory entry
configuration/my-staging-region/environment-1-cluster/serviceA-component_config
configuration/my-staging-region/environment-1-cluster/serviceB-system_config
configuration/my-staging-region/environment-1-cluster/serviceC-params_config
configuration/serviceX-dashboard-setup_helm
configuration/serviceY-releases_helm
my-application-task-runner
my-application-dashboard
my-application-dashboard_deployment
my-application-module
my-application-module_deployment
.inventoryignore
global_deployment
README.md

选择组件的所有子模块条目

inventory-include 设置:*plugin-component*

选定的库存条目:

    my-application-plugin-component-config
    my-application-plugin-component-diagnostic-monitor

选择给定配置文件夹中的所有 Helm Chart

inventory-include 设置:configuration/*helm

选定的库存条目:

    configuration/serviceX-dashboard-setup_helm
    configuration/serviceY-releases_helm

选择特定环境的所有配置文件

inventory-include 设置:configuration/my-staging-region/environment-1-cluster/*_config

选定的库存条目:

    configuration/my-staging-region/environment-1-cluster/serviceA-component_config
    configuration/my-staging-region/environment-1-cluster/serviceB-system_config
    configuration/my-staging-region/environment-1-cluster/serviceC-params_config

仅选择一个组件

inventory-include 设置:my-application-dashboard*

选定的库存条目:

    my-application-dashboard
    my-application-dashboard_deployment

在 inventory-include 中使用 glob 模式组合

inventory-include 设置:*plugin-component*,configuration/*helm

选定的库存条目:

    my-application-plugin-component-config
    my-application-plugin-component-diagnostic-monitor
    configuration/serviceX-dashboard-setup_helm
    configuration/serviceY-releases_helm

在 inventory-exclude 中使用 glob 模式组合

inventory-exclude 设置:configuration/**, my-application-dashboard*

选定的库存条目:

    cd-pipeline-deps
    my-application-plugin-component-config
    my-application-plugin-component-diagnostic-monitor
    my-application-task-runner
    my-application-module
    my-application-module_deployment
    .inventoryignore
    global_deployment

提升拉取/合并请求

来自提升拉取/合并请求主体的信息用于创建变更请求。 提升拉取/合并请求更改的文件表示由连续部署管道部署的条目 (例如映像)。 如果由于紧急情况而进行了更改,那么将使用紧急标签来标记提升拉取/合并请求。 由连续部署管道创建的变更请求也标记为 emergency

将汇总在持续集成管道中收集的证据,并将其附加到持续部署管道中的变更请求。

促销验证管道

打开促销 PR 后,您可以选择在促销验证管道中执行证据聚集和摘要生成,并在促销拉取/合并请求 (PR) 上设置证据状态。 PR 可以由促销管道创建,也可以在库存存储库中手动创建。 管道支持在将 PR 合并到目标分支 (环境) 之前对促销 PR 进行早期验证。 根据 PR 的状态,用户可以继续促销 (当所有证据状态为绿色时),也可以选择在持续集成管道中修正问题 (当证据状态为红色时)。 此外,验证管道还以用户友好的表格格式将库存中一个或多个应用程序的证据汇总摘要作为注释添加到促销拉取/合并请求中(如图 3 所示)。 此表提供了有用的链接,例如,指向管道运行的链接,应用程序存储库以及为每个应用程序创建的问题。 正在进行验证时,将阻止对提升拉取/合并请求进行合并。 验证管道完成后,将在拉取/合并请求上设置证据状态。 单击状态中的每个条目会将用户带到相应 CI 管道运行中的特定阶段。

如何选择性加入促销验证?

不推荐 不推荐使用用于自动启动拉取请求上的提升验证管道的 opt-in-promotion-validation 选项,以支持 Git 提升验证触发器。 如果您在环境设置中具有此属性,那么将在管道日志和 Slack 通知中看到废弃通知。

对于所有新的 CD 工具链,将自动创建 Git Promotion Validation 触发器并将其设置为已启用。

要在现有管道上启用 Git 促销验证触发器,可以使用以下步骤。

  1. 转至要将其添加到的 CD 管道的 触发器 页面。
  2. 选择 添加> Git 存储库 以添加新触发器。
  3. 输入触发器所需的以下信息:
    • 提供触发器名称。 例如: Git 促销验证触发器。
    • promotion-validation-listener or promotion-validation-listener-gitlab 指定为 EventListener
    • 存储库 字段的管道选择相应的库存存储库。
    • 选择 分支的目标环境的名称。
    • 选中 打开或更新拉取请求时字段的框。
  4. 单击添加
  5. 将触发器设置为 On

输入

表 1. 提升管道输入
变量 描述 缺省值 必需或可选
源环境 促销的源库存分支。 master 必需
目标环境 促销的目标库存分支。 prod 必需
优先级 更改的优先级。 criticalhighmoderatelowplanning 可选
受托人 要在变更请求 IBM Cloud 组织中向其分配变更请求的人员的功能标识或电子邮件。 '' 可选
描述 附加到变更请求描述的变更的描述。 '' 可选
用途 需要更改的原因。 '' 可选
影响 有关此更改实现的影响的更多说明。 '' 可选
库存忽略文件 .inventoryignore 文件的自定义文件名,该文件包含每次部分促销运行时要忽略的文件/文件夹列表。 .inventoryignore 可选
库存包括 有选择地推广(部分推广)的库存条目。 '' 可选
库存排除 部分促销中要排除的库存条目。 '' 可选
回退计划 描述如何在故障中回滚更改的计划。 '' 可选
Slack-通知 用于打开或关闭 Slack 集成的开关 0 可选
客户影响 更改对客户的影响。 criticalhighmoderatelowno_impact 可选

产出和影响

  • Slack 通知
  • 提升拉取/合并请求

如果未提供可选参数,那么必须编辑和修改拉取/合并请求。

表 2.Optional 参数
变量 描述 必需或可选
优先级 下列其中一个值: CriticalHighModerateLowPlanning 必需
变更请求受让人 受让人的电子邮件标识。 必需
其他描述 有关应用程序中的更改的描述。 可选
用途 对应用程序进行的更改的用途。 可选
影响说明 更改对应用程序行为或环境的影响。 可选
Customer Impact 下列其中一个值: CriticalHighModerateLowNo_Impact 必需
部署影响 下列其中一个值: SmallLarge 必需
回退计划 部署失败时回退的步骤。 可选

提升拉取和合并请求
图 1。 提升拉取和合并请求

运行 (可选) 促销 PR 验证时,将在拉取/合并请求上设置证据状态。

针对提升拉取和合并请求设置的可选证据状态
图 2。 促销拉取和合并请求
上的证据状态

证据 (可能来自库存中的多个应用程序) 的汇总证据摘要以表格格式显示为 PR 中的注释。

在有关提升拉取和合并请求的注释中捕获的可选聚集证据摘要
图 3。 促销拉取和合并请求
中的聚集证据摘要

下一步

在提升管道成功完成后,您可以 继续到 CD 管道