Add Support of LBaaS v2 API

LBaaS v1 api is completely removed by neutron, so it
cannot be used now. Added Support of LBaaS v2 API.
Now all COE's uses LBaaS v2.

Co-Authored-By: yatin karel <yatin.karel@nectechnologies.in>
Change-Id: Idbccbe1065857449fc8e158115b7833b68c2da9f
Partially-Implements: blueprint magnum-lbaasv2-support
This commit is contained in:
Hua Wang 2016-08-27 15:54:58 +05:30 committed by yatin
parent 4548b310e5
commit 77e6c3160f
16 changed files with 295 additions and 157 deletions

View File

@ -22,8 +22,6 @@ enable_service q-agt
enable_service q-dhcp enable_service q-dhcp
enable_service q-l3 enable_service q-l3
enable_service q-meta enable_service q-meta
# Note: Default template uses LBaaS.
enable_service q-lbaas
enable_service neutron enable_service neutron
# Enable Heat services # Enable Heat services
@ -32,6 +30,16 @@ enable_service h-api
enable_service h-api-cfn enable_service h-api-cfn
enable_service h-api-cw enable_service h-api-cw
# Disable LBaaS(v1) service
disable_service q-lbaas
# Enable LBaaS(v2) services
enable_service q-lbaasv2
enable_service octavia
enable_service o-cw
enable_service o-hk
enable_service o-hm
enable_service o-api
# Enable Magnum services # Enable Magnum services
enable_service magnum-api enable_service magnum-api
enable_service magnum-cond enable_service magnum-cond

View File

@ -52,10 +52,19 @@ and neutron::
enable_service q-dhcp enable_service q-dhcp
enable_service q-l3 enable_service q-l3
enable_service q-meta enable_service q-meta
# Note: Default template uses LBaaS.
enable_service q-lbaas
enable_service neutron enable_service neutron
# Disable LBaaS(v1) service
disable_service q-lbaas
# Enable LBaaS(v2) services
enable_service q-lbaasv2
enable_service octavia
enable_service o-cw
enable_service o-hk
enable_service o-hm
enable_service o-api
# Enable heat services # Enable heat services
enable_service h-eng enable_service h-eng
enable_service h-api enable_service h-api
@ -65,6 +74,7 @@ and neutron::
# Enable barbican services # Enable barbican services
enable_plugin barbican https://git.openstack.org/openstack/barbican enable_plugin barbican https://git.openstack.org/openstack/barbican
enable_plugin neutron-lbaas https://git.openstack.org/openstack/neutron-lbaas enable_plugin neutron-lbaas https://git.openstack.org/openstack/neutron-lbaas
enable_plugin octavia https://git.openstack.org/openstack/octavia
VOLUME_BACKING_FILE_SIZE=20G VOLUME_BACKING_FILE_SIZE=20G
END END

View File

@ -78,7 +78,8 @@ To run unit test coverage and check percentage of code covered::
tox -e cover tox -e cover
To discover and interact with templates, please refer to
`<http://docs.openstack.org/developer/magnum/dev/bay-template-example.html>`_
Exercising the Services Using Devstack Exercising the Services Using Devstack
====================================== ======================================
@ -123,6 +124,17 @@ Kilo, and heat is enabled by the magnum plugin)::
# For details http://docs.openstack.org/developer/magnum/dev/tls.html # For details http://docs.openstack.org/developer/magnum/dev/tls.html
enable_plugin barbican https://git.openstack.org/openstack/barbican enable_plugin barbican https://git.openstack.org/openstack/barbican
enable_plugin neutron-lbaas https://git.openstack.org/openstack/neutron-lbaas enable_plugin neutron-lbaas https://git.openstack.org/openstack/neutron-lbaas
enable_plugin octavia https://git.openstack.org/openstack/octavia
# Disable LBaaS(v1) service
disable_service q-lbaas
# Enable LBaaS(v2) services
enable_service q-lbaasv2
enable_service octavia
enable_service o-cw
enable_service o-hk
enable_service o-hm
enable_service o-api
VOLUME_BACKING_FILE_SIZE=20G VOLUME_BACKING_FILE_SIZE=20G
END END

View File

@ -4,9 +4,11 @@ resource_registry:
"Magnum::ApiGatewaySwitcher": ../fragments/api_gateway_switcher_master.yaml "Magnum::ApiGatewaySwitcher": ../fragments/api_gateway_switcher_master.yaml
# Cluster template # Cluster template
"Magnum::Optional::Neutron::Pool": "OS::Heat::None" "Magnum::Optional::Neutron::LBaaS::LoadBalancer": "OS::Heat::None"
"Magnum::Optional::Neutron::Pool::FloatingIP": "OS::Heat::None" "Magnum::Optional::Neutron::LBaaS::Listener": "OS::Heat::None"
"Magnum::Optional::Neutron::Pool::HealthMonitor": "OS::Heat::None" "Magnum::Optional::Neutron::LBaaS::Pool": "OS::Heat::None"
"Magnum::Optional::Neutron::LBaaS::HealthMonitor": "OS::Heat::None"
"Magnum::Optional::Neutron::FloatingIP": "OS::Heat::None"
# Master node template # Master node template
"Magnum::Optional::Neutron::PoolMember": "OS::Heat::None" "Magnum::Optional::Neutron::LBaaS::PoolMember": "OS::Heat::None"

View File

@ -4,9 +4,11 @@ resource_registry:
"Magnum::ApiGatewaySwitcher": ../fragments/api_gateway_switcher_pool.yaml "Magnum::ApiGatewaySwitcher": ../fragments/api_gateway_switcher_pool.yaml
# Cluster template # Cluster template
"Magnum::Optional::Neutron::Pool": "OS::Neutron::Pool" "Magnum::Optional::Neutron::LBaaS::LoadBalancer": "OS::Neutron::LBaaS::LoadBalancer"
"Magnum::Optional::Neutron::Pool::FloatingIP": "OS::Neutron::FloatingIP" "Magnum::Optional::Neutron::LBaaS::Listener": "OS::Neutron::LBaaS::Listener"
"Magnum::Optional::Neutron::Pool::HealthMonitor": "OS::Neutron::HealthMonitor" "Magnum::Optional::Neutron::LBaaS::Pool": "OS::Neutron::LBaaS::Pool"
"Magnum::Optional::Neutron::LBaaS::HealthMonitor": "OS::Neutron::LBaaS::HealthMonitor"
"Magnum::Optional::Neutron::FloatingIP": "OS::Neutron::FloatingIP"
# Master node template # Master node template
"Magnum::Optional::Neutron::PoolMember": "OS::Neutron::PoolMember" "Magnum::Optional::Neutron::LBaaS::PoolMember": "OS::Neutron::LBaaS::PoolMember"

View File

@ -238,50 +238,69 @@ resources:
# #
# load balancers. # load balancers.
# #
api_loadbalancer:
type: Magnum::Optional::Neutron::LBaaS::LoadBalancer
properties:
vip_subnet: {get_resource: fixed_subnet}
api_listener:
type: Magnum::Optional::Neutron::LBaaS::Listener
properties:
loadbalancer: {get_resource: api_loadbalancer}
protocol: {get_param: loadbalancing_protocol}
protocol_port: {get_param: kubernetes_port}
api_pool:
type: Magnum::Optional::Neutron::LBaaS::Pool
properties:
lb_algorithm: ROUND_ROBIN
listener: {get_resource: api_listener}
protocol: {get_param: loadbalancing_protocol}
api_monitor: api_monitor:
type: Magnum::Optional::Neutron::Pool::HealthMonitor type: Magnum::Optional::Neutron::LBaaS::HealthMonitor
properties: properties:
type: TCP type: TCP
delay: 5 delay: 5
max_retries: 5 max_retries: 5
timeout: 5 timeout: 5
pool: { get_resource: api_pool }
api_pool:
type: Magnum::Optional::Neutron::Pool
properties:
protocol: {get_param: loadbalancing_protocol}
monitors: [{get_resource: api_monitor}]
subnet: {get_resource: fixed_subnet}
lb_method: ROUND_ROBIN
vip:
protocol_port: {get_param: kubernetes_port}
api_pool_floating: api_pool_floating:
type: Magnum::Optional::Neutron::Pool::FloatingIP type: Magnum::Optional::Neutron::FloatingIP
depends_on: depends_on:
- extrouter_inside - extrouter_inside
properties: properties:
floating_network: {get_param: external_network} floating_network: {get_param: external_network}
port_id: {get_attr: [api_pool, vip, port_id]} port_id: {get_attr: [api_loadbalancer, vip_port_id]}
etcd_loadbalancer:
type: Magnum::Optional::Neutron::LBaaS::LoadBalancer
properties:
vip_subnet: {get_resource: fixed_subnet}
etcd_listener:
type: Magnum::Optional::Neutron::LBaaS::Listener
properties:
loadbalancer: {get_resource: etcd_loadbalancer}
protocol: HTTP
protocol_port: 2379
etcd_pool:
type: Magnum::Optional::Neutron::LBaaS::Pool
properties:
lb_algorithm: ROUND_ROBIN
listener: {get_resource: etcd_listener}
protocol: HTTP
etcd_monitor: etcd_monitor:
type: Magnum::Optional::Neutron::Pool::HealthMonitor type: Magnum::Optional::Neutron::LBaaS::HealthMonitor
properties: properties:
type: TCP type: TCP
delay: 5 delay: 5
max_retries: 5 max_retries: 5
timeout: 5 timeout: 5
pool: { get_resource: etcd_pool }
etcd_pool:
type: Magnum::Optional::Neutron::Pool
properties:
protocol: HTTP
monitors: [{get_resource: etcd_monitor}]
subnet: {get_resource: fixed_subnet}
lb_method: ROUND_ROBIN
vip:
protocol_port: 2379
###################################################################### ######################################################################
# #
@ -293,14 +312,14 @@ resources:
type: Magnum::ApiGatewaySwitcher type: Magnum::ApiGatewaySwitcher
properties: properties:
pool_public_ip: {get_attr: [api_pool_floating, floating_ip_address]} pool_public_ip: {get_attr: [api_pool_floating, floating_ip_address]}
pool_private_ip: {get_attr: [api_pool, vip, address]} pool_private_ip: {get_attr: [api_loadbalancer, vip_address]}
master_public_ip: {get_attr: [kube_masters, resource.0.kube_master_external_ip]} master_public_ip: {get_attr: [kube_masters, resource.0.kube_master_external_ip]}
master_private_ip: {get_attr: [kube_masters, resource.0.kube_master_ip]} master_private_ip: {get_attr: [kube_masters, resource.0.kube_master_ip]}
etcd_address_switch: etcd_address_switch:
type: Magnum::ApiGatewaySwitcher type: Magnum::ApiGatewaySwitcher
properties: properties:
pool_private_ip: {get_attr: [etcd_pool, vip, address]} pool_private_ip: {get_attr: [etcd_loadbalancer, vip_address]}
master_private_ip: {get_attr: [kube_masters, resource.0.kube_master_ip]} master_private_ip: {get_attr: [kube_masters, resource.0.kube_master_ip]}
###################################################################### ######################################################################
@ -319,7 +338,7 @@ resources:
type: kubemaster.yaml type: kubemaster.yaml
properties: properties:
api_public_address: {get_attr: [api_pool_floating, floating_ip_address]} api_public_address: {get_attr: [api_pool_floating, floating_ip_address]}
api_private_address: {get_attr: [api_pool, vip, address]} api_private_address: {get_attr: [api_loadbalancer, vip_address]}
ssh_key_name: {get_param: ssh_key_name} ssh_key_name: {get_param: ssh_key_name}
server_image: {get_param: server_image} server_image: {get_param: server_image}
master_flavor: {get_param: master_flavor} master_flavor: {get_param: master_flavor}

