Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Setting Up the Overcloud for RHOSP 17.1

SUMMARY Follow this topic to setup the overcloud for a Contrail Networking deployment with RHOSP 17.1.

Follow this topic to setup the overcloud for a Contrail Networking deployment with RHOSP 17.1.

Contrail Networking was enhanced to operate with hosts using Red Hat Virtualization (RHV) in Contrail Networking Release 21.4.L4 or later. Prior to this enhancement, Contrail Networking was supported in environments with hosts using Kernel-based Virtual Machine (KVM) only.

These instructions apply to both environments unless otherwise noted. In cases where the running virtualization engine impacts this procedure, the steps to perform in environments using RHV or KVM are noted.

Configuring the Overcloud

Use this example procedure on the undercloud to set up the configuration for the overcloud.

  1. Specify the name server to be used:
  2. Retrieve and upload the overcloud images.
    1. Create the image directory:

    2. Retrieve the overcloud images from either the RDO project or from RHOSO 17.1.

    3. Upload the overcloud images:

  3. Prepare OpenStack’s bare metal provisioning (Ironic).

    The Ironic driver installation depends on the virtualization engine running for Red Hat Openstack:

    • Red Hat Virtualization (RHV, Contrail Networking Release 21.4.L2 and later): Use staging-ovirt to download the Ironic driver.

      See the Creating virtualized control planes document from Red Hat to enable the control plane with the staging-ovirt driver.

    • Kernel-based Virtual Machine (KVM, Contrail Networking Release 21.3 and earlier releases that support RHOSP16): Use the IPMI driver to download the Ironic driver.

      The IPMI driver download procedure is provided in these steps.

    Note:

    Make sure to combine the ironic_list files from the three overcloud KVM hosts.

    1. Add the overcloud VMs to Ironic:

    2. Introspect the overcloud node:

  4. Create Flavor:
  5. Copy the TripleO heat templates.
  6. Download and copy the Contrail heat templates from https://support.juniper.net/support/downloads.
  7. Create rhsm.yaml file with your RedHat credentials
  8. Create and upload the OpenStack containers.
    1. Create the OpenStack container file.

      Note:

      The container must be created based on the OpenStack program.

      OSP17.1

    2. Upload the OpenStack containers:

  9. Create and upload the Contrail containers.
    1. Create the Contrail container file.

      Note:

      This step is optional. The Contrail containers can be downloaded from external registries later.

      Here are few examples of importing Contrail containers from different sources:

      • Import from password protected public registry:

      • Import from Dockerhub:

      • Import from private secure registry:

      • Import from private insecure registry:

    2. Upload Contrail containers to the undercloud registry:

Customizing the Contrail Service with Templates (contrail-services.yaml)

This section contains information to customize Contrail services for your network by modifying the contrail-services.yaml file.

  • APPLY_DEFAULTS Settings customization - When Contrail is deployed for the first time, the default value of APPLY_DEFAULTS parameter in the ContrailDefaults section needs to be set to ’True’. This enables provisioning parameters present inside the template to use day0 configuration whenever a config provisioning container is restarted. Thus, the provisioning parameters are template driven and any changes to Contrail settings should be done through TripleO templates.

    Contrail Networking allows you to configure some global configuration parameters like VXLAN network id mode, linklocal configuration, IBGP auto mesh configuration, enabling 4byte_AS, and changing BGP Global ASN through its web user interface. If you want to manage your cluster through web user interface, then you need to set APPLY_DEFAULTS=False in ContrailDefaults section and deploy your cluster again by running openstack overcloud deploy. This additional step is required because when you have changed Contrail global configuration parameters through web user interface, then there is a possibility for these global configuration parameters to be overwritten if any config provisioner container is restarted. In order to avoid these values to be overwritten, set APPLY_DEFAULTS as ’False’ and deploy Contrail again by running openstack overcloud deploy command. As a result, the global configuration parameters remain unchanged as provisioning is not executed again.

    For example, if you set APPLY_DEFAULTS=False through TripleO template, deploy your Contrail cluster, set VxLAN Identifier Mode to ’User Configured’ from web user interface, and restart config provisioner container, then VxLAN Identifier Mode will remain ’User Configured’ after the restart of config provisioner container. On the contrary, if APPLY_DEFAULTS is set to True, then after the restart of config provisioner container, VxLAN Identifier Mode will change to its default value, which is Automatic.

    For example, if you set APPLY_DEFAULTS=False through TripleO template, deploy your Contrail cluster, set VxLAN Identifier Mode to ’User Configured’ from web user interface, and restart config provisioner container, then VxLAN Identifier Mode will remain ’User Configured’ after the restart of config provisioner container. On the contrary, if APPLY_DEFAULTS is set to True, then after the restart of config provisioner container, VxLAN Identifier Mode will change to its default value, which is Automatic.

  • Contrail Services customization

  • Contrail registry settings

    Here are few examples of default values for various registries:

    • Public Juniper registry

    • Insecure registry

    • Private secure registry

  • Contrail Container image settings

