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`` and ``quilt``. - These dependencies are defined in `charm-launchpad-buildd-image-modifier `__ - Update the ``gss_series`` variable in `launchpad-mojo-specs `__. Run ``mojo 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. - 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. .. code-block:: sh juju actions --help juju list-actions juju run-action --verbose sync-images - Update the ``builder config`` to use target Ubuntu version in `launchpad-mojo-specs `_. Use ``mojo 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 `_ .. code-block:: sh ./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-bakes ``lxd`` if not available. `launchpad-buildd `_ uses ``lxd`` to run builds. - `Setting up a user on QA staging `_ - `Debugging build farms `_ - Charms can also be manually upgraded for a unit via: .. code-block:: sh juju upgrade-charm