Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
68 lines (41 sloc) 2.92 KB
author categories date description keywords layout link slug title wordpress_id
linaro
blog
2012-07-24 09:54:35 -0700
This article goes over the latest improvements to the LAVA deployment process
LAVA lava-deployment-tool buildout
post
/blog/lava-deployment-improvements/
lava-deployment-improvements
LAVA Deployment Improvements
1701

Last month the LAVA team made a big update to the way their deployment tool works. The new method uses zc.buildout. The result is that we now have a deployment tool in place that works consistently and repeatably.

The deployment configuration to be used is now managed in the LAVA manifests project. This project has two main configurations:

  • buildout.cfg - This uses the latest versions of LAVA components in pypi while requiring the use of a fixed versioned list of dependencies for LAVA.

  • buildout-production.cfg - This extends buildout.cfg and versions the LAVA components themselves to what we have deployed in our production instance of LAVA.

Additionally, we put tags in the lava-manifests branch so users can see exactly what we deployed for each monthly cycle.

An Example

To install LAVA, you'd now run:

bzr branch lp:lava-deployment-tool
./lava-deployment-tool/lava-deployment-tool install testinstance

Later on when an update was made to the lava-manifest for your build configuration, you could upgrade with:

./lava-deployment-tool upgrade testinstance

Overrding Linaro's Manifest

If you don't want to use the manifest in lava-manifest or want to use your own branch you can do so with:

LAVA_MANIFEST_BRANCH=<bzr branch spec> ./lava-deployment-too install testinstance

You can also pick your config file from the branch with:

LAVA_BUILDOUT_CFG=buildout-foobar.cfg LAVA_MANIFEST_BRANCH=<bzr branch spec> ./lava-deployment-too install testinstance

Development Improvements

The new mechanism we've choosen also allows makes it a little nicer for doing local development. Under a LAVA instance you'll now have a directory like:

 /srv/lava/instances/<instance>/code/current/local

You can pull in components you'd like to work against into that directory. For instance, you can work off the latest tip of the lava-dispatcher with:

cd /srv/lava/instances/<instance>/code/current/local
bzr branch lp:lava-dispatcher
cd .. # you are now in /srv/lava/instances/<instance>/code/current
./bin/buildout #this pulls in the updated component

NOTE: Directory names don't matter under code/current/local. buildout finds out the package information by looking at its setup.py. So you could rename the above directory to "lava-dispatcher-devcopy" and re-reun the "buildout" command.

More Information

Take a look at the latest version of our deployment tool README for further options with deployments.

You can’t perform that action at this time.