The dict.values()[0] will raise a TypeError in PY3
as dict.values() doesn't return a list any more in PY3
but a view of list.
TrivialFix.
Change-Id: I01297bb68e45db4d15800d2d42e08560da7346bd
Watcher is part of the OpenStack big-tent and is formally
known as "OpenStack Infrastructure Optimization service".
Whilst it provides a range of default goals and strategies,
the most relevant case is to enable re-balancing of the
compute hosts by taking CPU usage (data from Ceilometer)
into account and live migrating instances as required.
Currently this only builds the Docker images for type source
but binary builds are gracefully ignored.
The ansible configurations will be part of a later commit.
Change-Id: I9bb81ee625d9fcf6513e44e2ed20384e34da2adc
Partial-bug: #1598929
Partially-implements: bp watcher
Signed-off-by: Dave Walker (Daviey) <email@daviey.com>
It's sorta required to actually build the image
list (and strucutre) to make any of these commands
do anything.
TrivalFix
Change-Id: Ib601bd4d2cc84af6d35a8623b77f9b512124d2ad
Instead of having the program sys.exit when a docker
client object can not be created (which kills all the threads
and messes up the program and its associated state) have a
exception be raised when this (for whatever reason) fails.
Also refactor so that there is a docker task that the docker
client using tasks can all inherit from.
TrivalFix
Change-Id: Ie81aff10cfe6f2fc5c65d53402200e3928fb460c
To correctly customize lists, we need to specify *_append, *_remove or
*_override variable in customization file.
Change-Id: I18d67ab89089e2696399ff1b99c1047a2f554442
Partially-implements: blueprint third-party-plugin-support
Instead of using the same logger for all the things
which makes it incredibly hard to figure out what the images
and there builds are doing; instead have it so that each
image gets its own logger which is then used by tasks that
process that image.
Each images logs now will (optionally) go to a logs directory
that can be more easily read and looked over and leaves
the main logger for informational/task kind of
output only.
Closes-Bug: #1586478
Change-Id: I939e073a2bc5ed8b5a1e969888fc743d80f468c9
Instead of trying to use a signal handler to stop
when ctrl-c is triggered use technique that cooperates
better with the threads that are running and lets
them die a happy death vs being forced to die in
unpleasant ways.
Closes-Bug: #1586476
Change-Id: I7fdb6a77a144bdd02276cca07b616bbb0c2f1957
The things in self.images are images, not items so
reflect these to use the shared 'image' name vs
having a one-off that uses 'item'.
TrivalFix
Change-Id: I781514d3e116de32b4fe61a7f55455282680fec1
This patchset enables potentially full customization of Dockerfiles
provided by Kolla without having to change main Kolla code. Mechanism is
based on jinja2 block mechanism. In our dockerfiles we'll add blocks
(mostly empty) with highly standarized naming, then in override file
users will be able to fill/override contents of these blocks. Example is
shown in this patch.
To enable cutomized override file call build.py
--template-override=path-to-file Only caveat is that header {% extends
.. %} has to stay
Change-Id: I5957024e5652f9677c439fb2fcd524e467b951af
Partially-implements: blueprint third-party-plugin-support
First step to break it down is to make it
importable lib rather than self-contained script.
Change-Id: Ibbc924c2849cc79006046f62f31a1909ce959066
Partially-implements: bp build-refactor
The part "The valid types are: binary, source, rdo, rhos" is already a
part of the generated kolla-build configuration file ("# Allowed values:
binary, source, rdo, rhos").
TrivialFix
Change-Id: I87b913c1b650fe54402ea643fc9c774448850f6b
Instead of using raw dicts and passing data around via
dictionaries (which makes it really hard to figure out
what is in those dictionaries at any point) prefer to
use objects. That way people can actually understand what
the object is supposed to be, vs guessing and/or having to
decipher its usage.
The same goes for raw string constants, prefer using
named constants instead.
Closes-Bug: #1586475
Change-Id: Ide179dc6593c50696d47a2d3d4cd000f343855d4
Instead of having smart workers that need to know
about the full logic of how they operate and what
they will do which makes it hard to reuse parts of
those workers switch the model so that workers are
dumb and they just run tasks which themselves can
request additional tasks to run when succesful.
This makes it more consistent when tasks are to
be retried and also makes it easier to know which
task is running and when.
Less specialized workers == good.
Closes-Bug: #1586474
Change-Id: Ie7b7303b8bf2a80b3e26b6d4ffc27787f8c794d6
Pin the base distro release version in the master branch(Newton).
Only one distro version is supported. The supported versions are:
* CentOS: 7
* RedHat: 7
* OracleLinux: 7
* Debian: 8
* Ubuntu: 14.04
NOTE: Kolla will move to Ubuntu 16.04 in the Newton cycle
DocImpact
TrivialFix
Change-Id: I32c0edbee4de14c8a0cc7c961d566e84d70f19a4
Previously, kolla did not support neutron lbaas functionality.
Only Lbaasv2 is supported in Mitaka. Additional information can
be found here:
http://docs.openstack.org/mitaka/networking-guide/adv-config-lbaas.html
Magnum uses Neutron Lbaas to provide high availability to COE API
and Etcd endpoints within a bay. Therefore, Neutron Lbaas is required
for Kolla to support Magnum.
Co-Authored-By: Serguei Bezverkhi <sbezverk@cisco.com>
Partial-Bug: #1551992
Change-Id: I05360b7c447c601fcb3c2b6b2a913ef5cc0f3a1b
Add a main wrapper function to return 1 if any images failed to build;
otherwise, return 0. Rename the old main() to run_build(), which still
returns image statuses, to avoid interfering with unit tests.
Change-Id: I5817cc9cebb4f42dc13e0535223e5dc8931a3aab
Co-Authored-By: Mark Goddard <mgoddard@cray.com>
Closes-Bug: #1578404
Add a new option(base-image) to support custom base image
In default, the base-image is equal to base. When using custom
image, please use command line like:
./tool/build.py --base-image my-image --base centos --base-tag 0.1
DocImpact
Closes-Bug: #1573544
Change-Id: If4b9c57a2b68f6f06d3e981f30b2173064e02193
Pressing Ctrl-C will stop a build, but does not clean up the /tmp
directory of dockerfiles. Implement a signal handler such that clean up
does occur.
Python apparently ignores signals while calling join on a queue, so
that's why the small modification was needed there.
Change-Id: I43faf67726c154b6640d3596aea61ffc59871999
Closes-Bug: #1579242
Using the new --list-dependencies flag, one can query dependencies for a
given filter. For example:
./build.py --list-dependencies heat swift
{'base': [{'openstack-base': [{'heat-base': ['heat-engine',
'heat-api-cfn',
'heat-api']},
{'swift-base': ['swift-object',
'swift-proxy-server',
'swift-container',
'swift-rsyncd',
'swift-account']}]}]}
Also added --list-images to list all available images.
Change-Id: I1797e32e32705182a763f53329eeb5c4a361abec
Implements: blueprint images-dependency-tree-cli
This commit adds a few #nosec tags for non-issues. I've examined
the code and determined that these don't represent security issues
so we should add a #nosec tag that tells Bandit not to find these
issues in the future.
Closes-Bug: #1577498
Change-Id: Ic37216c08442c700c64118c78cfb46e6cedd237c
After 16.04 got released we can't build our images as we pull latest
(16.04 now) and our sources lists are built for 14.04. We pin ubuntu to
14.04 here.
Change-Id: Ib29a1c607c3a725cdaf2098edd1c4b80f06a5e38
Closes-Bug: #1575884