Porting builders to newer Ubuntu versions¶
QA Migration & Deployment¶
There are following steps to porting builders to newer Ubuntu versions.
- Porting launchpad-buildd and its dependencies to work on the target Ubuntu version. You can follow lp-buildd docs to develop and publish on buildd-staging PPA.
Apart from the deb dependencies defined in debian/control in launchpad-buildd, you would also need to make sure that deb packages of target ubuntu version are available for
bzr-builder
,git-recipe-builder
andquilt
.These dependencies are defined in charm-launchpad-buildd-image-modifier
- Update the
gss_series
variable in launchpad-mojo-specs. Runmojo run
to deploy the config changes. PS: We use
vbuilder
branch for build farm mojo specs.You don’t have to update the builder config to target Ubuntu version at this step. We first have to build an image and then update the builder configs.
- Update the
- Next step is to rebuild images. Currently launchpad-mojo-specs (vbuilder branch) uses 2 charms to rebuild images & sync images. You can either trigger a rebuild by following: testing-on-qastaging or use the
sync-images
action. charm-glance-simplestreams-sync provides a sync-images action that downloads the configured base images and calls a hook to run the image modifier charm.
charm-launchpad-buildd-image-modifier has scripts that creates a qemu COW VM image for builders with all the needed dependencies and configuration.
- Next step is to rebuild images. Currently launchpad-mojo-specs (vbuilder branch) uses 2 charms to rebuild images & sync images. You can either trigger a rebuild by following: testing-on-qastaging or use the
juju actions --help
juju list-actions <unit-name>
juju run-action --verbose <unit-name> sync-images
Update the
builder config
to use target Ubuntu version in launchpad-mojo-specs. Usemojo run
to deploy the config changes.You can either wait for builders to reset and pick the new image or reset them using ubuntu archive tools
./manage-builders -l qastaging --disabled -a riscv64 --reset
Notes & Helpful links¶
With Ubuntu Noble,
lxd
is no longer a part of the base image and is pre-baked. Refer this commit that pre-bakeslxd
if not available. launchpad-buildd useslxd
to run builds.Charms can also be manually upgraded for a unit via:
juju upgrade-charm <unit> <charm-location>