476 Commits

Author SHA1 Message Date
Sam Yaple
0f5af771ef Initial commit for adding ansible support
This adds a very basic structure to begin supporting ansible in Kolla.
Ansible can support complete idempotency, but wrapping docker-compose
does not allow idempotency at this time. These playbooks will be
extended to compensate for that in future patches.

Change-Id: I1c9e8d32321e2733f5a9b752edf74b4fe90317ed
2015-03-28 17:56:21 -05:00
Jenkins
62dbf832ad Merge "Partially Implements: Container set compute-operation-neutron" 2015-03-28 20:27:08 +00:00
Sam Yaple
986edf4a97 Replace ; with && in Dockerfile
When using ';' this can allow the previous command to fail and while the
docker build proceeds without realizing a command failed. Switching to
'&&' allows the exit code to make it to the docker build command and the
build to fail appropriately.

Change-Id: Idd0991ed4549542bb10d27da1a0a025d0503b6c1
2015-03-27 18:52:48 -05: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
Steven Dake
afcc1569b8 Work around Ubuntu 14.04 Kernel bug with --net=host
This patch builds pam with no auditing.  This allows the images to
operate on Ubuntu 14.04 which contain a kernel bug and have not been
updated.

Change-Id: I2b8bd192abcc26df27ca276dc3d0fde377048f20
2015-03-26 13:39:16 -07:00
Jenkins
0caf1c3ecb Merge "Add some documentation around running the exec_replace driver" 2015-03-26 00:20:12 +00:00
Jenkins
bc72b8585f Merge "Add doc for the minimal environment vars required per container" 2015-03-25 21:30:07 +00:00
Ryan Hallisey
5f381fe25a Add doc for the minimal environment vars required per container
Each container requires a set of environment variables be declared
so that it can function in a minimal setting.  This doc will
provide a list of those environment var for each container.

Change-Id: I225f53c869e5830d680792fd0a38f6622ba9b04b
2015-03-25 17:19:43 -04:00
Steven Dake
234efec4ba Add some documentation around running the exec_replace driver
Data volumes are busted in docker master 1.6-rc1.  Need to use a special
branch in order for docker to work.

Change-Id: Ia772de63e1fc8a07f052da2a3f4152f4d97b37f9
2015-03-25 13:23:11 -07: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
Daneyon Hansen
81d65f0b3d Refactor nova-network
Previously, eth0 was set as the nova flat interface. This
interface is used to bridge VM traffic between instances and
should not have an IP. It's a problem when you associate an
interface with an IP to the FLAT_INTERFACE.

Change-Id: I38c516094430e2d55b1b4c047a1bbcfe711a2dff
2015-03-24 18:44:28 +00:00
Jenkins
2dab951747 Merge "Have genenv offer some hepful hints about FLAT_INTERFACE" 2015-03-24 14:39:35 +00:00
Jenkins
84a81ed75b Merge "Updates Heat Template for M3 Release" 2015-03-24 14:32:44 +00:00
Jenkins
a6447c839d Merge "Adds Rabbit and MariaDB TCP ports to Heat template" 2015-03-24 14:31:44 +00:00
Daneyon Hansen
fd250d58bd Adds Rabbit and MariaDB TCP ports to Heat template
Previously, Heat was not allowing the necessary TCP ports for
RabbitMQ and MariaDB to Kolla nodes.

Change-Id: If34ca2de2e5213cb97138e5855cc88ff5c564b76
2015-03-24 07:47:34 +00:00
Daneyon Hansen
a0dfb204ed Updates Dev Doc for M3 Release
A few errors in the dev doc were causing problems with deploying
a dev env. The dev dos has been updated with the correct steps for
prep'ing a host for running Kolla. Additionally, wording has been
added to reference the Heat template for dev env deployment.

Change-Id: I9f0ba1bd2deca490a72b3c54cb1a7df386228ee8
2015-03-24 00:56:01 +00:00
Daneyon Hansen
cdb97831f5 Updates Heat Template for M3 Release
Updates the following:

1. Replaces Docker copr pkgs with binary
2. Updates docs
3. Adds compose from sdake GH repo
4. Adds required ebtables kernel module for nova-network
5. Adds container net/subnet info required for correct nova
networking functionality.
6. Consolidates pkgs installs from get-image script to the
heat template.

