我正在使用an example web app来试验Spinnaker,特别是从源代码(github)到生产(GCE)。
一般来说,这是否应该作为图像烘焙(包括适用的依赖项)?如果是这样,怎么样?由于文档和可用的UI选项仅涵盖deb包。
如果不应该这样做,我该如何将这个和依赖项部署到QA VM?我应该使用脚本从源代码中提取和安装它们吗?
答案 0 :(得分:5)
一个典型的场景是使用像jenkins这样的CI系统构建你的源并生成/发布deb,并让deb声明它的依赖。
根据您使用的构建系统,有很多选项可用于生成deb。许多人使用gradle和一个名为nebula(https://nebula-plugins.github.io/)的Netflix OSS插件。
这里有一个全面的教程(http://www.spinnaker.io/docs/from-source-to-prod),说明如何: - 从git repo中的source开始,使用jenkins构建/发布deb(到本地aptly repo) - 触发大三角帆管道,烘焙新映像,然后部署到测试集群 - 执行一些手动判断 - 在测试集群中找到刚刚验证的图像并将其提升为prod集群
虽然该代码库中的概念大部分都是通用的,但它确实依赖于罐装GCE映像来启动并运行而无需配置。如果你提到你在GCE上运行,这应该对你有用。
请注意,您当然可以采用其他烘焙/部署策略(某些人在启动时依赖配置管理系统),但构建deb并将其烘焙到图像中似乎最适合您所描述的场景。
如果您真正想要的是将Web应用程序克隆到新近烘焙的图像中,则可以通过创建自定义打包程序模板来实现。包装工模板都存在于此目录(https://github.com/spinnaker/rosco/tree/master/rosco-web/config/packer)中,您可以使用(https://github.com/spinnaker/rosco/blob/master/rosco-web/config/packer/gce.json)作为起点。
然后更改此行(https://github.com/spinnaker/rosco/blob/master/rosco-web/config/packer/gce.json#L33)以调用您自己的shell脚本。您的shell脚本可以克隆它需要的任何repo,然后根据需要构建/测试。由于我们依赖于打包机,您也可以在此处使用打包机的其他任何支持的配置程序。