Launchpad Entry: server-karmic-ec2-release-process
Packages affected: vmbuilder
This spec describes the automation of the process of building the Ubuntu EC2 images. The current process involves some error prone manual steps.
We want the EC2 image building process to follow that of every other image build in Ubuntu, so we want daily, automated builds, and a very well described process for publishing these to EC2.
Ubuntu on EC2 now follows the same release schedule as the rest of Ubuntu.
The current process is error prone as it's entirely manual and not very well defined. This makes us look bad and needs to be fixed ASAP.
- Dennis hears that Ubuntu Karmic alpha-3 is out and wants to test it on EC2.
- Edward wants to test Ubuntu Karmic beta on his own cloud.
Building the filesystem images should be completely automatic.
The build should result in a set of filesystem images available alongside the ISO's on cdimage.ubuntu.com (or in a similar location). These are useful for local testing (in either straight KVM or in UEC) and for use with private clouds. The release process, which is (and should be) manual, should be extremely well defined (like a recipe with clearly phrased, discrete steps to be taken from the availability of the image until people can start using them on EC2).
Also, the release team should include announcements of the availability of the EC2 images in their regular announcements of Alpha, Beta, RC and final releases.
- Get access to build ressources in the DC.
- Merge VMBuilder-EC2 with VMBuilder proper.
- Once 1 and 2 are done, a cron job needs to be setup to build the various images every day and publish them somewhere.
- Define the recipe for publishing releases.
The Jaunty EC2 release will be the guinea pig (this sounds much worse than it is.. This is a new process, but should in every way be superior to the previous, manual approach). We'll shortly release a beta of the Jaunty images built in the DC and released according to the recipe.
Our UEC Images for karmic RC and Release were built and published using fully automated builds. The process will continue for Lucid, and has been put into place for Hardy also (note, hardy kernels still require manual effort).
The following are links are relevant (current at 2009-11-10):
automated-ec2-builds: This is the highest level scripts, those that are directly called from cron on our build machine. Additionally, the crontab for the 'vmbuilder' on that machine is stored here.
ec2-publishing-scripts: These scripts are utilized for publishing of ec2 content. Many of them are actually generally useful outside of this scope. For example, see 'publish-image' that can publish an image, kernel, or ramdisk to ec2 including migrating it to multiple regions.
UEC/Images/Publishing: This covers "how to publish" a released build. Note, the process is actually a "republish" of an already existing nightly.
UEC/Images/NamingConvention: This covers the naming convention for our builds. Consistent naming and well named buckets allow.