Customizing the Contrail Network with Templates

Overview

In order to customize the network, define different networks and configure the overcloud nodes NIC layout. TripleO supports a flexible way of customizing the network.

The following networking customization example uses network as:

Table 1: Network Customization

Network

VLAN

overcloud Nodes

provisioning

-

All

internal_api

710

All

external_api

720

OpenStack CTRL

storage

740

OpenStack CTRL, Computes

storage_mgmt

750

OpenStack CTRL

tenant

-

Contrail CTRL, Computes

Roles Configuration (roles_data_contrail_aio.yaml)

The networks must be activated per role in the roles_data file:

OpenStack Controller

Compute Node

Contrail Controller

Compute DPDK

Compute SRIOV

Compute CSN

Network Parameter Configuration (contrail-net.yaml)

Network Interface Configuration (*-NIC-*.yaml)

NIC configuration files exist per role in the following directory:

OpenStack Controller

Contrail Controller

Compute Node

Advanced vRouter Kernel Mode Configuration

In addition to the standard NIC configuration, the vRouter kernel mode supports VLAN, Bond, and Bond + VLAN modes. The configuration snippets below only show the relevant section of the NIC template configuration for each mode.

VLAN

Bond

Bond + VLAN

Advanced vRouter DPDK Mode Configuration

In addition to the standard NIC configuration, the vRouter DPDK mode supports Standard, VLAN, Bond, and Bond + VLAN modes.

Network Environment Configuration:

Enable the number of hugepages:

See the following NIC template configurations for vRouter DPDK mode. The configuration snippets below only show the relevant section of the NIC configuration for each mode.

Standard

VLAN

Bond

Bond + VLAN

Advanced vRouter SRIOV + Kernel Mode Configuration

vRouter SRIOV + Kernel mode can be used in the following combinations:

  • Standard

  • VLAN

  • Bond

  • Bond + VLAN

Network environment configuration:

Enable the number of hugepages:

SRIOV PF/VF settings:

The SRIOV NICs are not configured in the NIC templates. However, vRouter NICs must still be configured. See the following NIC template configurations for vRouter kernel mode. The configuration snippets below only show the relevant section of the NIC configuration for each mode.

VLAN

Bond

Bond + VLAN

Advanced vRouter SRIOV + DPDK Mode Configuration

vRouter SRIOV + DPDK can be used in the following combinations:

  • Standard

  • VLAN

  • Bond

  • Bond + VLAN

Network environment configuration:

Enable the number of hugepages

SRIOV PF/VF settings

The SRIOV NICs are not configured in the NIC templates. However, vRouter NICs must still be configured. See the following NIC template configurations for vRouter DPDK mode. The configuration snippets below only show the relevant section of the NIC configuration for each mode.

Standard

VLAN

Bond