View File

@ -428,17 +428,19 @@ resources:
port_id: {get_resource: kube_master_eth0} port_id: {get_resource: kube_master_eth0}
api_pool_member: api_pool_member:
type: Magnum::Optional::Neutron::PoolMember type: Magnum::Optional::Neutron::LBaaS::PoolMember
properties: properties:
pool_id: {get_param: api_pool_id} pool: {get_param: api_pool_id}
address: {get_attr: [kube_master_eth0, fixed_ips, 0, ip_address]} address: {get_attr: [kube_master_eth0, fixed_ips, 0, ip_address]}
subnet: { get_param: fixed_subnet }
protocol_port: {get_param: kubernetes_port} protocol_port: {get_param: kubernetes_port}
etcd_pool_member: etcd_pool_member:
type: Magnum::Optional::Neutron::PoolMember type: Magnum::Optional::Neutron::LBaaS::PoolMember
properties: properties:
pool_id: {get_param: etcd_pool_id} pool: {get_param: etcd_pool_id}
address: {get_attr: [kube_master_eth0, fixed_ips, 0, ip_address]} address: {get_attr: [kube_master_eth0, fixed_ips, 0, ip_address]}
subnet: { get_param: fixed_subnet }
protocol_port: 2379 protocol_port: 2379
outputs: outputs:

View File

