This partially implements iscsi and lvm2 support for cinder
in Kolla. Add integration with Kolla infrastructure.
Change-Id: I5b7d59163518080f38aec0c00617440de0763f1d
Implements: blueprint iscsi-lvm2-docker
Currently the delegate_to doesnt happen and the neutron role creation is
attempted once on the first server and is skipped. The re-ordering of hosts in
site.yml seems to make the first host to be one inside neutron-server group
yielding the expected results. This patch needs to be re-visited as soon as a
version of ansible is chosen that fixes the issues with delegate_to
Co-Authored-By: Steven Dake <stdake@cisco.com>
Co-Authored-By: Vikram Hosakote <vhosakot@cisco.com>
Co-Authored-By: Nate Potter <nathaniel.potter@intel.com>
Co-Authored-By: Ganesh Mahalingam <ganesh.mahalingam@intel.com>
Change-Id: Ia712b323aa9d750d470a11ee899ab1b3054a903f
Partial-Bug: #1546789
Heka depends on haproxy and keepaived being present to communicate
with ElasticSearch. If we start ElasticSearch prior to haproxy and
keepalived, the number of errors are reduced in heka.
Change-Id: Id2c742ea572c6450a371421e21f34aa69355bb8b
Partial-Bug: #1560779
The in-process cache for keystone tokens has been deprecated due to
"incosistent results and high memory usage" with the expectation we
switch to memcached_servers if we want to stay performant.
Add memcache_servers [cache] section to the appropriate servers as the
[DEFAULT]\memcache_servers options was deprecated.
TrivialFix
Related-Id: Ied2b88c8cefe5655a88d0c2f334de04e588fa75a
Change-Id: Ic971bdddc0be3338b15924f7cc0f97d4a3ad2440
This patch includes changes relative to integrating Heka with
Elasticsearch and Kibana.
The main change is the addition of an Heka ElasticSearchOutput plugin
to make Heka send the logs it collects to Elasticsearch.
Since Logstash is not used the enable_elk deploy variable is renamed
to enable_central_logging.
If enable_central_logging is false then Elasticsearch and Kibana are
not started, and Heka won't attempt to send logs to Elasticsearch.
By default enable_central_logging is set to false. If
enable_central_logging is set to true after deployment then the Heka
container needs to be recreated (for Heka to get the new
configuration).
The Kibana configuration used property names that are deprecated in
Kibana 4.2. This is changed to use non-deprecated property names.
Previously logs read from files and from Syslog had a different Type
in Heka. This is changed to always use "log" for the Type. In this
way just one index instead of two is used in Elasticsearch, making
things easier to the user on the visualization side.
The HAProxy configuration is changed to add entries for Kibana.
Kibana server is now accessible via the internal VIP, and also via
the external VIP if there's one configured.
The HAProxy configuration is changed to add an entry for
Elasticsearch. So Elasticsearch is now accessible via the internal
VIP. Heka uses that channel for communicating with Elasticsearch.
Note that currently the Heka logs include "Plugin
elasticsearch_output" errors when Heka starts. This occurs when Heka
starts processing logs while Elasticsearch is not yet started. These
are transient errors that go away when Elasticsearch is ready. And
with buffering enabled on the ElasticSearchOuput plugin logs will be
buffered and then retransmitted when Elasticsearch is ready.
Change-Id: I6ff7a4f0ad04c4c666e174693a35ff49914280bb
Implements: blueprint central-logging-service
The generic driver for manila need the neutron agents
and OVS / Linuxbridge running on the same node as manila_share.
This is necessary when the DHSS (Driver Handles Share Servers)
is the value "True", so that the manila_share can talk
with NFS manager.
Change-Id: I21904659b1789fa71118401bfb6ac2227ae564da
Partially-Implements: blueprint enable-manila-containers
Part of ELK stack. Includes Dockerfiles for both Centos and Ubuntu.
Change-Id: I9f76adf084cd4f68e29326112b76ffd02b5adada
Partially-implements: blueprint central-logging-service
*** Requires Docker 1.10 which is released ***
Documentation will be in the next patch. You must set the following
in your docker.service daemon control file for propogation to work:
[Service]
MountFlags=shared
======================================================================
Thanks to mount propagation in Docker 1.10 we can use thin containers
finally! This is extremely useful to operators since now they can
access the network namespaces from the hosts (outside the neutron
container). But additionally it allows us to implement the VPN agent
and other services easier.
Neutron containers and the neutron role are brought into the standards
of the new Kolla. Completely with drop-root and ansible formating
updates.
The ip_wrapper.py script was (thankfully) not needed so it has been
removed from the repo.
Partially-Implements: blueprint upgrade-neutron
Change-Id: Iaf5555283240457e1912459f397a6393d886fba1
Part of ELK stack. Includes Dockerfiles for both Centos and Ubuntu.
Change-Id: I1d955a5c51e416cc572eb2c9b4c57982a1d6ab67
Partially-implements: blueprint central-logging-service
Throughout the project overtime some of these file permissions have
changed to have an executable bit. They should not have this bit set.
TrivialFix
Change-Id: I1748b5bde813a0fcac36aeecdfd83245b8ee5be3
Without this the haproxy role doesn't have the facts it needs to
render it's template, resulting in the following error:
TASK: [haproxy | Copying over config(s)]
************************************** fatal: [control01] => {'msg':
"AnsibleUndefinedVariable: One or more undefined variables: 'dict
object' has no attribute u'ansible_eno1'", 'failed': True}
This is similar to the fix applied previously for other services in
I99b7dbebd5a6193e192ee258ddf576d18db90ed7.
Change-Id: Idb7fa8763cff64ad761c5b8a1a3bf92a27f4f501
Closes-Bug: 1524738
Without this the haproxy role doesn't have the facts it needs to
render it's template, resulting in the following error:
TASK: [haproxy | Copying over config(s)]
************************************** fatal: [control01] => {'msg':
"AnsibleUndefinedVariable: One or more undefined variables: 'dict
object' has no attribute u'ansible_eno1'", 'failed': True}
This is similar to the fix applied previously for other services in
I99b7dbebd5a6193e192ee258ddf576d18db90ed7.
Change-Id: I279374e8861c02e3aa12988b885be7361e0cf2f5
Closes-Bug: 1524739
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
As the bug mentions this file is complex and has caused problems in
the past. It will likely cause problems in the future.
Change-Id: I28db6a38406ce0dd38340319eea7ef9134682007
Closes-Bug: #1512582
Unfortunately there was no was to avoid memcache for consoleauth, so
we might as well take advantage of it for Horizon as well.
Change-Id: Idd338a025b031f6b50fe0c9f03c2c8d862f9d4c0
Closes-Bug: #1504606
Closes-Bug: #1504800
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
This implements all the openstack pieces needed to make ceph work.
DocImpact
Change-Id: I1d24476a966602cf955e5ef872b0efb01319894a
Partially-Implements: blueprint ceph-container
Implements: blueprint kolla-live-migration
Add the initial playbooks for making ceph and ansible play nice
together.
This does not include all of the openstack changes to make things like
nova, glance, and cinder work. This will simply build the ceph cluster
and thats it. The next patchset will do the OpenStack integration.
DocImpact
Change-Id: Ie1697dde5f92e833652933a80f0004f31b641330
Partially-Implements: blueprint ceph-container
Stagger the start times of the rabbitmq daemon so rabbitmq neither
crashes and also properly forms a cluster. This problem exists in
the latest rabbitmq 3.5.4 available on rabbitmq.com for download.
Change-Id: Iac4186b3c3b586de38467294399c7ed9415244de
Closes-Bug: #1490780
Haproxy needs to have gathered facts from all hosts that it will use
information about. In this case it must talk to all of the api hosts
as well as the database and rabbitmq hosts before generating the
configuration file.
Change-Id: I99b7dbebd5a6193e192ee258ddf576d18db90ed7
Closes-Bug: #1482406
Deploy the core services for murano-api and murano-engine containers.
Implements: bp ansible-murano
Change-Id: Ibcc618665a3509465ba8f9249a417e8848087eef
This changes bootstrapping of the Heat container to bootstrap
the Heat container with a heat domain user. This requires some
work from bootstrap.yml to pass in several environment variables
needed by the heat domain setup script.
Co-Authored-By: Sam Yaple <sam@yaple.net>
Change-Id: Iab05983754fa514835cb5ff54d775faa18773110
Partially-implements: blueprint ansible-heat
This currently deploys the core services for a working Swift which are
account/container/object/proxy.
I've included some basic docs in docs/swift-related.rst, which gives
usage instructions and more context on this patch. These are really to
give an overview of the state of Swift in Kolla as of now, so unless
there's some major inaccuracy there please don't nitpick it.
Change-Id: Id0c54be3e24c46459c40b16b7020f05bddbe1b19
Implements: blueprint ansible-swift
A missing comma after the second tag prevented the when conditional
from being evaluated correctly.
Change-Id: Ic18462212452a22ad556bed114e0a99440abe1ff
Closes-Bug: #1481130
Additionally, make each service optional witha config option allowing
for extreme flexibility should the deployer want to replace a service
with a non-kolla one (the database for example).
Change-Id: I7b644da7cfa7e8e6b6878eb1b1aa97db830504ae
Closes-Bug: #1478509
The original purpose for having an abstract like 'database' rather than
the service name of 'mariadb' has been change. Our direction is different
and this patch reflects consistent naming throughout
Change-Id: I704896191cc5243f9dab2a4cca9120e9dc2ceb2c
Closes-Bug: #1478328
This commit consists HAProxy ansible bits including config generation,
container deployment and hot reloads.
Closes-Bug: #1477915
Co-Authored-By: Sam Yaple <sam@yaple.net>
Change-Id: Ie93fa68fdb6b2885889c992ff1267d38b68e0cbc
Partially-implements: blueprint ansible-service
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