Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Upgrade Procedure for RHOSP-based Contrail 4.1.3 or 4.1.4 to Contrail 4.1.4.1

This section presents the steps to upgrade a RHOSP-based Contrail deployment from Contrail version 4.1.3 or 4.1.4 to Contrail version 4.1.4.1.

Prerequisites

Ensure you have a cloud up and running with RHOSP10 and Contrail 4.1.3 or Contrail 4.1.4 before you proceed with the upgrade procedure.

This procedure has been validated with the following Contrail, Red Hat, and OpenStack versions.

Table 1: Pre-Installation Software Versions

Contrail Version

Red Hat Version

OpenStack Version

4.1.4

RHEL 7.5 (3.10.0-862.14.4.e17.x86_64)

RHOSP10 (packages dated October 29, 2018)

4.1.3

RHEL 7.5 (3.10.0-862.11.6.el7.x86_64)

RHOSP10 (packages dated October 29, 2018)

Post-Installation

After the installation, you’ll have a cloud networking running RHOSP10 and Contrail 4.1.4.1. The Red Hat Enterprise Linux (RHEL) kernel version remains at 7.5 during this procedure.

Table 2 summarizes the post-installation software versions.

Table 2: Post Installation Software Summary

Contrail Version

Red Hat Version

OpenStack Version

4.1.4.1

RHEL 7.5 (3.10.0-862.14.4.e17.x86_64)

RHOSP10 (packages dated October 29, 2018)

Net-SNMP Package Requirements

Contrail version R4.1.4.1 supports net-snmp package version 5.7.2-43 to support SNMP in most environments.

The net-snmp packages come from Red Hat, with the exception of the net-snmp-python-5.7.2-43.el7.x86_64.rpm package which is provided in the Contrail repository.

Table 3 summarizes the net-snmp depend packages and their associated repository locations.

Table 3: Net-SNMP Depend Packages (version 43)

Net-SNMP Depend Packages

Initial Repository

net-snmp-5.7.2-43.el7.x86_64.rpm

Red Hat Satellite

net-snmp-agent-libs-5.7.2-43.el7.x86_64.rpm

Red Hat Satellite

net-snmp-libs-5.7.2-43.el7.x86_64.rpm

Red Hat Satellite

net-snmp-python-5.7.2-43.el7.x86_64.rpm

Contrail

net-snmp-utils-5.7.2-43.el7.x86_64.rpm

Red Hat Satellite

If you are working in an environment with devices that have dependencies on older net SNMP packages, replace the net SNMP packages with the following version 37-based SNMP packages.

Table 4: Net-SNMP Depend Packages (version 37)

Net-SNMP Depend Packages

Initial Repository

net-snmp-5.7.2-37.el7.x86_64.rpm

Red Hat Satellite

net-snmp-agent-libs-5.7.2-37.el7.x86_64.rpm

Red Hat Satellite

net-snmp-libs-5.7.2-37.el7.x86_64.rpm

Red Hat Satellite

net-snmp-python-5.7.2-37.el7.x86_64.rpm

Contrail

net-snmp-utils-5.7.2-37.el7.x86_64.rpm

Red Hat Satellite

If you need to replace the SNMP packages, run the createrepo command to create the repository and complete the update.

Acquire the Software

To download the software images for this procedure:

  1. Go to the Juniper Networks Support site for Contrail.

  2. Select OS as Contrail and Version as 4.1.4. Download the images that apply to your environment.