Bond + VLAN

Advanced Scenarios

Remote Compute

Remote Compute extends the data plane to remote locations (POP) whilest keeping the control plane central. Each POP will have its own set of Contrail control services, which are running in the central location. The difficulty is to ensure that the compute nodes of a given POP connect to the Control nodes assigned to that POC. The Control nodes must have predictable IP addresses and the compute nodes have to know these IP addresses. In order to achieve that the following methods are used:

  • Custom Roles

  • Static IP assignment

  • Precise Node placement

  • Per Node hieradata

Each overcloud node has a unique DMI UUID. This UUID is known on the undercloud node as well as on the overcloud node. Hence, this UUID can be used for mapping node specific information. For each POP, a Control role and a Compute role has to be created.

Overview

Advanced Scenarios

Mapping Table

Table 2: Mapping Table

Nova Name

Ironic Name

UUID

KVM

IP Address

POP

overcloud-contrailcontrolonly-0

control-only-1-5b3s30

Ironic UUID: 7d758dce-2784-45fd-be09-5a41eb53e764

DMI UUID: 73F8D030-E896-4A95-A9F5-E1A4FEBE322D

5b3s30

10.0.0.11

POP1

overcloud-contrailcontrolonly-1

control-only-2-5b3s30

Ironic UUID: d26abdeb-d514-4a37-a7fb-2cd2511c351f

DMI UUID: 14639A66-D62C-4408-82EE-FDDC4E509687

5b3s30

10.0.0.14

POP2

overcloud-contrailcontrolonly-2

control-only-1-5b3s31

Ironic UUID: 91dd9fa9-e8eb-4b51-8b5e-bbaffb6640e4

DMI UUID: 28AB0B57-D612-431E-B177-1C578AE0FEA4

5b3s31

10.0.0.12

POP1

overcloud-contrailcontrolonly-3

control-only-2-5b3s31

Ironic UUID: 09fa57b8-580f-42ec-bf10-a19573521ed4

DMI UUID: 09BEC8CB-77E9-42A6-AFF4-6D4880FD87D0

5b3s31

10.0.0.15

POP2

overcloud-contrailcontrolonly-4

control-only-1-5b3s32

Ironic UUID: 4766799-24c8-4e3b-af54-353f2b796ca4

DMI UUID: 3993957A-ECBF-4520-9F49-0AF6EE1667A7

5b3s32

10.0.0.13

POP1

overcloud-contrailcontrolonly-5

control-only-2-5b3s32

Ironic UUID: 58a803ae-a785-470e-9789-139abbfa74fb

DMI UUID: AF92F485-C30C-4D0A-BDC4-C6AE97D06A66

5b3s32

10.0.0.16

POP2

ControlOnly preparation

Add ControlOnly overcloud VMs to overcloud KVM host

Note:

This has to be done on the overcloud KVM hosts

Two ControlOnly overcloud VM definitions will be created on each of the overcloud KVM hosts.

Note:

The generated ironic_list will be needed on the undercloud to import the nodes to Ironic.

Get the ironic_lists from the overcloud KVM hosts and combine them.

Import:

ControlOnly node introspection

Get the ironic UUID of the ControlOnly nodes

The first ControlOnly node on each of the overcloud KVM hosts will be used for POP1, the second for POP2, and so and so forth.

Get the ironic UUID of the POP compute nodes:

The first two compute nodes belong to POP1 the second two compute nodes belong to POP2.

Create an input YAML using the ironic UUIDs:

Note:

Only control_nodes, compute_nodes, dpdk_nodes and sriov_nodes are supported.

Generate subcluster environment:

Check subcluster environment file:

Deployment

Add contrail-subcluster.yaml, contrail-ips-from-pool-all.yaml and contrail-scheduler-hints.yaml to the OpenStack deploy command:

Installing Overcloud

Perform the following procedure to install Overcloud.

  1. Deployment:
  2. Validation Test: