Ask Your Question

Can I deploy openstack with a simple network config and work up from there?

asked 2018-01-13 01:08:14 -0500

tony.pearce gravatar image

updated 2018-01-16 10:02:43 -0500

zaneb gravatar image

I'm having some trouble understanding the networking on the compute and controller nodes in terms of getting it suited to my environment. I am walking through and I have already deployed openstack with nearly everything as defaults. I simply ran the "openstack overcloud deploy" with no heat templates (except the default swap file) and it deployed successfully. After this, I found that openstack was deployed to both nodes with everything running on the "provisioning" nic. Now what I would like to do is set up a storage nic. I actually have 2 storage networks where I'll later setup multipathd (hopefully) but for now I'm trying to get over this hurdle. So the goal here is to re-deploy openstack with the following: Controller node: 2 nics, 1 for provisioning and everything else such as horizon except storage which will be on the 2nd nic. compute node: 2 nics, 1 for provisioning and everything else such as api calls except storage which will be on the 2nd nic.

From looking around in all the documents and furthermore through google search I've only found one blog page that describes a simple network setup. Everything else explains to copy the heat templates to your home directory so you can customise them and then re-deploy. The problems I have is lack of context such as why you would do the steps described in the documentation hence my trouble understanding. It seems that if you want to customise the network set up, then you have to separate all of the services such as StorageIpSubnet, StorageMgmtIpSubnet, TenantIpSubnet etc etc into their own unique subnets and vlans.

So here's the questions I have:

  1. if I have a simple setup with 1 compute and 1 controller nodes, each with 2 nics each (1 for storage and the other for everything else) is this a valid setup?
  2. How would the heat template look for say the controller node in this case?
  3. When modifying the heat template for the controller for example, it seems in the parameters section it is imperative I define such things like ControlPlaneIp, ExternalIpSubnet etc. - Can I specify these as being the same value?

To elaborate, lets say I have a provisioning network which is also the external network and network used for api calls and everything else (except storage). This would mean that the subnet definitions for all of those values would be the same subnet eg; while the only different subnet would be for storage eg <- can someone clarify this for me as I'm very confused and stuck at this part.

  1. Finally, how does an ovs bridge fit into the above and is it mandatory?

In the simple explanation above with 2 nodes and 2 nics each, if everything except storage uses the same subnet then I dont know if an ovs bridge is required.

My references for the above are: HOT template explained: https ... (more)

edit retag flag offensive close merge delete


You can set up OpenStack on a single system with a single NIC, ot several systems with a single NIC.

Tripleo is one of the more complex deployment tools. If you don't need Tripleo, you can try e.g. a fully manual setup, or Packstack.

Bernd Bausch gravatar imageBernd Bausch ( 2018-01-13 01:44:11 -0500 )edit

Thanks, that is helpful but looking to understand the deployment from a heat-template perspective and how the heat templates relate to using multiple services with one simple network interface; such as horizon, external/public, api etc.

tony.pearce gravatar imagetony.pearce ( 2018-01-13 07:22:12 -0500 )edit

If your goal is to use Tripleo for the deployment, I am afraid I can't say whether it works with a simpler network configuration than the one documented.

Bernd Bausch gravatar imageBernd Bausch ( 2018-01-13 08:12:16 -0500 )edit

Hmm. I understand the point which you are making however I did already deploy successfully with no network isolation. I'm now trying to find somewhere in the middle so that I can use the same subnet for multiple services. Thanks for your help here, really helpful. I may just stick to the docs.

tony.pearce gravatar imagetony.pearce ( 2018-01-13 08:29:36 -0500 )edit

2 answers

Sort by ยป oldest newest most voted

answered 2018-01-16 16:25:44 -0500

dsneddon gravatar image

updated 2018-01-16 16:27:05 -0500

zaneb gravatar image

If you update the stack with additional networks enabled, then TripleO will attempt to add the network to every node. This will also have the effect of changing the VIP addresses for services hosted by default on the new network. This will most likely require some manual recovery, as OpenStack services will break during the network changes. This is not well tested, but adding networks should be more successful than deleting or changing deployed networks.

In order to cause the network to be updated on a stack update (instead of only on deploy), you will need to set NetworkDeploymentActions for only one update. Update the network-related templates and environment files to include the new network(s). Add this to an environment file, for instance update_network.yaml, and run the original deployment command (along with any environment files originally included), and include the update_network.yaml environment file (only for this update):

# update_network.yaml
  NetworkDeploymentActions: ['CREATE', 'UPDATE']

Please not that since this procedure has not been well tested, there may be unintended consequences, up to and including rendering the deployment unusable.

edit flag offensive delete link more

answered 2018-01-14 23:31:03 -0500

tony.pearce gravatar image

I think I have found the answer to this however I decided to deploy the systems with 1 network per role as per the guide. The reasons for doing so is that I want to avoid an issue in the future in case it's realised later on that I should have made them separate for any reason.

Each OpenStack service is assigned to a network using a default mapping. The service will be bound to the host IP within the named network on each host.

Note The services will be assigned to the networks according to the ServiceNetMap in overcloud.yaml. Unless these defaults need to be overridden, the ServiceNetMap does not need to be defined in the environment file.



    NeutronTenantNetwork: tenant
    CeilometerApiNetwork: internal_api

ref: (

edit flag offensive delete link more

Get to know Ask OpenStack

Resources for moderators

Question Tools

1 follower


Asked: 2018-01-13 01:08:14 -0500

Seen: 468 times

Last updated: Jan 16 '18