Preparing the Environment

  1. Log in to the undercloud as the stack user.

    $ su – stack

  2. Update the Contrail repositories.

    • Backup the Contrail 4.1.3 or 4.1.4 packages to a repository with a different name.

      In this example, the Contrail 4.1.3 packages are moved to a repository named contrail-R4-1-3.

    • Create a new repository directory to store the Contrail 4.1.4.1 packages:

  3. Copy the downloaded file—in the provided sample, the file is contrail-install-packages_4.1.4.1-10-newton.tgz—to the Contrail repository created in Step 2.

    Note:

    This step assumes that you've already downloaded the Contrail software. See Acquire the Software.

  4. Untar the downloaded tgz file.

  5. Ensure your satellite has a supported net-snmp package setup. The net-snmp packages in the Contrail repository and the satellite repository must match. See Net-SNMP Package Requirements.

  6. Create a repository in the new directory:

    If the createrepo command is not available, download the createrepo package from Red Hat (Red Hat subscription required).

  7. (Clusters deployed using Swift Puppet files only) If your Contrail 4.1 cluster was deployed using Swift Puppet, perform these steps:

    1. Remove overcloud artifacts from the undercloud:

    2. Delete the deployments-artifacts.yaml file if the file is present.

    3. Clean the repositories and confirm that all repositories are available.

    Note:

    The undercloud is often updated at this point of the Contrail Networking upgrade procedure. The undercloud does not need to be updated for this procedure since the RHEL and RHOSP versions are unchanged.

  8. Ensure the undercloud has the latest Contrail R4.1.4.1 contrail packages:

  9. Review the ironic node-list output to confirm the following statuses for each package::

    • Power state is power on.

    • Provision State is active.

    • Maintenance is False.

    Note:

    This output presentation has been modified for readability. The UUID and Instance UUID fields were removed as part of this modification.

  10. Verify that all OpenStack servers are in the Active state.

    Note:

    This output presentation has been modified for readability. The ID, Image Name, and Networks fields were removed as part of this modification.

    Note:

    Overcloud packages are often downloaded from the Contrail satellite at this point of other Contrail upgrade procedures. The overcloud is not upgraded in this procedure so these steps do not need to be performed.

  11. Observe the contrail-status on all Contrail nodes. All services in the Contrail nodes, except the controller (OpenStack), should be up and running before proceeding with the upgrade.

    The Contrail repository must be enabled on all overcloud nodes.

  12. Ensure that all overcloud node contrail repository pointers are properly pointing to the contrail repository.

    Contrail Analytics Example:

  13. Before proceeding with the upgrade, consider performing the following tasks to optimize your results:

    • Clean the yum cache on all overcloud virtual machines.

    • Disable the subscriptions from the satellite to ensure new packages are not accidentally loaded during the procedure.

    • Synch the satellites to the Oct 29, 2018 satellite repo end date.

Upgrade the Contrail Heat Templates

You must copy the new Contrail Heat templates package to the undercloud node, while retaining a copy of the Heat templates that were used for the existing deployment.

  1. Make a copy of all of the Heat templates that were used for deployment and save the copies, because the existing files will be overwritten by the new versions. The templates to copy are of the form contrail-services.yaml, contrail-net.yaml, and so on.

    Note:

    Red Hat does not support changing IP address of the existing cluster as a part of upgrade. Do not change IP address of the cluster while creating new tripleo-heat-templates

  2. Copy the new contrail-tripleo-heat templates to the undercloud node.

    Note:

    The directory /home/stack/tripleo-heat-templates is user defined, it can be User Defined-directory>/openstack-tripleo-heat-templates

Modify the Yum Update Script for TripleO Puppet

The following Puppet commands must be added to the yum_update script before starting the upgrade. The script is located at:

/home/stack/tripleo-heat-templates/extraconfig/tasks/yum_update.sh

  1. Update the following Puppet commands in the yum_update.sh after the line “echo -n "false" > $heat_outputs_path.update_managed_packages”.

    Refer to the following patch for details regarding the exact placement of the commands patch: https://github.com/Juniper/contrail-tripleo-heat-templates/blob/stable/newton/environments/contrail/yum_updates.patch

    yum install -y contrail-tripleo-puppet puppet-contrail

    rsync -a /usr/share/contrail-tripleo-puppet/ /usr/share/openstack-puppet/modules/tripleo/

  2. Update the fields *contrail version and *contrail repo in contrail-services.yaml.

    Default parameter for contrailVersion is 4.

    Filename:/home/stack/tripleo-heat-templates/environments/contrail/contrail-services.yaml.

    Add the following parameters:

    ContrailVersion: 4

    ContrailRepo : <location of the contrail repo>

    Note:

    /home/stack/tripleo-heat-templates directory is user defined and it can be the directory name under stack user.

Update the Overcloud Deployment Plan

  1. Update the current plan by re-running the command used for cloud deployment and adding the suffix - -update-plan-only.

    Example:

  2. Make a copy of the existing deploy script to the update-stack.sh. The update-stack.sh is the script used to update the overcloud plan, and it references the same templates that were used to deploy the stack. All files used for the overcloud update should be identical to the files used for deployment, except contrail-services file that was updated with the latest contrail-version and contrail-repo.

    cp deploy.sh update-stack.sh

  3. Update the deployment plan.

    ./update-stack.sh

    Example:

Upgrade the Overcloud

CAUTION:

The steps in this section are service disrupting, and should only be performed within a maintenance window.

  1. Update the overcloud stack.

  2. Verify the overcloud stack status, the contrail-status, and the contrail-version after the upgrade.

    Overcloud Stack Status

    Note:

    The openstack stack list output presentation has been modified for readability. The ID field was removed as part of this modification.

    Contrail Stack Status

    Contrail Version Check

Upgrade Cautions

CAUTION:

The steps to perform the overcloud upgrade are service disrupting, and should only be performed within a maintenance window.

Contrail-Named Services Remains Down After Upgrade

In rare cases, the contrail-named service stays down after an upgrade.

Workaround: Restart the service once using the service contrail-named restart command.

To identify and respond to this issue: