Kolla provides production-ready containers and deployment tools for operating OpenStack clouds
Go to file
Andrei-Lucian Șerb 3b12b7b951 Attach external NIC to a NAT-Network if on Wi-Fi
On computers with wi-fi adapters, promiscuous mode on the VirtualBox (or
maybe other hypervisors as well) NICs does not work, which means the
default way of connecting the Neutron external interface to a bridged
adapter, will not allow communication to and from the Nova VMs over
floating IPs with any computer on the external network (except the host
computer) or with the wi-fi router. This means no ability to connect to
the Nova VMs and no internet access inside the Nova VMs.

According to VirtualBox documentation (excerpt): "Bridging to a wireless
interface is done differently from bridging to a wired interface,
because most wireless adapters do not support promiscuous mode. All
traffic has to use the MAC address of the host’s wireless adapter, and
therefore VirtualBox needs to replace the source MAC address in the
Ethernet header of an outgoing packet to make sure the reply will be
sent to the host interface. When VirtualBox sees an incoming packet with
a destination IP address that belongs to one of the virtual machine
adapters it replaces the destination MAC address in the Ethernet header
with the VM adapter’s MAC address and passes it on. VirtualBox examines
ARP and DHCP packets in order to learn the IP addresses of virtual
machines."

To fix this issue, a new flag has been introduced: WIFI. If true, the
default Vagrant public network is not created anymore. Instead, the 3rd
NIC will be connected to a NAT-Network named OSNetwork. The NAT-Network
has a virtual gateway, which will be used to communicate with the
external physical wi-fi router. Since Vagrant does not have a high-level
mechanism to attach an adapter to a NAT-Network, the code uses the
low-level Vagrant construct vm.customize which makes it provider
specific.

Promiscuous mode is now activated by default on the 3rd NIC.

The WIFI flag is false by default.

This commit only addresses VirtualBox, and it is currently unknown if
the problem described and fixed in this commit is present in other
hypervisors.

DocImpact
Closes-Bug: #1558766
Change-Id: I0b4dbbc562d87191b2179f47b634cdd6f6361a5e
Signed-off-by: Andrei-Lucian Șerb <lucian.serb@icloud.com>
2016-03-21 01:08:45 +02:00
ansible After refactor, the upgrade code was missing task 2016-03-17 17:13:09 +00:00
demos Extension .md is changed to .rst 2015-08-24 22:14:22 +05:30
dev Attach external NIC to a NAT-Network if on Wi-Fi 2016-03-21 01:08:45 +02:00
doc Add Manila deployment document 2016-03-16 09:11:42 -04:00
docker Merge "Manila ubuntu binary container" 2016-03-17 15:45:12 +00:00
etc Changed port of docker_registry in globals.yml 2016-03-17 02:57:54 +00:00
kolla Merge "Mesos DNS container" 2016-03-14 12:33:18 +00:00
specs Fixing typo in the documentation 2016-03-03 21:04:56 -08:00
tests Update gnocchi for centos binary 2016-03-10 17:28:06 +05:30
tools Merge "Increase the docker parition for rht bases in gate" 2016-03-17 17:02:59 +00:00
.gitignore Added *.DS_Store To .gitignore 2016-02-24 15:36:51 -05:00
.gitreview Update .gitreview for project rename 2015-09-11 20:57:54 +00:00
.testr.conf Merge "Revert "Capture the log in default"" 2016-01-19 15:36:52 +00:00
LICENSE Add ASL license 2014-09-20 17:29:35 -07:00
loc Fix up loc with change to devenv 2015-10-12 09:02:30 -07:00
README.rst Update README for heka image 2016-03-17 13:33:25 +00:00
requirements.txt Add a new tool to help find the latest versions 2016-03-08 11:45:47 +09:00
setup.cfg Remove unexisting data_files in setup.cfg 2016-02-02 17:46:17 +01:00
setup.py Updated from global requirements 2015-11-13 17:11:37 +00:00
test-requirements.txt Add tox job for the bandit python security linter 2016-03-08 16:33:59 -05:00
tox.ini Add tox job for the bandit python security linter 2016-03-08 16:33:59 -05:00

Kolla Overview

The Kolla project is a member of the OpenStack Big Tent Governance. Kolla's mission statement is:

Kolla provides production-ready containers and deployment tools for
operating OpenStack clouds.

Kolla provides Docker containers and Ansible playbooks to meet Kolla's mission. Kolla is highly opinionated out of the box, but allows for complete customization. This permits operators with little experience to deploy OpenStack quickly and as experience grows modify the OpenStack configuration to suit the operator's exact requirements.

Getting Started

Learn about Kolla by reading the documentation online docs.openstack.org.

Get started by reading the Developer Quickstart.

Kolla provides images to deploy the following OpenStack projects:

As well as these infrastructure components:

  • Ceph implementation for Cinder, Glance and Nova
  • Openvswitch and Linuxbridge backends for Neutron
  • MongoDB as a database backend for Ceilometer and Gnocchi
  • RabbitMQ as a messaging backend for communication between services.
  • HAProxy and Keepalived for high availability of services and their endpoints.
  • MariaDB and Galera for highly available MySQL databases
  • Heka A distributed and scalable logging system for openstack services.

Docker Images

The Docker images are built by the Kolla project maintainers. A detailed process for contributing to the images can be found in the image building guide.

The Kolla developers build images in the kollaglue namespace for every tagged release and implement an Ansible deployment for many but not all of them.

You can view the available images on Docker Hub or with the Docker CLI:

$ sudo docker search kollaglue

Directories

  • ansible - Contains Ansible playbooks to deploy Kolla in Docker containers.
  • demos - Contains a few demos to use with Kolla.
  • dev/heat - Contains an OpenStack-Heat based development environment.
  • dev/vagrant - Contains a vagrant VirtualBox/Libvirt based development environment.
  • doc - Contains documentation.
  • etc - Contains a reference etc directory structure which requires configuration of a small number of configuration variables to achieve a working All-in-One (AIO) deployment.
  • docker - Contains jinja2 templates for the docker build system.
  • tools - Contains tools for interacting with Kolla.
  • specs - Contains the Kolla communities key arguments about architectural shifts in the code base.
  • tests - Contains functional testing tools.

Getting Involved

Need a feature? Find a bug? Let us know! Contributions are much appreciated and should follow the standard Gerrit workflow.

  • We communicate using the #kolla irc channel.
  • File bugs, blueprints, track releases, etc on Launchpad.
  • Attend weekly meetings.
  • Contribute code.

Contributors

Check out who's contributing code and contributing reviews.