plumgrid gateway #14

Supports: trusty xenial
Add to new model


A PLUMgrid Gateway provides connectivity from the VXLAN based virtual fabric to external IP networks (such as for internet access). The PLUMgrid Gateway can be deployed as a pair in Active/ Active mode for load balancing of traffic and high availability of external connectivity.

About the Plumgrid Platform

The PLUMgrid Platform is a software-only solution that provides a rich set of distributed network functions such as routers, switches, NAT, IPAM, DHCP, and it also supports security policies, end-to-end encryption, and third party Layer 4-7 service insertion.


This charm is responsible for configuring a node as a PLUMgrid Gateway.

Once deployed the charm triggers the necessary services for a PLUMgrid Gateway and configures the IO Visor kernel module as a PLUMgrid Software Gateway. It also configures additional interfaces on the node for external connectivity.


Instructions on using the charm:

juju deploy neutron-api
juju deploy neutron-api-plumgrid
juju deploy plumgrid-director
juju deploy nova-compute
juju deploy plumgrid-edge
juju deploy plumgrid-gateway

juju add-relation neutron-api neutron-api-plumgrid
juju add-relation neutron-api-plumgrid plumgrid-director
juju add-relation plumgrid-director plumgrid-edge
juju add-relation nova-compute plumgrid-edge
juju add-relation plumgrid-director plumgrid-gateway

For plumgrid-gateway to work make the configuration in the neutron-api, neutron-api-plumgrid, plumgrid-director and plumgrid-edge charms as specified in the configuration section below.


Example Config

    external-interfaces: '{"node01":"eth5,eth2","node02":"eth4,eth8"}'
    install_sources: 'ppa:plumgrid-team/stable'
    install_keys: 'null'
    install_sources: 'ppa:plumgrid-team/stable'
    install_keys: 'null'
    plumgrid-virtual-ip: ""
    install_sources: 'ppa:plumgrid-team/stable'
    install_keys: 'null'
    install_sources: 'ppa:plumgrid-team/stable'
    install_keys: 'null'
    enable-metadata: False
    neutron-plugin: "plumgrid"
    plumgrid-virtual-ip: ""

The "external-interfaces" config parameter should be the interfaces that will provide external connectivity on each of the gateway nodes. Should be provided as a json in a string with hostname and interface names. Provide the source repo path for PLUMgrid Debs in 'install_sources' and the corresponding keys in 'install_keys'. The virtual IP passed on in the neutron-api charm has to be same as the one passed in the plumgrid-director charm.

Network Space support

This charm supports the use of Juju Network Spaces, allowing the charm to be bound to network space configurations managed directly by Juju. This is only supported with Juju 2.0 and above.

To use this feature, use the --bind option when deploying the charm:

juju deploy plumgrid-gateway --bind "internal=internal-space fabric=fabric-space"

alternatively these can also be provided as part of a juju native bundle configuration:

  charm: cs:plumgrid-gateway
  num_units: 1
    internal: internal-space
    fabric: fabric-space

NOTE: Spaces must be configured in the underlying provider prior to attempting to use them. 'internal' binding is mapped onto OpenStack internal-api endpoint while 'fabric' is mapped to OpenStack tenant-data-api endpoint.

Contact Information

Bilal Baqar Javeria Khan Junaid Ali


(string) One or multiple interfaces that will provide external connectivity on each of the gateway nodes. Provided in form of json in a string.
(string) Interfaces that will provide fabric connectivity on the gateway nodes. Provided in form of json in a string. If no value provided, fabric connnectivity will be either mapped using binding or fall back to management network.
(string) Provide the respective keys of the install sources
(string) Provide the install source from where to install the PLUMgrid debs
(string) Provide the build version of iovisor package that needs to be installed
(string) Public SSH key of PLUMgrid LCM which is running PG-Tools
(string) The interface connected to PLUMgrid Managment network.
(string) The MTU size for interfaces managed by gateway.
(string) Provide the build version of PLUMgrid packages that needs to be installed