@ -328,48 +328,67 @@ resources:
# #
# load balancers. # load balancers.
# #
api_loadbalancer:
api_monitor: type: Magnum::Optional::Neutron::LBaaS::LoadBalancer
type: Magnum::Optional::Neutron::Pool::HealthMonitor
properties: properties:
type: TCP vip_subnet: {get_param: fixed_subnet}
delay: 5
max_retries: 5 api_listener:
timeout: 5 type: Magnum::Optional::Neutron::LBaaS::Listener
properties:
loadbalancer: {get_resource: api_loadbalancer}
protocol: {get_param: loadbalancing_protocol}
protocol_port: {get_param: kubernetes_port}
api_pool: api_pool:
type: Magnum::Optional::Neutron::Pool type: Magnum::Optional::Neutron::LBaaS::Pool
properties: properties:
lb_algorithm: ROUND_ROBIN
listener: {get_resource: api_listener}
protocol: {get_param: loadbalancing_protocol} protocol: {get_param: loadbalancing_protocol}
monitors: [{get_resource: api_monitor}]
subnet: {get_param: fixed_subnet}
lb_method: ROUND_ROBIN
vip:
protocol_port: {get_param: kubernetes_port}
api_pool_floating: api_monitor:
type: Magnum::Optional::Neutron::Pool::FloatingIP type: Magnum::Optional::Neutron::LBaaS::HealthMonitor
properties:
floating_network: {get_param: external_network}
port_id: {get_attr: [api_pool, vip, port_id]}
etcd_monitor:
type: Magnum::Optional::Neutron::Pool::HealthMonitor
properties: properties:
type: TCP type: TCP
delay: 5 delay: 5
max_retries: 5 max_retries: 5
timeout: 5 timeout: 5
pool: { get_resource: api_pool }
api_pool_floating:
type: Magnum::Optional::Neutron::FloatingIP
properties:
floating_network: {get_param: external_network}
port_id: {get_attr: [api_loadbalancer, vip_port_id]}
etcd_loadbalancer:
type: Magnum::Optional::Neutron::LBaaS::LoadBalancer
properties:
vip_subnet: {get_param: fixed_subnet}
etcd_listener:
type: Magnum::Optional::Neutron::LBaaS::Listener
properties:
loadbalancer: {get_resource: etcd_loadbalancer}
protocol: HTTP
protocol_port: 2379
etcd_pool: etcd_pool:
type: Magnum::Optional::Neutron::Pool type: Magnum::Optional::Neutron::LBaaS::Pool
properties: properties:
lb_algorithm: ROUND_ROBIN
listener: {get_resource: etcd_listener}
protocol: HTTP protocol: HTTP
monitors: [{get_resource: etcd_monitor}]
subnet: {get_param: fixed_subnet} etcd_monitor:
lb_method: ROUND_ROBIN type: Magnum::Optional::Neutron::LBaaS::HealthMonitor
vip: properties:
protocol_port: 2379 type: TCP
delay: 5
max_retries: 5
timeout: 5
pool: { get_resource: etcd_pool }
###################################################################### ######################################################################
# #
@ -381,14 +400,14 @@ resources:
type: Magnum::ApiGatewaySwitcher type: Magnum::ApiGatewaySwitcher
properties: properties:
pool_public_ip: {get_attr: [api_pool_floating, floating_ip_address]} pool_public_ip: {get_attr: [api_pool_floating, floating_ip_address]}
pool_private_ip: {get_attr: [api_pool, vip, address]} pool_private_ip: {get_attr: [api_loadbalancer, vip_address]}
master_public_ip: {get_attr: [kube_masters, resource.0.kube_master_external_ip]} master_public_ip: {get_attr: [kube_masters, resource.0.kube_master_external_ip]}
master_private_ip: {get_attr: [kube_masters, resource.0.kube_master_ip]} master_private_ip: {get_attr: [kube_masters, resource.0.kube_master_ip]}
etcd_address_switch: etcd_address_switch:
type: Magnum::ApiGatewaySwitcher type: Magnum::ApiGatewaySwitcher
properties: properties:
pool_private_ip: {get_attr: [etcd_pool, vip, address]} pool_private_ip: {get_attr: [etcd_loadbalancer, vip_address]}
master_private_ip: {get_attr: [kube_masters, resource.0.kube_master_ip]} master_private_ip: {get_attr: [kube_masters, resource.0.kube_master_ip]}
###################################################################### ######################################################################
@ -405,7 +424,7 @@ resources:
type: kubemaster-fedora-ironic.yaml type: kubemaster-fedora-ironic.yaml
properties: properties:
api_public_address: {get_attr: [api_pool_floating, floating_ip_address]} api_public_address: {get_attr: [api_pool_floating, floating_ip_address]}
api_private_address: {get_attr: [api_pool, vip, address]} api_private_address: {get_attr: [api_loadbalancer, vip_address]}
ssh_key_name: {get_param: ssh_key_name} ssh_key_name: {get_param: ssh_key_name}
server_image: {get_param: server_image} server_image: {get_param: server_image}
master_flavor: {get_param: master_flavor} master_flavor: {get_param: master_flavor}

View File

