如何在CI管道中组织docker镜像的签名过程?

问题描述 投票:0回答:1

下午好。

我们拥有基于 Gitlab 构建的容器镜像开发和组装基础设施。开发人员开发代码并将其提交给 GitLab。容器镜像是使用 GitLab-runner 机制组装的。我们使用的是Gitlab的免费版本,我们没有选择使用商业版本。因此,我们不能对同一代码使用多个“批准”。

  • 在组装容器镜像之前,会检查SCA、代码审查和SAST。
  • 容器镜像构建完成后,上传到开发环境(本地Docker hub DEV)的镜像存储中。
  • 容器镜像组装完成后,在测试环境中启动容器并进行DAST测试。
  • 测试完成后,将镜像复制到产品环境的存储(本地Docker hub PROD)。

问题是:我们希望确保在通过管道传递容器镜像的每个步骤中,都有一个批准过程以供其进一步传递。例如,首先进行代码审查。团队进行代码审查并给出“批准”,之后图像将进行进一步检查。此外,与SCA、SAST、DUST等类似。如果测试是自动的,则根据通过自动测试的成功结果,应自动设置“批准”。通过所有测试后,应调用一个运行程序,该运行程序将检查是否已收到所有必要的应用程序,并运行“cosign”实用程序来对容器进行签名并将容器上传到产品环境的存储(本地 Docker hub PROD) ).

请告诉我我们如何组织这样一个过程?

谢谢你。

我尝试在 GitLab 中使用评论来获得批准,但团队认为这是个坏主意。

build continuous-integration
1个回答
0
投票

怎么样:

  • 使用单独的 CI 管道来执行步骤并受益于 Gitlab 的下游管道
  • 为特定作业设置手动验证,以便管道将阻塞,直到开发人员执行手动“单击按钮”。
  • 使用自定义 Gitlab 变量($SHOULD_THE_NEXT_STEP_RUN 或 $IS_SOME_TEST_OK = True / False),这将在一项作业中设置并在以下作业中进行检查。
© www.soinside.com 2019 - 2024. All rights reserved.