Enable HA mode for mesos bay in Magnum

To create a HA mesos bay, users need to specify at least 3 master
nodes. For example:

magnum bay-create --name mesosbay --baymodel mesosbaymodel \
                  --master-count 3

Change-Id: I85c2113fec0fd743cc3b142e6a490bdfb3b896e6
Implements: blueprint mesos-multi-master-node
This commit is contained in:
Hongbin Lu 2015-12-06 22:56:54 -05:00
parent 64c5496536
commit a82b098664
3 changed files with 9 additions and 6 deletions

View File

@ -347,6 +347,9 @@ class BaseTemplateDefinition(TemplateDefinition):
baymodel_attr='https_proxy')
self.add_parameter('no_proxy',
baymodel_attr='no_proxy')
self.add_parameter('number_of_masters',
bay_attr='master_count',
param_type=str)
@abc.abstractproperty
def template_path(self):
@ -445,9 +448,6 @@ class AtomicK8sTemplateDefinition(BaseTemplateDefinition):
self.add_parameter('number_of_minions',
bay_attr='node_count',
param_type=str)
self.add_parameter('number_of_masters',
bay_attr='master_count',
param_type=str)
self.add_parameter('docker_volume_size',
baymodel_attr='docker_volume_size')
self.add_parameter('external_network',
@ -558,9 +558,6 @@ class AtomicSwarmTemplateDefinition(BaseTemplateDefinition):
self.add_parameter('number_of_nodes',
bay_attr='node_count',
param_type=str)
self.add_parameter('number_of_masters',
bay_attr='master_count',
param_type=str)
self.add_parameter('server_flavor',
baymodel_attr='flavor_id')
self.add_parameter('docker_volume_size',

View File

@ -49,6 +49,7 @@ class TestBayConductorWithMesos(base.TestCase):
'api_address': '172.17.2.3',
'node_addresses': ['172.17.2.4'],
'node_count': 1,
'master_count': 1,
}
@patch('magnum.objects.BayModel.get_by_uuid')
@ -71,6 +72,7 @@ class TestBayConductorWithMesos(base.TestCase):
'master_flavor': 'master_flavor_id',
'slave_flavor': 'flavor_id',
'number_of_slaves': '1',
'number_of_masters': '1',
'fixed_network_cidr': '10.2.0.0/22',
'http_proxy': 'http_proxy',
'https_proxy': 'https_proxy',
@ -100,6 +102,7 @@ class TestBayConductorWithMesos(base.TestCase):
'ssh_key_name': 'keypair_id',
'external_network': 'external_network_id',
'number_of_slaves': '1',
'number_of_masters': '1',
}
self.assertEqual(expected, definition)

View File

@ -495,6 +495,9 @@ class UbuntuMesosTemplateDefinitionTestCase(base.TestCase):
heat_param = mesos_def.get_heat_param(bay_attr='node_count')
self.assertEqual('number_of_slaves', heat_param)
heat_param = mesos_def.get_heat_param(bay_attr='master_count')
self.assertEqual('number_of_masters', heat_param)
def test_update_outputs(self):
mesos_def = tdef.UbuntuMesosTemplateDefinition()