@ -348,50 +348,69 @@ resources:
# #
# load balancers. # load balancers.
# #
api_loadbalancer:
type: Magnum::Optional::Neutron::LBaaS::LoadBalancer
properties:
vip_subnet: {get_resource: fixed_subnet}
api_listener:
type: Magnum::Optional::Neutron::LBaaS::Listener
properties:
loadbalancer: {get_resource: api_loadbalancer}
protocol: {get_param: loadbalancing_protocol}
protocol_port: {get_param: kubernetes_port}
api_pool:
type: Magnum::Optional::Neutron::LBaaS::Pool
properties:
lb_algorithm: ROUND_ROBIN
listener: {get_resource: api_listener}
protocol: {get_param: loadbalancing_protocol}
api_monitor: api_monitor:
type: Magnum::Optional::Neutron::Pool::HealthMonitor type: Magnum::Optional::Neutron::LBaaS::HealthMonitor
properties: properties:
type: TCP type: TCP
delay: 5 delay: 5
max_retries: 5 max_retries: 5
timeout: 5 timeout: 5
pool: { get_resource: api_pool }
api_pool:
type: Magnum::Optional::Neutron::Pool
properties:
protocol: {get_param: loadbalancing_protocol}
monitors: [{get_resource: api_monitor}]
subnet: {get_resource: fixed_subnet}
lb_method: ROUND_ROBIN
vip:
protocol_port: {get_param: kubernetes_port}
api_pool_floating: api_pool_floating:
type: Magnum::Optional::Neutron::Pool::FloatingIP type: Magnum::Optional::Neutron::FloatingIP
depends_on: depends_on:
- extrouter_inside - extrouter_inside
properties: properties:
floating_network: {get_param: external_network} floating_network: {get_param: external_network}
port_id: {get_attr: [api_pool, vip, port_id]} port_id: {get_attr: [api_loadbalancer, vip_port_id]}
etcd_loadbalancer:
type: Magnum::Optional::Neutron::LBaaS::LoadBalancer
properties:
vip_subnet: {get_resource: fixed_subnet}
etcd_listener:
type: Magnum::Optional::Neutron::LBaaS::Listener
properties:
loadbalancer: {get_resource: etcd_loadbalancer}
protocol: HTTP
protocol_port: 2379
etcd_pool:
type: Magnum::Optional::Neutron::LBaaS::Pool
properties:
lb_algorithm: ROUND_ROBIN
listener: {get_resource: etcd_listener}
protocol: HTTP
etcd_monitor: etcd_monitor:
type: Magnum::Optional::Neutron::Pool::HealthMonitor type: Magnum::Optional::Neutron::LBaaS::HealthMonitor
properties: properties:
type: TCP type: TCP
delay: 5 delay: 5
max_retries: 5 max_retries: 5
timeout: 5 timeout: 5
pool: { get_resource: etcd_pool }
etcd_pool:
type: Magnum::Optional::Neutron::Pool
properties:
protocol: HTTP
monitors: [{get_resource: etcd_monitor}]
subnet: {get_resource: fixed_subnet}
lb_method: ROUND_ROBIN
vip:
protocol_port: 2379
###################################################################### ######################################################################
# #
@ -403,14 +422,14 @@ resources:
type: Magnum::ApiGatewaySwitcher type: Magnum::ApiGatewaySwitcher
properties: properties:
pool_public_ip: {get_attr: [api_pool_floating, floating_ip_address]} pool_public_ip: {get_attr: [api_pool_floating, floating_ip_address]}
pool_private_ip: {get_attr: [api_pool, vip, address]} pool_private_ip: {get_attr: [api_loadbalancer, vip_address]}
master_public_ip: {get_attr: [kube_masters, resource.0.kube_master_external_ip]} master_public_ip: {get_attr: [kube_masters, resource.0.kube_master_external_ip]}
master_private_ip: {get_attr: [kube_masters, resource.0.kube_master_ip]} master_private_ip: {get_attr: [kube_masters, resource.0.kube_master_ip]}
etcd_address_lb_switch: etcd_address_lb_switch:
type: Magnum::ApiGatewaySwitcher type: Magnum::ApiGatewaySwitcher
properties: properties:
pool_private_ip: {get_attr: [etcd_pool, vip, address]} pool_private_ip: {get_attr: [etcd_loadbalancer, vip_address]}
master_private_ip: {get_attr: [kube_masters, resource.0.kube_master_ip]} master_private_ip: {get_attr: [kube_masters, resource.0.kube_master_ip]}
###################################################################### ######################################################################
@ -441,7 +460,7 @@ resources:
type: kubemaster.yaml type: kubemaster.yaml
properties: properties:
api_public_address: {get_attr: [api_pool_floating, floating_ip_address]} api_public_address: {get_attr: [api_pool_floating, floating_ip_address]}
api_private_address: {get_attr: [api_pool, vip, address]} api_private_address: {get_attr: [api_loadbalancer, vip_address]}
ssh_key_name: {get_param: ssh_key_name} ssh_key_name: {get_param: ssh_key_name}
server_image: {get_param: server_image} server_image: {get_param: server_image}
master_flavor: {get_param: master_flavor} master_flavor: {get_param: master_flavor}

View File

