tasks:major-distro-release
New Major Distro Release Procedure
This page will cover all the components of the Upstream testing process that need to be modified in order to start building packages for and testing new major Linux distribution versions.
Steps
-
- Add the distro to Cobbler
- You will likely need to provision a machine with Cobbler and tweak the packages that get installed in the kickstart
- If you haven't already, put set-next-server-local.sh in place on your workstation.
- See set-next-server
- Create the
roles/testnode/vars/distro_majorversion.ymlfile - Create the
roles/testnode/templates/ssh/sshd_config_distro_majorversion.ymlfile - You will also likely need to tweak the packages in this file as package names change or get deprecated
- FOG
- teuthology
- Add to the distro map
Prado[DEPRECATED] only needs modifying if you're adding a new distro entirely- Shaman
- Add the new distro to the appropriate codename maps here
- Redeploy
- Chacra
- Add the new distro here
- Redeploy
Mita[DEPRECATED]- If necessary, add the distro to prod_nodes.py
- If you're adding a new distro entirely, you'll also need to add the Openstack image to the appropriate region.
- Redeploy
- To test actual builds on the new distro:
- Reimage a Jenkins builder with the new distro and connect it to Jenkins with labels that will prevent it from picking up jobs from the queue. (e.g.,
installed-os-noble x86_64 noble gigantic adami) - In ceph-build.git,
cp -rthe ceph-dev and ceph-dev-build job configs to a new temporary directory (e.g.,cp -r ceph-dev ceph-dev-noble)- Rename the jobs in each job yml to something like 'ceph-dev-noble' and 'ceph-dev-build-noble'
- Add the new distro name in the appropriate spots (e.g.,
noblegoes above or belowjammy) - Add your new job names under
copyartifactinceph-dev-setup/config/definitions/ceph-dev-setup.ymlso your temp jobs can copy artifacts from ceph-dev-setup.
for job in ceph-dev-noble/config/definitions/ceph-dev.yml ceph-dev-build-noble/config/definitions/ceph-dev-build.yml ceph-dev-setup/config/definitions/ceph-dev-setup.yml; do jenkins-jobs –conf ~/.jenkins_jobs_jenkins.ceph.com.ini update $job; done- Go to your job in Jenkins (e.g., https://jenkins.ceph.com/job/ceph-dev-noble) and start a new build of the main branch
- Jenkins Job Configs: See https://github.com/ceph/ceph-build/pull/1022 as an example. It is not all encompassing! I missed a few spots in that PR.
- Don't forget build_utils.sh
- If necessary, create a new vagrant repo
- Download the latest vagrant version from https://releases.hashicorp.com/vagrant/
- Using Ubuntu Jammy as an example:
wget https://releases.hashicorp.com/vagrant/2.2.19/vagrant_2.2.19_x86_64.deb ls vagrant_2.2.19_x86_64.deb | chacractl binary create vagrant/latest/HEAD/ubuntu/jammy/x86_64
- Also in teuthology like this.
tasks/major-distro-release.txt · Last modified: by djgalloway
