71 Commits

Author SHA1 Message Date
Sam Yaple
62e02fdbf4 Partially revert thin neutron containers
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
2015-06-27 16:39:34 +00:00
Jenkins
999a51b6f3 Merge "Set up glance to use a data container." 2015-06-25 02:18:06 +00:00
Jenkins
6766632b9c Merge "Change fat neutron container into thin containers" 2015-06-24 15:28:59 +00:00
Sam Yaple
98460af04d Change fat neutron container into thin containers
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
2015-06-24 14:41:23 +00:00
Jenkins
54aa5d2fd1 Merge "Keepalived container" 2015-06-24 06:01:40 +00:00
Michal Jastrzebski (inc0)
52f4909435 Keepalived container
This patch contains keepalived container for yum-based distros.

Change-Id: I8e3ea7a61ad6c27b25b635e7aeeff5ef04a807b4
Implements: blueprint keepalived-container
2015-06-22 17:18:44 +02:00
Jeff Peeler
1962bfb16e Fix Heat container env vars and dependencies
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
2015-06-19 17:33:32 -04:00
Ryan Hallisey
72d1ef47dd Add cinder into the docker compose setup
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
2015-06-19 13:15:48 -04:00
Michal Rostecki
1420d63c7f Add designate-sink service
Container for Designate Sink, automatic domain creation for
enabled notification handlers (nova and/or neutron).

Change-Id: I41118cb149e7f39a17bff49123d82905b51b7939
Blueprint: designate-container
2015-06-19 17:08:47 +02:00
Michal Stachowski
abbee7dbca Galera container
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
2015-06-19 16:14:34 +02:00
Ian Main
2482f718f8 Set up glance to use a data 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>
2015-06-18 13:48:22 -04:00
Harm Weites
76c5d9a6c8 Add the Designate DNSaaS services.
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
2015-06-05 21:06:06 +02:00
Martin André
d1b8a1db91 Set release tag to 'latest' for development branch
Change-Id: I418583af2d2795f4b63ded2aa3e2cbedd70993c8
2015-05-12 13:18:09 +09:00
Steven Dake
e18140ae50 Add heat-api-cfn to heat-api-engine yml
Star theat-api-cfn in the main heat-api-engine compose
file.

Change-Id: Ibe5c9169c606a76470fe9be9c9cc439aaf8d3f0f
2015-05-11 09:26:08 -07:00
Steven Dake
5a06901664 Add Magnum Containers as a Service to Kolla
This adds Magnum Containers as a Service to Kolla.

Change-Id: I572cd62845515f42a6a16291d2bd87ad8d972e24
Implements-blueprint: container-magnum
2015-05-11 09:26:02 -07:00
Daneyon Hansen
bd0fd9502e Add kilo tag to keystone compose file
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
2015-05-07 00:21:57 +00:00
Steven Dake
c81b003309 Port to Kilo
Use kilo upstream RPM packages

Partially-implements: blueprint port-kilo

Change-Id: Ia0b4db5dc8e40c01184871e77458dc718c3c46cd
2015-05-06 13:54:00 -07:00
Harm Weites
5ffc66cd69 Add a novnc container running the novnc-proxy.
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
2015-05-06 22:32:38 +02:00
Steven Dake
68594d873f Port to Juno
This represents the Juno release of the images.

Partially-implements: blueprint port-kilo

Change-Id: I2837ec25a2aa093b7fff7519f3ed608ec93736bf
2015-05-06 09:58:43 -07:00
Steven Dake
d30f69bc83 Port to icehouse
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
2015-05-06 09:58:43 -07:00
Steven Dake
ea0f5c7efa Add heat-api-cfn
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
2015-05-06 05:33:55 -07:00
Martin André
90ad52c4c1 Consolidate tools/conf-* scripts in tools/init-runonce
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
2015-04-28 12:15:42 +09:00
Steven Dake
716eeae386 Add support for configuring via Neutron networking
Configure the network for use with Neutron.

Co-Authored-By: Daneyon Hansen (danehans@cisco.com)