@ -402,17 +402,19 @@ resources:
get_attr: [kube_master, addresses, {get_param: fixed_network}, 0, port] get_attr: [kube_master, addresses, {get_param: fixed_network}, 0, port]
api_pool_member: api_pool_member:
type: Magnum::Optional::Neutron::PoolMember type: Magnum::Optional::Neutron::LBaaS::PoolMember
properties: properties:
pool_id: {get_param: api_pool_id} pool: {get_param: api_pool_id}
address: {get_attr: [kube_master, networks, private, 0]} address: {get_attr: [kube_master, networks, private, 0]}
subnet: { get_param: fixed_subnet }
protocol_port: {get_param: kubernetes_port} protocol_port: {get_param: kubernetes_port}
etcd_pool_member: etcd_pool_member:
type: Magnum::Optional::Neutron::PoolMember type: Magnum::Optional::Neutron::LBaaS::PoolMember
properties: properties:
pool_id: {get_param: etcd_pool_id} pool: {get_param: etcd_pool_id}
address: {get_attr: [kube_master, networks, private, 0]} address: {get_attr: [kube_master, networks, private, 0]}
subnet: { get_param: fixed_subnet }
protocol_port: 2379 protocol_port: 2379
outputs: outputs:

View File

@ -420,17 +420,19 @@ resources:
port_id: {get_resource: kube_master_eth0} port_id: {get_resource: kube_master_eth0}
api_pool_member: api_pool_member:
type: Magnum::Optional::Neutron::PoolMember type: Magnum::Optional::Neutron::LBaaS::PoolMember
properties: properties:
pool_id: {get_param: api_pool_id} pool: {get_param: api_pool_id}
address: {get_attr: [kube_master_eth0, fixed_ips, 0, ip_address]} address: {get_attr: [kube_master_eth0, fixed_ips, 0, ip_address]}
subnet: { get_param: fixed_subnet }
protocol_port: {get_param: kubernetes_port} protocol_port: {get_param: kubernetes_port}
etcd_pool_member: etcd_pool_member:
type: Magnum::Optional::Neutron::PoolMember type: Magnum::Optional::Neutron::LBaaS::PoolMember
properties: properties:
pool_id: {get_param: etcd_pool_id} pool: {get_param: etcd_pool_id}
address: {get_attr: [kube_master_eth0, fixed_ips, 0, ip_address]} address: {get_attr: [kube_master_eth0, fixed_ips, 0, ip_address]}
subnet: { get_param: fixed_subnet }
protocol_port: 2379 protocol_port: 2379
###################################################################### ######################################################################

View File

@ -343,33 +343,41 @@ resources:
# #
# load balancers. # load balancers.
# #
api_loadbalancer:
type: Magnum::Optional::Neutron::LBaaS::LoadBalancer
properties:
vip_subnet: {get_resource: fixed_subnet}
api_listener:
type: Magnum::Optional::Neutron::LBaaS::Listener
properties:
loadbalancer: {get_resource: api_loadbalancer}
protocol: HTTP
protocol_port: 8080
api_pool:
type: Magnum::Optional::Neutron::LBaaS::Pool
properties:
lb_algorithm: ROUND_ROBIN
listener: {get_resource: api_listener}
protocol: HTTP
api_monitor: api_monitor:
type: Magnum::Optional::Neutron::Pool::HealthMonitor type: Magnum::Optional::Neutron::LBaaS::HealthMonitor
properties: properties:
type: TCP type: TCP
delay: 5 delay: 5
max_retries: 5 max_retries: 5
timeout: 5 timeout: 5
pool: { get_resource: api_pool }
api_pool:
type: Magnum::Optional::Neutron::Pool
properties:
protocol: HTTP
monitors: [{get_resource: api_monitor}]
subnet: {get_resource: fixed_subnet}
lb_method: ROUND_ROBIN
vip:
protocol_port: 8080
description: API pool for Mesos cluster
api_pool_floating: api_pool_floating:
type: Magnum::Optional::Neutron::Pool::FloatingIP type: Magnum::Optional::Neutron::FloatingIP
depends_on: depends_on:
- extrouter_inside - extrouter_inside
properties: properties:
floating_network: {get_param: external_network} floating_network: {get_param: external_network}
port_id: {get_attr: [api_pool, vip, port_id]} port_id: {get_attr: [api_loadbalancer, vip_port_id]}
###################################################################### ######################################################################
# #

View File

@ -78,10 +78,11 @@ resources:
port_id: {get_resource: mesos_master_eth0} port_id: {get_resource: mesos_master_eth0}
api_pool_member: api_pool_member:
type: Magnum::Optional::Neutron::PoolMember type: Magnum::Optional::Neutron::LBaaS::PoolMember
properties: properties:
pool_id: {get_param: api_pool_id} pool: {get_param: api_pool_id}
address: {get_attr: [mesos_master_eth0, fixed_ips, 0, ip_address]} address: {get_attr: [mesos_master_eth0, fixed_ips, 0, ip_address]}
subnet: { get_param: fixed_subnet }
protocol_port: 8080 protocol_port: 8080
outputs: outputs:

View File

