47 Commits

Author SHA1 Message Date
SamYaple
8af400733d Convert to named volumes instead of data container
This intentionally leaves out rabbitmq from this patchset. It will
require additional work to remove its data container

UpgradeImpact
Partially-Implements: blueprint docker-named-volumes

Change-Id: Id68b8e43a3c077ef4f4f4d67ea34d0692e66eef7
2016-01-03 16:44:44 +00:00
SamYaple
4bd6285dc7 Convert neutron to kolla_docker
Change-Id: Id58586ac20ee081eb731deb23e5f8dc26dfb8cc2
Partially-Implements: blueprint kolla-docker-module
2015-12-31 16:38:56 +00:00
Hui Kang
047dbf12e0 Enable nova fake driver in nova containers
- See instructions in doc/nova-fake-driver.rst

Implements: blueprint nova-fake-driver

Change-Id: I553a40c2df39bdcc391eb1b8b2b8fd5f4ed48c33
Signed-off-by: Hui Kang <kangh@us.ibm.com>
Signed-off-by: Marcio D. Silva <marcios@us.ibm.com>
2015-12-29 06:39:35 -05:00
SamYaple
ed82afa8e9 Simplify config creation
Convert config creation from a playbook to an action_plugin. This
reduces the complexity and confusion while retaining the same augment
structure and flexibility.

This allows us to remove the 0-byte files as requirements. They will
still be used if they are present (this means we require additional
documentation around them).

DocImpact
Closes-Bug: #1528430
Change-Id: I2c789f6be9f195c7771ca093a6d59499564b4740
2015-12-22 04:28:53 +00:00
Sean Mooney
9ce814619a configure ovs bridge in openvswitch-db container
- this change moves the ovs_ensure_configured.sh  file to the
  openvswitch-db container.
- this change reorders the plays in ansible/roles/neutron/tasks/start.yml
  to configure the ovs bridges before starting the vswitchd container.

Change-Id: Ied1a82d48377534c15680406df9a96caf3b79515
Closes-Bug: #1522133
2015-12-03 20:13:21 +00:00
Ryan Hallisey
6989e876f7 Add OVS-data container
Change-Id: I488b386ef6864f88b7693cf028626330f5414638
Implements: blueprint ovsdb-data
2015-11-25 14:04:47 -05:00
Sam Yaple
970617b80a Make the database json variable more readable
Additionally remove tty from the container cleanup docker section. It
was added in a sed in a previous patchset by serves no purpose.

Change-Id: Ib617870616bca687f72ffaa44b2e9a3a11ef1011
Partially-Implements: blueprint cleanup-playbooks
2015-11-23 17:24:22 +00:00
Hui Kang
790bf336d5 Fix bootstrap for services
The bootstrap tasks could be started on any node listed in the
site.yml

The issue is that all the tasks must run on the same node, and the
only node that all the tasks can run on is the 'api' node due to
needing to start the bootstrap container which binds in the configs.

delegate_to is required to ensure that the proper node gets the task.

Co-Authored-By: Sam Yaple <sam@yaple.net>
Change-Id: Ica04ab366777a571a92212ac22c482f1881d4ecd
Closes-Bug: #1513598
Related-Bug: #1513439
2015-11-23 17:09:36 +00:00
Sam Yaple
6b28343017 Incorrect parsed variable name
database_user_create was not correctly referenced when parsing the
variable names. This could never actually lead to a situation that
reported a false change, but it could break an operation if you were
using the --step option with ansible and skipped the database create
task.

TrivialFix
Backport: Liberty

Change-Id: Idf69fffcc3814f509448ccea11b7d175f074ccf1
2015-11-09 10:47:15 +00:00
Jenkins
037bdca42d Merge "bootstrap takes place on the wrong node" 2015-11-06 03:32:36 +00:00
Jenkins
58a9759b84 Merge "Allow disabling of sysctl values" 2015-11-06 03:31:22 +00:00
Sam Yaple
e2bc9dcf79 bootstrap takes place on the wrong node
The bootstrap must occur on the nova-api node due to binding in the
nova-api directory (same goes for all other services)

