The new image doesn't have an existing old image, so it
ends up not existing. In this condition, we know that
we are dealing with a version change upgrade.
TrivialFix
Change-Id: Ic2f83c2bb6c34731b60b3430ba66a6324439f0a9
add three actions used for reconfigure
* restart_container
* get_container_env
* get_container_state
Partially-implements: bp kolla-reconfig
Change-Id: I63609ce47f044926ff276ab1188b10f44270a0b5
This creates tree and playbook for nova upgrade. Also other service
upgrades will follow standard setup here.
Change-Id: Ic31759efaee4986eb87b9ff0968f13189d130d48
Partially-Implements: blueprint upgrade-kolla
Implements: blueprint upgrade-nova
This commit fixes a bug in kolla_checker.py where the check_volume
function will raise "TypeError NoneType object is not iterable" if
there are no existing volumes.
TrivialFix
Change-Id: Ic57c339793fa532ed8db075ba1074db75106e36d
With the switch to named volumes we run into a few situations where
we cannot bootstrap volumes like we used to. This labels param will
fix that as the next patchset shows.
Change-Id: Ia93166dd204c5c0d1a0eb9ffeb6d0aba486e269a
Partially-Implements: blueprint docker-named-volumes
Update the group_vars and globals docuementation as well.
Change-Id: I3ffd49b8d99667425596a2753845767a62e05bf1
Partially-Implements: blueprint kolla-docker-module
The upstream docker module in control of Ansible has proven to be a
major breaking point for Kolla. It is the reason we have a cap on
Docker of 1.8.2. They have stated no support for the Docker registry
v1 moving forward. We have to wait for a patch to land and then
upgrade to the latest Ansible version to take advantage of a new
Docker feature. Doing that is slow and it is not always possible to
upgrade if there are other breaking changes (aka ansible 2.0).
For these reasons we can build our own Docker module.
Partially-Implements: blueprint kolla-docker-module
Change-Id: I2ca57010c45710635cfe80ff23a2a5e2edabee57
By ignoring the appropriate tests that pep8 does we can properly run
*most* of the pep8 tests on all of our modules allowing for a more
consistent coding style.
Closes-Bug: #1528431
Change-Id: I33f27a250d06d4f044267aa3ad189e092789b8df
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
This is a difference between different versions of parted and since we
since we are screen scraping this is a clean solution.
backport: liberty
Change-Id: I4c441bb16cfba7f405d2a41233d0129e61715c62
Closes-Bug: #1504920
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
According to Python 3 Porting guide
http://docs.pythonsprints.com/python3_porting/py-porting.html
Exceptions were changed in a few ways for Python 3. First, strings
are no longer usable as exceptions. Additionally, the raise syntax no
longer accepts comma-separated arguments, instead working with exception
instances. Perhaps the largest difference in Python 3 is that exception
objects are only available via the as keyword, which was introduced in
2.6.
Change-Id: Ide665ecc4b7f14bd58bafab47e05a86a4cf2d141
Closes-Bug: #1490526
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
There is no benefit to hashing in merge_configs.py In fact, the opposite
is true, hashes can collide. This does a direct compare rather than hash.
Change-Id: I9ab7af13e813e2267984092027daf1658faf5bf3
Closes-Bug: #1478494
Due to the licensing issues and the modules not existing in upstream
Ansible yet, I have written a simple module to fill the gaps.
This also uses Keystone v2.0 for all create of users, roles and
endpoints. The implementation of Keystone v3 must be discussed after the
new modules arrive.
Partially-Implements: blueprint ansible-service
Change-Id: I389edd56741360dd26fbbc0a982f365ca27ff446
merge_configs can now check if the destination file has the same content
will be written. This information is used to inform ansible no change has
occured
Closes-Bug: 1471514
Change-Id: I78bce04505349d5aafbb027fd3f7d76ab6eccf6a
Adds initial support for Mariadb with Galera replication in Ansible
using the CONFIG_EXTERNAL methods.
Additionally, this refactors some of the Galera config script to allow
for reuse by CONFIG_EXTERNAL.
Partially Implements: blueprint ansible-service
Change-Id: I566fea0376ecca39fc8a5167f9ff9ff434ea7b7e
Add set_configs function that implements the flow from the proposed
ansible-multi spec. Move start.sh to config-internal.sh to preserve existing
behaviour.
config-externall.sh copies the appropriate configs in from the bind'd
location and sets permissions and ownership appropriately.
Partially Implements: blueprint ansible-multi
Change-Id: I53fca0660451087f273fefc3c63e0d8cf1a2c096
kolla is mandatory to run a version of docker-compose that
includes pid: host support.docker-compose 1.3.0 to include the
necessary features.
docker-compose 1.3.0 project.up() abandoned the parameters
detach and use allow_recreate replace recreate parameters.
closes-Bug: #1458116
Change-Id: I1235da58db5bedf208ebaea2a54568964dc802f8
This ansible module for docker-compose allows for idempotency. I have
submitted a pull request upstream to ansible-modules-extra to include
this new module. When/if the module is accepted upstream if can be
removed from the local module library.
The two playbooks have been updated to use this module. The database
data container does not support idempotency due to the fact that it
exists instead of sleeps. Therefore each time `docker-compose up` is
called, it will start the container and register a change. The
message-broker does not have this issue and will remain unchanged even
repeatedly running these playbooks.
Due to the use of a special branch of docker-compose provided by sdake,
this module requires at least docker-compose==1.2.0rc1
Change-Id: If1644eaa3bff0c2a007fa2d479a95bea941945f6