Updating Contrail Networking Containers Without Updating OpenStack
Starting in Contrail Networking Release 21.4.L1, you have the option to simplify your upgrade procedure by upgrading the version of Contrail Networking running in your Contrail containers without updating OpenStack. This document provides the steps to complete this upgrade.
If you want to up Contrail Networking and OpenStack in the same procedure, see Updating Contrail Networking using the Zero Impact Upgrade Process in an Environment using Red Hat Openstack 16.2.
When to Use This Procedure
This procedure is used to upgrade Contrail Networking when it is running in environments using RHOSP version 16.2 (RHOSP16.2). RHOSP16.2 is not updated during this procedure.
The procedure in this document has been validated for the following Contrail Networking upgrade scenarios:
Table 1: Contrail Networking with RHOSP16.1 Validated Upgrade Scenarios
Starting Releases | Target Releases |
---|---|
Contrail Networking: 21.4 | Contrail Networking: 21.4.L1 |
Prerequisites
This document makes the following assumptions about your environment:
A Contrail Networking deployment using Red Hat Openstack version 16.2 (RHOSP16.2) as the orchestration platform is already operational.
The overcloud nodes in the RHOSP16.2 environment have an enabled Red Hat Enterprise Linux (RHEL) subscription.
Your environment is running Contrail Networking Release 21.4 and upgrading to Contrail Networking Release 21.4.L1 or later.
Before You Begin
We recommend performing these procedures before starting the update:
Backup your Contrail configuration database before starting this procedure. See How to Backup and Restore Contrail Databases in JSON Format in Openstack Environments Using the Openstack 16.1 Director Deployment.
Each compute node agent will go down during this procedure, causing some compute node downtime. The estimated downtime for a compute node varies by environment, but typically took between 12 and 15 minutes in our testing environments.
If you have compute nodes with workloads that cannot tolerate this downtime, consider migrating workloads or taking other steps to accommodate this downtime in your environment.
Updating Contrail Networking
To update the Contrail Networking version in an environment that is using Red Hat Openstack 16.2 without updating Red Hat OpenStack:
- Register your nodes with the Contrail Networking Release 21.4 satellite key.
- Prepare your container registry. The registry is often included in the undercloud, but it can also be a separate node.
- Backup the Contrail TripleO Heat Templates. See Using the Contrail Heat Template.
- Get the Contrail TripleO Heat Templates (stable/queens
branch) from https://github.com/Juniper/contrail-tripleo-heat-templates.
Prepare the new tripleo-heat-templates with latest available software from Openstack and Contrail Networking.
sudo cp -r /usr/share/openstack-tripleo-heat-templates/ tripleo-heat-templates sudo git clone https://github.com/tungstenfabric/tf-tripleo-heat-templates -b stable/queens sudo cp -r tf-tripleo-heat-templates/* tripleo-heat-templates/
- Update the parameter ContrailImageTag to the new version.
The location of the ContrailImageTag variable varies by environment. In the most commonly-used environments, this variable is set in the contrail-services.yaml file.
You can obtain the ContrailImageTag parameter from the README Access to Contrail Registry 21XX
Note If you are using the undercloud as a registry, ensure the new contrail image is updated in undercloud before proceeding further.
- Update the overcloud by entering
the openstack overcloud update prepare command and include
the files that were updated during the previous steps with the overcloud
update.
Example:
(overcloud) [stack@5cosp16 ~]$ cat prepare.sh python3 ~/tripleo-heat-templates/tools/process-templates.py --clean -r ~/tripleo-heat-templates/roles_data_contrail_aio.yaml -p ~/tripleo-heat-templates/ python3 ~/tripleo-heat-templates/tools/process-templates.py -r ~/tripleo-heat-templates/roles_data_contrail_aio.yaml -p ~/tripleo-heat-templates/ openstack overcloud update prepare --templates ~/tripleo-heat-templates/ --stack overcloud --libvirt-type kvm --roles-file ~/tripleo-heat-templates/roles_data_contrail_aio.yaml -e ~/rhsm.yaml -e ~/tripleo-heat-templates/hostname-map.yaml -e ~/tripleo-heat-templates/environments/network-isolation.yaml -e ~/tripleo-heat-templates/environments/contrail/contrail-services.yaml -e ~/tripleo-heat-templates/environments/contrail/contrail-net.yaml -e ~/tripleo-heat-templates/environments/contrail/contrail-plugins.yaml -e ~/tripleo-heat-templates/environments/contrail/contrail-tls.yaml -e ~/tripleo-heat-templates/environments/ssl/tls-everywhere-endpoints-dns.yaml -e ~/tripleo-heat-templates/environments/services/haproxy-public-tls-certmonger.yaml -e ~/tripleo-heat-templates/environments/ssl/enable-internal-tls.yaml -e /home/stack/containers-prepare-parameter.yaml
- If you haven’t already migrated the workloads, migrate the workloads now.
- Upgrade the Contrail controllers:
openstack overcloud update run –limit contrail-controller-vm-name
Example:
openstack overcloud update run --limit overcloud-contrailcontroller-0-5c5s openstack overcloud update run --limit overcloud-contrailcontroller-1-5c5s openstack overcloud update run --limit overcloud-contrailcontroller-2-5c5s
- Upgrade the Openstack controller node:
openstack overcloud update run –limit openstack-node-name
- Upgrade the Contrail compute nodes:
openstack overcloud update run –limit contrail-compute-node-name
- Enter the openstack overcloud update converge command.
Example:
(overcloud) [stack@5cosp16 ~]$ cat converge.sh python3 ~/tripleo-heat-templates/tools/process-templates.py --clean -r ~/tripleo-heat-templates/roles_data_contrail_aio.yaml -p ~/tripleo-heat-templates/ python3 ~/tripleo-heat-templates/tools/process-templates.py -r ~/tripleo-heat-templates/roles_data_contrail_aio.yaml -p ~/tripleo-heat-templates/ openstack overcloud update converge --templates ~/tripleo-heat-templates/ --stack overcloud --libvirt-type kvm --roles-file ~/tripleo-heat-templates/roles_data_contrail_aio.yaml -e ~/rhsm.yaml -e ~/tripleo-heat-templates/hostname-map.yaml -e ~/tripleo-heat-templates/environments/network-isolation.yaml -e ~/tripleo-heat-templates/environments/contrail/contrail-services.yaml -e ~/tripleo-heat-templates/environments/contrail/contrail-net.yaml -e ~/tripleo-heat-templates/environments/contrail/contrail-plugins.yaml -e ~/tripleo-heat-templates/environments/contrail/contrail-tls.yaml -e ~/tripleo-heat-templates/environments/ssl/tls-everywhere-endpoints-dns.yaml -e ~/tripleo-heat-templates/environments/services/haproxy-public-tls-certmonger.yaml -e ~/tripleo-heat-templates/environments/ssl/enable-internal-tls.yaml-e /home/stack/containers-prepare-parameter.yaml
The Contrail containers should be up and running after this convergence operation is completed.
- Confirm that the Contrail containers are up and running.
There are many methods of performing this step. In this provided example, the contrail-status and podman ps commands are entered on a compute node to verify the Contrail containers on a compute node:
[heat-admin@overcloud-contraildpdk-0-new ~]$ sudo su [root@overcloud-contraildpdk-0-new heat-admin]# contrail-status Pod Service Original Name Original Version State Id Status vrouter agent contrail-vrouter-agent ubi-train-21.4-224 running 349cd9d6ed6b Up 16 hours ago vrouter agent-dpdk contrail-vrouter-agent-dpdk ubi-train-21.4-224 running cf73460aaa4f Up 16 hours ago vrouter nodemgr contrail-nodemgr ubi-train-21.4-224 running 3820b61bc50a Up 15 hours ago vrouter provisioner contrail-provisioner ubi-train-21.4-224 running 66cc9f00f912 Up 16 hours ago vrouter DPDK module is PRESENT == Contrail vrouter == nodemgr: active agent: active [root@overcloud-contraildpdk-0-new heat-admin]# podman ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c2519bb82c66 5cosp16.ctlplane.5c5s.local:8787/5c5s45-satellite-rhosp-16-rhel-8-product-containers-rhosp-rhel8_openstack-nova-libvirt:16.2 kolla_start 25 hours ago Up 16 hours ago nova_virtlogd 720ba7851089 5cosp16.ctlplane.5c5s.local:8787/5c5s45-satellite-rhosp-16-rhel-8-product-containers-rhosp-rhel8_openstack-nova-libvirt:16.2 kolla_start 25 hours ago Up 16 hours ago nova_libvirt 48105e151d32 5cosp16.ctlplane.5c5s.local:8787/5c5s45-satellite-rhosp-16-rhel-8-product-containers-rhosp-rhel8_openstack-iscsid:16.2 kolla_start 25 hours ago Up 16 hours ago iscsid e6eb82a63826 5cosp16.ctlplane.5c5s.local:8787/5c5s45-satellite-rhosp-16-rhel-8-product-containers-rhosp-rhel8_openstack-cron:16.2 kolla_start 25 hours ago Up 16 hours ago logrotate_crond 86d989d8cbc1 5cosp16.ctlplane.5c5s.local:8787/5c5s45-satellite-rhosp-16-rhel-8-product-containers-rhosp-rhel8_openstack-nova-compute:16.2 kolla_start 25 hours ago Up 16 hours ago nova_migration_target 691b92fde276 5cosp16.ctlplane.5c5s.local:8787/5c5s45-satellite-rhosp-16-rhel-8-product-containers-rhosp-rhel8_openstack-nova-compute:16.2 kolla_start 25 hours ago Up 16 hours ago nova_compute 349cd9d6ed6b 192.168.24.1:8787/contrail-nightly/contrail-vrouter-agent:21.4.L1.224 /usr/bin/contrail... 17 hours ago Up 16 hours ago contrail_vrouter_agent 3820b61bc50a 192.168.24.1:8787/contrail-nightly/contrail-nodemgr:21.4.L1.224 /bin/sh -c /usr/b... 17 hours ago Up 15 hours ago contrail_vrouter_agent_nodemgr 66cc9f00f912 192.168.24.1:8787/contrail-nightly/contrail-provisioner:21.4.L1.224 /usr/bin/tail -f ... 17 hours ago Up 16 hours ago contrail_vrouter_agent_provisioner cf73460aaa4f 192.168.24.1:8787/contrail-nightly/contrail-vrouter-agent-dpdk:21.4.L1.224 /usr/bin/contrail... 16 hours ago Up 16 hours ago contrail-vrouter-agent-dpdk [root@overcloud-contraildpdk-0-new heat-admin]#