Closes-Bug: #1513439
Backport: Liberty
Change-Id: Iab88b49712828085e4d7e7f85e6d8f0b7999a9bf
2015-11-05 16:30:44 +00:00
Sam Yaple
1efdf4574d Allow disabling of sysctl values
The main reason for this change is to allow the DinD stuff to work. It
has limited use outside of that use case, but it may still be useful
to others in the future.

Change-Id: Ib3a4639cfb3fc0d378d33fc8b9ff8eb597f818ab
Partially-Implements: blueprint multinode-gate
2015-11-05 16:29:25 +00:00
Sam Yaple
347730cec8 Remove vip for rabbitmq
Adjust all the configs to list all the rabbitmq hosts rather than
running rabbitmq through the VIP. This is made possible by clusterer
which has already merged.

Change-Id: I5db48f5f10ec68f4c8863a29bc13984f6845a4f9
Partially-Implements: blueprint rabbitmq-clusterer
2015-11-05 15:43:20 +00:00
Sam Yaple
b2ac6e80cd Add tty to containers
sudo requires a tty to function by default on centos. Instead of
tweaking the sudo conf we can just add a tty. This has the added
advantage of making the containers more friendly if you have to
`docker exec -i <container> bash` into them.

Change-Id: If97a02ca1d37c243a787d98ade54bde8d641aecd
backport: liberty
Partially-Implements: blueprint functional-testing-gate
2015-10-14 10:54:33 +00:00
Sam Yaple
c5be228be8 Bump ansible to 1.9.2
Ansible 1.9.2 contains the fix needed for docker-py >1.2.0

This is needed for some gate reasons, but it is also a good version
bump because it fixes a few issues with delegate_to.

Change-Id: Iafbabb3b0232620849d0548c5cd9d8d316c2b0f3
backport: liberty
Partially-Implements: blueprint functional-testing-gate
2015-10-13 15:13:34 +00:00
Jenkins
fbf0daf1de Merge "Neutron-server should be on control group" 2015-10-09 17:28:23 +00:00
Nguyễn Duy Vũ (CBR09)
44d1103587 Neutron-server should be on control group
It's convenient for tools/init-runonce work properly
Closes-Bug: #1503999
backport: liberty
Change-Id: I2d9f97e59ae4de3404f95a5231103cdd40a68835
2015-10-09 23:43:02 +07:00
Sam Yaple
a38868f9cb Fix wrong sysctl variable name (part 2)
Change-Id: I8e4c9beb90a0b289f56947ca6292f6455e26e07b
Closes-Bug: #1503416
2015-10-07 07:59:25 +00:00
Jenkins
719740ade8 Merge "Set sysctl values" 2015-10-06 05:20:36 +00:00
Sam Yaple
94162bd08f Bring Kolla inline with FHS
This brings Kolla images inline with FHS and should make finding
locations of things more consistent and reliable with the linux world
at large.

Change-Id: Iece5b4da4bace0fb8b1f41a65ab2c852ec73e6f8
Closes-Bug: #1485742
2015-10-06 03:30:53 +00:00
Sam Yaple
0700100d82 Set sysctl values
A few sysctl values are required for networking to work. All of them
are documented at docs.openstack.org and while some of them are the
defaults on systems, they should be explicitly set since networking
will break without them set.

Change-Id: I4507eb2602e52eeab61bdceea4c94b1c35696a7d
Closes-Bug: #1482794
2015-10-04 06:29:20 +00:00
Jenkins
2599e221a8 Merge "Neutron Agents json support" 2015-09-29 10:12:57 +00:00
Ryan Hallisey
4f15ac8008 Neutron Agents json support
Neutron Agents is a special case for json support. Since it's a fat
container, there will be multiple commnds that will need to be run
in the container.  In order to account for this, the commands will be
hardcoded until the agents are split out to their own containers.
The files will be copied the normal way.

Co-Authored-By: Steven Dake <stdake@cisco.com>

