From b8f7693d41bcdef7f6f0af96f9fb31b74e7c7204 Mon Sep 17 00:00:00 2001 From: Bertrand Lallau Date: Tue, 29 Aug 2017 22:44:14 +0200 Subject: [PATCH] Implement Almanach Docker images Almanach record the utilization of OpenStack resources for each tenant. Implements: blueprint containerized-almanach Change-Id: Iba2e16772864a6f0169ec43d7a87d741882cd51c --- README.rst | 1 + docker/almanach/almanach-api/Dockerfile.j2 | 16 +++++++++ docker/almanach/almanach-base/Dockerfile.j2 | 34 +++++++++++++++++++ docker/almanach/almanach-base/extend_start.sh | 8 +++++ .../almanach/almanach-collector/Dockerfile.j2 | 16 +++++++++ kolla/common/config.py | 9 +++++ kolla/image/build.py | 4 +++ .../almanach-images-f0a9a424ac3fe7cd.yaml | 3 ++ 8 files changed, 91 insertions(+) create mode 100644 docker/almanach/almanach-api/Dockerfile.j2 create mode 100644 docker/almanach/almanach-base/Dockerfile.j2 create mode 100644 docker/almanach/almanach-base/extend_start.sh create mode 100644 docker/almanach/almanach-collector/Dockerfile.j2 create mode 100644 releasenotes/notes/almanach-images-f0a9a424ac3fe7cd.yaml diff --git a/README.rst b/README.rst index 8c67cc7e8e..b70d6d0da8 100644 --- a/README.rst +++ b/README.rst @@ -75,6 +75,7 @@ OpenStack services Kolla provides images to deploy the following OpenStack projects: +- `Almanach `__ - `Aodh `__ - `Barbican `__ - `Bifrost `__ diff --git a/docker/almanach/almanach-api/Dockerfile.j2 b/docker/almanach/almanach-api/Dockerfile.j2 new file mode 100644 index 0000000000..d1075ee6df --- /dev/null +++ b/docker/almanach/almanach-api/Dockerfile.j2 @@ -0,0 +1,16 @@ +FROM {{ namespace }}/{{ image_prefix }}almanach-base:{{ tag }} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" + +{% block almanach_api_header %}{% endblock %} + +{% if install_type == 'binary' %} + +RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ + && /bin/false + +{% endif %} + +{% block almanach_api_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER almanach diff --git a/docker/almanach/almanach-base/Dockerfile.j2 b/docker/almanach/almanach-base/Dockerfile.j2 new file mode 100644 index 0000000000..3a55f775b3 --- /dev/null +++ b/docker/almanach/almanach-base/Dockerfile.j2 @@ -0,0 +1,34 @@ +FROM {{ namespace }}/{{ image_prefix }}openstack-base:{{ tag }} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" + +{% block almanach_base_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{{ macros.configure_user(name='almanach') }} + +{% if install_type == 'binary' %} + +RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ + && /bin/false + +{% elif install_type == 'source' %} + +ADD almanach-base-archive /almanach-base-source + +{% set almanach_base_pip_packages = [ + '/almanach' +] %} + +RUN ln -s almanach-base-source/* almanach \ + && {{ macros.install_pip(almanach_base_pip_packages | customizable("pip_packages")) }} \ + && mkdir -p /etc/almanach \ + && chown -R almanach: /etc/almanach + +{% endif %} + +COPY extend_start.sh /usr/local/bin/kolla_extend_start + +RUN chmod 755 /usr/local/bin/kolla_extend_start + +{% block almanach_base_footer %}{% endblock %} diff --git a/docker/almanach/almanach-base/extend_start.sh b/docker/almanach/almanach-base/extend_start.sh new file mode 100644 index 0000000000..a4ffb9fe9c --- /dev/null +++ b/docker/almanach/almanach-base/extend_start.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +if [[ ! -d "/var/log/kolla/almanach" ]]; then + mkdir -p /var/log/kolla/almanach +fi +if [[ $(stat -c %a /var/log/kolla/almanach) != "755" ]]; then + chmod 755 /var/log/kolla/almanach +fi diff --git a/docker/almanach/almanach-collector/Dockerfile.j2 b/docker/almanach/almanach-collector/Dockerfile.j2 new file mode 100644 index 0000000000..ae66a7c14e --- /dev/null +++ b/docker/almanach/almanach-collector/Dockerfile.j2 @@ -0,0 +1,16 @@ +FROM {{ namespace }}/{{ image_prefix }}almanach-base:{{ tag }} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" + +{% block almanach_collector_header %}{% endblock %} + +{% if install_type == 'binary' %} + +RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ + && /bin/false + +{% endif %} + +{% block almanach_collector_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER almanach diff --git a/kolla/common/config.py b/kolla/common/config.py index 56910be961..c0e3b8867b 100755 --- a/kolla/common/config.py +++ b/kolla/common/config.py @@ -95,6 +95,7 @@ _PROFILE_OPTS = [ help='Main images'), cfg.ListOpt('aux', default=[ + 'almanach', 'aodh', 'blazar', 'cloudkitty', @@ -278,6 +279,10 @@ SOURCES = { 'type': 'url', 'location': ('$tarballs_base/requirements/' 'requirements-master.tar.gz')}, + 'almanach-base': { + 'type': 'url', + 'location': ('$tarballs_base/almanach/' + 'almanach-master.tar.gz')}, 'aodh-base': { 'type': 'url', 'location': ('$tarballs_base/aodh/' @@ -946,6 +951,10 @@ USERS = { 'fluentd-user': { 'uid': 42474, 'gid': 42474, + }, + 'almanach-user': { + 'uid': 42475, + 'gid': 42475, } } diff --git a/kolla/image/build.py b/kolla/image/build.py index 94b72eff1b..6af8f24aa9 100755 --- a/kolla/image/build.py +++ b/kolla/image/build.py @@ -96,6 +96,7 @@ STATUS_ERRORS = (STATUS_CONNECTION_ERROR, STATUS_PUSH_ERROR, SKIPPED_IMAGES = { 'centos+binary': [ + "almanach-base", "bifrost-base", "blazar-base", "dragonflow-base", @@ -117,6 +118,7 @@ SKIPPED_IMAGES = { "ovsdpdk", ], 'ubuntu+binary': [ + "almanach-base", "bifrost-base", "blazar-base", "cloudkitty-base", @@ -145,6 +147,7 @@ SKIPPED_IMAGES = { "tripleo-ui" ], 'debian+binary': [ + "almanach-base", "bifrost-base", "blazar-base", "cloudkitty-base", @@ -175,6 +178,7 @@ SKIPPED_IMAGES = { "tripleo-ui" ], 'oraclelinux+binary': [ + "almanach-base", "bifrost-base", "blazar-base", "dragonflow-base", diff --git a/releasenotes/notes/almanach-images-f0a9a424ac3fe7cd.yaml b/releasenotes/notes/almanach-images-f0a9a424ac3fe7cd.yaml new file mode 100644 index 0000000000..b7587df36f --- /dev/null +++ b/releasenotes/notes/almanach-images-f0a9a424ac3fe7cd.yaml @@ -0,0 +1,3 @@ +--- +features: + - Almanach Docker images are available in Kolla