Due to a revert in the Docker code, thin neutron containers do not work
at this time. The neutron plugin agents do not need to exist in the same
container as the other agents however. This allows for using either
linuxbridge or openvswitch
The docker commit that did the revert:
ff770d33cd
Closes-Bug: 1469307
Change-Id: Idf79c31c74c34b93f5a9bac49730aca49bbdb861
Key difference here is the ip_wrapper.py file. This file and docker 1.7
allow for the network namespaces to be created in the host mount
namespace and propogated into the containers.
Co-Authored-By: Paul Bourke <paul.bourke@oracle.com>
Change-Id: I73bcd1c97bbaf742af883dbf281a8d76aff8aebf
This commit adds a few dependencies (that are actually packaging errors)
present in all of the containers, as well as specifically in
heat-engine. Some of the environment variables were not set correctly in
the heat-api-cfn container. The environment variables have also been
correctly added to the genenv script.
Also removed duplicated compose file data already present in
heat-api-engine.
Closes-Bug: #1461872
Change-Id: I9631d1bc6ea42425272570a9dda8cbf5edcef4f3
This patch adds the docker-compose files, updates the docs,
and adds cinder to the start command.
Implements: blueprint container-set-storage-operation
Change-Id: I5386851e2247c00696704dc26a8a286451d4bf59
This changes are providing support for galera cluster. It's important for
project to has got support for database cluster as a one of the steps to
providing High Avability(HA) in Kolla project
Change-Id: If51bb88ab05972d3b8aa8abbbbd2a5480213a10e
Implemented: blueprint galera-container
Glance images were originally intended to be stored on the host (see
container Dockerfile) but the compose file was not doing this. The
right thing is to use a data container for image content.
Closes-bug: #1465401
Change-Id: I02d2aab2913356939d98b8c18f9e788ae6d901af
Co-Authored-By: Ryan Hallisey <rhallise@redhat.com>
This is a complete DNS solution, with hidden master and bind9 slave.
It lacks the designate-sink service, because there is no true specification
to implement that. It listens for Nova/Neutron events and creates records
though adding those to just 1 domain isn't helping much in an environment
with multiple tenants.
Change-Id: I500fb6058b118d25a4ccfd1d3479830c36af7e2a
Blueprint: designate-container
Previously, the keystone compose yml was referencing juno instead
of kilo when all other services are using kilo. This patch upates
the yml to use the keystone image with the kilo tag.
Change-Id: Ib4f551ad303bd44f0a5c45fc9d5f7d53f376caf7
All VNC-specific configuration bits are moved from nova-api-base to
nova-compute and the new nova-novncproxy and nova-consoleauth
containers. The compose specification has been updated to reflect this.
A future patch will make the desired backend configurable (spice/vnc).
Change-Id: I8b64abf125fd1ecd7d3463515e3717dd9bd60420
Blueprint: novnc-container
This represents making build-docker-images --release build
with the icehouse tag and causes docker-compsoe to pull from
the icehouse tag.
Partially-implements: blueprint port-kilo
Change-Id: I66b2c39abc55c0f47152dd90e696fc46b9c58f50
Add Heat-api-cfn for wait conditions
Magnum needs wait conditions in order to operate properly. heat-api-cfn
is where wait conditions connect.
Change-Id: I56742dd96e4607dc0042d0cef4e18c922f9ed736
Implements: blueprint container-heat-api-cfn
Fix issues reported in https://review.openstack.org/#/c/177681/3, and
simplify detection of cirros images in glance.
Only add developer's SSH key to nova if ~/.ssh/id_rsa.pub exists and is
readable.
Change-Id: I5936c6db399d63902d460b0d3c959619073cc3cc
Configure nova networking and nova quotas to allow 40 m1.small
instances to run. Checks for keystone credentials set. May only
be run once.
Change-Id: I36e01d42ec283651babbb59268452a65e644626e
Nova uses a data container. Data containers are expected to
use the VOLUME keyword and then use volumes_from to access
those volumes. Throwing in a bindmount to the host filesystem
results in unpredicble behavior, usually in the form of files
being stored on the host filesystem that should be persisted
in the compute data volume.
Change-Id: I60a7873995c9397368ed4df61d5a6d4e8250f3c2
This is supposed to prevent proliferation of scripts in "tools"
directory and reduce code duplication.
This first patch replaces tools/{start,stop,pull,status} scripts and
more commands are to be added in the future.
Change-Id: I3d99cf5033be8631d8e6f32a4c34d3b5ffcae7e8
Previously, compose would generate an error because the
neutron-agents.yml file was missing a space for the restart policy
line.
Change-Id: Ib17c4c726dcfcda780a242ebe22474e9252cac8a
Previously, the agents ran in seperate containers. Since some of
the agents create and use network namespaces, runnning them in
seperate containers has become a challenge. This patch adds
neutron agent support in a single container.
Partially Implements: blueprint compute-operation-neutron
Change-Id: If4f893abd50d90b58e8435ec2659870dce36951c
We have to overlay the /lib/modules folder from the host to properly
`modprobe` from within a container. We don't have to give it write
permissions however, so the docker-compose volume is mounted in as 'ro'
Change-Id: I95101136dad56e9331d8b92cd394495f7bd0576a
If a system is rebooted with kolla running, all the services will
continually restart. There appears to be some locking problem in
docker which will result in docker imploding. One problem is a
key dependency, mariadb, is never started on a reboot because it is
missing restart: always. Also restart the mariadb data container
until it returns success.
Change-Id: I599d28548ff041712d54a702c80fe36c321adf7f
Previously, nova enabled_apis was hard coded and metdata_host
was using PUBLIC_IP param instead of exposing an individual
param.
Extending these params and creating a separate compose yml that
includes compute/libvirt/network/api is required to support
nova network multi_host.
Additional details can be found here:
http://docs.openstack.org/admin-guide-cloud/content/section_metadata-service.html
Change-Id: I5d417a0ee460f8ad9b2982fe83d63ab57013918e
A data container is meant to operate without bindmounts.
Change-Id: I2624a63fd75db7ed8050054c17e19885f8a7ac8a
Co-Authored-By: Daneyon Hansen (danehans@cisco.com)
A data volume container is far superior to bind mounting the
host's shared directories. It preserves the idempotency,
immutability and declarative properties of the containers.
The way this works in practice is that a data volume container is
created. Then when the containers start they use LVM to access
the filesystem where /var/lib/docker is contained. Then the
container startup logic bindmounts the data volume stored on the
host filesystem in /var/lib/docker/vfs/dir/ID. This prevents
people with access to the host operating system from damaging
the contents of the data container.
It does mean that now we must use tools/stop to stop our containers
rather than tools/cleanup-containers -f.
This is a containers best practice. For more details see:
https://docs.docker.com/userguide/dockervolumes/
Big credit goes to Danyeon Hansen for seeding this idea in the
mariadb containers.
Note occasionally docker-compose start/stop seems to not want to stop
a container. This bug needs to be addressed upstream separately
from our utilization of this best practice.
Change-Id: Iaa1419f606e1b1b7a7560a095c49e79d643164f1
Previously, the nwfilter daemon/conf pkgs would need to be
installed on the host. Compose would then mount the host DIR
to the compute containers. A more efficient approach is to simply
install the nwfilter config/daemon in the libvirt container. Both
appoaches address the following error when booting an instance:
'no-mac-spoofing' is missing
Change-Id: I81b446d198920473bf99b97ef5eac6ef5ee85024
The Horizon dashboard was not working properly prior to this work.
Also a docker-compose file was added to start the dashboard.
Change-Id: I8a438c15b967b0cec00bfe44b997f833bf745191
Generate Heat environment variables.
Rename yml file to api and engine to follow other service conventions.
Add heat to compose/start
Modify integration guide to include new variables.
Change-Id: I058d829901881e28d6f4785f59fcf778058241e4
Without pid: host, nova-compute and libvirt fail to operate correctly
together. I don't understand why, and I wish it weren't so, but it means
folks will have to install docker-compose from my personal github account
until the pull request is merged upstream.
Change-Id: I24e55405139c831f2df246f54c5b6fd39d00656a
Previously, the database container was configured for use with
Kubernetes. This patch removed any k8s dependencies, adds a script
to manage mysql server.cnf settings and splits data and app
containers. Splitting the containers provides additional
portability and operational efficiencies compared to host mounts.
Change-Id: I80656450c02dda5f2959d187eec20d5877dc54a2
Rename them `genenv` and `start`.
Have `genenv` create the openrc file in the top-level directory.
Add openrc and compose/openstack.env to gitignore, as well as *.img.
Change-Id: I5d8006e97efd77cf364215f55d5e585139ae273e