如何使用Spinnaker烘焙Web应用程序?

Hen*_*ang 1 spinnaker

我有一个示例Web应用程序,我用来试验Spinnaker,特别是从源(github)到生产(GCE).

一般来说,这是应该作为图像烘焙的东西(包括适用的依赖项)吗?如果是这样,怎么样?由于文档和可用的UI选项仅涵盖deb包.

如果不应该这样做,我将如何将这个和依赖项部署到QA VM?我应该使用脚本从其源中提取和安装它们吗?

小智 5

一个典型的场景是使用像jenkins这样的CI系统构建你的源代码并生成/发布deb,并让deb声明它的依赖关系.

根据您使用的构建系统,有很多选项可用于生成deb.许多人使用gradle和名为nebula的Netflix OSS插件(https://nebula-plugins.github.io/).

这里有一个全面的教程(http://www.spinnaker.io/docs/from-source-to-prod),它展示了如何: - 从git repo中的source开始,用jenkins构建/发布deb(到local 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,然后根据需要构建/测试.由于我们依赖于打包机,您也可以在此处使用打包机的其他任何支持的配置程序.

最后一步是在Bake Stage配置ui中指定新的自定义打包器模板,以及它需要的任何参数(如果有): 在此输入图像描述