Installing Avi Vantage for OpenStack

Overview

This guide describes how Avi Vantage integrates into an OpenStack cloud. It includes the Avi UI installation steps for a variety of deployment modes.

Introduction

Avi Vantage is a software-based solution that provides real-time analytics as well as elastic application delivery services. Avi Vantage optimizes core website functions including SSL termination and load balancing. Avi Vantage also provides access to network analytics, including end-to-end latency information for traffic between end-users and the load-balanced applications.

Avi Vantage’s unique Controller-based architecture with integration into virtual infrastructure and cloud orchestrators enables true automated horizontal scaling where data plane capacity expands and contracts dynamically based on workload. When deployed into an OpenStack cloud, Avi Vantage performs as a fully distributed, virtualized system consisting of the Avi Controller and Avi Service Engines (SEs), each running as a separate virtual machine (VM).

  • Avi Controller: VM that acts as a single point of control and management with OpenStack and is integrated with Nova, Keystone, Neutron, and Glance to allow seamless multitenancy support for scalable performance. Based on the configuration, the Controller places new services on existing VMs if there is a room, or spins up a new VM, if needed. The Controller deploys an SE VM as needed when a tenant creates a virtual service or VIP for load balancing. Management access and analytics are provided through a web-based interface and REST-based API. The Controller manages the life cycles of the SEs by creating, controlling, and eventually deleting them. The Controller stores and manages all policies related to services and management. The Controller also provides a central point of contact for other cloud infrastructures and can manage resources in multiple infrastructures simultaneously. For instance, the Controller can be configured to communicate with both an OpenStack Controller and a VMware vCenter server to manage resources in each type of cloud.

  • Avi Service Engine (SE): VM that receives the end-user traffic and provides application delivery services, while also collecting real-time end-to-end metrics for traffic between end-users and applications. The Controller creates an SE VM, plumbs it into a network, and provisions it with a service policy. The service policy is required to deploy a virtual service (VS), which consists of IP address and TCP/UDP port number that together represent a load-balanced service.

OpenStack Integration

Avi Vantage integrates with OpenStack infrastructure components to provide centralized automation, monitoring, and management of application discovery and delivery.

Avi Vantage integrates with the following OpenStack services:

  • Keystone: Avi Controller uses Keystone API to authenticate any OpenStack user accessing Avi API. Also, when an OpenStack user logs in, Avi Controller can also automatically import tenant/project and role information from Keystone to provide appropriate privileges on Avi Controller.
  • Glance: Avi Controller uses Glance for storing Service Engine (Avi SE) image.
  • Nova: Avi Controller uses Nova API to automatically create and destroy application delivery Service Engines (Avi SEs) as needed to support high availability and performance guarantees.
  • Neutron: Avi Controller uses Neutron API to plug Service Engines into right Neutron networks for receiving and sending the application traffic.
  • Neutron LBaaS (v1 or v2): You can either use Avi Controller API or UI or CLI to directly configure load balancer instances. The OpenStack admins can also install Avi LBaaS driver on the Neutron API servers and enable Avi as a provider for Neutron LBaaS API.

    Note for Avi Vantage 16.3.x installations: If any pre-16.3.x versions of the Neutron-LBaaS Avi driver were installed, then installing or upgrading to Avi Vantage 16.3.x requires upgrading the corresponding Avi driver to the 16.3.x version as well. Earlier versions of the Avi driver are incompatible with Avi Vantage 16.3.x.

  • Horizon: OpenStack admins can also install Avi Horizon Dashboard extensions to expose full Avi UI directly embedded in Horizon Dashboard. Users can then not only configure load balancer instances but can also access the full analytics of their applications.
  • Heat: OpenStack admins can also install Avi Heat package on the Heat Engine servers to expose all Avi Controller API resource types for users to use in their heat templates. In contrast to LBaaS (v1 or v2) resource types, Avi Heat resource types expose significantly advanced features.

Here is how Avi Vantage integrates into an OpenStack cloud:

Port Security and Allowed Address Pairs (AAP)

Neutron’s security group always applies anti-spoof rules to the VMs. This allows traffic to originate from and terminate at the VM as expected, but prevents traffic from passing through the VM. This is required in cases where the VM routes traffic through it. To run network services in VM instances (for instance, router service in VM [router_plugin_cisco], [vyatta_l3_plugin] or firewall service in VM), some services for VMs should be able to receive/send all packets without any kind of firewall, security group, or anti-spoofing on the port. This is a basic requirement to run network service within VMs. Services requiring it or not, depends on the type of service.

The port_security_enabled of network is used as the default attribute value at port creation. When the attribute is set to True (by default), the behavior remains the same to the one without portsecurity extension, security group and anti spoofing will act as before. When the attribute is set to False, security group and anti spoofing are disabled on the port, and it is not allowed to set security group or allowedaddresspair with such ports. Since this feature is related to security, only the tenant owner is allowed to set/change the attribute.

