30 Commits

Author SHA1 Message Date
Dan Prince
24f4146cbb Allow 'ctlplane' to be used within Net IP Maps
When using network isolation you might want to selective
move one of the services back to the default ctlplane network
by simply using the ServiceNetMap parameter. This patch
adds ctlplane to the output parameters for both
the net_ip_map and net_ip_list_map nested stacks so that
this is possible.

As part of this patch we also split out the NetIpSubnetMap
into its own unique nested stack so that the Heat input
parameters for this stack are more clearly named.

Change-Id: Iaa2dcaebeac896404e87ec0c635688b2a59a9e0f
2015-09-05 00:16:47 +00:00
Dan Sneddon
91af5ac557 Remove hardcoded bridge name in bonded compute NIC config
This change removes a hardcoded value for the bond name in the NIC
config for the compute node in the bond-with-vlan NIC config
templates. When this hardcoded value of "br-bond" is used, then the
Neutron bridge mappings must be set to set to datacentre:br-bond in
order for VLAN mode networking to recognize the bridge. By using the
input value for bridge_name we will ensure that the controller and
compute nodes have the same bridge name (defaults to "br-ex"), and
that the defaults will work with VLAN mode.

Change-Id: I28654ab93e3c10a8597c8b877f3f2f6b3eca887c
2015-08-17 14:08:08 -07:00
Dan Sneddon
91207d4ffe Add a default setting for BondInterfaceOvsOptions
This change adds a default setting for the OVS bond options to the
bond-with-vlans controller.yaml. This default will attempt to bring
up LACP bonding, but should that fail it will bring up the bond in
active/backup mode. This is a safe configuration if the switch is
not configured for bonding.

