From f034a8b2098e73f47ad6fa05d95d4a30ae2e4d2e Mon Sep 17 00:00:00 2001 From: Andrew Smith Date: Tue, 16 May 2017 14:32:53 -0400 Subject: Add qdrouterd container The qdrouterd is a high performance, lightweight AMQP 1.0 message router that support oslo.messaging RPC communications. Change-Id: I42783fb50c9f6750071d797b3f07a6283454c7a7 Implements: blueprint dispatch-router-messaging-component --- docker/base/Dockerfile.j2 | 2 ++ docker/base/sources.list.ubuntu | 3 +++ docker/qdrouterd/Dockerfile.j2 | 41 ++++++++++++++++++++++++++++++++++++++ docker/qdrouterd/extend_start.sh | 10 ++++++++++ docker/qdrouterd/qdrouterd_sudoers | 1 + 5 files changed, 57 insertions(+) create mode 100644 docker/qdrouterd/Dockerfile.j2 create mode 100644 docker/qdrouterd/extend_start.sh create mode 100644 docker/qdrouterd/qdrouterd_sudoers (limited to 'docker') diff --git a/docker/base/Dockerfile.j2 b/docker/base/Dockerfile.j2 index 30a3150f0..84f1b579e 100644 --- a/docker/base/Dockerfile.j2 +++ b/docker/base/Dockerfile.j2 @@ -297,6 +297,7 @@ COPY apt_preferences.{{ base_distro }} /etc/apt/preferences {# 46095ACC8548582C1A2699A9D27D666CD88E42B4 -- Elasticsearch (Elasticsearch Signing Key) #} {# 4D1BB29D63D98E422B2113B19334A25F8507EFA5 -- Percona MySQL Development Team (Packaging key) #} {# 58118E89F3A912897C070ADBF76221572C52609D -- Docker Release Tool (releasedocker) #} + {# 4D8EB5FDA37AB55F41A135203BF88A0C6A770882 -- Apache Qpid PPA Signing Key #} {# 901F9177AB97ACBE -- Treasure Data, Inc (Treasure Agent Official Signing key) #} {% set base_apt_keys = [ '05CE15085FC09D18E99EFB22684A14CF2582E0C5', @@ -306,6 +307,7 @@ COPY apt_preferences.{{ base_distro }} /etc/apt/preferences '46095ACC8548582C1A2699A9D27D666CD88E42B4', '4D1BB29D63D98E422B2113B19334A25F8507EFA5', '58118E89F3A912897C070ADBF76221572C52609D', + '4D8EB5FDA37AB55F41A135203BF88A0C6A770882', '901F9177AB97ACBE', ] %} {% elif base_distro == 'debian' %} diff --git a/docker/base/sources.list.ubuntu b/docker/base/sources.list.ubuntu index 9ec6da2e5..d81692fdb 100644 --- a/docker/base/sources.list.ubuntu +++ b/docker/base/sources.list.ubuntu @@ -35,3 +35,6 @@ deb https://packagecloud.io/grafana/stable/debian/ jessie main # Fluentd repo deb http://packages.treasuredata.com/2/ubuntu/xenial/ xenial contrib + +# Qdrouterd repo +deb http://ppa.launchpad.net/qpid/released/ubuntu/ xenial main diff --git a/docker/qdrouterd/Dockerfile.j2 b/docker/qdrouterd/Dockerfile.j2 new file mode 100644 index 000000000..e8ce9339a --- /dev/null +++ b/docker/qdrouterd/Dockerfile.j2 @@ -0,0 +1,41 @@ +FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" + +{% block qdrouterd_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{{ macros.configure_user(name='qdrouterd') }} + +{% block qdrouterd_install %} +{% if base_distro in ['centos', 'oraclelinux', 'rhel'] %} + {% set qdrouterd_packages = [ + 'cyrus-sasl-lib', + 'cyrus-sasl-plain', + 'qpid-dispatch-router' + ] %} + +{{ macros.install_packages(qdrouterd_packages | customizable("packages")) }} + +{% elif base_distro in ['debian', 'ubuntu'] %} + {% set qdrouterd_packages = [ + 'sasl2-bin', + 'libpython2.7', + 'qdrouterd', + ] %} + +{{ macros.install_packages(qdrouterd_packages | customizable("packages")) }} + +{% endif %} +{% endblock %} + +COPY extend_start.sh /usr/local/bin/kolla_extend_start +COPY qdrouterd_sudoers /etc/sudoers.d/kolla_qdrouterd_sudoers +RUN chmod 755 /usr/local/bin/kolla_extend_start \ + && chmod 750 /etc/sudoers.d \ + && chmod 440 /etc/sudoers.d/kolla_qdrouterd_sudoers + +{% block qdrouterd_footer %}{% endblock %} +{% block footer %}{% endblock %} + +USER qdrouterd diff --git a/docker/qdrouterd/extend_start.sh b/docker/qdrouterd/extend_start.sh new file mode 100644 index 000000000..829b0758b --- /dev/null +++ b/docker/qdrouterd/extend_start.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +# Create log directory, with appropriate permissions +QDROUTERD_LOG_DIR="/var/log/kolla/qdrouterd" +if [[ ! -d "${QDROUTERD_LOG_DIR}" ]]; then + mkdir -p ${QDROUTERD_LOG_DIR} +fi +if [[ $(stat -c %a ${QDROUTERD_LOG_DIR}) != "755" ]]; then + chmod 755 ${QDROUTERD_LOG_DIR} +fi diff --git a/docker/qdrouterd/qdrouterd_sudoers b/docker/qdrouterd/qdrouterd_sudoers new file mode 100644 index 000000000..dbcd341a4 --- /dev/null +++ b/docker/qdrouterd/qdrouterd_sudoers @@ -0,0 +1 @@ +%kolla ALL=(root) NOPASSWD: /usr/bin/chown -R qdrouterd\: /var/lib/qdrouterd, /bin/chown -R qdrouterd\: /var/lib/qdrouterd -- cgit v1.2.3