@ -287,50 +287,69 @@ resources:
# #
# load balancers. # load balancers.
# #
api_loadbalancer:
type: Magnum::Optional::Neutron::LBaaS::LoadBalancer
properties:
vip_subnet: {get_resource: fixed_subnet}
api_listener:
type: Magnum::Optional::Neutron::LBaaS::Listener
properties:
loadbalancer: {get_resource: api_loadbalancer}
protocol: {get_param: loadbalancing_protocol}
protocol_port: {get_param: swarm_port}
api_pool:
type: Magnum::Optional::Neutron::LBaaS::Pool
properties:
lb_algorithm: ROUND_ROBIN
listener: {get_resource: api_listener}
protocol: {get_param: loadbalancing_protocol}
api_monitor: api_monitor:
type: Magnum::Optional::Neutron::Pool::HealthMonitor type: Magnum::Optional::Neutron::LBaaS::HealthMonitor
properties: properties:
type: TCP type: TCP
delay: 5 delay: 5
max_retries: 5 max_retries: 5
timeout: 5 timeout: 5
pool: { get_resource: api_pool }
api_pool:
type: Magnum::Optional::Neutron::Pool
properties:
protocol: {get_param: loadbalancing_protocol}
monitors: [{get_resource: api_monitor}]
subnet: {get_resource: fixed_subnet}
lb_method: ROUND_ROBIN
vip:
protocol_port: {get_param: swarm_port}
api_pool_floating: api_pool_floating:
type: Magnum::Optional::Neutron::Pool::FloatingIP type: Magnum::Optional::Neutron::FloatingIP
depends_on: depends_on:
- extrouter_inside - extrouter_inside
properties: properties:
floating_network: {get_param: external_network} floating_network: {get_param: external_network}
port_id: {get_attr: [api_pool, vip, port_id]} port_id: {get_attr: [api_loadbalancer, vip_port_id]}
etcd_loadbalancer:
type: Magnum::Optional::Neutron::LBaaS::LoadBalancer
properties:
vip_subnet: {get_resource: fixed_subnet}
etcd_listener:
type: Magnum::Optional::Neutron::LBaaS::Listener
properties:
loadbalancer: {get_resource: etcd_loadbalancer}
protocol: HTTP
protocol_port: 2379
etcd_pool:
type: Magnum::Optional::Neutron::LBaaS::Pool
properties:
lb_algorithm: ROUND_ROBIN
listener: {get_resource: etcd_listener}
protocol: HTTP
etcd_monitor: etcd_monitor:
type: Magnum::Optional::Neutron::Pool::HealthMonitor type: Magnum::Optional::Neutron::LBaaS::HealthMonitor
properties: properties:
type: TCP type: TCP
delay: 5 delay: 5
max_retries: 5 max_retries: 5
timeout: 5 timeout: 5
pool: { get_resource: etcd_pool }
etcd_pool:
type: Magnum::Optional::Neutron::Pool
properties:
protocol: HTTP
monitors: [{get_resource: etcd_monitor}]
subnet: {get_resource: fixed_subnet}
lb_method: ROUND_ROBIN
vip:
protocol_port: 2379
###################################################################### ######################################################################
# #
@ -342,14 +361,14 @@ resources:
type: Magnum::ApiGatewaySwitcher type: Magnum::ApiGatewaySwitcher
properties: properties:
pool_public_ip: {get_attr: [api_pool_floating, floating_ip_address]} pool_public_ip: {get_attr: [api_pool_floating, floating_ip_address]}
pool_private_ip: {get_attr: [api_pool, vip, address]} pool_private_ip: {get_attr: [api_loadbalancer, vip_address]}
master_public_ip: {get_attr: [swarm_masters, resource.0.swarm_master_external_ip]} master_public_ip: {get_attr: [swarm_masters, resource.0.swarm_master_external_ip]}
master_private_ip: {get_attr: [swarm_masters, resource.0.swarm_master_ip]} master_private_ip: {get_attr: [swarm_masters, resource.0.swarm_master_ip]}
etcd_address_switch: etcd_address_switch:
type: Magnum::ApiGatewaySwitcher type: Magnum::ApiGatewaySwitcher
properties: properties:
pool_private_ip: {get_attr: [etcd_pool, vip, address]} pool_private_ip: {get_attr: [etcd_loadbalancer, vip_address]}
master_private_ip: {get_attr: [swarm_masters, resource.0.swarm_master_ip]} master_private_ip: {get_attr: [swarm_masters, resource.0.swarm_master_ip]}
###################################################################### ######################################################################
@ -380,7 +399,7 @@ resources:
http_proxy: {get_param: http_proxy} http_proxy: {get_param: http_proxy}
https_proxy: {get_param: https_proxy} https_proxy: {get_param: https_proxy}
no_proxy: {get_param: no_proxy} no_proxy: {get_param: no_proxy}
swarm_api_ip: {get_attr: [api_pool, vip, address]} swarm_api_ip: {get_attr: [api_loadbalancer, vip_address]}
cluster_uuid: {get_param: cluster_uuid} cluster_uuid: {get_param: cluster_uuid}
magnum_url: {get_param: magnum_url} magnum_url: {get_param: magnum_url}
tls_disabled: {get_param: tls_disabled} tls_disabled: {get_param: tls_disabled}
@ -392,7 +411,7 @@ resources:
swarm_port: {get_param: swarm_port} swarm_port: {get_param: swarm_port}
api_pool_id: {get_resource: api_pool} api_pool_id: {get_resource: api_pool}
etcd_pool_id: {get_resource: etcd_pool} etcd_pool_id: {get_resource: etcd_pool}
etcd_server_ip: {get_attr: [etcd_pool, vip, address]} etcd_server_ip: {get_attr: [etcd_loadbalancer, vip_address]}
api_ip_address: {get_attr: [api_pool_floating, floating_ip_address]} api_ip_address: {get_attr: [api_pool_floating, floating_ip_address]}
swarm_version: {get_param: swarm_version} swarm_version: {get_param: swarm_version}
trustee_user_id: {get_param: trustee_user_id} trustee_user_id: {get_param: trustee_user_id}

