IBM Cloud Docs
Delivery Pipeline 常见问题

Delivery Pipeline 常见问题

获取有关使用 Delivery Pipeline 的常见问题的解答。

如何在管道作业之间传递工件?

当阶段运行时,该阶段的输入会传递到阶段中的每个作业。 会为每一个作业提供一个干净的运行容器。 结果是,阶段中的作业彼此之间无法传递工件。 要在作业之间传递工件,请将作业分隔到两个阶段中,并使用第一阶段中作业的输出作为第二阶段的输入。

有关管道作业的更多信息,请参阅作业

对于管道作业可以运行的最长时间有限制吗?

经典管道作业和 Tekton 管道运行的长度由执行管道运行的专用工作程序确定。 在 IBM 受管工作程序上,此值为 6 小时。 在自我管理的 Delivery Pipeline 专用工作程序 上,管道运行的缺省时间长度为 24 小时。

管道安全属性有多安全?

管道安全属性使用 AES-128 进行加密,并在传递给管道脚本之前的那一刻才会解密。 在属性用户界面和管道日志文件中,这些属性还会使用星号进行掩蔽。 在将数据写入管道作业的日志文件之前,会扫描这些数据以查找与管道安全属性中的所有值完全匹配的内容。 如果找到匹配项,将使用星号对其进行掩蔽。 使用安全属性和日志文件时要小心,因为只有完全匹配项才会掩蔽。

如何查找有关管道作业中使用的环境变量的信息?

有关缺省情况下在管道环境中可用的环境属性和资源的信息,请参阅 环境属性和资源

可以使用 IBM Cloud CLI 来运行管道阶段吗?

您可以使用 IBM Cloud 开发者工具 CLI 插件来运行管道阶段。

  1. 安装 IBM Cloud CLI

  2. 从命令行运行以下命令以手动启动管道:

    ibmcloud dev pipeline-run pipelineID --stage-id stageID
    

有关 pipeline-run 命令的更多信息,请参阅 pipeline-run

我能否下载交付管道的 yaml 文件?

您可以通过将 /yaml 附加到管道 URL 来导出整个管道的定义。 有关导出整个管道的定义的更多信息,请参阅 修改,导出和删除 Continuous Delivery 管道数据

我是否可以使用 Terraform 来管理交付管道?

您可以使用 Terraform 来供应,更新和取消供应 Tekton 管道,定义,属性,触发器和触发器属性。 有关将 Terraform 与 Tekton 管道配合使用的更多信息,请参阅 使用 Tekton 管道ibm_cd_tekton_pipeline 资源文档

不能使用 Terraform 来触发 Tekton 管道运行或管理 Tekton 管道运行和日志。 您可以使用 Tekton 管道 API 或使用控制台来执行这些任务。

不能使用 Terraform 来管理经典管道。 只能使用控制台来管理经典管道。

我能否使用 API 来管理交付管道?

您可以使用 HTTP API 或所选编程语言 SDK 来供应,更新和取消供应 Tekton 管道,定义,属性,触发器和触发器属性。 您还可以使用 API 和 SDK 来触发 Tekton 管道运行,以及管理 Tekton 管道运行和日志。 有关将 Tekton 管道与 API 配合使用的更多信息,请参阅 使用 Tekton 管道CD Tekton 管道 API 文档

不能使用 API 来管理经典管道。 只能使用控制台来管理经典管道。

Terraform 中的 ibm_cd_toolchain_tool_pipelineibm_cd_tekton_pipeline 有何区别?

ibm_cd_tekton_pipeline 资源表示 Tekton Pipeline。 ibm_cd_toolchain_tool_pipeline 资源表示将 Tekton Pipeline 绑定到工具链的工具集成。 在 Continuous Delivery 工具链平台的体系结构中,工具集成是与其表示的工具不同的实体。 工具集成由工具链拥有,指的是工具,并管理工具如何将其功能添加到工具链。

要构造包含 Tekton 管道的工具链,必须声明三个资源:

以下示例显示了通过声明这些资源来构造的工具链。

data "ibm_resource_group" "group" {
  name = "default"
}

resource "ibm_cd_toolchain" "cd_toolchain" {
  name              = "my toolchain"
  resource_group_id = data.ibm_resource_group.group.id
}

resource "ibm_cd_toolchain_tool_pipeline" "cd_pipeline_integration" {
  toolchain_id = ibm_cd_toolchain.cd_toolchain.id
  parameters {
    name = "my pipeline integration"
  }
}

resource "ibm_cd_tekton_pipeline" "cd_pipeline" {
  pipeline_id = ibm_cd_toolchain_tool_pipeline.cd_pipeline_integration.tool_id
  worker {
    id = "public"
  }
}