Decouple the hard requirement on neutron-lbaas
Neutron LBaaS is only required on HA setup or the k8s external load balancer feature, otherwise, it is not required. We need to decouple from neutron-lbaas to overcome an adoption challenge reported in Austin design summit: https:/
Blueprint information
Related branches
Related bugs
Sprints
Whiteboard
2016-06-02 adrian_otto: we discussed this in IRC today, and reached some consensus on a sensible implementation approach. Overview:
1) Introduce a new baymodel attribute master_lb_enabled, which defaults to False.
2) Adjust the input validation for the master_count attribute on a bay. If the baymodel.
3) Select an alternate bay template for heat when master_lb_enabled is set to True. The only additional section of the template in this case should be the cloud resources to set up the load balancing of the master nodes of the COE.
Example (excerpt from magnum/
#
# load balancers.
#
api_monitor:
type: OS::Neutron:
properties:
type: TCP
delay: 5
max_retries: 5
timeout: 5
api_pool:
type: OS::Neutron::Pool
properties:
protocol: {get_param: loadbalancing_
monitors: [{get_resource: api_monitor}]
subnet: {get_resource: fixed_subnet}
lb_method: ROUND_ROBIN
vip:
api_pool_
type: OS::Neutron:
depends_on:
- extrouter_inside
properties:
floating_
port_id: {get_attr: [api_pool, vip, port_id]}
etcd_monitor:
type: OS::Neutron:
properties:
type: TCP
delay: 5
max_retries: 5
timeout: 5
etcd_pool:
type: OS::Neutron::Pool
properties:
protocol: HTTP
monitors: [{get_resource: etcd_monitor}]
subnet: {get_resource: fixed_subnet}
lb_method: ROUND_ROBIN
vip:
...
api_pool_member:
type: OS::Neutron:
properties:
pool_id: {get_param: api_pool_id}
address: {get_attr: [kube_master_eth0, fixed_ips, 0, ip_address]}
protocol_
etcd_pool_member:
type: OS::Neutron:
properties:
pool_id: {get_param: etcd_pool_id}
address: {get_attr: [kube_master_eth0, fixed_ips, 0, ip_address]}
protocol_
Note, we will need to make sure parameters like api_pool_id and etcd_pool_id are only included/used in/with the template used when master_lb_enabled is set to True.
Gerrit topic: https:/
Addressed by: https:/
[WIP] Allow k8s cluster without LBaaS
Addressed by: https:/
Add master_lb_enabled field to baymodel
Addressed by: https:/
Allow Bay templates to include Heat environments
Addressed by: https:/
Allow Bay templates to include Heat environments
Addressed by: https:/
Allow swarm cluster without LBaaS
Addressed by: https:/
Allow mesos cluster without LBaaS
Addressed by: https:/
Move common/fragments into templates directory
Addressed by: https:/
De-duplicate the decouple-
--- (Abandoned patches)
(achanda)
We (EMC) need to back port these changes to Mitaka
Addressed by: https:/
Add master_lb_enabled field to baymodel
Addressed by: https:/
Allow Bay templates to include Heat environments
---
Gerrit topic: https:/