Change-Id: I9fc226cc7b82c2594db5814d30d453a29a4af8c0
Partially-Implements: blueprint replace-config-external
Closes-Bug: #1500566
2015-09-28 23:45:03 -07:00
Jeff Peeler
f5a50a1d7d Add Ansible support for Ironic
Configuration based off upstream documentation here:
http://docs.openstack.org/developer/ironic/deploy/install-guide.html

A few notes:
-ironic-api is not configured to use mod_wsgi
-several places it's noted that discoverd is going away and needs to be
replaced with ironic-inspector - (sqlite connection should be changed
too)
-currently enabling ironic reconfigures nova compute (driver and
scheduler) as well as changes neutron network settings
-a nice enhancement would be to configure the web console

Required post-deployment configuration:

Create the flat network to launch the instances:

neutron net-create --tenant-id $TENANT_ID sharednet1 --shared \
--provider:network_type flat --provider:physical_network physnet1

neutron subnet-create sharednet1 $NETWORK_CIDR --name $SUBNET_NAME \
--ip-version=4 --gateway=$GATEWAY_IP --allocation-pool \
start=$START_IP,end=$END_IP --enable-dhcp

And then the above ID is used to set cleaning_network_uuid in the neutron
section of ironic.conf.

Change-Id: I572e7ff1f23c4e57a2c50817cafe9269fd9950dd
Implements: blueprint ironic-container
2015-09-28 16:10:43 -04:00
Sam Yaple
94ea43fa55 Replace config-external - openvswitch
Change-Id: Ib05442c6ee146d2deb49fc235ba16fc7e0c3d6c8
Partially-Implements: blueprint replace-config-external
2015-09-27 13:44:50 +00:00
Jenkins
d66eaf65e3 Merge "Add missing when statments when copying JSON files in ansible" 2015-09-25 13:53:11 +00:00
Ryan Hallisey
0ebb67346f Add missing when statments when copying JSON files in ansible
Change-Id: I865b3f4c63520ec318c8b50f4ba60b5715d283ee
Partially-Implements: blueprint replace-config-external
2015-09-24 13:36:54 -04:00
Michal Jastrzebski
10776e57f9 Neutron logging to rsyslog
Configure neutron to use rsyslog container as logging mechanism

Change-Id: I7cf8a1327f07c7b9c4405ee65cecd373def0fea9
Implements: bp logging-container
2015-09-24 14:08:22 +02:00
Ryan Hallisey
2c23f2d445 Replace config-external with a JSON file for Neutron (thin)
This is only for the Neutron thin containers.  The Neutron agents
are still in a fat container.  I'll replace in another patch.

Change-Id: I8533af52bfa3f268aa8ffb1c16ae49f5a300da27
Partially-Implements: blueprint replace-config-external
2015-09-24 08:12:19 +00:00
Sam Yaple
f42528acaf Properly check failed status
No need for a new task.

Change-Id: I958f87ac9a1434a2f6052e0271f37e5f3109775e
Closes-Bug: #1492337
2015-09-06 11:21:44 +00:00
Vladislav Belogrudov
7f81dbc85b Check exit status of bootstrap containers
Currently bootstrap containers are waited to exit but are not
checked for exit status and ansible runs further tasks. If
bootstrapping fails we notice it at much later time.

Change-Id: I137fc11b0f9d1f03d2ded08a213e8dbd62741f92
Closes-Bug: #1492337
2015-09-04 19:47:54 +03:00
Paul Bourke
f5c996e77d Fix typo in task bootstrap task names
Not quite halloween yet...

Change-Id: Ib1973eea0b2dddc0e0845731d1212c4d4447cca5
Closes-Bug: #1490502
2015-08-31 11:27:10 +01:00
Vladislav Belogrudov
04ba3ccb51 Wait for bootstrap containers on the same hosts they run
Change-Id: Id6a82e6622f712c6fca8205357dec4e5161e46d2
Closes-Bug: #1487387
2015-08-24 13:38:36 +03:00
Steven Dake
98b98924ee Use database_user_create in the register operation
The register operation was registering user_database which is a global
variable in group_vars/all.yml.  This results in glance not being deployable
because user_database is overwrriten at keystone task registration time.