Change-Id: Iab0496cf40683ca29cbe38066ae446aa8c6c4c36
2015-04-27 14:22:23 -07:00
Steven Dake
fbee7e842f Add a conf-novanet to configure nova
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
2015-04-27 14:20:10 -07:00
Steven Dake
5408a4f556 Do not bindmount nova-compute directories
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
2015-04-21 13:10:19 -07:00
Martin André
75a6c3bc9f Introduce tools/kolla to interact with kolla
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
2015-04-16 14:56:48 +09:00
Daneyon Hansen
977f2c8243 Fixes Spacing in Neutron Agents Compose File
Previously, compose would generate an error because the
neutron-agents.yml file was missing a space for the restart policy
line.

Change-Id: Ib17c4c726dcfcda780a242ebe22474e9252cac8a
2015-04-13 18:52:23 +00:00
Daneyon Hansen
ed107a5e26 Adds Neutron Agents Support
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
2015-04-13 07:34:12 +00:00
Daneyon Hansen
2f2bb366e0 Adds neutron-server to neutron container-set
Adds neutron-server components of the neutron container set.

Partially Implements: blueprint compute-operation-neutron

Change-Id: I63525ae85f4ead4e010cdb9b6bc8059bb9d252e7
2015-04-10 03:11:23 +00:00
Jenkins
32b32280da Merge "Loads ebtables from inside the containers" 2015-03-30 21:49:26 +00:00
Jenkins
e8984dcc5b Merge "Tell mariadb to restart" 2015-03-29 00:08:17 +00:00
Sam Yaple
1dcd904d27 Loads ebtables from inside the containers
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
2015-03-28 15:54:43 -05:00
Steven Dake
bbad173a0a Tell mariadb to restart
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
2015-03-28 08:50:23 -07:00
Daneyon Hansen
40be5646fa Partially Implements: Container set compute-operation-neutron
Adds the neutron-linuxbridge-agent to the neutron container set.

Change-Id: I20752611c24a3110cc5d2e4fca2d501fc32a4d87
2015-03-27 23:36:06 +00:00
Daneyon Hansen
1182e060cb Extends Nova Metadata Service Parameterization and Composition
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
2015-03-25 17:27:44 +00:00
Steven Dake
c2b92c5e96 Make mariadb use a data container without a bindmount
A data container is meant to operate without bindmounts.

Change-Id: I2624a63fd75db7ed8050054c17e19885f8a7ac8a
Co-Authored-By: Daneyon Hansen (danehans@cisco.com)
2015-03-22 08:55:24 -07:00
Steven Dake
f4fd47dc2c Make nova-compute-network use a data volume container
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
2015-03-22 08:54:53 -07:00
Jenkins
ad6026e0e1 Merge "Refactors nwfilter" 2015-03-21 03:16:24 +00:00
Jenkins
68978c2338 Merge "Make the Horizon dashboard work properly" 2015-03-21 03:15:58 +00:00
Jenkins
a99a861bc0 Merge "Improve Heat integration" 2015-03-21 03:15:38 +00:00
Jenkins
64f59e229c Merge "Add pid: host to libvirt" 2015-03-21 03:12:30 +00:00
Daneyon Hansen
c49613ad0a Refactors nwfilter
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
2015-03-20 22:00:54 +00:00
Steven Dake
71576f4e42 Make the Horizon dashboard work properly
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
2015-03-20 10:21:29 -07:00
Steven Dake
dbddef4f78 Improve Heat integration
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
2015-03-20 10:21:01 -07:00
Steven Dake
5bfc3e11f6 Add pid: host to libvirt
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
2015-03-20 10:05:03 -07:00
Daneyon Hansen
5547b5fe78 Implements: blueprint Implement a database container set
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
2015-03-20 16:17:51 +00:00
Jenkins
fb425db56d Merge "Move genenv.sh and start.sh to tools directory" 2015-03-20 16:09:32 +00:00
Jenkins
9b7a844094 Merge "Always restart glance services" 2015-03-20 01:39:08 +00:00
Martin André
888bb9cc8c Move genenv.sh and start.sh to tools directory
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
2015-03-20 10:31:02 +09:00
Jenkins
e201fd5206 Merge "Check for root privilege in start.sh" 2015-03-20 00:58:05 +00:00