Midonet Gateway

juju deploy midonet-gateway
Show information
You will need Juju 2.9 to be able to run this command. Learn how to upgrade to Juju 2.9.
Channel Version Revision Published Runs on
latest/stable 0 0 11 Nov 2020
Ubuntu 14.04




MidoNet Open Source Network Virtualization System Gateway Read more

Discuss this charm

Share your thoughts on this charm with the community on discourse.

Join the discussion

MidoNet Gateway


MidoNet is a distributed, de-centralized, software-defined virtual network platform for Infrastructure as a Service (IaaS). MidoNet fully virtualizes the network functionality for IaaS products, such as OpenStack, providing functionally advanced, robust, scalable, and secure networks. MidoNet is an overlay network that runs software on standard x86 servers, and sits on top of any scalable network underlay (for example, physical servers and switches), pushing the intelligent network functions to the edge of the network, in software. MidoNet sends virtual network traffic over tunnels created between the edges. The tunnels encapsulate the packets coming from virtual machines (VMs) and exterior ports, and decouple the virtual network traffic from the physical network. With this model, changes in the virtual network, for example, creating new virtual machines, don't affect the state of the underlay network. In addition, this clear separation between the virtual and physical networks allows the administrator to more easily maintain the IaaS platform.

For more information, please refer to MidoNet documentation website.

Open source users: MidoNet Documentation

Enterprise users: Midokura Enterprise MidoNet (MEM) Documentation

This charm in particular, will configure MidoNet so that midonet-gateway nodes will act as a gateway between the underlay network (physical network) and the overlay network (virtual network).


Currently, following combinations of versions are supported.

| distribution | openstack-release | midonet-flavor | midonet-release |
| ------------ | ----------------- | -------------- | --------------- |
| trusty       | kilo              | opensource     | 2015.06         |
| trusty       | kilo              | enterprise     | 1.9             |


This charm supports two types of uplink setup, static routing uplink setup and BGP routing uplink setup. Please refer to Operations Guide in respective MidoNet documentation website for details about those setups.

Known Limitations

One midonet-gateway unit in static routing uplink setup

In static routing uplink setup, maximum number of midonet-gateway unit is one. In case there are more than two units of midonet-gateway deployed in one environment, redundant unit(s) will stay in a blocked state.

Some configurations are not modifiable

Some service configurations are not meant to be changed once the installation starts. If these configurations are modified, it may not yield the desired result, it may setup an erroneous or non-used configuration in the system, or it may break the deployment.

Modifying following service configurations are not implemented nor supported:

  • openstack-release
  • midonet-flavor
  • midonet-release
  • midonet-enterprise-username
  • midonet-enterprise-password
  • external-network-name
  • port-group-name

Modifying following service configuration are not supported:

  • uplink-type
Changing any configurations will temporarily remove the uplink

Changing any service configurations will result in removing all uplinks currently configured before re-creating uplinks with new configurations.

Removing midonet-gateway service will leave the configuration behind

Removing the midonet-gateway service will leave the configuration data in the NSDB (ZooKeeper and Cassandra) behind. To actually remove those configuration data:

  1. Manually delete those configuration data using midonet-api service
  2. (Or for an ultimate measure) destroy the entire environment
Special consideration with some releases

python-midonetclient package provided by some MidoNet releases has a bug that may stop the configuration process. To work around this problem, this charm will directly patch the python-midonetclient files on the file system. Therefore, do not attempt to update or reinstall python-midonetclient package or it will reintroduce the bug. This bug affects all 2015.06 releases and 1.9 release version 1.9.8 and prior.


Manual deployment

For midonet-gateway service to set itself up, it requires some information about the environment. midonet-gateway service will gather those information from Juju relationships. Therefore, related services have to be deployed and relationship needs to be set up between them.

First, deploy midonet-gateway service and midonet-agent service. Default service configurations are aligned to MidoNet documentation, please refer to config.yaml file for more information on what service configuration value changes what.

juju deploy midonet-gateway
juju deploy midonet-agent

Next, setup necessary relationships midonet-gateway service requires.

juju add-relation midonet-gateway keystone
juju add-relation midonet-gateway neutron-api
juju add-relation midonet-gateway midonet-api
juju add-relation midonet-gateway midonet-agent
Automated deployment

Alternatively, bundles are available to quickly setup a working environment.

Following conditions have to be met to successfully deploy bundles:

  • Configure Juju environment to use MaaS as a provider
  • Prepare following nodes in MaaS
    • 1 node with:
      • More than 8 cores visible
      • More than 12GiB RAM visible
      • More than 32GiB storage visible
      • Without tag midonet-gateway
    • 1 node with:
      • More than 4 cores visible
      • More than 8GiB RAM visible
      • More than 16GiB storage visible
      • Without tag midonet-gateway
    • 1 node with:
      • More than 3 cores visible
      • More than 6GiB RAM visible
      • More than 8GiB storage visible
      • Without tag midonet-gateway
    • 1 node (static routing uplink) or 3 nodes (BGP routing uplink) with:
      • More than 3 cores visible
      • More than 6GiB RAM visible
      • More than 8GiB storage visible
      • With tag midonet-gateway

To deploy bundle with static routing uplink setup:

juju-deployer --config bundles/trusty_kilo_opensource_201506_static_masq.yaml --timeout 3600 --bootstrap

To deploy bundle with BGP routing uplink setup (modification to the bundle file will be required to match the environment):

juju-deployer --config bundles/trusty_kilo_opensource_201506_bgp.yaml --timeout 3600 --bootstrap