1

这是我的第一个问题,所以请假设无知和积极的意图。

作为我们构建管道的一部分,我需要运行我们的开发团队所说的“单元测试”。这些单元测试通过 ant 目标运行。在运行那个 ant 目标之前,我们必须启动、配置和部分填充(ant 目标完成一些填充)几个容器,包括:

  • 应用服务器
  • LDAP 实例
  • postgres 实例

看起来好像每个任务只支持一个容器。有没有一种简单的方法可以让所有这些一起运行?理想情况下,我可以创建一个任务,允许我使用在该 pod 的一个容器中运行的命令指定一个 pod 模板。

我意识到我可以通过使用 openshift 客户端或 kubernetes 操作来解决这个问题,但我希望有一些更优雅的东西。我觉得使用这些任务中的任何一个都需要我构建状态感知、错误检查、重试逻辑等,这些可能已经是管道逻辑的一部分,然后解析 ant run 的输出以确定是否所有测试都是成功的。这是我第一次涉足 tekton,因此将不胜感激接受的模式或习语。

为了获得更大的上下文,我看到这些任务构成了我的管道:

  • 克隆 git 仓库
  • 将应用程序构建到中间映像中
  • 启动带有所有必要容器的 pod
  • 等待所有容器“就绪”
  • 执行 ant 目标以运行单元测试
  • 如果所有测试都通过构建运行时映像
  • 将工件从运行时映像复制到外部存储(用于在 openshift 之外部署)

感谢您的时间

4

1 回答 1

0

看看边车。数据库必须启动并运行才能执行测试,因此在 sidecar 中启动数据库。任务中的步骤将在所有 Sidecar 运行后立即启动。

于 2021-02-19T20:47:55.367 回答