View File

@ -415,17 +415,19 @@ resources:
get_resource: swarm_master_eth0 get_resource: swarm_master_eth0
api_pool_member: api_pool_member:
type: Magnum::Optional::Neutron::PoolMember type: Magnum::Optional::Neutron::LBaaS::PoolMember
properties: properties:
pool_id: {get_param: api_pool_id} pool: {get_param: api_pool_id}
address: {get_attr: [swarm_master_eth0, fixed_ips, 0, ip_address]} address: {get_attr: [swarm_master_eth0, fixed_ips, 0, ip_address]}
subnet: { get_param: fixed_subnet_id }
protocol_port: {get_param: swarm_port} protocol_port: {get_param: swarm_port}
etcd_pool_member: etcd_pool_member:
type: Magnum::Optional::Neutron::PoolMember type: Magnum::Optional::Neutron::LBaaS::PoolMember
properties: properties:
pool_id: {get_param: etcd_pool_id} pool: {get_param: etcd_pool_id}
address: {get_attr: [swarm_master_eth0, fixed_ips, 0, ip_address]} address: {get_attr: [swarm_master_eth0, fixed_ips, 0, ip_address]}
subnet: { get_param: fixed_subnet_id }
protocol_port: 2379 protocol_port: 2379
###################################################################### ######################################################################

View File

@ -21,6 +21,8 @@ special=$2
export PROJECTS="openstack/barbican $PROJECTS" export PROJECTS="openstack/barbican $PROJECTS"
export DEVSTACK_LOCAL_CONFIG="enable_plugin magnum git://git.openstack.org/openstack/magnum" export DEVSTACK_LOCAL_CONFIG="enable_plugin magnum git://git.openstack.org/openstack/magnum"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ceilometer git://git.openstack.org/openstack/ceilometer" export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ceilometer git://git.openstack.org/openstack/ceilometer"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin neutron-lbaas https://git.openstack.org/openstack/neutron-lbaas"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin octavia https://github.com/openstack/octavia"
if [ "$coe" = "mesos" ]; then if [ "$coe" = "mesos" ]; then
echo "MAGNUM_GUEST_IMAGE_URL=https://fedorapeople.org/groups/magnum/ubuntu-14.04.3-mesos-0.25.0.qcow2" >> $BASE/new/devstack/localrc echo "MAGNUM_GUEST_IMAGE_URL=https://fedorapeople.org/groups/magnum/ubuntu-14.04.3-mesos-0.25.0.qcow2" >> $BASE/new/devstack/localrc
@ -36,6 +38,15 @@ elif [ "${coe}${special}" = "k8s-ironic" ]; then
# NOTE(strigazi) keep cinder # NOTE(strigazi) keep cinder
# export DEVSTACK_LOCAL_CONFIG+=$'\n'"disable_service cinder c-sch c-api c-vol" # export DEVSTACK_LOCAL_CONFIG+=$'\n'"disable_service cinder c-sch c-api c-vol"
# Enable LBaaS(v2) and disable LBaaS(v1)
export DEVSTACK_LOCAL_CONFIG+=$'\n'"disable_service q-lbaas"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_service q-lbaasv2"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_service octavia"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_service o-cw"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_service o-hk"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_service o-hm"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_service o-api"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic git://git.openstack.org/openstack/ironic" export DEVSTACK_LOCAL_CONFIG+=$'\n'"enable_plugin ironic git://git.openstack.org/openstack/ironic"
export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_DEPLOY_DRIVER=pxe_ssh" export DEVSTACK_LOCAL_CONFIG+=$'\n'"IRONIC_DEPLOY_DRIVER=pxe_ssh"