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
This commit is contained in:
parent
0bd1e3a84d
commit
f034a8b209
|
@ -141,7 +141,9 @@ Kolla provides images to deploy the following infrastructure components:
|
||||||
- `MongoDB <https://www.mongodb.org/>`__ as a database back end for Ceilometer
|
- `MongoDB <https://www.mongodb.org/>`__ as a database back end for Ceilometer
|
||||||
and Gnocchi.
|
and Gnocchi.
|
||||||
- `Open vSwitch <http://openvswitch.org/>`__ and Linuxbridge back ends for Neutron.
|
- `Open vSwitch <http://openvswitch.org/>`__ and Linuxbridge back ends for Neutron.
|
||||||
- `RabbitMQ <https://www.rabbitmq.com/>`__ as a messaging back end for
|
- `Qdrouterd <https://qpid.apache.org/components/dispatch-router/index.html>`__ as a
|
||||||
|
direct messaging back end for communication between services.
|
||||||
|
- `RabbitMQ <https://www.rabbitmq.com/>`__ as a broker messaging back end for
|
||||||
communication between services.
|
communication between services.
|
||||||
- `Telegraf <https://www.docs.influxdata.com/telegraf/>`__ as a plugin-driven server
|
- `Telegraf <https://www.docs.influxdata.com/telegraf/>`__ as a plugin-driven server
|
||||||
agent for collecting & reporting metrics.
|
agent for collecting & reporting metrics.
|
||||||
|
|
|
@ -297,6 +297,7 @@ COPY apt_preferences.{{ base_distro }} /etc/apt/preferences
|
||||||
{# 46095ACC8548582C1A2699A9D27D666CD88E42B4 -- Elasticsearch (Elasticsearch Signing Key) <dev_ops@elasticsearch.org> #}
|
{# 46095ACC8548582C1A2699A9D27D666CD88E42B4 -- Elasticsearch (Elasticsearch Signing Key) <dev_ops@elasticsearch.org> #}
|
||||||
{# 4D1BB29D63D98E422B2113B19334A25F8507EFA5 -- Percona MySQL Development Team (Packaging key) <mysql-dev@percona.com> #}
|
{# 4D1BB29D63D98E422B2113B19334A25F8507EFA5 -- Percona MySQL Development Team (Packaging key) <mysql-dev@percona.com> #}
|
||||||
{# 58118E89F3A912897C070ADBF76221572C52609D -- Docker Release Tool (releasedocker) <docker@docker.com> #}
|
{# 58118E89F3A912897C070ADBF76221572C52609D -- Docker Release Tool (releasedocker) <docker@docker.com> #}
|
||||||
|
{# 4D8EB5FDA37AB55F41A135203BF88A0C6A770882 -- Apache Qpid PPA Signing Key <dev@qpid.apache.org> #}
|
||||||
{# 901F9177AB97ACBE -- Treasure Data, Inc (Treasure Agent Official Signing key) <support@treasure-data.com> #}
|
{# 901F9177AB97ACBE -- Treasure Data, Inc (Treasure Agent Official Signing key) <support@treasure-data.com> #}
|
||||||
{% set base_apt_keys = [
|
{% set base_apt_keys = [
|
||||||
'05CE15085FC09D18E99EFB22684A14CF2582E0C5',
|
'05CE15085FC09D18E99EFB22684A14CF2582E0C5',
|
||||||
|
@ -306,6 +307,7 @@ COPY apt_preferences.{{ base_distro }} /etc/apt/preferences
|
||||||
'46095ACC8548582C1A2699A9D27D666CD88E42B4',
|
'46095ACC8548582C1A2699A9D27D666CD88E42B4',
|
||||||
'4D1BB29D63D98E422B2113B19334A25F8507EFA5',
|
'4D1BB29D63D98E422B2113B19334A25F8507EFA5',
|
||||||
'58118E89F3A912897C070ADBF76221572C52609D',
|
'58118E89F3A912897C070ADBF76221572C52609D',
|
||||||
|
'4D8EB5FDA37AB55F41A135203BF88A0C6A770882',
|
||||||
'901F9177AB97ACBE',
|
'901F9177AB97ACBE',
|
||||||
] %}
|
] %}
|
||||||
{% elif base_distro == 'debian' %}
|
{% elif base_distro == 'debian' %}
|
||||||
|
|
|
@ -35,3 +35,6 @@ deb https://packagecloud.io/grafana/stable/debian/ jessie main
|
||||||
|
|
||||||
# Fluentd repo
|
# Fluentd repo
|
||||||
deb http://packages.treasuredata.com/2/ubuntu/xenial/ xenial contrib
|
deb http://packages.treasuredata.com/2/ubuntu/xenial/ xenial contrib
|
||||||
|
|
||||||
|
# Qdrouterd repo
|
||||||
|
deb http://ppa.launchpad.net/qpid/released/ubuntu/ xenial main
|
||||||
|
|
|
@ -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
|
|
@ -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
|
|
@ -0,0 +1 @@
|
||||||
|
%kolla ALL=(root) NOPASSWD: /usr/bin/chown -R qdrouterd\: /var/lib/qdrouterd, /bin/chown -R qdrouterd\: /var/lib/qdrouterd
|
|
@ -70,6 +70,7 @@ _PROFILE_OPTS = [
|
||||||
'mongodb',
|
'mongodb',
|
||||||
'opendaylight',
|
'opendaylight',
|
||||||
'openvswitch',
|
'openvswitch',
|
||||||
|
'qdrouterd',
|
||||||
'rabbitmq',
|
'rabbitmq',
|
||||||
'redis',
|
'redis',
|
||||||
'tgtd',
|
'tgtd',
|
||||||
|
@ -848,6 +849,10 @@ USERS = {
|
||||||
'dragonflow-user': {
|
'dragonflow-user': {
|
||||||
'uid': 42464,
|
'uid': 42464,
|
||||||
'gid': 42464,
|
'gid': 42464,
|
||||||
|
},
|
||||||
|
'qdrouterd-user': {
|
||||||
|
'uid': 42465,
|
||||||
|
'gid': 42465,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
features:
|
||||||
|
- Introduce qdrouterd (dispatch router) infrastructure component for
|
||||||
|
oslo.messaging backend. The AMQP 1.0 oslo.messaging driver supports
|
||||||
|
integration with this high performance AMQP 1.0 message router for
|
||||||
|
RPC messaging backend.
|
Loading…
Reference in New Issue