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.0.2.tar.gz (18.6 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.0.2-py2-none-any.whl (22.5 kB view details)

Uploaded Python 2

File details

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

File metadata

  • Download URL: a10_nlbaas2oct-1.0.2.tar.gz
  • Upload date:
  • Size: 18.6 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.0.2.tar.gz
Algorithm Hash digest
SHA256 4e7244a7fd8b507057a0a96a4c92fb120a7db3ba8aeb2af5451cd2d7fa6c9f26
MD5 a400e0543117a74d21db8d11fe3384bf
BLAKE2b-256 afe6aa4e3e9cae346531fcefecddc4e5194ab2f96b3ba781ddea3504158d45e1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: a10_nlbaas2oct-1.0.2-py2-none-any.whl
  • Upload date:
  • Size: 22.5 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.0.2-py2-none-any.whl
Algorithm Hash digest
SHA256 850040615b7dea46a709948d00e1ab3ab32761abf89c2c25ed4797f76e66a5f0
MD5 d2702151a8f112d77e987363064dba86
BLAKE2b-256 14768ec86713127000b817db5a7e5ca0921d462c8b9b0617c8e7e253cfd17e4c

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