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