How to bake a web app?
I have an example web app that I am using to experiment with Spinnaker, specifically taking it from source (github) to production (GCE). In general, is this something (including the applicable dependencies) that should be baked as an image? If so, how? Since the documentation and the available UI option only covered deb packages. If this shouldn't be baked, how would I deploy this and the dependencies to, say, a QA VM? Should I use scripts to pull and install them from their sources? Thanks.
A typical scenario would be to build your source and produce/publish a deb using a CI system like jenkins, and have that deb declare its dependencies. There are quite a few options for producing the deb, depending on what build system you are using. Many folks use gradle and a Netflix OSS plugin called nebula (https://nebula-plugins.github.io/). There is a comprehensive tutorial here (http://www.spinnaker.io/docs/from-source-to-prod) that shows how to: - Start with source in a git repo and build/publish deb with jenkins (to a local aptly repo) - Trigger a spinnaker pipeline, bake a new image, and deploy to a test cluster - Perform some manual judgment - Locate the just-verified image in the test cluster and promote it to a prod cluster While the concepts in that codelab are mostly generic, it does rely on a canned GCE image to get you up and running with no configuration. That should work out well for you as you mentioned you are running on GCE. Note that you can of course employ other baking/deployment strategies (some folks rely on config management systems at startup time), but building a deb and baking it into an image seems the most appropriate for the scenario you described. If what you really want is to just clone your webapp into your newly-baked image, you can do this by creating a custom packer template. The packer templates all live in this directory (https://github.com/spinnaker/rosco/tree/master/rosco-web/config/packer) and you can use (https://github.com/spinnaker/rosco/blob/master/rosco-web/config/packer/gce.json) as a starting point. Then change this line (https://github.com/spinnaker/rosco/blob/master/rosco-web/config/packer/gce.json#L33) to call your own shell script. Your shell script can clone whatever repo's it needs to and build/test however you like. Since we are relying on packer, you can also use any of packer's other supported provisioners here. The last step is to specify your new custom packer template in the Bake Stage configuration ui, along with whatever parameters (if any) it requires: Thanks, -Matt
spinnaker configuration files precedence documentation?
How to layer on tier specific configuration on a spinnaker service
Is it possible to deploy Spinnaker to an instance smaller than m4.xlarge on AWS?
Spinnaker: configuring app health-check via Eureka
Rollback behavior when “scale down replaced server groups to zero instances”
Build information in server group
Is cassandra just an option in spinnaker?
How to get “Run script” to work in a Spinnaker pipeline
How to trigger a Spinnaker pipeline by schedule or time?
How to bake a web app?
Spinnaker:Operation Timeout at Deploy stage of pipeline
Instance Types missing while creating Server Group in Spinnaker
What does each Spinnaker deployment strategy mean?
How to specify an elastic beanstalk deployment using spinnaker
Unable to create an Application - no accounts listed in dashed rectangle beside the Accounts heading
Accessing User-created Parameters