Change-Id: Ibec2dd5909bb8379c193b5cdbad665a5b6c2e8f8
2015-03-24 00:38:59 +00:00
Jenkins
d944259056 Merge "Fixes bug where heat container was not getting heat meta data" 2015-03-23 20:48:41 +00:00
Ryan Hallisey
1aa0f7ce49 Fixes bug where heat container was not getting heat meta data
Heat container is having trouble accessing heat meta data.
Heat needs to have HEAT_CFN_API_SERVICE_HOST set in order
to properly receive meta data.

Closes-bug 1435288

Change-Id: Ia28ece3ae91ec7acc62cc86039612841ac487f36
2015-03-23 16:22:05 -04:00
Jenkins
3d37fd95d7 Merge "Make mariadb use a data container without a bindmount" 2015-03-23 20:09:09 +00:00
Jenkins
1c0bf08eb8 Merge "Make nova-compute-network use a data volume container" 2015-03-23 20:09:00 +00:00
Jenkins
73725e535b Merge "Add a stop command to shut down Kolla AIO" 2015-03-23 20:06:29 +00:00
Jenkins
12b00b2959 Merge "Improve developer docs around docker-compose and docker-dev" 2015-03-23 16:16:07 +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
Steven Dake
3f036e3f93 Add a stop command to shut down Kolla AIO
Use docker-compose with the stop operation rather than cleanup-containers -f.

Change-Id: I1b0f97589b04eaa4e3a0b4e5247294e4c4b0dc47
2015-03-21 15:09:20 -07:00
Steven Dake
03606b8a85 Improve developer docs around docker-compose and docker-dev
docker-compose master now requires 1.18 API, which is only available
in the development version of docker.  Show how to retrieve and run it.

Change-Id: Ia3a7a659c495547fcc04d31cf38ffeaaf6fd729a
2015-03-20 23:45:52 -07:00
Jeff Peeler
07f5999276 Check for root privilege in start.sh
This change was lost in 888bb9cc8c68bf61fddc0ca08a69f764a4012121.
Both modprobe and setenforce require root, so I think this is a good
sanity check.

Change-Id: I431df44e0fed4a981df96a9a98bfbb5c350e49ac
2015-03-21 02:18:01 -04:00
Jenkins
0d9a53470d Merge "Use -L flag in curl" 2015-03-21 03:28:12 +00:00
Jenkins
be79b50b31 Merge "Don't kill keystone, but instead wait for it to finish at the end" 2015-03-21 03:19:48 +00:00
Jenkins
f84c2b1705 Merge "Fix wait_for function in kolla-common.sh" 2015-03-21 03:17:15 +00: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
Jenkins
b6d4cf6310 Merge "Cleanup leftovers after wait_for was merged into kolla-common.sh" 2015-03-21 03:07:48 +00:00
Jenkins
1854cb52e9 Merge "Remove reference to k8s directory from README" 2015-03-21 03:06:37 +00:00
Steven Dake
f4b128f7bb Use -L flag in curl
The cirros image uses a redirect.  Use curl -L to follow redirections.

Change-Id: I3a9309901ab3528442009fd6802600c51c98242f
2015-03-20 20:01:57 -07:00
Jenkins
17eccb0dfd Merge "Implements: blueprint Implement a database container set" 2015-03-21 02:47:52 +00:00
Martin André
448e48a75b Cleanup leftovers after wait_for was merged into kolla-common.sh
Change-Id: I97ab671bfbdcf5434feedec617a938b30af4579b
2015-03-21 11:11:57 +09:00
Steven Dake
89df9eb381 Have genenv offer some hepful hints about FLAT_INTERFACE
The FLAT_INTERFACE is for vm communication, and should be
manually configured if necessary.

Change-Id: I79846705c18c2f0f2d4340e53d04183ec689e191
2015-03-20 16:19:01 -07: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
3f4c45fac5 Add ADMIN_USER_PASSWORD to genenv tool
The genenv tool was generating the wrong password for the openrc
file as a result of recent keystone rework.  This patch fixes that
problem.

Change-Id: I169e3255e3f3ef57938861c31ef4e342d9a32cbc
2015-03-20 13:41:08 -07:00
Jenkins
ed617a59f8 Merge "Fixes Keystone openrc and sets / for scripts" 2015-03-20 19:14:28 +00:00
Steven Dake
f642fd7b2d Don't kill keystone, but instead wait for it to finish at the end
use the bash wait builtin to wait for the keystone process to exit.

Change-Id: I03057e7925e7e41120c163c0be22ade75050d9f1
2015-03-20 10:48:32 -07: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