The result of this is the playbooks fail to deploy.

Change-Id: Ic69725fb09aa0a368ec5b0d8f47bfc768c29c70c
Closes-Bug: #1486876
2015-08-20 00:49:31 -07:00
Swapnil Kulkarni
059d84859f Remove Ansible abstraction for Neutron
Co-Authored-By: Sam Yaple <sam@yaple.net>
Change-Id: I19ae5c2d58b94cd95b969e5c4e65ef1670a78b7e
Partially-Implements: blueprint remove-abstraction-ansible
2015-08-19 12:16:56 +00:00
Steven Dake
db98ff7e48 Register neutron as the network service
Change-Id: Id0af297e29c2751c7da1f19742f764ccac56d723
Closes-Bug: #1485142
2015-08-14 23:48:31 -07:00
Sam Yaple
98a379b0fd Reduce dependencies on the dest nodes
Currently we require a slew of deps on each destination node, this
includes a gcc compiler and installing things via pip. We can remove
these dependencies by containerizing them and running and Ansible
inside the container itself. The container would then report back
facts about idempotency.

DocImpact
Closes-Bug: #1481495
Implements: blueprint containerize-dependencies
Change-Id: I3dfccbf9fafc06ffc36e78f3006fe5d3367891df
2015-08-06 01:32:05 +00:00
Sam Yaple
b401a90254 Add linuxbridge as option to ansible
Allows the user to configure neutron_plugin_agent value for Ansible.
Current allowed values are openvswitch and linuxbridge.

Implements: blueprint ansible-neutron-linuxbridge

Change-Id: I0572464a5459d2f9da09b6da22db16e240511f99
2015-08-02 11:48:21 +00:00
Sam Yaple
8e03952c10 Fixes race condition in ansible playbooks
Bundling in a run_once error that beaks with multinode and the race

Change-Id: Ia3779d9a291f8d652fc81fe5ebcab88241805c8d
Closes-Bug: #1480468
2015-07-31 22:40:21 +00:00
Sam Yaple
d1f2ec8c8a Properly use all configs with neutron
Change-Id: Ie347964d42e7060c69047b1aeece1cf0ad311ae6
Partially-Implements: blueprint ansible-service
2015-07-23 15:22:01 +00:00
Jenkins
63035f7ce4 Merge "Adds the appropriate tools to addin the ovs bridge" 2015-07-23 13:40:57 +00:00
Jenkins
1c86345529 Merge "Allows neutron-agents l3 agent to communicate with OVS" 2015-07-23 13:28:19 +00:00
Steven Dake
ad57661d51 Copy ml2_conf.ini to correct location
The ml2_conf.ini file which sets OpenVswitch as the mechanism driver
was not being copied to the corect place.  This patch resolves that
problem.

Change-Id: Ia276916a3183564c9b7d8d6aa9595c384ed99cf6
Closes-Bug: #1477399
2015-07-23 13:01:07 +00:00
Steven Dake
4789f9188a Allows neutron-agents l3 agent to communicate with OVS
The neutron-agents l3 agent requires access to the OVS database via
access to /run.  It also needs to have ovs-vsctl binary available in
the container.

Change-Id: I903537b570cd60c9bb1088e9408a5f6ea4988d8f
Closes-Bug: #1477376
2015-07-23 05:53:51 -07:00
Sam Yaple
77f71b9f59 Adds the appropriate tools to addin the ovs bridge
Ansible will exec a script in the OVS container to ensure the bridge and
ports are properly setup. The script is idempotent.

Change-Id: I5adca595a4d2ef4edf26c9635cfa5ceb30ca4a59
Closes-Bug: #1466375
2015-07-23 12:15:31 +00:00
Sam Yaple
f47fb972b6 Ansible Neutron support
Add initial Ansible support for Neutron

Change-Id: Idad011945bff914535d1ac0eb09cc9d3b0882fbe
Partially-Implements: blueprint ansible-service
2015-07-19 12:37:49 +00:00