Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

Deploying ML2 Plug-in with Red Hat OpenStack

 

Starting in Contrail Networking Release 2011, the ML2 Neutron plug-in is used to integrate OpenStack with Contrail Networking Fabric. Follow these steps to deploy ML2 plugin with Red Hat OpenStack 13 (RHOSP 13).

Deploy Contrail Command and CFM without Orchestrator

Follow these steps to deploy Contrail Command with intermediate OpenStack Keystone.

  1. Deploy Contrail Command.
    1. Prepare input data for Contrail Command deployer.
    2. Deploy Contrail Command deployer.
  2. From the Contrail Command UI, deploy Contrail Control nodes and select None when selecting orchestrator.

Configure Fabric by using Contrail Command

Follow these steps to configure fabric by using Contrail Command

Ensure that the following requirements are met.

  • Switches are configured to provide connectivity for RHOSP networking.

  • Names of servers are used as host names in RHOSP deployments.

  • Virtual port groups that are created for deployment on ports and that are used by the fabric, conforms to ML2 naming convention.

    • For OVS ports, there is one virtual port group for every control node.

      ML2 naming convention: `vpg#{base64(nodename)`.

      These virtual port groups are not used for SRIOV ports.

    • For SRIOV ports, there is one virtual port group for every pair of compute node and physical network.

      ML2 naming convention: `vpg#{base64(nodename)}#{base64(physnet)}`

      All SRIOV ports need are tagged with the name of the physical network they are associated to. For example, `label=tenant1`.

    • UUID of the virtual port group is set as a result of the uuid.uuid3(uuid.NAMESPACE_DNS, str(name)) Python function.

    • Created virtual port groups for all networks used in OOO provisioning.

      The following script for creating virtual port groups is provided in the config-api container. This script is used for creating the infrastructure ports that are needed for RHOSP deployment.

    • Add servers to Contrail Command.

      The server name should match the name that the node will inherit once OOO provisioning is complete. hostname_map.yaml is used here.

      Follow these steps to import servers by using the Contrail Command UI.

      1. Navigate to Infrastructure>Servers and click Import.

        The Import Server pop-up is displayed.

      2. To import a server, click Browse and navigate to the local directory and select the .json file.

        Alternatively, you can drag and drop the .json file in the Drag a file here, or browse pane.

      3. Click Import to import the server.
    • Import Node (Server) Profiles.

      Follow these steps to import node profiles by using the Contrail Command UI.

      1. Navigate to Infrastructure>Servers and click the Server Profiles tab.

        The Import Server Profile pop-up is displayed.

      2. To import a server profile, click Browse and navigate to the local directory and select the .json file.

        Alternatively, you can drag and drop the .json file in the Drag a file here, or browse pane.

      3. Click Import to import the server profile.
    • Associate node profiles (server profiles) and assign tags to SRIOV port only.

      Follow these steps to associate node profiles to servers by using the Contrail Command UI.

      1. Navigate to Infrastructure>Servers.

        The Servers page is displayed.

      2. Select the server you want to assign a server profile to by selecting the check box next to the name of the server.
      3. Click Assign to server profile.

        The Assign Server Profile pop-up is displayed.

      4. Select the server profile from the Server Profile list and click Assign.

        The profile is now assigned.

        Sample Server Profile

Deploy RHOSP13 with ML2 Plug-in

Follow these steps to deploy RHOSP13 with ML2 plug-in.

For detailed instructions on deployment, see RHOSP13 DIRECTOR INSTALLATION AND USAGE.

  1. Prepare Heat templates working folder.
  2. If you use Nova Scheduler Hints for node placement,
    1. Set appropriate capabilities properties for baremetal nodes.

      Example Output

    2. Prepare scheduler hints environment (scheduler_hints.yaml) file.

  3. If you use custom hostnames during server onboarding in Contrail Command, prepare hostname_map.yaml.
  4. Modify compute role file to include OS::TripleO::Services::NeutronDhcpAgent service.
  5. Prepare network parameters (params.yaml).
  6. Adjust options in the setup in the tripleo-heat-templates/environments/contrail/contrail-plugins-ml2.yaml file.

    This configuration will ensure that the ML2 Plugin ignores all TungstenFabric ports that contains any one of the following tags.

  7. Prepare NIC files corresponding to the setup network layout.

    Example for Compute tenant network to use VLANS without tunneling.

    Example for SRIOV.

  8. Upload Contrail containers to undercloud registry.
  9. Deploy OpenStack.
  10. After OpenStack is deployed, save internal virtual API.

