Upload Linux cloud image for packer jobs¶
The following instructions provide details on how to update a base image in OpenStack cloud.
1. Ask an administrator for the required ~/.config/openstack/ files 1. Install prerequisites
pip install lftools[openstack] yum/apt install qemu-img
Fetch the image file in .img format
Vexxhost requires images to be uploaded in RAW format so QCOW2 images need to be converted to RAW:
qemu-img convert -f qcow2 -O raw bionic-server-cloudimg-amd64.img bionic-server-cloudimg-amd64-raw.img
upload it to the cloud in question
lftools openstack --os-cloud "cloudname" image upload --disk-format raw local-server-cloudimg-arm64-raw.img "Ubuntu 18.04 LTS [2020-08-04]"
Update common-packer to use this new image.
eg edit: vars/ubuntu-18.04.json once that is merged tag common packer with the new version
git tag -s v0.6.2 -m "common-packer v0.6.2 release" git push origin v0.6.2
pull common packer changes into global-jjb of your project
cd packer/common-packer/ git checkout git checkout v0.6.2
6. once your change is merged re-run one of the packer merge jobs it will use the new base image.
Update Packer Images to reflect changes in LF ansible galaxy roles¶
Change is merged to an ansible role: https://gerrit.linuxfoundation.org/infra/c/ansible/roles/lf-recommended-tools/+/16671
Now we want the images in our “umbrella-project’s” openstack cloud to have these changes:
Find the packer merge jobs in our umbrella project’s jenkins. Trigger this job for each builder you want to be able to update.
ci-management-packer-merge-centos-7-docker ci-management-packer-merge-centos-7-builder ci-management-packer-merge-ubuntu-18.04-docker ci-management-packer-merge-ubuntu-18.04-builder
Trigger a merge job for each builder that we want to update. https://jenkins.umbrella-name.org/view/ci-management/job/ci-management-packer-merge-centos-7-builder/
Or if you dont have trigger:
you can run a remerge via comment on a change (anyone can do this) to for example: umbrella-project/ci-management/packer/vars/centos-7.json
and that will trigger both builds: ci-management-packer-merge-centos-7-docker ci-management-packer-merge-centos-7-builder
When the job is complete, you will see some info in the Build history
Which will look like this:
Image: ZZCI - CentOS 7 - builder - x86_64 - 20190910-180457.538
Or there is an openstack command for admins.
openstack --os-cloud="odlci" image list
Take this information and update a file in your ci-managment repo umbrella-project/ci-management/jenkins-config/clouds/openstack/UMBRELLA-PROJECT-VEX/ for example: centos7-builder-2c-1g.cfg
IMAGE_NAME=ZZCI - CentOS 7 - builder - 20181115-0246 LABELS=centos7-basebuild-4c-4g HARDWARE_ID=v3-standard-4
In this case you would also want to update centos7-builder-4c-4g.cfg
Replace the IMAGE_NAME with the string retreived from the ci-management-packer-merge-centos-7-builder job. Once that is merged the new image will be used when that builder is spawned.
Some info on the jenkins side of this about the ci-management-packer-merge jobs: https://docs.releng.linuxfoundation.org/projects/global-jjb/en/latest/jjb/lf-ci-jobs.html?highlight=jenkins-config#jenkins-configuration-verify