The parameter "required=True" is mistyped as "requried=True"
in ansible/library/kolla_docker.py and tests/test_kolla_docker.py
Closes bug: 1640423
Change-Id: I64c333275b9eb3eff5b1c0fa5d550f478e68020d
Current implementation has docker_restart_policy "always" and
docker_restart_policy_retry:"10" which should be mutually exclusive.
"unless-stopped" will restart the containers on any exit state
but not start on daemon startup if container was put to stopped state before.
Closes-Bug: #1621187
Change-Id: I4d881cd123a55625121b7a9047385e9b54e2e129
After docker 1.12, the RepoTags will be None rather than [] in the
image list API. This PS will handle the both case.
Change-Id: Ie2da44b44229c2f190550755b50876f607f9cc0c
Closes-Bug: #1608358
Replace dict.iteritems() with dict.items(). The Python 3 dict
type has no iteritems() method, the old iteritems() method was
renamed to items().
TrivialFix.
Change-Id: I2137e72554fd16d2c70e50306e4f57d27e35bcd3
The traceback is logged also and will be helpful when the
library failed. We can get which line is failed from the log.
TrivialFix
Change-Id: Ia417232007e2f34c83d2e7cad6ed08dee49ce836
Ansible 2.1.0 has lots of change and the plugin is not compatible
between 2.0.0 and 2.1.0. This change fix the gap.
* fix the signature change for _make_tmp_path in ansible 2.1.0
* fix the common_options in the kolla_docker.py
Change-Id: I05f5f05581c8bd625cd868fa0db549d0c60a7043
Closes-Bug: #1586018
This patch adds ability to specify required capabilities and security
mode for a specific docker container.
Change-Id: Ib8c15a8e354178bedd31ebb31a64618431f0e135
Closes-Bug: #1572648
When image id is the same, the container won't re-create with the
latest image tag.
Change-Id: I402ad275c388006248cb559851b01b0b963cf170
Closes-Bug: #1569723
As suggested it was created the variable KOLLA_SERVICE_NAME to identify
the container service name through PS1 shell variable.
This method it was previously discussed in IRC.
https://goo.gl/k7AdEg
The other option it was usage hostname param in kolla_docker, but
currently docker does not support it due this issue:
https://github.com/docker/compose/issues/2460
The final result is like this:
$ docker exec -it heka /bin/bash
(heka)[heka@kolla-control /]$
$ docker exec -it mariadb /bin/bash
(mariadb)[mysql@kolla-control /]$
More details can be accessed through this link
http://paste.openstack.org/show/493689/
Closes-Bug: #1557454
Change-Id: I6aab8d640a8ebb17baa9d6d4f1edd6e331674713
This change will enable to lvm commands running in a container
communicate with udev process running on a host.
Partially-Implements: blueprint iscsi-lvm2-docker
Change-Id: If780710bb81adaee44ce0d291e22ce91ec6436aa
A change in docker-py made this fix needed, to allow to create
env variables with empty values.
Change-Id: Ife6dfc242b600fe386c02dd23d6a142b25c86567
Closes-Bug: #1554126
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