Add ability to deploy Octavia load balancer service

This commit enables the openstack Octavia load balancing service
if the option is enabled. The Octavia service replaced the legacy
Neutron LBAAS service.

Change-Id: Ib820ec3c4a7f6c9116608140b59332d03cf4c451
This commit is contained in:
Jacob Wagner 2018-08-30 10:43:42 -05:00 committed by Jesse Pretorius
parent 06fca4a2f6
commit e1ce3432d0
9 changed files with 64 additions and 0 deletions

View File

@ -141,11 +141,17 @@ mnaio_host_networks:
inet_type: 'static' inet_type: 'static'
address: '10.0.244.1/22' address: '10.0.244.1/22'
iface_port: none iface_port: none
lbaas:
iface: 'vm-br-eth6'
inet_type: 'static'
address: '10.0.232.1/22'
iface_port: none
osa_enable_infra: true osa_enable_infra: true
osa_enable_identity: true osa_enable_identity: true
osa_enable_block_storage: true osa_enable_block_storage: true
osa_enable_image: true osa_enable_image: true
osa_enable_lbaas: false
osa_enable_compute: true osa_enable_compute: true
osa_enable_orchestration: true osa_enable_orchestration: true
osa_enable_dashboard: true osa_enable_dashboard: true

View File

@ -46,3 +46,8 @@ server_networks:
inet_type: 'static' inet_type: 'static'
address: '10.0.244.120/22' address: '10.0.244.120/22'
vm_int_iface: vm-br-eth5 vm_int_iface: vm-br-eth5
lbaas:
iface: 'eth6'
inet_type: 'static'
address: '10.0.232.120/22'
vm_int_iface: vm-br-eth6

View File

@ -46,3 +46,8 @@ server_networks:
inet_type: 'static' inet_type: 'static'
address: '10.0.244.121/22' address: '10.0.244.121/22'
vm_int_iface: vm-br-eth5 vm_int_iface: vm-br-eth5
lbaas:
iface: 'eth6'
inet_type: 'static'
address: '10.0.232.121/22'
vm_int_iface: vm-br-eth6

View File

@ -57,3 +57,8 @@ server_networks: # dict - required, hash of networks, can
inet_type: 'manual' # str - required, iface type [static, dhcp, manual] inet_type: 'manual' # str - required, iface type [static, dhcp, manual]
address: '10.0.244.200/22' # str - not required, must be in CIDR format address: '10.0.244.200/22' # str - not required, must be in CIDR format
vm_int_iface: vm-br-eth5 # str - not Required, used to specify an integration networks interface when provisioning a VM vm_int_iface: vm-br-eth5 # str - not Required, used to specify an integration networks interface when provisioning a VM
lbaas:
iface: 'eth6' # str - required, interface name
inet_type: 'static' # str - required, iface type [static, dhcp, manual]
address: '10.0.232.200/22' # str - not required, must be in CIDR format
vm_int_iface: vm-br-eth6 # str - not Required, used to specify an integration networks interface when provisioning a VM

View File

@ -46,3 +46,8 @@ server_networks: # dict - required, hash of networks, can
inet_type: 'static' # str - required, iface type [static, dhcp, manual] inet_type: 'static' # str - required, iface type [static, dhcp, manual]
address: '10.0.244.100/22' # str - not required, must be in CIDR format address: '10.0.244.100/22' # str - not required, must be in CIDR format
vm_int_iface: vm-br-eth5 # str - not Required, used to specify an integration networks interface when provisioning a VM vm_int_iface: vm-br-eth5 # str - not Required, used to specify an integration networks interface when provisioning a VM
lbaas:
iface: 'eth6' # str - required, interface name
inet_type: 'static' # str - required, iface type [static, dhcp, manual]
address: '10.0.232.100/22' # str - not required, must be in CIDR format
vm_int_iface: vm-br-eth6 # str - not Required, used to specify an integration networks interface when provisioning a VM

View File

@ -46,3 +46,8 @@ server_networks:
inet_type: 'static' inet_type: 'static'
address: '10.0.244.101/22' address: '10.0.244.101/22'
vm_int_iface: vm-br-eth5 vm_int_iface: vm-br-eth5
lbaas:
iface: 'eth6'
inet_type: 'static'
address: '10.0.232.101/22'
vm_int_iface: vm-br-eth6

View File

@ -46,3 +46,8 @@ server_networks:
inet_type: 'static' inet_type: 'static'
address: '10.0.244.102/22' address: '10.0.244.102/22'
vm_int_iface: vm-br-eth5 vm_int_iface: vm-br-eth5
lbaas:
iface: 'eth6'
inet_type: 'static'
address: '10.0.232.102/22'
vm_int_iface: vm-br-eth6

View File

@ -1,11 +1,13 @@
--- ---
cidr_networks: cidr_networks:
lbaas: 10.0.232.0/22
container: 10.0.236.0/22 container: 10.0.236.0/22
tunnel: 10.0.240.0/22 tunnel: 10.0.240.0/22
storage: 10.0.244.0/22 storage: 10.0.244.0/22
flat: 10.0.248.0/22 flat: 10.0.248.0/22
used_ips: used_ips:
- "10.0.232.0,10.0.232.200"
- "10.0.236.0,10.0.236.200" - "10.0.236.0,10.0.236.200"
- "10.0.240.0,10.0.240.200" - "10.0.240.0,10.0.240.200"
- "10.0.244.0,10.0.244.200" - "10.0.244.0,10.0.244.200"
@ -69,6 +71,19 @@ global_overrides:
- cinder_volume - cinder_volume
- nova_compute - nova_compute
- swift_proxy - swift_proxy
- network:
container_bridge: "br-lbaas"
container_type: "veth"
container_interface: "eth13"
ip_from_q: "lbaas"
type: "flat"
net_name: "lbaas"
group_binds:
- "neutron_linuxbridge_agent"
- "octavia-worker"
- "octavia-housekeeping"
- "octavia-health-monitor"
swift: swift:
part_power: 8 part_power: 8
storage_network: 'br-storage' storage_network: 'br-storage'
@ -191,6 +206,11 @@ storage_hosts: *cinder_block
image_hosts: *infra_block image_hosts: *infra_block
{% endif %} {% endif %}
{% if osa_enable_lbaas | bool %}
# octavia
octavia-infra_hosts: *infra_block
{% endif %}
{% if osa_enable_compute | bool %} {% if osa_enable_compute | bool %}
# nova api, conductor, etc services # nova api, conductor, etc services
compute-infra_hosts: *infra_block compute-infra_hosts: *infra_block

View File

@ -24,6 +24,14 @@ iface br-{{ key }} inet {{ value.inet_type }}
# Delete veth pair on DOWN # Delete veth pair on DOWN
post-down ip link del br-vlan-veth || true post-down ip link del br-vlan-veth || true
bridge_ports {{ value.iface }} br-veth-{{ key }} bridge_ports {{ value.iface }} br-veth-{{ key }}
{% elif value.iface is defined and key == "lbaas" %}
pre-up ip link add lb-veth-inbr type veth peer name lb-veth-ovrd || true
# Set both ends UP
pre-up ip link set lb-veth-inbr up
pre-up ip link set lb-veth-ovrd up
# Delete veth pair on DOWN
post-down ip link del br-vlan-veth || true
bridge_ports {{ value.iface }} lb-veth-inbr
{% elif value.iface is defined %} {% elif value.iface is defined %}
bridge_ports {{ value.iface | default('none') }} bridge_ports {{ value.iface | default('none') }}
{% else %} {% else %}