Kolla: Upgrade from Wallaby to Xena on CentOS 8 Rocky 8

From Define Wiki
Jump to navigation Jump to search

Build the containers and push to registry

Setup a new kolla build environment - so working with fresh ubuntu image


### ubuntu xena notes
sudo apt update
sudo apt install git python3-dev libffi-dev gcc libssl-dev
sudo apt install docker.io
sudo systemctl enable docker
sudo systemctl start docker
sudo ip link set dev docker0 mtu 1450
sudo cat /etc/docker/daemon.json
{
  "mtu": 1450
}
sudo apt install python3-virtualenv
mkdir kolla-build-xena-venv
virtualenv kolla-build-xena-venv/
source kolla-build-xena-venv/bin/activate
pip install 'ansible<5.0'
cd kolla-build-xena-venv/
git clone https://opendev.org/openstack/kolla
cd kolla
git checkout stable/xena
cd ../
pip install -r kolla/requirements.txt
pip install kolla
kolla-build -b centos --registry registry.define-technology.com:5000 (--push)

# tag images
docker login registry.define-technology.com:5000 (definetech / dtpass)
docker images | grep kolla | awk '{print "docker tag "$1":13.10.1 "$1":xena"}' > tag_xena.sh
chmod +x tag_xena.sh
./tag_xena.sh

# push images
docker images | grep xena | awk '{print "docker push "$1":xena"}' > push_images.sh
chmod +x push_images.sh
./push_images.sh

# once pushed, delete the images
docker images | grep xena | awk '{print $1":xena"}' | xargs docker rmi
docker images | grep 13.10.1 | awk '{print $1":13.10.1"}' | xargs docker rmi

Back to the deploy node to upgrade OpenStack

# back to deploy node to upgrade from wallaby to xena
docker pull registry.define-technology.com:5000/kolla/kolla-deploy:xena
docker tag registry.define-technology.com:5000/kolla/kolla-deploy:xena kolla-deploy-xena
docker create --name kolla-deploy-xena --hostname kolla-deploy-xena kolla-deploy-xena
docker cp kolla-deploy-xena:/kolla/kolla-ansible/etc/kolla/globals.yml ~/kolla/globals.yml.xena
docker cp kolla-deploy-xena:/kolla/kolla-ansible/etc/kolla/passwords.yml ~/kolla/passwords.yml.xena
docker cp kolla-deploy-xena:/kolla/kolla-ansible/ansible/inventory/all-in-one ~/kolla/all-in-one.xena
docker cp kolla-deploy-xena:/kolla/kolla-ansible/ansible/inventory/multinode ~/kolla/multinode.xena
docker rm -f kolla-deploy-xena
docker run --name kolla-deploy-xena --hostname kolla-deploy-xena --net=host -v /root/kolla/:/etc/kolla/ -v /root/.ssh:/root/.ssh -d -it kolla-deploy-xena bash

(in this instance i copied over the hosts to the multinode file, left passwords as standard, left globals as standard)
<globals main points>
kolla_base_distro: "centos"
openstack_release: "xena"
kolla_install_type: "source"
docker_namespace: "kolla"
</main points>

# merge passwords
docker exec -it kolla-deploy-xena bash
cd /etc/kolla
cp passwords.yml.xena passwords.yml.xena.empty
cp passwords.yml passwords.yml.prexenaupdate

#now we populate all the passwords in the new file (this is because new services may have been added that were NOT in the previous release)
kolla-genpwd -p passwords.yml.xena.empty
#finally merge the old pw with the new passwords into the NEW passwords.yml file
kolla-mergepwd --old passwords.yml.prexenaupdate --new passwords.yml.xena.empty --final /etc/kolla/passwords.yml.final
cp passwords.yml.final passwords.yml

# ok lets try update , to start with lets pull the containers (so we know we have all the right containers built and available in the registry)
# from the kolla container
kolla-ansible -i ./multinode.xena pull
kolla-ansible -I ./multinode.xena upgrade