Bamboo + Docker + Kubernetes部署
我们目前正在玩kubernetes + docker。 目前我想知道如何在开发和发布过程中将竹子集成到我们的部署过程中。
我们目前的CI过程是这样的:
- 开发人员检查代码更改为分支“开发”
- 竹子触发器build立过程:
- 代码从git检出
- 运行构build代码(Java)
- 运行单元+集成testing
- 将工件部署到artifactory
- build造具有神器的docker形象
- 标记docker与神器版本的图像
- 将图像推送到docker集线器
这是目前的工作stream程。 现在我想使用竹节点部署function将docker镜像部署到我们的kubernetes集群。
从技术angular度来看,它应该很容易:
- SSH到主节点
- 使用新映像从复制控制器开始滚动更新
我的问题是如何获得我的部署任务中生成的docker镜像的名称。 我已经想过,我可能会创build一个属性文件,其中包含我在构build过程中存储为工件的variables。 我可以在我的部署过程中读出这个属性文件…
不知怎的,这感觉更像是一个解决方法..另一个想法是直接在构build任务中进行部署,不要使用部署function…
还有其他的select吗? 有没有其他的select/更好的主意? 想法/帮助将是非常好的:)
我对Bamboo不熟悉,但是Kubernetes 1.2将支持Deployment API,一旦将Deployment规范更新为新的图像标记,它将代表您执行滚动更新。
或者,您可以尝试在Kubernetes上build造的Openshift 3。 它支持由图片推送触发的部署: https : //github.com/openshift/origin/blob/master/docs/deployments.md#triggers
我遇到了类似的构build/部署pipe道类似的问题,我最终不得不从构build步骤输出一个属性文件,并使其成为构build工件,然后由部署项目读入。
您似乎只能从部署项目中获得一组有限的属性: https : //confluence.atlassian.com/bamboo/variables-for-deployment-environments-342754180.html
话虽如此,做这个出口很容易:
在构build项目中,将所需的属性导出到文件中,例如project.properties,并将其标记为构build工件。
然后在部署项目中,使用Inject Bamboovariables任务,这些值将作为部署项目可用
${bamboo.inject.<property name>}