Avi Vantage Support for Port Security

Handle Port-Security and Allowed-Address-Pair (AAP) settings appropriately for the SE and Controller ports. If port-security is enabled, the ports are used in AAP mode. If port-security is disabled, the Controller ports are untouched, and the SE ports are created with security disabled.

Set port-security to False by default. Do not use it unless explicitly requested by the configuration.

Deployment Modes

Avi Vantage can be deployed into an OpenStack cloud in one of the following modes. These modes differ depending on whether the Avi Controller and Service Engines (SEs) are placed in the same OpenStack tenant, and whether Neutron LBaaS API or Avi Vantage API is used to create load balancers.

  • Single-tenant mode: The Avi Controller and the SEs are deployed together in the same single tenant. The Avi Controller has administrator privileges within the tenant. Tenant users who have administrator privileges within the tenant can install and manage Avi Vantage. (You must use this deployment mode if you do not have administrator privileges for the cloud.)
  • Avi-managed LBaaS mode: The Avi Controller and SEs are installed in separate tenants. The Controller has administrator privileges for the cloud and can manage SEs that are in different tenants. A tenant administrator can log onto the Avi Controller to manage the infrastructure resources within her or his own tenant but cannot access the resources within other tenants. The tenant administrator can configure and manage load balancing services through the Avi Controller web interface or through the Avi REST API.
  • OpenStack-managed LBaaS mode: Similar to Avi-managed LBaaS mode, except the tenant administrator configures and manages load-balancing services through OpenStack’s Neutron service and Horizon dashboard. Neither the Controller web interface nor Avi API are used. (This mode also requires installation of an LBaaS driver and SSL extension from Avi Networks).

Note: The Avi-managed LBaaS option is recommended for its ease of use and advanced feature accessibility.

The following table compares each deployment mode:

Single-tenant Mode Avi-managed LBaaS Mode OpenStack-managed LBaaS Mode
Administrator privileges for cloud required No Yes Yes
Managed by tenant user No Yes Yes
Automated tenant creation N/A Yes Yes
Advanced load-balancing features Yes Yes Limited
Analytics service Yes Yes Yes
Avi LBaaS driver install required No No Yes
Avi extension for Horizon dashboard required No No Yes (required for SSL offload and analytics)

Deployment Prerequisites

The physical and software requirements differ depending on the deployment mode.

Virtual Machine Requirements

The following table lists the minimum requirements for the VMs on which the Avi Controller and SEs are installed:

Component Memory vCPUs HD
Avi Controller 24 GB 8 64 GB
Service Engine 2 GB 2 10 GB

Add 3 GB for each additional vCPU in a Controller. Add 1GB for each additional vCPU in an SE.

If you allocate more than the minimum number of vCPUs required, ensure that you also allocate at least the minimum required additional memory. Cloud administrators can create multiple flavors of the Avi Vantage Controller image with different resource allocations (for instance, “avi_ctrl.small” with the minimum required resources, and “avi_se.medium” with more resources).

Software Requirements

The following table lists the software requirements:

Note: Refer System Requirements: Ecosystem article for the latest interoperability data.

Software Version
Avi Controller 16.3
OpenStack (and Neutron service) One of the following: Havana, Icehouse, Juno, Kilo, Liberty, Mitaka, Newton, Pike
Neutron extension for allowed-address-pair and/or port-security
Avi LBaaS driver 16.3
Avi SSL extension for OpenStack Horizon 16.3

The Avi Vantage image is available as a qcow2 or raw image of the Controller and SEs. The SE software is embedded in the Controller image and does require separate installation.

The Avi LBaaS driver is required only for OpenStack-managed LBaaS mode. The SSL extension for OpenStack Horizon is required only for OpenStack-managed LBaaS mode. (This driver adds tabs to Horizon for accessing the Controller.)

Note: Installation of Avi Vantage into DevStack is supported only if the DevStack/Nova-launched Virtual Machine (VMs) can run in Kernel-based Virtual Machine (KVM) mode, as opposed to Quick Emulator (QEMU) mode. Refer DevStack KVM Guide for more information.

Protocol Ports used by Avi Vantage for Management Communication

In an OpenStack deployment, the Avi Controller and Avi Service Engines use the following ports for management. The firewall should allow traffic for these ports.

Traffic Source Traffic Destination Ports To Allow
Avi Controller Avi Controller TCP 22 (SSH)
TCP 8443
TCP 5054
Avi Service Engine TCP 22
Management Net See section below the table.
Avi Service Engine Avi Controller TCP 22
TCP 8443
UDP 123
Management Net TCP 22
TCP 80 (optional)
TCP 443
TCP 5054 (if using the optional CLI shell for remote management access)

Ports Used by Controller for Network Services

The Controller may send traffic to the following UDP ports as part of network operation:

  • TCP 25 (SMTP)
  • UDP 53 (DNS)
  • UDP 123 (NTP)
  • UDP 162 (SNMP traps)
  • UDP 514 (Syslog)

The firewall also should allow traffic from the Controller to these ports.

Importing User Accounts from Keystone

Using the Avi REST API, user roles can be exported from Keystone into the Avi Controller and directly mapped to role names in the Controller. The accounts do not need to be recreated on the Controller. Here is an example:

"openstack_configuration": 
{
    ....
    "role_mapping": [
       {"os_role": "admin",
        "avi_role": "Tenant-Admin"},
       {"os_role": "_member_",
        "avi_role": "Tenant-Admin"},
       {"os_role": "*",
        "avi_role": "Application-Operator"}
    ],
    ....
}

The role_mapping parameter is an ordered list, where each item specifies how a Keystone role (os_role) maps to a role in the Controller (avi_role). A default mapping can be defined for any Keystone role by specifying the “ /* ” wildcard for the os_role field. In the above example, roles admin and member from Keystone are mapped to the role Tenant-Admin in the Controller. Further, any other role from Keystone is mapped to role Application-Operator on the Controller.

In the following example, only users with role lbaas_project_admin are allowed to access the Controller:

"openstack_configuration": 
{
    ....
    "role_mapping": [
       {"os_role": "lbaas_project_admin",
        "avi_role": "Tenant-Admin"}
    ],
    ....
}

Configuring Metadata for Avi SEs

In some OpenStack environments, ‘config_drive’ support is either absent or not installed properly. Also, sometimes customers prefer that Avi SEs does not use ‘config_drive’, since using it to configure the VM might prevent SE migration under certain conditions.

Starting in Avi Vantage release 16.2, a new Avi Vantage OpenStack configuration option uses metadata instead of ‘config_drive’ for SE VMs. To have Avi Vantage use metadata, disable ‘config_drive’. At this point, this can be done only via the CLI or the REST API:

CLI Example


: > configure cloud Default-Cloud
: cloud> openstack_configuration
: cloud:openstack_configuration> no config_drive
: cloud:openstack_configuration> save
: cloud> save

Deploying Single-tenant Mode

This section provides the steps for deploying Avi Vantage into an OpenStack cloud in single-tenant mode.

OpenStack-deploy-topo-tenantmode

In single-tenant mode, the Avi Controller and SEs are installed in the same tenant and have member privileges for that tenant. The member privilege grants the Avi Controller full access to the tenant so that it can automatically spin-up and spin-down an SE. Each tenant is responsible for installing and operating Avi Vantage.

Deployment Process

The following are the steps to install Single-tenant:

  1. Add the Avi Controller qcow2 or raw image into the tenant from Glance.
  2. Create a management network for the Avi Controller and SEs.
  3. Create a security group.
  4. Deploy an Avi Controller instance and assign a floating IP address to it.
  5. Create a security group to allow Avi management traffic.
  6. Use the setup wizard to perform initial configuration of the Controller.

Detailed steps are provided below.

Uploading Controller Image

The following are the steps to upload Controller image:

  1. Copy the Avi Vantage Controller image onto your hard drive.
  2. Log in to OpenStack tenant account in the Horizon dashboard.
  3. Navigate to Project > Images.
  4. Click on Create Image and fill out the form.

Creating Management Network

A management network is required for communication between the Avi Controller and the SEs. An existing network can be used but a dedicated management network is recommended.

  1. In Horizon Dashboard, navigate to Network > Networks.
  2. Click on Create Network and follow the wizard’s instructions. For example:
    • Network name: avi-mgmt
    • DHCP: Enabled
  3. Connect the network to your neutron router.
    a) Navigate to Network > Routers.
    b) On the Name column in the router list, click on Router to add an interface to the network.
    c) Click on Interfaces tab, and then click on Add Interface.

Creating Security Group

A security group is required to allow the Controller and SEs to exchange management traffic. The group specifies the protocol ports for which traffic will be allowed.

  • For ingress traffic, the group must allow these ports.
  • For egress traffic, the group can allow all ports.

Note: The Controller automatically creates a security group for the SEs.

Following are the steps to create a security group (in this example, “Avi-mgmt-sg”) and to allow management traffic:

  1. In Horizon Dashboard, navigate to Project > Access & Security, and click on Create Security Groups button.
  2. Add rules as shown in the following example, where 192.168.10.0/24 is the management network.
    openstack-portgroup-excerpt

Deploying Controller and Assigning it to a Floating IP

Following are the steps to deploy an Avi Controller instance:

  • Flavor: Deploy m1.xlarge or bigger.
  • Network: Use avi-mgmt to attach the Controller to the management network.
  • Security group: Use avi-mgmt-sg to allow management traffic.
  • Enable config-drive.

Following are the steps to assign a floating IP address to the Controller:

  1. In Horizon Dashboard, navigate to Project > Compute > Access & Security.
  2. Assign the floating IP address:
    a) If no floating IP address is available, click on Allocate IP to Project.
    b) If a floating IP address is available, associate it with the Avi Controller instance.

Performing Initial Controller Setup

This section shows how to perform initial configuration of the Avi Controller using its deployment wizard. You can change or customize settings following initial deployment using the Avi Controller’s web interface.

Note: While the system is booting up, a blank web page or 503 status code may appear. In this case, wait for 5 to 10 minutes; then follow the instructions for the setup wizard.

  1. Configure basic system settings:
    • Administrator account
    • DNS and NTP server information
    • Email and SMTP information

    OpenStack Install Admin

    Email SMTP Settings

  2. Set the infrastructure type to OpenStack:

    Controller Setup Infra OpenStack

  3. Enter OpenStack settings:
    a) Provide the tenant user credentials (username, password).
    b) NEW in 16.3
    • If you are using Keystone V3 and want to provide an user in the non-default domain, then you need to use the notation “user@domain-name” for Username field. For example:


      openstack-v3-user-config</li>

    • If a username ‘test’ is created as a Keystone v3 user in a domain named ‘default’, then you need to explicitly specify ‘test@default’ while logging into the Avi Controller. If the domain name is not specified, Avi Vantage looks for a domain with UUID ‘default’ and not the name ‘default’. If no domain with a UUID ‘default’ exists, Keystone returns the error “invalid user/password.”</li>
    • When Keystone v3 is in use (as specified in auth_url), if the user wishes to configure his/her username to be an email address, then the user needs to ensure that an extra @ (at-sign) is added at the end of the email address so that Avi Vantage can interpret the domain names correctly. For instance, enter foo@gmail.com@ if user foo@gmail.com is in the ‘Default’ domain on Keystone. Else, if that user is in some other domain, for instance, dom, then foo@gmail.com@dom. should be used.
    • Using the full value in the Keystone Auth URL field, Avi Vantage determines the Keystone API version automatically. When the auth URL is a secure URL (HTTPS), an option to either allow or disallow self-signed certificates will show up (as seen in the screenshot below). You should disable that checkbox in a production environment, since OpenStack services should use proper, trusted certificates.
      c. Enable (check) the Keystone Auth option.

    openstack-login-v2-full

    openstack-login-v3-cert

  4. In Management Network window, select a tenant. In this deployment, it should be the same tenant into which the Avi Controller is deployed. Choose the management network created previously.


    ctlr-setup-mgmtnetwork-161

  5. In Keystone Role Mapping window, select an Avi Vantage user role to use as the default user role:


    ctlr-setup-openstack-keystonemapping-161

    If an Avi Vantage user who logs in with valid Keystone credentials, but with a role that does not have the same name as any of the user roles defined on the Controller, the default role is assigned to the user. To disallow access to any user who does not have a role that is defined on the Controller, leave the selection empty (None).

  6. In Virtual Service Placement Settings window, select Import Tenants to import from tenants Keystone and click on Next. Then, in Support Multiple Tenants window, click on No.

ctlr-setup-vsplacement-openstack-161

  1. To verify installation, navigate to Infrastructure > Clouds, click on Default-Cloud, then click on Status button. If the status is green, the installation is successful.
    openstack-deploy-verify-162

Neutron SDN Plugin Integration

Avi Vantage integrates with the following Neutron SDN plugins to provide VIP placement and floating-IP (FIP) association to VIP.

Nuage SDN

During cloud configuration, select Integration with Nuage VSD checkbox and provide the VSD host, port and authentication details.

a.1 Nuage-OpenStack-DefClouda.1 Nuage-OpenStack-DefCloud2

If you are creating a new cloud, the wizard looks as follows:

Nuage-OpenStack-NewCloud wizard setup

Contrail SDN

Using the Avi UI

During Cloud configuration, select Integration with Contrail checkbox and provide the endpoint URL of Contrail VNC API-server. The Keystone credentials from the OpenStack configuration will be used to authenticate with the API-server service.

Note: Contrail-Interface-IP is handled gracefully by Avi Vantage. So, creating and editing the cloud should be left intact while integrating Contrail SDN under Network Settings.

b.1 Contrail-OpenStack-DefCloud

If you are creating a new cloud, the wizard looks as follows:

b.2 Contrail-OpenStack-NewCloud

If you are editing an existing cloud, the cloud editor looks as follows:

cloud editor

Using the Avi CLI

: > configure cloud oscontrail
: cloud> vtype cloud_openstack
: cloud> openstack_configuration
: cloud:openstack_configuration>
: cloud:openstack_configuration> privilege write_access
: cloud:openstack_configuration> username admin
: cloud:openstack_configuration> password xxxyyyzzz
: cloud:openstack_configuration> admin_tenant admin
: cloud:openstack_configuration> mgmt_network_name avi-mgmt
: cloud:openstack_configuration> region RegionOne
: cloud:openstack_configuration> use_keystone_auth
: cloud:openstack_configuration> import_keystone_tenants
: cloud:openstack_configuration> no use_admin_url
: cloud:openstack_configuration> auth_url http://172.16.11.50:5000/v2.0
: cloud:openstack_configuration> no neutron_rbac
: cloud:openstack_configuration> contrail_endpoint http://10.10.10.100:8082
: cloud:openstack_configuration> role_mapping os_role * avi_role Tenant-Admin
New object being created
: cloud:openstack_configuration:role_mapping> save
: cloud:openstack_configuration> save
: cloud> save

Deploying Avi-managed LBaaS Mode

This section provides the steps for deploying Avi Vantage into an OpenStack cloud in Avi-managed LBaaS mode.

OpenStack-deploy-topo-avilbaas

Avi-managed LBaaS mode provides tenant users with the advantages of Avi Vantage, without the need for them to perform deployment or maintenance of Avi Vantage. Instead, the cloud administrator deploys and manages Avi Vantage. The Controller and SEs in the administrative tenant are shared by other tenants. Users of those tenants are able to secure and optimize their applications using the Avi Vantage resources that reside in the administrative tenant.

Note: Although using an existing tenant instead of creating a new one is supported, it is recommended to create a new tenant for easy maintenance.

Deployment Process

The following are the steps to deploy Avi-managed LBaaS mode:

  1. Create a tenant for the Controller and SE.
  2. (Optional) Create multiple flavors of the Avi Vantage image, with different resource allocations to fit different sizes of user tenant. (For instance, “avi_ctrl.small” and “avi_se.medium”.)
  3. Upload the Avi Controller qcow2 or raw image into the tenant from Glance.
  4. Create a management network for the Avi Controller and SEs.
  5. Create a security group to allow Avi management traffic.
  6. Deploy an Avi Controller instance and assign a floating IP address to it.
  7. Use the setup wizard to perform initial configuration of the Controller.

Detailed steps are as follows:

Creating a Tenant for the Controller and SEs

  1. Log into OpenStack Horizon dashboard with an account that has cloud administrator privileges.
  2. Navigate to Identity > Projects.
  3. Click on New Project and follow the wizard’s instructions.
  4. Follow the instructions of the tenant creation wizard. For Avi Vantage deployment, use the following settings:
    a. Enter a project name, for instance, ‘avi-tenant’.
    b. Click on Project Members tab.
    c. Add a user account to Project Members and assign the ‘admin’ role to the account.
    d. Click on Quota tab and modify the maximum resources. These settings allow for three Avi Controllers (for redundancy), up to 1000 SEs and some other managerial instances, if required.

Screen Shot 2017-02-07 at 11.37.13 AM

Creating Multiple Flavors of Controller Image

Use these steps to create multiple flavors of Avi Vantage, avi_ctrl.small and avi_se.medium.

  1. In Horizon dashboard, navigate to Admin > System > Flavors and click on Create Flavor.
  2. Fill out the forms for flavor ‘avi_ctrl.small’. Assign minimal resources to this flavor.
  3. Repeat for ‘avi_se.medium’ but assign more resources to this flavor than to the ‘avi_ctrl.small’ flavor.

Uploading Controller Image

  1. Copy the Avi Vantage Controller qcow2 image onto your hard drive.
  2. In Horizon dashboard, navigate to Project > Images.
  3. Click on Create Image and fill out the form. Use the following resource allocations:
    a. Minimum disk: 64 GB
    b. Minimum memory: 24 GB

Creating Management Network

A management network is required for communication between the Avi Controller and the SEs. An existing network can be used but a dedicated management network is recommended.

  1. In the Horizon dashboard, navigate to Network > Networks.
  2. Click on Create Network and follow the wizard’s instructions. For instance:
    • Network name: avi-mgmt
    • DHCP: Enabled
  3. Connect the network to your Neutron router.
    a. Navigate to Network > Routers.
    b. On the Name column in the router list, click on Router to add an interface to the network.
    c. Click on Interfaces tab and then click on Add Interface.

Creating Security Group

A security group is required to allow the Controller and SEs to exchange management traffic. The group specifies the protocol ports for which traffic will be allowed. For ingress traffic, the group must allow these ports.

For egress traffic, the group can allow all ports.

Note: The Controller automatically creates a security group for the SEs.

To create a security group (for instance, “Avi-mgmt-sg”) to allow management traffic:

  1. Navigate to Project > Access & Security, and click on Create Security Groups.
  2. Add rules as shown in the following example, where 192.168.10.0/24 is the management network.

Deploying Controller and Assigning it to a Floating IP

Deploy an Avi Controller instance:

  • Flavor: Deploy avi_ctrl.small or bigger.
  • Network: use avi-mgmt to attach the Controller to the management network.
  • Security group: use avi-mgmt-sg to allow management traffic.
  • Enable config-drive.

To assign a floating IP address to the Controller:

  1. In Horizon dashboard, navigate to Project > Compute > Access & Security.
  2. Assign the floating IP address:
    • If no floating IP address is already available, click on Allocate IP to Project.
    • Otherwise, if a floating IP address is already available, associate it with the Avi Controller instance.

Performing Initial Controller Setup

This section shows how to perform initial configuration of the Avi Controller using its deployment wizard.

You can change or customize settings following initial deployment using the Avi Controller’s web interface:

  1. Configure basic system settings:
    • Administrator account
    • DNS and NTP server information
    • Email and SMTP information


    email_SMTP_settings

  2. Set the infrastructure type to 'OpenStack':

    ctlr-setup-infra-openstack-161</li>

  3. Enter OpenStack settings:
    • Tenant user credentials (username, password)
    • NEW IN 16.3
      • If you are using Keystone V3 and want to provide an user in the non-Default domain, then use the notation "user@domain-name" for the 'Username' field.
      • If a username 'test' is created as a Keystone v3 user in a domain named "default," then explicitly specify "test@default" when logging into the Avi Controller. If the domain name is not specified, then Avi Vantage looks for a domain with UUID 'default' and not the name 'default'. If no domain with a UUID 'default' exists, Keystone returns the error "invalid user/password."
      • When Keystone v3 is in use (as specified in auth_url), if the user wishes to configure his/her username to be an email address, then ensure to add an extra @ (at-sign) at the end of the email address so that Avi Vantage can interpret the domain names correctly. For instabce, enter foo@gmail.com@ if user foo@gmail.com is in the 'Default' domain on Keystone. Else, if that user is in some other domain, for instance, dom, then use foo@gmail.com@dom.
      • Using the full value in the Auth URL field, Avi Vantage determines the Keystone API version automatically. When the auth URL is a secure URL (HTTPS), an option to either allow or disallow self-signed certificates will show up (as seen in the screenshot below). Ensure that you disable that checkbox in a production environment, since OpenStack services should use proper, trusted certificates.
    • IP address of Keystone server
    • Enable (check) Keystone Auth option.

    openstack-deploy-openstacklogin-selectkeystone

  4. In Management Network window, select a tenant. In this deployment, it should be the same tenant into which the Avi Controller is deployed. Choose the management network created previously.

    ctlr-setup-mgmtnetwork-lbass-mgdmode-161</li>

  5. In Keystone Role Mapping window, select an Avi Vantage user role to use as the default user role:

    ctlr-setup-openstack-keystonemapping-161

    If an Avi Vantage user logs in with valid Keystone credentials, but with a role that does not have the same name as any of the user roles defined on the Controller, the default role is assigned to the user. To instead disallow access by any user who does not have a role that is defined on the Controller, leave the selection empty (None).
  6. In Virtual Service Placement Settings window, select Import Tenants to import from tenants Keystone and click on Next. Then, in Support Multiple Tenants window, click on Yes.

    ctlr-setup-vsplacement-openstack-161

  7. In Tenant Settings window, select the following settings:
    • Per tenant IP route domain
    • Service Engines are managed within the provider context, shared across tenants
    • Tenant has Read Access to Service Engines

    openstack-deploy-openstackmulttenantsettings

  8. Navigate to Infrastructure > Clouds and select Default-Cloud.
  9. Click on Service Engine Group tab.
  10. Click on the Edit icon on the right end of Default-Group.
  11. Ensure that compact placement is selected and Max Number of Service Engines is high enough to meet the needs of all tenants. Screen Shot 2016-07-13 at 12.50.49 PM
  12. To verify installation, navigate to Infrastructure > Clouds, click on Default-Cloud, then click on Status button. If the status is green, then installation is success.
    openstack-deploy-verify-162
  13. </ol> ## Deploying OpenStack-managed LBaaS Mode OpenStack-managed LBaaS mode includes the same deployment steps as Avi-managed LBaaS mode. In addition, installation of the Avi LBaaS driver and Avi extension for **Horizon** dashboard are required. The tenant administrator accesses and manages Avi Vantage through the **Horizon** dashboard instead of the Avi Controller web interface. OpenStack-deploy-topo-openstacklbaas ### Deployment Process Deployment of OpenStack-managed LBaaS mode requires the following procedure.
    1. Deploy Avi-managed LBaaS mode.
      a) Create a tenant for the Controller and SE.
      b) (Optional) Create multiple flavors of the Avi Vantage image, with different resource allocations to fit different sizes of user tenant ("avi_ctrl.small" and "avi_se.medium").
      c) Upload the Avi Controller qcow2 or raw image into the tenant from Glance.
      d) Create a management network for the Avi Controller and SEs.
      e) Deploy an Avi Controller instance and assign a floating IP address to it.
      f) Create a security group to allow Avi management traffic.
      g) Use the setup wizard to perform initial configuration of the Controller.
    2. Install the Avi LBaaS driver.
    3. Install the Avi extension for the Horizon dashboard.
    4. Install a valid certificate on the Avi Controller.
    **Note:** Replacing the Controller's self-signed certificate with a valid one allows access to the Avi Controller through the Horizon dashboard. Alternatively, the tenant user or administrator can log onto the Avi Controller's web interface directly, accept the self-signed certificate presented by the Controller. After this, the user or administrator can access the Controller through Horizon. ### Performing OpenStack-managed LBaaS Mode Deployment To begin, perform all the steps in Deploying Avi-managed LBaaS Mode. These steps also are required for OpenStack-managed LBaaS mode. ### Installing Avi LBaaS Driver ### Installing/Upgrading LBaaS driver using script Avi Networks provides a script for installing or upgrading the LBaaS plugin driver (v1 or v2). The script makes the necessary OpenStack configuration changes automatically. Download the Avi LBaaS driver installation package (avi_openstack_package.tar.gz) from the Avi Networks portal website (https://portal.avinetworks.com). **Notes:** * If preferred, the LBaaS driver can be installed alone without the virtual environment files that the script also installs. (For more information and instructions, see the README file in the **avi_openstack_package.tar.gz** package.) * An account with root privileges for the Neutron API server is required. This account is different from the account used by the Controller to access the OpenStack infrastructure. * If any pre-16.3.x versions of the Neutron-LBaaS Avi driver were installed, then installing or upgrading to Avi Vantage 16.3.x requires upgrading the corresponding Avi driver to the 16.3.x version as well. Earlier versions of the Avi driver are incompatible with Avi Vantage 16.3.x. Copy the package onto the OpenStack Neutron API host. Log into the Neutron API server. On the OpenStack Neutron API server, back up neutron.conf. Unzip and untar the driver package: tar -xzf avi_openstack_package.tar.gz Run the Avi LBaaS installation script. To install LBaaS v2 driver, specify the option "--v2" to the following install command. In the following example of v1 driver installation, 10.10.22.44 is the IP address for the Avi Controller cluster. The login credentials for the Controller are admin, avinetworks. Make sure to replace the IP address in the example with the cluster IP address. **Note**: If you are installing only the driver without the virtual environment files, refer the README file in the **avi_openstack_package.tar.gz** on the Avi Networks customer portal.
    [root@sivacos openstack_lbplugin(keystone_admin)]# ./install.sh --aname my_lbaas --aip 10.10.22.44 --auser admin --apass avinetworks
    12/06/2016 13:58:37 INFO: logging initialized
    12/06/2016 13:58:37 WARNING: Using auth_url IP 10.130.128.110 as keystone IP
    12/06/2016 13:58:37 INFO: OS distribution: Fedora
    12/06/2016 13:58:38 INFO: Neutron process check...OK
    12/06/2016 13:58:38 INFO: neutron path '/usr/lib/python2.7/site-packages/neutron'...OK
    12/06/2016 13:58:38 INFO: neutron_lbaas path '/usr/lib/python2.7/site-packages/neutron_lbaas'...OK
    12/06/2016 13:58:43 INFO: Local: Avi Controller '10.10.22.44' check using provided credentials...OK
    12/06/2016 13:58:44 INFO: Local: Avi Controller cloud 'Default-Cloud' check...OK
    --> Install SeLinux module 'avi_lbaas'? (y/n)y
    12/06/2016 13:58:49 INFO: SeLinux module Install in progress...
    12/06/2016 13:59:05 INFO: SeLinux module 'avi_lbaas' install...OK
    12/06/2016 13:59:05 INFO: Horizon Load-Balancer tab already enabled
    12/06/2016 13:59:37 INFO: Horizon HTTP server restart...OK
    --> Configure Neutron Server with Avi LBaaS provider 'my_lbaas' with driver 'avi'? (y/n)y
    12/06/2016 13:59:46 INFO: Neutron Avi LBaaS configure provider 'my_lbaas'...OK
    12/06/2016 13:59:46 INFO: Neutron Avi LBaaS driver 'avi' setup...OK
    12/06/2016 13:59:58 INFO: neutron-server restart...OK
    12/06/2016 13:59:58 INFO: Neutron Avi LBaaS configuration setup...OK
    12/06/2016 13:59:58 INFO: Refer '/tmp/openstack_lbplugin/avi_os_setup.log' for install log
    * To upgrade the existing driver, if any, specify the option “--update" to the above install command.
    [root@sivacos openstack_lbplugin(keystone_admin)]# ./install.sh --aname my_lbaas --aip 10.10.22.44 --auser admin --apass avinetworks --update
    12/06/2016 14:04:08 INFO: logging initialized
    12/06/2016 14:04:08 WARNING: Using auth_url IP 10.130.128.110 as keystone IP
    12/06/2016 14:04:08 INFO: OS distribution: Fedora
    12/06/2016 14:04:08 INFO: Neutron process check...OK
    12/06/2016 14:04:09 INFO: neutron path '/usr/lib/python2.7/site-packages/neutron'...OK
    12/06/2016 14:04:09 INFO: neutron_lbaas path '/usr/lib/python2.7/site-packages/neutron_lbaas'...OK
    12/06/2016 14:04:19 INFO: Local: Avi Controller '10.10.22.44' check using provided credentials...OK
    12/06/2016 14:04:20 INFO: Local: Avi Controller cloud 'Default-Cloud' check...OK
    12/06/2016 14:04:23 INFO: SeLinux module 'avi_lbaas' already installed
    12/06/2016 14:04:23 INFO: Horizon Load-Balancer tab already enabled
    12/06/2016 14:04:54 INFO: Horizon HTTP server restart...OK
    --> Configure Neutron Server with Avi LBaaS provider 'my_lbaas' with driver 'avi'? (y/n)y
    12/06/2016 14:05:03 INFO: Neutron Avi LBaaS configure provider 'my_lbaas'...OK
    12/06/2016 14:05:04 INFO: Neutron Avi LBaaS driver 'avi' setup...OK
    12/06/2016 14:05:16 INFO: neutron-server restart...OK
    12/06/2016 14:05:16 INFO: Neutron Avi LBaaS configuration setup...OK
    12/06/2016 14:05:16 INFO: Refer '/tmp/openstack_lbplugin/avi_os_setup.log' for install log
    ### Installing LBaaS v1 driver from Avi UI Note that only LBaaS v1 driver installation is supported using UI. You need to use the script method detailed in the previous section for installing v2 driver
    1. In the Avi Vantage Web interface, navigate to Infrastructure > Clouds.
    2. Click on Default-Cloud, then click on the plugin icon: openstack-lbaas-plugin-install-icon
    3. Fill in the fields, then click on Install.
    openstack-install-lbaas-driver ### Installing Avi Extension for Horizon Dashboard This part of the installation requires an account for access to the OpenStack Horizon server. The pip utility is also required to be available on the Horizon server. Please follow the installation instructions at Avi Horizon Dashboard README . **Note:** Ensure that you restart the Horizon service after installing the extension. ### New Horizon Tabs for Avi Vantage After the Avi extension for Horizon is installed, one or more of the following new tabs appear on the Load Balancers menu of Horizon dashboard:
    1. Certificates: Allows management of SSL certificates. Through this tab, certificates can be uploaded to the Controller and associated with a VIP for SSL offload. openstack-deploy-hortabs-cert
    2. Analytics: Provides detailed operational and performance information about virtual services and related traffic. openstack-deploy-hortabs-analytics
    3. Full Controller LBaaS panel: The full LBassThe extension enables access to the entire Controller web interface from within Horizon: openstack-deploy-hortabs-uiaccess </ul> </ol> </ol> **Note:** The Analytics tab requires replacement of the Controller's self-signed certificate (see below). If the Controller's self-signed certificate is not replaced with a valid one, the Analytics tab does not appear. ### Installing Valid Certificate on Avi Controller This section gives steps for replacing the Controller's self-signed certificate with one signed by a Certificate Authority (CA). The Controller requires a CA-signed certificate to access the Avi Controller through the Horizon dashboard.
      1. Log into the Avi Controller web interface.
      2. Navigate to Templates > Security.
      3. Click on New on the SSL/TLS Certificates menu.
      4. Click on Import to import the new certificate and key.
      5. After uploading the new certificate and key, configure the Avi Controller to use them:
        a. Navigate to Administration > Settings > Access Settings.
        b. Click on the edit icon.
        c. Select the imported certificate and click on Save. </ol> ### Installing Avi Heat Package Admins can optionally install Avi Heat package to enable users to use Avi resource types in their heat templates. Follow the installation steps available online at Avi Heat README .