Make private network optional
If a fixed_network and fixed_subnet is specified no private network is created by the templates and the specified network is used instead for VMs provisioning, like in the Ironic driver. Currently missing is the code to handle the use case where you specify a fixed_network but not a fixed_subnet, this will come in a following patch. Partially Implements: blueprint decouple-private-network Change-Id: I2003eb709b22b905063d846eb71570fc5e033618
This commit is contained in:
parent
a60529cb11
commit
22fb89a6e1
|
@ -0,0 +1,8 @@
|
||||||
|
resource_registry:
|
||||||
|
"Magnum::NetworkSwitcher": ../fragments/network_switcher_existing.yaml
|
||||||
|
|
||||||
|
# Cluster template
|
||||||
|
"Magnum::Optional::Neutron::Subnet": "OS::Heat::None"
|
||||||
|
"Magnum::Optional::Neutron::Net": "OS::Heat::None"
|
||||||
|
"Magnum::Optional::Neutron::Router": "OS::Heat::None"
|
||||||
|
"Magnum::Optional::Neutron::RouterInterface": "OS::Heat::None"
|
|
@ -0,0 +1,8 @@
|
||||||
|
resource_registry:
|
||||||
|
"Magnum::NetworkSwitcher": ../fragments/network_switcher_private.yaml
|
||||||
|
|
||||||
|
# Cluster template
|
||||||
|
"Magnum::Optional::Neutron::Subnet": "OS::Neutron::Subnet"
|
||||||
|
"Magnum::Optional::Neutron::Net": "OS::Neutron::Net"
|
||||||
|
"Magnum::Optional::Neutron::Router": "OS::Neutron::Router"
|
||||||
|
"Magnum::Optional::Neutron::RouterInterface": "OS::Neutron::RouterInterface"
|
|
@ -0,0 +1,27 @@
|
||||||
|
heat_template_version: 2014-10-16
|
||||||
|
|
||||||
|
parameters:
|
||||||
|
|
||||||
|
private_network:
|
||||||
|
type: string
|
||||||
|
default: ""
|
||||||
|
|
||||||
|
existing_network:
|
||||||
|
type: string
|
||||||
|
default: ""
|
||||||
|
|
||||||
|
private_subnet:
|
||||||
|
type: string
|
||||||
|
default: ""
|
||||||
|
|
||||||
|
existing_subnet:
|
||||||
|
type: string
|
||||||
|
default: ""
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
|
||||||
|
network:
|
||||||
|
value: {get_param: existing_network}
|
||||||
|
|
||||||
|
subnet:
|
||||||
|
value: {get_param: existing_subnet}
|
|
@ -0,0 +1,27 @@
|
||||||
|
heat_template_version: 2014-10-16
|
||||||
|
|
||||||
|
parameters:
|
||||||
|
|
||||||
|
private_network:
|
||||||
|
type: string
|
||||||
|
default: ""
|
||||||
|
|
||||||
|
existing_network:
|
||||||
|
type: string
|
||||||
|
default: ""
|
||||||
|
|
||||||
|
private_subnet:
|
||||||
|
type: string
|
||||||
|
default: ""
|
||||||
|
|
||||||
|
existing_subnet:
|
||||||
|
type: string
|
||||||
|
default: ""
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
|
||||||
|
network:
|
||||||
|
value: {get_param: private_network}
|
||||||
|
|
||||||
|
subnet:
|
||||||
|
value: {get_param: private_subnet}
|
|
@ -5,12 +5,19 @@ description: >
|
||||||
router for our server.
|
router for our server.
|
||||||
|
|
||||||
parameters:
|
parameters:
|
||||||
|
existing_network:
|
||||||
|
type: string
|
||||||
|
default: ""
|
||||||
|
|
||||||
fixed_network_cidr:
|
existing_subnet:
|
||||||
|
type: string
|
||||||
|
default: ""
|
||||||
|
|
||||||
|
private_network_cidr:
|
||||||
type: string
|
type: string
|
||||||
description: network range for fixed ip network
|
description: network range for fixed ip network
|
||||||
|
|
||||||
fixed_network_name:
|
private_network_name:
|
||||||
type: string
|
type: string
|
||||||
description: fixed network name
|
description: fixed network name
|
||||||
default: ""
|
default: ""
|
||||||
|
@ -24,37 +31,45 @@ parameters:
|
||||||
description: uuid/name of a network to use for floating ip addresses
|
description: uuid/name of a network to use for floating ip addresses
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
fixed_network:
|
private_network:
|
||||||
type: OS::Neutron::Net
|
type: Magnum::Optional::Neutron::Net
|
||||||
properties:
|
properties:
|
||||||
name: {get_param: fixed_network_name}
|
name: {get_param: private_network_name}
|
||||||
|
|
||||||
fixed_subnet:
|
private_subnet:
|
||||||
type: OS::Neutron::Subnet
|
type: Magnum::Optional::Neutron::Subnet
|
||||||
properties:
|
properties:
|
||||||
cidr: {get_param: fixed_network_cidr}
|
cidr: {get_param: private_network_cidr}
|
||||||
network: {get_resource: fixed_network}
|
network: {get_resource: private_network}
|
||||||
dns_nameservers:
|
dns_nameservers:
|
||||||
- {get_param: dns_nameserver}
|
- {get_param: dns_nameserver}
|
||||||
|
|
||||||
extrouter:
|
extrouter:
|
||||||
type: OS::Neutron::Router
|
type: Magnum::Optional::Neutron::Router
|
||||||
properties:
|
properties:
|
||||||
external_gateway_info:
|
external_gateway_info:
|
||||||
network: {get_param: external_network}
|
network: {get_param: external_network}
|
||||||
|
|
||||||
extrouter_inside:
|
extrouter_inside:
|
||||||
type: OS::Neutron::RouterInterface
|
type: Magnum::Optional::Neutron::RouterInterface
|
||||||
properties:
|
properties:
|
||||||
router_id: {get_resource: extrouter}
|
router_id: {get_resource: extrouter}
|
||||||
subnet: {get_resource: fixed_subnet}
|
subnet: {get_resource: private_subnet}
|
||||||
|
|
||||||
|
network_switch:
|
||||||
|
type: Magnum::NetworkSwitcher
|
||||||
|
properties:
|
||||||
|
private_network: {get_resource: private_network}
|
||||||
|
private_subnet: {get_resource: private_subnet}
|
||||||
|
existing_network: {get_param: existing_network}
|
||||||
|
existing_subnet: {get_param: existing_subnet}
|
||||||
|
|
||||||
outputs:
|
outputs:
|
||||||
fixed_network:
|
fixed_network:
|
||||||
description: >
|
description: >
|
||||||
Created fixed network ID
|
Network ID where to provision machines
|
||||||
value: {get_resource: fixed_network}
|
value: {get_attr: [network_switch, network]}
|
||||||
fixed_subnet:
|
fixed_subnet:
|
||||||
description: >
|
description: >
|
||||||
Created fixed subnet ID
|
Subnet ID where to provision machines
|
||||||
value: {get_resource: fixed_subnet}
|
value: {get_attr: [network_switch, subnet]}
|
||||||
|
|
|
@ -81,18 +81,9 @@ class K8sFedoraTemplateDefinition(k8s_template_def.K8sTemplateDefinition):
|
||||||
def get_env_files(self, cluster_template):
|
def get_env_files(self, cluster_template):
|
||||||
env_files = []
|
env_files = []
|
||||||
|
|
||||||
if cluster_template.docker_volume_size is None:
|
template_def.add_priv_net_env_file(env_files, cluster_template)
|
||||||
env_files.append('no_volume.yaml')
|
template_def.add_volume_env_file(env_files, cluster_template)
|
||||||
else:
|
template_def.add_lb_env_file(env_files, cluster_template)
|
||||||
env_files.append('with_volume.yaml')
|
template_def.add_fip_env_file(env_files, cluster_template)
|
||||||
|
|
||||||
if cluster_template.master_lb_enabled:
|
return env_files
|
||||||
env_files.append('with_master_lb.yaml')
|
|
||||||
else:
|
|
||||||
env_files.append('no_master_lb.yaml')
|
|
||||||
if cluster_template.floating_ip_enabled:
|
|
||||||
env_files.append('enable_floating_ip.yaml')
|
|
||||||
else:
|
|
||||||
env_files.append('disable_floating_ip.yaml')
|
|
||||||
|
|
||||||
return [template_def.COMMON_ENV_PATH + ef for ef in env_files]
|
|
||||||
|
|
|
@ -60,6 +60,10 @@ class K8sTemplateDefinition(template_def.BaseTemplateDefinition):
|
||||||
self.add_parameter('external_network',
|
self.add_parameter('external_network',
|
||||||
cluster_template_attr='external_network_id',
|
cluster_template_attr='external_network_id',
|
||||||
required=True)
|
required=True)
|
||||||
|
self.add_parameter('fixed_network',
|
||||||
|
cluster_template_attr='fixed_network')
|
||||||
|
self.add_parameter('fixed_subnet',
|
||||||
|
cluster_template_attr='fixed_subnet')
|
||||||
self.add_parameter('network_driver',
|
self.add_parameter('network_driver',
|
||||||
cluster_template_attr='network_driver')
|
cluster_template_attr='network_driver')
|
||||||
self.add_parameter('volume_driver',
|
self.add_parameter('volume_driver',
|
||||||
|
|
|
@ -58,6 +58,10 @@ class SwarmFedoraTemplateDefinition(template_def.BaseTemplateDefinition):
|
||||||
self.add_parameter('external_network',
|
self.add_parameter('external_network',
|
||||||
cluster_template_attr='external_network_id',
|
cluster_template_attr='external_network_id',
|
||||||
required=True)
|
required=True)
|
||||||
|
self.add_parameter('fixed_network',
|
||||||
|
cluster_template_attr='fixed_network')
|
||||||
|
self.add_parameter('fixed_subnet',
|
||||||
|
cluster_template_attr='fixed_subnet')
|
||||||
self.add_parameter('network_driver',
|
self.add_parameter('network_driver',
|
||||||
cluster_template_attr='network_driver')
|
cluster_template_attr='network_driver')
|
||||||
self.add_parameter('tls_disabled',
|
self.add_parameter('tls_disabled',
|
||||||
|
@ -115,14 +119,8 @@ class SwarmFedoraTemplateDefinition(template_def.BaseTemplateDefinition):
|
||||||
def get_env_files(self, cluster_template):
|
def get_env_files(self, cluster_template):
|
||||||
env_files = []
|
env_files = []
|
||||||
|
|
||||||
if cluster_template.docker_volume_size is None:
|
template_def.add_priv_net_env_file(env_files, cluster_template)
|
||||||
env_files.append('no_volume.yaml')
|
template_def.add_volume_env_file(env_files, cluster_template)
|
||||||
else:
|
template_def.add_lb_env_file(env_files, cluster_template)
|
||||||
env_files.append('with_volume.yaml')
|
|
||||||
|
|
||||||
if cluster_template.master_lb_enabled:
|
return env_files
|
||||||
env_files.append('with_master_lb.yaml')
|
|
||||||
else:
|
|
||||||
env_files.append('no_master_lb.yaml')
|
|
||||||
|
|
||||||
return [template_def.COMMON_ENV_PATH + ef for ef in env_files]
|
|
||||||
|
|
|
@ -313,3 +313,31 @@ class BaseTemplateDefinition(TemplateDefinition):
|
||||||
else:
|
else:
|
||||||
cluster.discovery_url = discovery_url
|
cluster.discovery_url = discovery_url
|
||||||
return discovery_url
|
return discovery_url
|
||||||
|
|
||||||
|
|
||||||
|
def add_lb_env_file(env_files, cluster_template):
|
||||||
|
if cluster_template.master_lb_enabled:
|
||||||
|
env_files.append(COMMON_ENV_PATH + 'with_master_lb.yaml')
|
||||||
|
else:
|
||||||
|
env_files.append(COMMON_ENV_PATH + 'no_master_lb.yaml')
|
||||||
|
|
||||||
|
|
||||||
|
def add_volume_env_file(env_files, cluster_template):
|
||||||
|
if cluster_template.docker_volume_size is None:
|
||||||
|
env_files.append(COMMON_ENV_PATH + 'no_volume.yaml')
|
||||||
|
else:
|
||||||
|
env_files.append(COMMON_ENV_PATH + 'with_volume.yaml')
|
||||||
|
|
||||||
|
|
||||||
|
def add_fip_env_file(env_files, cluster_template):
|
||||||
|
if cluster_template.floating_ip_enabled:
|
||||||
|
env_files.append(COMMON_ENV_PATH + 'enable_floating_ip.yaml')
|
||||||
|
else:
|
||||||
|
env_files.append(COMMON_ENV_PATH + 'disable_floating_ip.yaml')
|
||||||
|
|
||||||
|
|
||||||
|
def add_priv_net_env_file(env_files, cluster_template):
|
||||||
|
if cluster_template.fixed_network:
|
||||||
|
env_files.append(COMMON_ENV_PATH + 'no_private_network.yaml')
|
||||||
|
else:
|
||||||
|
env_files.append(COMMON_ENV_PATH + 'with_private_network.yaml')
|
||||||
|
|
|
@ -32,18 +32,10 @@ class CoreOSK8sTemplateDefinition(k8s_template_def.K8sTemplateDefinition):
|
||||||
|
|
||||||
def get_env_files(self, cluster_template):
|
def get_env_files(self, cluster_template):
|
||||||
env_files = []
|
env_files = []
|
||||||
if cluster_template.master_lb_enabled:
|
|
||||||
env_files.append(
|
template_def.add_priv_net_env_file(env_files, cluster_template)
|
||||||
template_def.COMMON_ENV_PATH + 'with_master_lb.yaml')
|
template_def.add_lb_env_file(env_files, cluster_template)
|
||||||
else:
|
template_def.add_fip_env_file(env_files, cluster_template)
|
||||||
env_files.append(
|
|
||||||
template_def.COMMON_ENV_PATH + 'no_master_lb.yaml')
|
|
||||||
if cluster_template.floating_ip_enabled:
|
|
||||||
env_files.append(
|
|
||||||
template_def.COMMON_ENV_PATH + 'enable_floating_ip.yaml')
|
|
||||||
else:
|
|
||||||
env_files.append(
|
|
||||||
template_def.COMMON_ENV_PATH + 'disable_floating_ip.yaml')
|
|
||||||
|
|
||||||
return env_files
|
return env_files
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,16 @@ parameters:
|
||||||
description: uuid/name of a network to use for floating ip addresses
|
description: uuid/name of a network to use for floating ip addresses
|
||||||
default: public
|
default: public
|
||||||
|
|
||||||
|
fixed_network:
|
||||||
|
type: string
|
||||||
|
description: uuid/name of an existing network to use to provision machines
|
||||||
|
default: ""
|
||||||
|
|
||||||
|
fixed_subnet:
|
||||||
|
type: string
|
||||||
|
description: uuid/name of an existing subnet to use to provision machines
|
||||||
|
default: ""
|
||||||
|
|
||||||
server_image:
|
server_image:
|
||||||
type: string
|
type: string
|
||||||
default: CoreOS
|
default: CoreOS
|
||||||
|
@ -212,10 +222,12 @@ resources:
|
||||||
network:
|
network:
|
||||||
type: ../../common/templates/network.yaml
|
type: ../../common/templates/network.yaml
|
||||||
properties:
|
properties:
|
||||||
fixed_network_cidr: {get_param: fixed_network_cidr}
|
existing_network: {get_param: fixed_network}
|
||||||
|
existing_subnet: {get_param: fixed_subnet}
|
||||||
|
private_network_cidr: {get_param: fixed_network_cidr}
|
||||||
dns_nameserver: {get_param: dns_nameserver}
|
dns_nameserver: {get_param: dns_nameserver}
|
||||||
external_network: {get_param: external_network}
|
external_network: {get_param: external_network}
|
||||||
fixed_network_name: private
|
private_network_name: private
|
||||||
|
|
||||||
api_lb:
|
api_lb:
|
||||||
type: ../../common/templates/lb.yaml
|
type: ../../common/templates/lb.yaml
|
||||||
|
|
|
@ -16,6 +16,16 @@ parameters:
|
||||||
description: uuid/name of a network to use for floating ip addresses
|
description: uuid/name of a network to use for floating ip addresses
|
||||||
default: public
|
default: public
|
||||||
|
|
||||||
|
fixed_network:
|
||||||
|
type: string
|
||||||
|
description: uuid/name of an existing network to use to provision machines
|
||||||
|
default: ""
|
||||||
|
|
||||||
|
fixed_subnet:
|
||||||
|
type: string
|
||||||
|
description: uuid/name of an existing subnet to use to provision machines
|
||||||
|
default: ""
|
||||||
|
|
||||||
server_image:
|
server_image:
|
||||||
type: string
|
type: string
|
||||||
description: glance image used to boot the server
|
description: glance image used to boot the server
|
||||||
|
@ -276,10 +286,12 @@ resources:
|
||||||
network:
|
network:
|
||||||
type: ../../common/templates/network.yaml
|
type: ../../common/templates/network.yaml
|
||||||
properties:
|
properties:
|
||||||
fixed_network_cidr: {get_param: fixed_network_cidr}
|
existing_network: {get_param: fixed_network}
|
||||||
|
existing_subnet: {get_param: fixed_subnet}
|
||||||
|
private_network_cidr: {get_param: fixed_network_cidr}
|
||||||
dns_nameserver: {get_param: dns_nameserver}
|
dns_nameserver: {get_param: dns_nameserver}
|
||||||
external_network: {get_param: external_network}
|
external_network: {get_param: external_network}
|
||||||
fixed_network_name: private
|
private_network_name: private
|
||||||
|
|
||||||
api_lb:
|
api_lb:
|
||||||
type: ../../common/templates/lb.yaml
|
type: ../../common/templates/lb.yaml
|
||||||
|
|
|
@ -24,6 +24,10 @@ class UbuntuMesosTemplateDefinition(template_def.BaseTemplateDefinition):
|
||||||
self.add_parameter('external_network',
|
self.add_parameter('external_network',
|
||||||
cluster_template_attr='external_network_id',
|
cluster_template_attr='external_network_id',
|
||||||
required=True)
|
required=True)
|
||||||
|
self.add_parameter('fixed_network',
|
||||||
|
cluster_template_attr='fixed_network')
|
||||||
|
self.add_parameter('fixed_subnet',
|
||||||
|
cluster_template_attr='fixed_subnet')
|
||||||
self.add_parameter('number_of_slaves',
|
self.add_parameter('number_of_slaves',
|
||||||
cluster_attr='node_count')
|
cluster_attr='node_count')
|
||||||
self.add_parameter('master_flavor',
|
self.add_parameter('master_flavor',
|
||||||
|
@ -78,10 +82,12 @@ class UbuntuMesosTemplateDefinition(template_def.BaseTemplateDefinition):
|
||||||
**kwargs)
|
**kwargs)
|
||||||
|
|
||||||
def get_env_files(self, cluster_template):
|
def get_env_files(self, cluster_template):
|
||||||
if cluster_template.master_lb_enabled:
|
env_files = []
|
||||||
return [template_def.COMMON_ENV_PATH + 'with_master_lb.yaml']
|
|
||||||
else:
|
template_def.add_priv_net_env_file(env_files, cluster_template)
|
||||||
return [template_def.COMMON_ENV_PATH + 'no_master_lb.yaml']
|
template_def.add_lb_env_file(env_files, cluster_template)
|
||||||
|
|
||||||
|
return env_files
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def driver_module_path(self):
|
def driver_module_path(self):
|
||||||
|
|
|
@ -17,6 +17,16 @@ parameters:
|
||||||
description: uuid/name of a network to use for floating ip addresses
|
description: uuid/name of a network to use for floating ip addresses
|
||||||
default: public
|
default: public
|
||||||
|
|
||||||
|
fixed_network:
|
||||||
|
type: string
|
||||||
|
description: uuid/name of an existing network to use to provision machines
|
||||||
|
default: ""
|
||||||
|
|
||||||
|
fixed_subnet:
|
||||||
|
type: string
|
||||||
|
description: uuid/name of an existing subnet to use to provision machines
|
||||||
|
default: ""
|
||||||
|
|
||||||
server_image:
|
server_image:
|
||||||
type: string
|
type: string
|
||||||
default: ubuntu-mesos
|
default: ubuntu-mesos
|
||||||
|
@ -207,7 +217,9 @@ resources:
|
||||||
network:
|
network:
|
||||||
type: ../../common/templates/network.yaml
|
type: ../../common/templates/network.yaml
|
||||||
properties:
|
properties:
|
||||||
fixed_network_cidr: {get_param: fixed_network_cidr}
|
existing_network: {get_param: fixed_network}
|
||||||
|
existing_subnet: {get_param: fixed_subnet}
|
||||||
|
private_network_cidr: {get_param: fixed_network_cidr}
|
||||||
dns_nameserver: {get_param: dns_nameserver}
|
dns_nameserver: {get_param: dns_nameserver}
|
||||||
external_network: {get_param: external_network}
|
external_network: {get_param: external_network}
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,16 @@ parameters:
|
||||||
type: string
|
type: string
|
||||||
description: uuid/name of a network to use for floating ip addresses
|
description: uuid/name of a network to use for floating ip addresses
|
||||||
|
|
||||||
|
fixed_network:
|
||||||
|
type: string
|
||||||
|
description: uuid/name of an existing network to use to provision machines
|
||||||
|
default: ""
|
||||||
|
|
||||||
|
fixed_subnet:
|
||||||
|
type: string
|
||||||
|
description: uuid/name of an existing subnet to use to provision machines
|
||||||
|
default: ""
|
||||||
|
|
||||||
discovery_url:
|
discovery_url:
|
||||||
type: string
|
type: string
|
||||||
description: url provided for node discovery
|
description: url provided for node discovery
|
||||||
|
@ -246,7 +256,9 @@ resources:
|
||||||
network:
|
network:
|
||||||
type: ../../common/templates/network.yaml
|
type: ../../common/templates/network.yaml
|
||||||
properties:
|
properties:
|
||||||
fixed_network_cidr: {get_param: fixed_network_cidr}
|
existing_network: {get_param: fixed_network}
|
||||||
|
existing_subnet: {get_param: fixed_subnet}
|
||||||
|
private_network_cidr: {get_param: fixed_network_cidr}
|
||||||
dns_nameserver: {get_param: dns_nameserver}
|
dns_nameserver: {get_param: dns_nameserver}
|
||||||
external_network: {get_param: external_network}
|
external_network: {get_param: external_network}
|
||||||
|
|
||||||
|
|
|
@ -34,6 +34,8 @@ class TestClusterConductorWithK8s(base.TestCase):
|
||||||
'keypair_id': 'keypair_id',
|
'keypair_id': 'keypair_id',
|
||||||
'dns_nameserver': 'dns_nameserver',
|
'dns_nameserver': 'dns_nameserver',
|
||||||
'external_network_id': 'external_network_id',
|
'external_network_id': 'external_network_id',
|
||||||
|
'fixed_network': 'fixed_network',
|
||||||
|
'fixed_subnet': 'fixed_subnet',
|
||||||
'network_driver': 'network_driver',
|
'network_driver': 'network_driver',
|
||||||
'volume_driver': 'volume_driver',
|
'volume_driver': 'volume_driver',
|
||||||
'docker_volume_size': 20,
|
'docker_volume_size': 20,
|
||||||
|
@ -153,6 +155,8 @@ class TestClusterConductorWithK8s(base.TestCase):
|
||||||
expected = {
|
expected = {
|
||||||
'ssh_key_name': 'keypair_id',
|
'ssh_key_name': 'keypair_id',
|
||||||
'external_network': 'external_network_id',
|
'external_network': 'external_network_id',
|
||||||
|
'fixed_network': 'fixed_network',
|
||||||
|
'fixed_subnet': 'fixed_subnet',
|
||||||
'network_driver': 'network_driver',
|
'network_driver': 'network_driver',
|
||||||
'volume_driver': 'volume_driver',
|
'volume_driver': 'volume_driver',
|
||||||
'dns_nameserver': 'dns_nameserver',
|
'dns_nameserver': 'dns_nameserver',
|
||||||
|
@ -191,9 +195,11 @@ class TestClusterConductorWithK8s(base.TestCase):
|
||||||
|
|
||||||
self.assertEqual(expected, definition)
|
self.assertEqual(expected, definition)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
['../../common/templates/environments/with_volume.yaml',
|
['../../common/templates/environments/no_private_network.yaml',
|
||||||
|
'../../common/templates/environments/with_volume.yaml',
|
||||||
'../../common/templates/environments/no_master_lb.yaml',
|
'../../common/templates/environments/no_master_lb.yaml',
|
||||||
'../../common/templates/environments/disable_floating_ip.yaml'],
|
'../../common/templates/environments/disable_floating_ip.yaml',
|
||||||
|
],
|
||||||
env_files)
|
env_files)
|
||||||
|
|
||||||
@patch('requests.get')
|
@patch('requests.get')
|
||||||
|
@ -234,6 +240,8 @@ class TestClusterConductorWithK8s(base.TestCase):
|
||||||
'docker_storage_driver': 'devicemapper',
|
'docker_storage_driver': 'devicemapper',
|
||||||
'docker_volume_size': 20,
|
'docker_volume_size': 20,
|
||||||
'external_network': 'external_network_id',
|
'external_network': 'external_network_id',
|
||||||
|
'fixed_network': 'fixed_network',
|
||||||
|
'fixed_subnet': 'fixed_subnet',
|
||||||
'flannel_backend': 'vxlan',
|
'flannel_backend': 'vxlan',
|
||||||
'flannel_network_cidr': '10.101.0.0/16',
|
'flannel_network_cidr': '10.101.0.0/16',
|
||||||
'flannel_network_subnetlen': '26',
|
'flannel_network_subnetlen': '26',
|
||||||
|
@ -267,9 +275,11 @@ class TestClusterConductorWithK8s(base.TestCase):
|
||||||
|
|
||||||
self.assertEqual(expected, definition)
|
self.assertEqual(expected, definition)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
['../../common/templates/environments/with_volume.yaml',
|
['../../common/templates/environments/no_private_network.yaml',
|
||||||
|
'../../common/templates/environments/with_volume.yaml',
|
||||||
'../../common/templates/environments/no_master_lb.yaml',
|
'../../common/templates/environments/no_master_lb.yaml',
|
||||||
'../../common/templates/environments/disable_floating_ip.yaml'],
|
'../../common/templates/environments/disable_floating_ip.yaml',
|
||||||
|
],
|
||||||
env_files)
|
env_files)
|
||||||
|
|
||||||
@patch('requests.get')
|
@patch('requests.get')
|
||||||
|
@ -285,7 +295,7 @@ class TestClusterConductorWithK8s(base.TestCase):
|
||||||
'docker_volume_size', 'fixed_network', 'http_proxy',
|
'docker_volume_size', 'fixed_network', 'http_proxy',
|
||||||
'https_proxy', 'no_proxy', 'network_driver',
|
'https_proxy', 'no_proxy', 'network_driver',
|
||||||
'master_flavor_id', 'docker_storage_driver',
|
'master_flavor_id', 'docker_storage_driver',
|
||||||
'volume_driver']
|
'volume_driver', 'fixed_subnet']
|
||||||
for key in not_required:
|
for key in not_required:
|
||||||
self.cluster_template_dict[key] = None
|
self.cluster_template_dict[key] = None
|
||||||
self.cluster_dict['discovery_url'] = 'https://discovery.etcd.io/test'
|
self.cluster_dict['discovery_url'] = 'https://discovery.etcd.io/test'
|
||||||
|
@ -334,9 +344,11 @@ class TestClusterConductorWithK8s(base.TestCase):
|
||||||
}
|
}
|
||||||
self.assertEqual(expected, definition)
|
self.assertEqual(expected, definition)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
['../../common/templates/environments/no_volume.yaml',
|
['../../common/templates/environments/with_private_network.yaml',
|
||||||
|
'../../common/templates/environments/no_volume.yaml',
|
||||||
'../../common/templates/environments/no_master_lb.yaml',
|
'../../common/templates/environments/no_master_lb.yaml',
|
||||||
'../../common/templates/environments/disable_floating_ip.yaml'],
|
'../../common/templates/environments/disable_floating_ip.yaml',
|
||||||
|
],
|
||||||
env_files)
|
env_files)
|
||||||
|
|
||||||
@patch('requests.get')
|
@patch('requests.get')
|
||||||
|
@ -368,6 +380,8 @@ class TestClusterConductorWithK8s(base.TestCase):
|
||||||
expected = {
|
expected = {
|
||||||
'ssh_key_name': 'keypair_id',
|
'ssh_key_name': 'keypair_id',
|
||||||
'external_network': 'external_network_id',
|
'external_network': 'external_network_id',
|
||||||
|
'fixed_network': 'fixed_network',
|
||||||
|
'fixed_subnet': 'fixed_subnet',
|
||||||
'dns_nameserver': 'dns_nameserver',
|
'dns_nameserver': 'dns_nameserver',
|
||||||
'server_image': 'image_id',
|
'server_image': 'image_id',
|
||||||
'minion_flavor': 'flavor_id',
|
'minion_flavor': 'flavor_id',
|
||||||
|
@ -398,7 +412,8 @@ class TestClusterConductorWithK8s(base.TestCase):
|
||||||
}
|
}
|
||||||
self.assertEqual(expected, definition)
|
self.assertEqual(expected, definition)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
['../../common/templates/environments/no_master_lb.yaml',
|
['../../common/templates/environments/no_private_network.yaml',
|
||||||
|
'../../common/templates/environments/no_master_lb.yaml',
|
||||||
'../../common/templates/environments/disable_floating_ip.yaml'],
|
'../../common/templates/environments/disable_floating_ip.yaml'],
|
||||||
env_files)
|
env_files)
|
||||||
|
|
||||||
|
@ -429,6 +444,8 @@ class TestClusterConductorWithK8s(base.TestCase):
|
||||||
expected = {
|
expected = {
|
||||||
'ssh_key_name': 'keypair_id',
|
'ssh_key_name': 'keypair_id',
|
||||||
'external_network': 'external_network_id',
|
'external_network': 'external_network_id',
|
||||||
|
'fixed_network': 'fixed_network',
|
||||||
|
'fixed_subnet': 'fixed_subnet',
|
||||||
'dns_nameserver': 'dns_nameserver',
|
'dns_nameserver': 'dns_nameserver',
|
||||||
'server_image': 'image_id',
|
'server_image': 'image_id',
|
||||||
'minion_flavor': 'flavor_id',
|
'minion_flavor': 'flavor_id',
|
||||||
|
@ -459,7 +476,8 @@ class TestClusterConductorWithK8s(base.TestCase):
|
||||||
}
|
}
|
||||||
self.assertEqual(expected, definition)
|
self.assertEqual(expected, definition)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
['../../common/templates/environments/no_master_lb.yaml',
|
['../../common/templates/environments/no_private_network.yaml',
|
||||||
|
'../../common/templates/environments/no_master_lb.yaml',
|
||||||
'../../common/templates/environments/disable_floating_ip.yaml'],
|
'../../common/templates/environments/disable_floating_ip.yaml'],
|
||||||
env_files)
|
env_files)
|
||||||
|
|
||||||
|
@ -614,6 +632,8 @@ class TestClusterConductorWithK8s(base.TestCase):
|
||||||
expected = {
|
expected = {
|
||||||
'ssh_key_name': 'keypair_id',
|
'ssh_key_name': 'keypair_id',
|
||||||
'external_network': 'external_network_id',
|
'external_network': 'external_network_id',
|
||||||
|
'fixed_network': 'fixed_network',
|
||||||
|
'fixed_subnet': 'fixed_subnet',
|
||||||
'dns_nameserver': 'dns_nameserver',
|
'dns_nameserver': 'dns_nameserver',
|
||||||
'server_image': 'image_id',
|
'server_image': 'image_id',
|
||||||
'master_flavor': 'master_flavor_id',
|
'master_flavor': 'master_flavor_id',
|
||||||
|
@ -649,9 +669,11 @@ class TestClusterConductorWithK8s(base.TestCase):
|
||||||
}
|
}
|
||||||
self.assertEqual(expected, definition)
|
self.assertEqual(expected, definition)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
['../../common/templates/environments/with_volume.yaml',
|
['../../common/templates/environments/no_private_network.yaml',
|
||||||
|
'../../common/templates/environments/with_volume.yaml',
|
||||||
'../../common/templates/environments/no_master_lb.yaml',
|
'../../common/templates/environments/no_master_lb.yaml',
|
||||||
'../../common/templates/environments/disable_floating_ip.yaml'],
|
'../../common/templates/environments/disable_floating_ip.yaml',
|
||||||
|
],
|
||||||
env_files)
|
env_files)
|
||||||
reqget.assert_called_once_with('http://etcd/test?size=1')
|
reqget.assert_called_once_with('http://etcd/test?size=1')
|
||||||
|
|
||||||
|
|
|
@ -47,6 +47,8 @@ class TestClusterConductorWithMesos(base.TestCase):
|
||||||
'mesos_slave_work_dir': '/tmp/mesos/slave'
|
'mesos_slave_work_dir': '/tmp/mesos/slave'
|
||||||
},
|
},
|
||||||
'master_lb_enabled': False,
|
'master_lb_enabled': False,
|
||||||
|
'fixed_network': 'fixed_network',
|
||||||
|
'fixed_subnet': 'fixed_subnet',
|
||||||
}
|
}
|
||||||
self.cluster_dict = {
|
self.cluster_dict = {
|
||||||
'id': 1,
|
'id': 1,
|
||||||
|
@ -99,6 +101,8 @@ class TestClusterConductorWithMesos(base.TestCase):
|
||||||
expected = {
|
expected = {
|
||||||
'ssh_key_name': 'keypair_id',
|
'ssh_key_name': 'keypair_id',
|
||||||
'external_network': 'external_network_id',
|
'external_network': 'external_network_id',
|
||||||
|
'fixed_network': 'fixed_network',
|
||||||
|
'fixed_subnet': 'fixed_subnet',
|
||||||
'dns_nameserver': 'dns_nameserver',
|
'dns_nameserver': 'dns_nameserver',
|
||||||
'server_image': 'image_id',
|
'server_image': 'image_id',
|
||||||
'master_flavor': 'master_flavor_id',
|
'master_flavor': 'master_flavor_id',
|
||||||
|
@ -128,7 +132,8 @@ class TestClusterConductorWithMesos(base.TestCase):
|
||||||
}
|
}
|
||||||
self.assertEqual(expected, definition)
|
self.assertEqual(expected, definition)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
['../../common/templates/environments/no_master_lb.yaml'],
|
['../../common/templates/environments/no_private_network.yaml',
|
||||||
|
'../../common/templates/environments/no_master_lb.yaml'],
|
||||||
env_files)
|
env_files)
|
||||||
|
|
||||||
@patch('magnum.objects.ClusterTemplate.get_by_uuid')
|
@patch('magnum.objects.ClusterTemplate.get_by_uuid')
|
||||||
|
@ -139,7 +144,8 @@ class TestClusterConductorWithMesos(base.TestCase):
|
||||||
mock_objects_cluster_template_get_by_uuid):
|
mock_objects_cluster_template_get_by_uuid):
|
||||||
not_required = ['image_id', 'master_flavor_id', 'flavor_id',
|
not_required = ['image_id', 'master_flavor_id', 'flavor_id',
|
||||||
'dns_nameserver', 'fixed_network', 'http_proxy',
|
'dns_nameserver', 'fixed_network', 'http_proxy',
|
||||||
'https_proxy', 'no_proxy', 'volume_driver']
|
'https_proxy', 'no_proxy', 'volume_driver',
|
||||||
|
'fixed_subnet']
|
||||||
for key in not_required:
|
for key in not_required:
|
||||||
self.cluster_template_dict[key] = None
|
self.cluster_template_dict[key] = None
|
||||||
|
|
||||||
|
@ -179,7 +185,8 @@ class TestClusterConductorWithMesos(base.TestCase):
|
||||||
}
|
}
|
||||||
self.assertEqual(expected, definition)
|
self.assertEqual(expected, definition)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
['../../common/templates/environments/no_master_lb.yaml'],
|
['../../common/templates/environments/with_private_network.yaml',
|
||||||
|
'../../common/templates/environments/no_master_lb.yaml'],
|
||||||
env_files)
|
env_files)
|
||||||
|
|
||||||
@patch('magnum.objects.ClusterTemplate.get_by_uuid')
|
@patch('magnum.objects.ClusterTemplate.get_by_uuid')
|
||||||
|
@ -204,6 +211,8 @@ class TestClusterConductorWithMesos(base.TestCase):
|
||||||
expected = {
|
expected = {
|
||||||
'ssh_key_name': 'keypair_id',
|
'ssh_key_name': 'keypair_id',
|
||||||
'external_network': 'external_network_id',
|
'external_network': 'external_network_id',
|
||||||
|
'fixed_network': 'fixed_network',
|
||||||
|
'fixed_subnet': 'fixed_subnet',
|
||||||
'dns_nameserver': 'dns_nameserver',
|
'dns_nameserver': 'dns_nameserver',
|
||||||
'server_image': 'image_id',
|
'server_image': 'image_id',
|
||||||
'master_flavor': 'master_flavor_id',
|
'master_flavor': 'master_flavor_id',
|
||||||
|
@ -233,7 +242,8 @@ class TestClusterConductorWithMesos(base.TestCase):
|
||||||
}
|
}
|
||||||
self.assertEqual(expected, definition)
|
self.assertEqual(expected, definition)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
['../../common/templates/environments/with_master_lb.yaml'],
|
['../../common/templates/environments/no_private_network.yaml',
|
||||||
|
'../../common/templates/environments/with_master_lb.yaml'],
|
||||||
env_files)
|
env_files)
|
||||||
|
|
||||||
@patch('magnum.objects.ClusterTemplate.get_by_uuid')
|
@patch('magnum.objects.ClusterTemplate.get_by_uuid')
|
||||||
|
@ -259,6 +269,8 @@ class TestClusterConductorWithMesos(base.TestCase):
|
||||||
expected = {
|
expected = {
|
||||||
'ssh_key_name': 'keypair_id',
|
'ssh_key_name': 'keypair_id',
|
||||||
'external_network': 'external_network_id',
|
'external_network': 'external_network_id',
|
||||||
|
'fixed_network': 'fixed_network',
|
||||||
|
'fixed_subnet': 'fixed_subnet',
|
||||||
'dns_nameserver': 'dns_nameserver',
|
'dns_nameserver': 'dns_nameserver',
|
||||||
'server_image': 'image_id',
|
'server_image': 'image_id',
|
||||||
'master_flavor': 'master_flavor_id',
|
'master_flavor': 'master_flavor_id',
|
||||||
|
@ -288,7 +300,8 @@ class TestClusterConductorWithMesos(base.TestCase):
|
||||||
}
|
}
|
||||||
self.assertEqual(expected, definition)
|
self.assertEqual(expected, definition)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
['../../common/templates/environments/with_master_lb.yaml'],
|
['../../common/templates/environments/no_private_network.yaml',
|
||||||
|
'../../common/templates/environments/with_master_lb.yaml'],
|
||||||
env_files)
|
env_files)
|
||||||
|
|
||||||
@patch('magnum.conductor.utils.retrieve_cluster_template')
|
@patch('magnum.conductor.utils.retrieve_cluster_template')
|
||||||
|
|
|
@ -37,6 +37,8 @@ class TestClusterConductorWithSwarm(base.TestCase):
|
||||||
'docker_volume_size': 20,
|
'docker_volume_size': 20,
|
||||||
'docker_storage_driver': 'devicemapper',
|
'docker_storage_driver': 'devicemapper',
|
||||||
'external_network_id': 'external_network_id',
|
'external_network_id': 'external_network_id',
|
||||||
|
'fixed_network': 'fixed_network',
|
||||||
|
'fixed_subnet': 'fixed_subnet',
|
||||||
'cluster_distro': 'fedora-atomic',
|
'cluster_distro': 'fedora-atomic',
|
||||||
'coe': 'swarm',
|
'coe': 'swarm',
|
||||||
'http_proxy': 'http_proxy',
|
'http_proxy': 'http_proxy',
|
||||||
|
@ -111,6 +113,8 @@ class TestClusterConductorWithSwarm(base.TestCase):
|
||||||
expected = {
|
expected = {
|
||||||
'ssh_key_name': 'keypair_id',
|
'ssh_key_name': 'keypair_id',
|
||||||
'external_network': 'external_network_id',
|
'external_network': 'external_network_id',
|
||||||
|
'fixed_network': 'fixed_network',
|
||||||
|
'fixed_subnet': 'fixed_subnet',
|
||||||
'dns_nameserver': 'dns_nameserver',
|
'dns_nameserver': 'dns_nameserver',
|
||||||
'server_image': 'image_id',
|
'server_image': 'image_id',
|
||||||
'master_flavor': 'master_flavor_id',
|
'master_flavor': 'master_flavor_id',
|
||||||
|
@ -144,7 +148,8 @@ class TestClusterConductorWithSwarm(base.TestCase):
|
||||||
}
|
}
|
||||||
self.assertEqual(expected, definition)
|
self.assertEqual(expected, definition)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
['../../common/templates/environments/with_volume.yaml',
|
['../../common/templates/environments/no_private_network.yaml',
|
||||||
|
'../../common/templates/environments/with_volume.yaml',
|
||||||
'../../common/templates/environments/no_master_lb.yaml'],
|
'../../common/templates/environments/no_master_lb.yaml'],
|
||||||
env_files)
|
env_files)
|
||||||
|
|
||||||
|
@ -181,6 +186,8 @@ class TestClusterConductorWithSwarm(base.TestCase):
|
||||||
expected = {
|
expected = {
|
||||||
'ssh_key_name': 'keypair_id',
|
'ssh_key_name': 'keypair_id',
|
||||||
'external_network': 'external_network_id',
|
'external_network': 'external_network_id',
|
||||||
|
'fixed_network': 'fixed_network',
|
||||||
|
'fixed_subnet': 'fixed_subnet',
|
||||||
'dns_nameserver': 'dns_nameserver',
|
'dns_nameserver': 'dns_nameserver',
|
||||||
'server_image': 'image_id',
|
'server_image': 'image_id',
|
||||||
'master_flavor': 'master_flavor_id',
|
'master_flavor': 'master_flavor_id',
|
||||||
|
@ -216,7 +223,8 @@ class TestClusterConductorWithSwarm(base.TestCase):
|
||||||
}
|
}
|
||||||
self.assertEqual(expected, definition)
|
self.assertEqual(expected, definition)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
['../../common/templates/environments/with_volume.yaml',
|
['../../common/templates/environments/no_private_network.yaml',
|
||||||
|
'../../common/templates/environments/with_volume.yaml',
|
||||||
'../../common/templates/environments/no_master_lb.yaml'],
|
'../../common/templates/environments/no_master_lb.yaml'],
|
||||||
env_files)
|
env_files)
|
||||||
|
|
||||||
|
@ -233,7 +241,7 @@ class TestClusterConductorWithSwarm(base.TestCase):
|
||||||
'docker_volume_size', 'fixed_network', 'http_proxy',
|
'docker_volume_size', 'fixed_network', 'http_proxy',
|
||||||
'https_proxy', 'no_proxy', 'network_driver',
|
'https_proxy', 'no_proxy', 'network_driver',
|
||||||
'master_flavor_id', 'docker_storage_driver',
|
'master_flavor_id', 'docker_storage_driver',
|
||||||
'volume_driver', 'rexray_preempt']
|
'volume_driver', 'rexray_preempt', 'fixed_subnet']
|
||||||
for key in not_required:
|
for key in not_required:
|
||||||
self.cluster_template_dict[key] = None
|
self.cluster_template_dict[key] = None
|
||||||
self.cluster_dict['discovery_url'] = 'https://discovery.etcd.io/test'
|
self.cluster_dict['discovery_url'] = 'https://discovery.etcd.io/test'
|
||||||
|
@ -280,7 +288,8 @@ class TestClusterConductorWithSwarm(base.TestCase):
|
||||||
}
|
}
|
||||||
self.assertEqual(expected, definition)
|
self.assertEqual(expected, definition)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
['../../common/templates/environments/no_volume.yaml',
|
['../../common/templates/environments/with_private_network.yaml',
|
||||||
|
'../../common/templates/environments/no_volume.yaml',
|
||||||
'../../common/templates/environments/no_master_lb.yaml'],
|
'../../common/templates/environments/no_master_lb.yaml'],
|
||||||
env_files)
|
env_files)
|
||||||
|
|
||||||
|
@ -313,6 +322,8 @@ class TestClusterConductorWithSwarm(base.TestCase):
|
||||||
expected = {
|
expected = {
|
||||||
'ssh_key_name': 'keypair_id',
|
'ssh_key_name': 'keypair_id',
|
||||||
'external_network': 'external_network_id',
|
'external_network': 'external_network_id',
|
||||||
|
'fixed_network': 'fixed_network',
|
||||||
|
'fixed_subnet': 'fixed_subnet',
|
||||||
'dns_nameserver': 'dns_nameserver',
|
'dns_nameserver': 'dns_nameserver',
|
||||||
'server_image': 'image_id',
|
'server_image': 'image_id',
|
||||||
'master_flavor': 'master_flavor_id',
|
'master_flavor': 'master_flavor_id',
|
||||||
|
@ -346,7 +357,8 @@ class TestClusterConductorWithSwarm(base.TestCase):
|
||||||
}
|
}
|
||||||
self.assertEqual(expected, definition)
|
self.assertEqual(expected, definition)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
['../../common/templates/environments/with_volume.yaml',
|
['../../common/templates/environments/no_private_network.yaml',
|
||||||
|
'../../common/templates/environments/with_volume.yaml',
|
||||||
'../../common/templates/environments/with_master_lb.yaml'],
|
'../../common/templates/environments/with_master_lb.yaml'],
|
||||||
env_files)
|
env_files)
|
||||||
|
|
||||||
|
@ -380,6 +392,8 @@ class TestClusterConductorWithSwarm(base.TestCase):
|
||||||
expected = {
|
expected = {
|
||||||
'ssh_key_name': 'keypair_id',
|
'ssh_key_name': 'keypair_id',
|
||||||
'external_network': 'external_network_id',
|
'external_network': 'external_network_id',
|
||||||
|
'fixed_network': 'fixed_network',
|
||||||
|
'fixed_subnet': 'fixed_subnet',
|
||||||
'dns_nameserver': 'dns_nameserver',
|
'dns_nameserver': 'dns_nameserver',
|
||||||
'server_image': 'image_id',
|
'server_image': 'image_id',
|
||||||
'master_flavor': 'master_flavor_id',
|
'master_flavor': 'master_flavor_id',
|
||||||
|
@ -413,7 +427,8 @@ class TestClusterConductorWithSwarm(base.TestCase):
|
||||||
}
|
}
|
||||||
self.assertEqual(expected, definition)
|
self.assertEqual(expected, definition)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
['../../common/templates/environments/with_volume.yaml',
|
['../../common/templates/environments/no_private_network.yaml',
|
||||||
|
'../../common/templates/environments/with_volume.yaml',
|
||||||
'../../common/templates/environments/with_master_lb.yaml'],
|
'../../common/templates/environments/with_master_lb.yaml'],
|
||||||
env_files)
|
env_files)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue