Skip to main content

Migrate A10 specific device configs to nlbaas

Project description

A10 nlbaas2oct

This tool has been designed to migration A10 devices and their associated neutron lbaas objects from the Neutron database to Octavia.

Installation

Install from PyPi

pip install a10-nlbaas2oct

Install from Source

git clone git@github.com:a10networks/a10-nlbaas2oct.git
cd a10-nlbaas2oct
pip install -e .

Note: This tool must be installed on the host running neutron-lbaas

Usage

Step 1: Copy the sample config file from the project to another directory

Installed from PyPi

pip show a10-nlbaas2oct | grep "Location" | cp $(awk '{print $2}')/a10_nlbaas2oct/a10_nlbaas2oct.conf /path/to/another/directory

Installed from source

cp /path/to/a10-nlbaas2oct/a10_nlbaas2oct/a10_nlbaas2oct.conf /path/to/another/directory

Sample Config File Contents

[DEFAULT]

debug = True

[migration]

# Run without making changes
# trial_run = False

# Delete the load balancer records from neutron-lbaas after migration
# delete_after_migration = False

# Octavia service account ID or username (ex: admin)
octavia_account_id =

# Example db connection string:
# connection = mysql+pymysql://root:password@127.0.0.1:3306/octavia
# Replace 127.0.0.1 above with the IP address of the database used by the
# main octavia server. (Leave it as is if the database runs on this host.)

# Connection string for the neutron database
neutron_db_connection =

# Connection string for the octavia database
octavia_db_connection =

# Connection string for the A10 database used in neutron lbaas env
# a10_nlbaas_db_connection =

# Connection string for the A10 database used in the octavia env
# a10_oct_connection =

# Path to config file. Default is /etc/a10
a10_config_path = /etc/a10

Step 2: Modify the config file

Database connection string locations

The neutron_db_connection can be found in the /etc/neutron/neutron.conf file under the database group.

[database]
connection = mysql+pymysql://user:password@127.0.0.1/neutron?charset=utf8

The octavia_db_connection can be found be found in the /etc/octavia/octavia.conffile under the database group.

[database]
connection = mysql+pymysql://root:password@127.0.0.1:3306/octavia

Config for migrating from Neutron LBaaS to Octavia on the same host

# Octavia service account ID or username (ex: admin)
octavia_account_id = admin

# Connection string for the neutron database
neutron_db_connection = mysql+pymysql://user:password@127.0.0.1/neutron?charset=utf8

# Connection string for the octavia database
octavia_db_connection = mysql+pymysql://root:password@127.0.0.1:3306/octavia

# Path to config file. Default is /etc/a10
a10_config_path = /etc/a10

Config for migrating from Neutron LBaaS to Octavia across hosts

# Octavia service account ID or username (ex: admin)
octavia_account_id = admin

# Connection string for the neutron database
neutron_db_connection = mysql+pymysql://user:password@127.0.0.1/neutron?charset=utf8

# Connection string for the octavia database
octavia_db_connection = mysql+pymysql://root:password@ip_address_of_remote_host:3306/octavia

# Path to config file. Default is /etc/a10
a10_config_path = /etc/a10

Performing cross host migration when A10 database is seperate from Neutron DB and Octavia DB

# Octavia service account ID or username (ex: admin)
octavia_account_id = admin

# Connection string for the neutron database
neutron_db_connection = mysql+pymysql://user:password@127.0.0.1/neutron?charset=utf8

# Connection string for the octavia database
octavia_db_connection = mysql+pymysql://root:password@ip_address_of_remote_host:3306/octavia

# Path to config file. Default is /etc/a10
a10_config_path = /etc/a10

# Connection string for the A10 database used in neutron lbaas env
a10_nlbaas_db_connection = mysql+pymysql://user:password@127.0.0.1/a10_db

# Connection string for the A10 database used in the octavia env
a10_oct_connection = mysql+pymysql://user:password@ip_address_of_remote_host/a10_db

Step 3: Perform the migration

Migrate a single loadbalancer and its child objects

a10_nlbaas2oct --config-file /path/to/a10_nlbaas2oct.conf --lb-id <loadbalancer_id>

Note: This takes in the UUID of the loadbalancer not the name

Migrate all lbaas objects in a project

a10_nlbaas2oct --config-file /path/to/a10_nlbaas2oct.conf --project-id <project_id>

Note: This takes in the UUID of the project not the name

Migrate all lbaas objects

a10_nlbaas2oct --config-file /path/to/a10_nlbaas2oct.conf --all

Note to Reader

The vast majority of this tooling was copied and modified from openstack's neutron-lbaas repo for ease of use purposes. The original can be found here https://github.com/openstack/neutron-lbaas/tree/stable/stein/tools/nlbaas2octavia

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

a10_nlbaas2oct-1.2.2.tar.gz (19.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

a10_nlbaas2oct-1.2.2-py2-none-any.whl (24.2 kB view details)

Uploaded Python 2

File details

Details for the file a10_nlbaas2oct-1.2.2.tar.gz.

File metadata

  • Download URL: a10_nlbaas2oct-1.2.2.tar.gz
  • Upload date:
  • Size: 19.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.7.0 requests/2.21.0 setuptools/44.1.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/2.7.17

File hashes

Hashes for a10_nlbaas2oct-1.2.2.tar.gz
Algorithm Hash digest
SHA256 24ff7d0fcb2284eccada54810f8e58897e24b15b47b964b34f7f72b841462ca0
MD5 467ee1c67514f34c1f877323171776dc
BLAKE2b-256 056743e59d9bef82d66ee91581130b2c30199f4fe12c3f899a8cd72575832e7f

See more details on using hashes here.

File details

Details for the file a10_nlbaas2oct-1.2.2-py2-none-any.whl.

File metadata

  • Download URL: a10_nlbaas2oct-1.2.2-py2-none-any.whl
  • Upload date:
  • Size: 24.2 kB
  • Tags: Python 2
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.7.0 requests/2.21.0 setuptools/44.1.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/2.7.17

File hashes

Hashes for a10_nlbaas2oct-1.2.2-py2-none-any.whl
Algorithm Hash digest
SHA256 4dda84e7ceeb3e3f457bf5344d1bd5f3b6a2154b96e6bfa5fa884203b3fc83c8
MD5 ae8c5cf9e4f5da0be44d639bf6d9a855
BLAKE2b-256 48d335226f6a6609cbaa3a37f8160e7694172054b3c18df467e3bbcdb9568461

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page