Change-Id: I91aad1e061ed1ecf26636e60da7a9a6e9cde50a5
2015-07-24 15:38:01 -07:00
Dan Sneddon
9b89dd2016 Convert PublicVirtualIP to new port creation method
This change brings PublicVirtualIP in line with the rest of the
VIPs in how it is created. This allows the network where
PublicVirtualIP is instantiated to be on cltplane when network
isolation is not used, and on the external network when network
isolation is used. This change removes the PublicVirtualNetwork
parameter, since it is no longer used. In order to continue to
support the PublicVirtualFixedIPs parameter, which is used to
provide a specific IP for the PublicVirtualIP, the FixedIP
parameter was added to cltplane_vip.yaml, vip.yaml, and
noop.yaml. The value of PublicVirtualIP is passed to FixedIP
in the VIP templates. This change also moves the default
network for keystone public api to the external net (which will
fallback to ctlplane if network isolation isn't used).

Change-Id: I3f5d35cbe55d3a148e95cf49dfbaad4874df960b
2015-07-22 01:09:15 -07:00
Jenkins
21c8f04896 Merge "Add ControlPlaneNetwork to vip.yaml" 2015-07-06 16:54:33 +00:00
Dan Sneddon
f08cc7ae12 Add a default route to the external isolated network
This change adds a parameter for ExternalInterfaceDefaultRoute
and uses that parameter to set the default route on the controller
nodes. This allows Horizon and the public APIs to be reachable from
routed networks outside the overcloud.

Co-Authored-By: Dan Prince <dprince@redhat.com>

Change-Id: I67a72767342237049f53f5085a6faf891fbf0c30
2015-06-29 16:24:00 -04:00
Dan Sneddon
aaca462d9a Remove bridge from nic1 in network bond templates
The bridge that is built on the bonds in the bond-with-vlans
example has an extraneous bridge on the storage and compute
templates, and an incorrect bridge on the controller template.
There is no reason to do anything on nic1, which is assumed to
be the provisioning interface, because it will be configured by
DHCP. Also, on the controller template we actually want br-ex
to contain the VLAN with the external network, rather than be
configured on the provisioning interface.

Change-Id: Ibe2343d5281f7b63a7b63b17d96d8442d0b96105
2015-06-27 15:01:28 -07:00
Dan Sneddon
0f1f1d6b48 Add ControlPlaneNetwork to vip.yaml
There are two files in network/ports which control the VIP
behavior called ctlplane_vip.yaml and vip.yaml. One of these
files was missing ControlPlaneNetwork, since it wasn't used
inside the template. Unfortunately, tuskar chokes on this,
even though Heat can build the stack just fine. This change
makes the vip.yaml and ctlplane_vip.yaml equivalent by adding
ControlPlaneNetwork to the vip.yaml template.

Change-Id: Ic20281e58a1130afe18d5aec505a3df199841fd5
2015-06-27 13:10:54 -07:00
Jenkins
f74890a8dc Merge "Fix grammar nits in bond-with-vlans templates" 2015-06-18 19:53:40 +00:00
Jenkins
19c9618cad Merge "Remove Redis VirtualIP from params and build it from Neutron::Port" 2015-06-17 22:11:27 +00:00
Jenkins
6475dbdf4e Merge "Fix allocation pool in external.yaml" 2015-06-17 20:29:43 +00:00
Dan Sneddon
52d00b2388 Fix allocation pool in external.yaml
The file network/external.yaml has a typo in the last commit. It
should have been a get_param instead of a get_resource. This
change fixes that line in that file.

Change-Id: Ibc0db0510e9b5dae3c4669a620c642357906cbc2
2015-06-16 11:27:32 -07:00
Dan Prince
582c150fce Configurable vlan_id's for isolated networks
This patch adds parameters to configure the various
vlan IDs to all of the bond-with-vlans and single-nic-vlans
network config templates.

Change-Id: Ia6196735927777b73879e8086568f8a435597c6c
2015-06-16 15:52:22 +00:00
Jenkins
48d07db384 Merge "Add BondInterfaceOvsOptions parameter" 2015-06-16 07:50:28 +00:00
Jenkins
1a3049c32e Merge "network/config storage role fixes" 2015-06-16 07:50:19 +00:00
Giulio Fidente
d451831248 Remove Redis VirtualIP from params and build it from Neutron::Port
The redis_vip should come from a Neutron Port as its cidr depends
on the Neutron Network configuration. This change adds 2 new files
and modifies 1 in the network/ports directory:

- noop.yaml - Passes through the ctlplane Controller IP (modified)
- ctlplane_vip.yaml - Creates a new VIP on the control plane
- vip.yaml - Creates a VIP on the named network (for isolated nets)

Also, changes to overcloud-without-mergepy.yaml create the
Redis Virtual IP. The standard resource registry was modified to
use noop.yaml for the new Redis VIP. The Puppet resource registry
was modified to use ctlplane_vip.yaml by default, but can be made
to use vip.yaml when network isolation is used by using an
environment file. vip.yaml will place the VIP according to the
ServiceNetMap, which can also be overridden.

We use this new VIP port definition to assign a VIP to Redis,
but follow-up patches will assign VIPs to the rest of the
services in a similar fashion.

Co-Authored-By: Dan Sneddon <dsneddon@redhat.com>

Change-Id: I2cb44ea7a057c4064d0e1999702623618ee3390c
2015-06-13 17:36:29 -07:00
Dan Prince
344af04c07 Flexible IP allocations for isolated nets
This patch adds new '<net name>AllocationPool' parameters
to all of the isolated network nested stacks so that users
can easily control the allocation ranges on these networks.

Change-Id: I44b564831446c62e3489a69d992e0fb1f642b085
2015-06-12 14:05:19 -04:00
Dan Prince
5041ff897d Add BondInterfaceOvsOptions parameter
This patch adds a new BondInterfaceOvsOptions to the
bond-with-vlans network config templates. This can
be used to configure things like LACP or the bonding mode
via a nested stack heat parameter.

The patch also removes the hard coded ovs_options relating
to both bond-with-vlans and single-nic-with-vlans configurations
which do not actually require this setting to be hard coded
because by default OVS trunks vlan ports automatically.

Change-Id: I3effbccba8ed7ed28d6ba715e5709275d4e7f984
2015-06-09 13:32:31 -04:00
Dan Prince
ca36b5d9e1 network/config storage role fixes
None of the storage roles have Heat parameters for the bridge
name. Instead of wiring in Heat parameters for bridge name
this patch hard codes the bridge name for the storage roles
to 'br-storage'.

This functionally fixes the network config scripts for each
of the storage roles.

For the single-nic-vlans storage roles we also remove
the 'bond1' reference which was also incorrectly specified.

Change-Id: I460d1a17e44ee49e960117ec85edd3ae25894333
2015-06-09 13:32:31 -04:00
Jenkins
9a2a579450 Merge "Add PortName to ports stacks" 2015-06-04 13:37:05 +00:00
Jenkins
4ae1b72673 Merge "Make all-nodes Ip networks configurable" 2015-06-04 13:33:00 +00:00
Dan Prince
a3a88cd3c0 Add PortName to ports stacks
For VIP ports we set an explicit name on the ports. This
patch adds an optional PortName parameter to the ports
objects which can be used to specify a name.

Change-Id: Iad0f5e4cfc31a931dbb574d9e589570125e9465c
2015-06-03 08:58:13 -04:00
Dan Prince
17028aa9c2 Make all-nodes Ip networks configurable
This patch adds a new NetIpListMap abstraction which we can use
to make the all-nodes-config IP list network assignments
configurable. Ip address lists for all overcloud services
which require IPs were added to all-nodes-config so
that puppet manifests can be directly supplied the
correct network list for each service.

Change-Id: I209f2b4f97a4bb78648c54813dad8615770bcf1a
2015-06-03 08:58:13 -04:00
Dan Prince
cbac118888 os-net-config templates to configure vlans
This patch adds 5 new role templates to help configure
a vlans on top for each of the overcloud roles. This
patch adds vlans on top of a single NIC attached to
the control plane network (already used for provisioning).

The patch also includes an environment file to
enable configuration of vlans by simply sourcing this file.

Change-Id: Ibc40e452dec9b372ff10442aab2bddaf382b0a2f
2015-06-01 15:13:46 -04:00
Ben Nemec
1f1d72b092 Fix grammar nits in bond-with-vlans templates
Change-Id: Ifa59cf2f1f6b16bc785b19aef215659b95876237
2015-05-26 17:07:34 -05:00
Dan Prince
b982219b65 os-net-config templates to configure vlans on bond
This patch adds 5 new role templates to help configure
an OVS bond with vlans on top for each of the overcloud
roles.

These are meant to represent a more production network
which might use isolated nets, and should help facilitate
create a CI job which configures a bond w/ vlans on it.

The patch also includes an environment file to
enable configuration of bonded vlans by simply
sourcing this file.

Change-Id: Ibe4c9d933445014ce3bec5fb3d7e3139fc40cb32
2015-05-26 10:23:29 -04:00
Dan Prince
b7ead8ec63 Add a network ports IP mapping resource
This patch adds a resource which constructs a Json output
parameter called net_ip_map which will allow us to easily
extract arbitrary IP addresses for each network using the
get_attr function in heat.

The goal is to use this data construct in each role
template to obtain the correct IP address on each
network.

Change-Id: I1a8c382651f8096f606ad38f78bbd76314fbae5f
2015-05-26 08:50:44 -04:00
Dan Prince
c527d88e9d Add a ports (ip address) abstraction layer
This patch adds a set of templates to create ports on isolated
networks via Heat. There are 5 port templates in total
which are split out according to the available overcloud
networks.

Change-Id: I5175ef48c1960ea0d13fc8518328db53921c70cd
2015-05-26 08:50:44 -04:00
Dan Prince
b56c2f01bd Overcloud: bump HOT version to 2015-04-30
This patch bumps the HOT version for the overcloud
to Kilo 2015-04-30. We should have already done this
since we are making use of OS::stack_id (a kilo feature)
in some of the nested stacks. Also, this will give us access to
the new repeat function as well.

Change-Id: Ic534e5aeb03bd53296dc4d98c2ac5971464d7fe4
2015-05-20 11:37:46 -07:00
Dan Prince
00efb796cd Create split out neutron networks via Heat.
This patch adds a new abstraction for network creation
within Heat. This (optional) set of templates may be disabled
if you wish to create Neutron networks for the undercloud
via Heat templates... instead of using os-cloud-config
JSON to do so. Creating networks with Heat has the benefit
of being parameter driven so that users can quickly
enable networks using the resource registry and parameters.

There are 5 networks to start with which are roughly modeled
around networks an Overcloud user might want to use to isolate
their traffic. The intent is to make these opt-in and
configurable for end users.

The networks.yaml template can be used to create all of the
networks using parameters in the resource registry.

Change-Id: I5f2b3356378eb263d90d428cc83c7f5b141957e1
2015-05-06 21:20:24 -04:00