Configure Connectivity between RHOSP Internal API Network and Contrail Command Virtual Machines

To configure connectivity between RHOSP internal API network and Contrail Command virtual machines, assign an IP from the network to an interface of the virtual machine.

Add Red Hat OpenStack Orchestrator

You can add Red Hat OpenStack Orchestrator by using the Contrail Command user interface.

Follow these steps to add Red Hat OpenStack Orchestrator.

  1. Navigate to Infrastructure>External Systems.

    The External Systems page is displayed.

  2. Click Add Orchestrator and select RedHat OpenStack from the list.

    The Add OpenStack page is displayed.

  3. Enter OpenStack Keystone endpoint IP address in the IP address field.
  4. Enter OpenStack Keystone auth user name in the Username field.
  5. Enter OpenStack Keystone auth password.
  6. Click Additional Configuration and enter the information as given in Table 1.

    Table 1: Additional Configuration

    Field

    Action

    Domain Name

    Specify the name of the OpenStack project domain.

    The default value is Default.

    Protocol

    Select the Keystone protocol you want to use for this configuration.

    URL Version

    The URL version for keystone authentication is /v3 by default.

    Tenant

    Specify the tenant for Keystone authentication.

    The default value is admin.

    Region Name

    Enter the name of the OpenStack-managed region within the data center.

    The default value is RegionOne.

    Public port

    Enter the port number to connect to Keystone authentication server.

    The default value is 5000.

  7. Click Add to add the orchestrator.

Create Swift Containers in OpenStack

Create a swift container and name it ”contrail_container” with public read and list permissions. You can create a swift container from the Openstack UI.

Follow these steps to create a swift container by using the OpenStack UI.

  1. Navigate to Project>Object Store>Containers.

    The Containers page is displayed.

  2. Click +Container to create a container.

    The Create Container pop-up is displayed.

  3. Enter a name for the container in the Container Name field.
  4. Select Public from the Container Access options to enable anyone with the public URL to gain access to objects in the container.
  5. Click Submit to create container.

(Optional) Deploy AppFormix and sFlows

Install AppFormix and xFlows by using appformix-ansible-deployer. Ensure that instance.yml has information on OOO and Keystone.

After you have installed Contrail and Red Hat OpenStack, follow these steps to install AppFormix HA and xFlows HA.

Follow these steps to install AppFormix HA.

Before you begin, ensure that Python3 is installed on xFlow nodes.

  1. Navigate to contrail_command container.
  2. Make a copy of the /var/tmp/contrail_cluster/<uuid1>/instances.yml file.
  3. Edit instances.yml to include appformix_controller role and appformix_bare_host role in all nodes that are monitored. Include appformix_openstack_controller role in OpenStack node.
  4. Log into the Contrail Command container.

    The ansible files are now downloaded and the inventory file in /opt/software/appformix/inventory directory is generated.

  5. Navigate to https://ssd-git.juniper.net/appformix/AppFormix/wikis/appformix-installation-for-openstack-in-ha and add the following to the

    /opt/software/appformix/inventory/hosts file.

    /opt/software/appformix/inventory/group_vars/all file.

Follow these steps to install xFlow HA.

  1. Identify the Contrail Cluster ID from the /contrail-clusters API by using a debugger.
  2. Add appformix_flows role to the node in the instances.yml file, where you want to install xFlows.

    Sample instances.yml file snippets.

    in-band installation of xFlows.

    xflow_configuration for out-of-band installation of xFlows.

  3. After AppFormix and xFlows installation is completed, add endpoints.

    Navigate to Infrastructure>Cluster>Advanced Options>Endpoints page in the Contrail Command UI and click Create to add endpoints.

Sample Network Files

  • tripleo-heat-templates/network/config/single-nic-vlans/role.role.j2.yaml

  • tripleo-heat-templates/network/config/single-nic-vlans/compute-sriov.yaml

Release History Table
Release
Description
Starting in Contrail Networking Release 2011, the ML2 Neutron plug-in is used to integrate OpenStack with Contrail Networking Fabric.