这是我的第一个问题,所以请假设无知和积极的意图。
作为我们构建管道的一部分,我需要运行我们的开发团队所说的“单元测试”。这些单元测试通过 ant 目标运行。在运行那个 ant 目标之前,我们必须启动、配置和部分填充(ant 目标完成一些填充)几个容器,包括:
- 应用服务器
- LDAP 实例
- postgres 实例
看起来好像每个任务只支持一个容器。有没有一种简单的方法可以让所有这些一起运行?理想情况下,我可以创建一个任务,允许我使用在该 pod 的一个容器中运行的命令指定一个 pod 模板。
我意识到我可以通过使用 openshift 客户端或 kubernetes 操作来解决这个问题,但我希望有一些更优雅的东西。我觉得使用这些任务中的任何一个都需要我构建状态感知、错误检查、重试逻辑等,这些可能已经是管道逻辑的一部分,然后解析 ant run 的输出以确定是否所有测试都是成功的。这是我第一次涉足 tekton,因此将不胜感激接受的模式或习语。
为了获得更大的上下文,我看到这些任务构成了我的管道:
- 克隆 git 仓库
- 将应用程序构建到中间映像中
- 启动带有所有必要容器的 pod
- 等待所有容器“就绪”
- 执行 ant 目标以运行单元测试
- 如果所有测试都通过构建运行时映像
- 将工件从运行时映像复制到外部存储(用于在 openshift 之外部署)
感谢您的时间