tricircle/doc/source/configuration.rst
Dongfeng Huang d65601a4ff Clean useless tables in Tricircle after splitting
1. What is the problem?
Tricircle now is dedicated for networking automation across Neutron. Some
tables used in APIs gateway should be removed, like aggregation table, pod
binding table, etc. They should not reside in the Tricircle any more. Other
tables containing old meanings but are still in use should be renamed for
better understanding. We can see the blueprint[1] for further explanation.

2. What is the solution to the problem?
The data models, tables and APIs about aggregation, pod binding, etc. should
be removed. After the pod binding table is removed, the az_hint used for
external network creation is hard to match. So special handle needs to be
implemented. Other tables will have vague meaning after this splitting, but
they still take effective in the Tricircle, So they should be renamed for
better understanding. What's more, the pod_name in the pod table is renamed
to region_name, which coordinates better with its availability zone.

  1)Tables to be removed:
    *aggregates
    *aggregate_metadata
    *instance_types
    *instance_type_projects
    *instance_type_extra_specs
    *key_pairs
    *pod_binding
  2)Tables need to be renamed:
    *cascaded_pod_service_configuration (new name: cached_endpoints)
    *cascaded_pods (new name: pods)
    *cascaded_pods_resource_routing (new name: resource_routings)
    *job (new name: async_jobs)

3. What the features need to be implemented to the Tricircle to realize
the solution?
After the pod binding table is removed, the az_hint used for external
network creation is hard to match. New features will be implemented to solve
this problem.

[1] https://blueprints.launchpad.net/tricircle/+spec/clean-legacy-tables
Change-Id: I025b4fb48c70abf424bd458fac0dc888e5fa19fd
2017-01-05 09:53:45 +08:00

7.8 KiB

Configuration Guide

A brief introduction to configure Tricircle service. Only the configuration items for Tricircle will be described here. Logging, messaging, database, keystonemiddleware etc configuration which are generated from OpenStack Oslo library, will not be described here. Since these configuration items are common to Nova, Cinder, Neutron. Please refer to corresponding description from Nova, Cinder or Neutron.

Common Options

In the common configuration options, the group of "client" need to be configured in Admin API, XJob, Local Plugin and Central Plugin. The "tricircle_db_connection" should be configured in Admin API, XJob and Central Plugin.

Description of common configuration options
Configuration option = Default value Description
[DEFAULT]
tricircle_db_connection = None (String) database connection string for Tricircle, for example, mysql+pymysql://root:password@127.0.0.1/tricircle?charset=utf8
[client]
admin_password = None (String) password of admin account, needed when auto_refresh_endpoint set to True, for example, password.
admin_tenant = None (String) tenant name of admin account, needed when auto_refresh_endpoint set to True, for example, demo.
admin_tenant_domain_name = Default (String) tenant domain name of admin account, needed when auto_refresh_endpoint set to True.
admin_user_domain_name = Default (String) user domain name of admin account, needed when auto_refresh_endpoint set to True.
admin_username = None (String) username of admin account, needed when auto_refresh_endpoint set to True.
auth_url = http://127.0.0.1:5000/v3 (String) keystone authorization url, for example, http://$service_host:5000/v3
auto_refresh_endpoint = True (Boolean) if set to True, endpoint will be automatically refreshed if timeout accessing endpoint.
ew_bridge_cidr = 100.0.0.0/9 (String) cidr pool of the east-west bridge network, for example, 100.0.0.0/9
identity_url = http://127.0.0.1:35357/v3 (String) keystone service url, for example, http://$service_host:35357/v3
neutron_timeout = 60 (Integer) timeout for neutron client in seconds.
ns_bridge_cidr = 100.128.0.0/9 (String) cidr pool of the north-south bridge network, for example, 100.128.0.0/9
top_region_name = None (String) region name of Central Neutron in which client needs to access, for example, CentralRegion.

Tricircle Admin API Settings

Tricircle Admin API servers for managing the mapping between OpenStack instances and availability zone, retrieving object uuid routing and exposing API for maintenance. The following items should be configured in Tricircle's api.conf.

Description of Tricircle Admin API configuration options
Configuration option = Default value Description
[DEFAULT]
api_workers = 1 (Integer) The port to bind to
auth_strategy = keystone (String) The type of authentication to use
bind_host = 0.0.0.0 (String) The host IP to bind to
bind_port = 19999 (Integer) The port to bind to

Tricircle XJob Settings

Tricircle XJob serves for receiving and processing cross OpenStack functionality and other async jobs from Admin API or Tricircle Central Neutron Plugin. The following items should be configured in Tricircle's xjob.conf.

Description of Tricircle XJob configuration options
Configuration option = Default value Description
[DEFAULT]
periodic_enable = True (Boolean) Enable periodic tasks
periodic_fuzzy_delay = 60 (Integer) Range of seconds to randomly delay when starting the periodic task scheduler to reduce stampeding. (Disable by setting to 0)
report_interval = 10 (Integer) Seconds between nodes reporting state to datastore
host = tricircle.xhost (String) The host name for RPC server, each node should have different host name.
job_run_expire = 180 (Integer) Running job is considered expires after this time, in seconds
workers = 1 (Integer) Number of workers
worker_handle_timeout = 1800 (Integer) Timeout for worker's one turn of processing, in seconds
worker_sleep_time = 60 (Float) Seconds a worker sleeps after one run in a loop

Networking Setting for Tricircle

To make the networking automation work, two plugins need to be configured: Tricircle Central Neutron Plugin and Tricircle Local Neutron Plugin.

Tricircle Central Neutron Plugin

The Tricircle Central Neutron Plugin serves for tenant level L2/L3 networking automation across multiple OpenStack instances. The following items should be configured in central Neutron's neutron.conf.

Description of Central Neutron configuration options
Configuration option = Default value Description
[DEFAULT]
core_plugin = None (String) core plugin central Neutron server uses, should be set to tricircle.network.central_plugin.TricirclePlugin
[tricircle]
bridge_network_type = shared_vlan (String) Type of l3 bridge network, this type should be enabled in tenant_network_types and is not local type, for example, shared_vlan.
default_region_for_external_network = RegionOne (String) Default region where the external network belongs to, it must exist, for example, RegionOne.
network_vlan_ranges = None (String) List of <physical_network>:<vlan_min>:<vlan_max> or <physical_network> specifying physical_network names usable for VLAN provider and tenant networks, as well as ranges of VLAN tags on each available for allocation to tenant networks, for example,bridge:2001:3000.
tenant_network_types = local,shared_vlan (String) Ordered list of network_types to allocate as tenant networks. The default value "local" is useful for single pod connectivity. For example, local and shared_vlan.
type_drivers = local,shared_vlan (String) List of network type driver entry points to be loaded from the tricircle.network.type_drivers namespace. For example, local and shared_vlan.

Tricircle Local Neutron Plugin

The Tricircle Local Neutron Plugin serves for cross Neutron networking automation triggering. It is a shim layer between real core plugin and Neutron API server. The following items should be configured in local Neutron's neutron.conf

Description of Local Neutron configuration options
Configuration option = Default value Description and Example
[DEFAULT]
core_plugin = None (String) core plugin local Neutron server uses, should be set to tricircle.network.local_plugin.TricirclePlugin
[tricircle]
central_neutron_url = None (String) Central Neutron server url, for example, http://$service_host:9696
real_core_plugin = None (String) The core plugin the Tricircle local plugin will invoke, for example, neutron.plugins.ml2.plugin.Ml2Plugin