Build docker images for OpenStack Watcher
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>
This commit is contained in:
parent
02eec8a20c
commit
77296ebdee
16
docker/watcher/watcher-api/Dockerfile.j2
Normal file
16
docker/watcher/watcher-api/Dockerfile.j2
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
FROM {{ namespace }}/{{ image_prefix }}watcher-base:{{ tag }}
|
||||||
|
MAINTAINER {{ maintainer }}
|
||||||
|
|
||||||
|
{% if install_type == 'binary' %}
|
||||||
|
|
||||||
|
RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \
|
||||||
|
&& /bin/false
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
COPY extend_start.sh /usr/local/bin/kolla_watcher_extend_start
|
||||||
|
RUN chmod 755 /usr/local/bin/kolla_watcher_extend_start
|
||||||
|
|
||||||
|
{{ include_footer }}
|
||||||
|
|
||||||
|
USER watcher
|
8
docker/watcher/watcher-api/extend_start.sh
Normal file
8
docker/watcher/watcher-api/extend_start.sh
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases
|
||||||
|
# of the KOLLA_BOOTSTRAP variable being set, including empty.
|
||||||
|
if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
|
||||||
|
watcher-db-manage --config-file /etc/watcher/watcher.conf create_schema
|
||||||
|
exit 0
|
||||||
|
fi
|
13
docker/watcher/watcher-applier/Dockerfile.j2
Normal file
13
docker/watcher/watcher-applier/Dockerfile.j2
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
FROM {{ namespace }}/{{ image_prefix }}watcher-base:{{ tag }}
|
||||||
|
MAINTAINER {{ maintainer }}
|
||||||
|
|
||||||
|
{% if install_type == 'binary' %}
|
||||||
|
|
||||||
|
RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \
|
||||||
|
&& /bin/false
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{{ include_footer }}
|
||||||
|
|
||||||
|
USER watcher
|
27
docker/watcher/watcher-base/Dockerfile.j2
Normal file
27
docker/watcher/watcher-base/Dockerfile.j2
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
FROM {{ namespace }}/{{ image_prefix }}openstack-base:{{ tag }}
|
||||||
|
MAINTAINER {{ maintainer }}
|
||||||
|
|
||||||
|
{% if install_type == 'binary' %}
|
||||||
|
|
||||||
|
RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \
|
||||||
|
&& /bin/false
|
||||||
|
|
||||||
|
{% elif install_type == 'source' %}
|
||||||
|
|
||||||
|
ADD watcher-base-archive /watcher-base-source
|
||||||
|
RUN ln -s watcher-base-source/* watcher \
|
||||||
|
&& useradd --user-group watcher \
|
||||||
|
&& /var/lib/kolla/venv/bin/pip --no-cache-dir install --upgrade -c requirements/upper-constraints.txt /watcher \
|
||||||
|
&& mkdir -p /etc/watcher /home/watcher \
|
||||||
|
&& cp -r /watcher/etc/watcher/* /etc/watcher/ \
|
||||||
|
&& chown -R watcher: /etc/watcher /home/watcher
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
RUN usermod -a -G kolla watcher
|
||||||
|
|
||||||
|
COPY extend_start.sh /usr/local/bin/kolla_extend_start
|
||||||
|
|
||||||
|
RUN usermod -a -G kolla watcher \
|
||||||
|
&& touch /usr/local/bin/kolla_watcher_extend_start \
|
||||||
|
&& chmod 755 /usr/local/bin/kolla_extend_start /usr/local/bin/kolla_watcher_extend_start
|
10
docker/watcher/watcher-base/extend_start.sh
Normal file
10
docker/watcher/watcher-base/extend_start.sh
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [[ ! -d "/var/log/kolla/watcher" ]]; then
|
||||||
|
mkdir -p /var/log/kolla/watcher
|
||||||
|
fi
|
||||||
|
if [[ $(stat -c %a /var/log/kolla/watcher) != "755" ]]; then
|
||||||
|
chmod 755 /var/log/kolla/watcher
|
||||||
|
fi
|
||||||
|
|
||||||
|
source /usr/local/bin/kolla_watcher_extend_start
|
13
docker/watcher/watcher-engine/Dockerfile.j2
Normal file
13
docker/watcher/watcher-engine/Dockerfile.j2
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
FROM {{ namespace }}/{{ image_prefix }}watcher-base:{{ tag }}
|
||||||
|
MAINTAINER {{ maintainer }}
|
||||||
|
|
||||||
|
{% if install_type == 'binary' %}
|
||||||
|
|
||||||
|
RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \
|
||||||
|
&& /bin/false
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{{ include_footer }}
|
||||||
|
|
||||||
|
USER watcher
|
@ -270,6 +270,10 @@ SOURCES = {
|
|||||||
'type': 'url',
|
'type': 'url',
|
||||||
'location': ('http://tarballs.openstack.org/trove/'
|
'location': ('http://tarballs.openstack.org/trove/'
|
||||||
'trove-master.tar.gz')},
|
'trove-master.tar.gz')},
|
||||||
|
'watcher-base': {
|
||||||
|
'type': 'url',
|
||||||
|
'location': ('http://tarballs.openstack.org/watcher/'
|
||||||
|
'watcher-master.tar.gz')},
|
||||||
'zaqar': {
|
'zaqar': {
|
||||||
'type': 'url',
|
'type': 'url',
|
||||||
'location': ('http://tarballs.openstack.org/zaqar/'
|
'location': ('http://tarballs.openstack.org/zaqar/'
|
||||||
|
6
releasenotes/notes/add-watcher-a97995ace827cf71.yaml
Normal file
6
releasenotes/notes/add-watcher-a97995ace827cf71.yaml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- Introduce OpenStack Infrastructure Optimization
|
||||||
|
service, also known as Watcher. This project makes
|
||||||
|
use of Ceilometer data to rebalance the cloud to
|
||||||
|
meet declared goals and strategies.
|
@ -68,7 +68,8 @@ class BuildTest(object):
|
|||||||
|
|
||||||
class BuildTestCentosBinary(BuildTest, base.BaseTestCase):
|
class BuildTestCentosBinary(BuildTest, base.BaseTestCase):
|
||||||
excluded_images = ["kuryr",
|
excluded_images = ["kuryr",
|
||||||
"senlin-base"]
|
"senlin-base",
|
||||||
|
"watcher-base"]
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(BuildTestCentosBinary, self).setUp()
|
super(BuildTestCentosBinary, self).setUp()
|
||||||
@ -106,7 +107,8 @@ class BuildTestUbuntuSource(BuildTest, base.BaseTestCase):
|
|||||||
|
|
||||||
class BuildTestOracleLinuxBinary(BuildTest, base.BaseTestCase):
|
class BuildTestOracleLinuxBinary(BuildTest, base.BaseTestCase):
|
||||||
excluded_images = ["kuryr",
|
excluded_images = ["kuryr",
|
||||||
"senlin-base"]
|
"senlin-base",
|
||||||
|
"watcher-base"]
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(BuildTestOracleLinuxBinary, self).setUp()
|
super(BuildTestOracleLinuxBinary, self).setUp()
|
||||||
|
Loading…
Reference in New Issue
Block a user