spinnaker


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

Related Links

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

Categories

HOME
rest
scipy
avro
actionscript
automated-tests
xtext
currency
height
keystore
viber
pyephem
mousewheel
dspic
nsmenuitem
richfaces
samsung-mobile
data-cleansing
lync-2013
solidworks
mayavi
partial-application
weinre
gzip
mangodb
ioc-container
protobuf-net
pari
shapes
receipt
body-parser
qtablewidget
office365connectors
floating-accuracy
onbackpressed
ivona
rdw
aqgridview
gist
slidesjs
teiid
createobject
children
multifile-uploader
gherkin
clob
emokit
fortran90
acm
optionbutton
ninject.web.mvc
jericho-html-parser
mptcp
leadtools-sdk
mdm-zinc
uptodate
searchkick
firebug-lite
libssh2
surrogate-key
coin-flipping
funkload
picat
visualstatemanager
opensocial
ksoap2
openkinect
sim900
opendata
astyanax
html-form-post
carddav
google-closure-library
vertical-scrolling
pascals-triangle
radchart
cosm
querystringparameter
cookieless
collect
dashcode
drawtext
google-instant
oggvorbis
graph-layout
web-statistics
castle-validators

Resources

Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App