From c585ca5055c7a92fdbe5826030d3529e5c397540 Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Thu, 23 May 2019 10:25:28 +0100 Subject: [PATCH] Use td-agent-gem to install fluentd monasca plugin on ubuntu If monasca is enabled on ubuntu, we see the following error in fluentd: [error]: config error file="/etc/td-agent/td-agent.conf" error_class=Fluent::ConfigError error="Unknown output plugin 'monasca'. Run 'gem search -rd fluent-plugin' to find plugins" This is because we use 'fluent-gem install' to install the gem, which works on CentOS but on Ubuntu it is necessary to use 'td-agent-gem install'. Change-Id: I515f9764ca93a41a871e520696193a9298856d08 Closes-Bug: #1830147 --- docker/fluentd/Dockerfile.j2 | 2 +- docker/macros.j2 | 17 +++++++++-------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/docker/fluentd/Dockerfile.j2 b/docker/fluentd/Dockerfile.j2 index 1b927df484..48d63b89af 100644 --- a/docker/fluentd/Dockerfile.j2 +++ b/docker/fluentd/Dockerfile.j2 @@ -100,7 +100,7 @@ RUN tar -xvf /tmp/fluentd-monasca.tar.gz -C /tmp \ && cd /tmp/fluentd-monasca-* \ && gem build fluentd-monasca-output.gemspec \ && gem install fluentd-monasca-output-*.gem \ - && fluent-gem install fluentd-monasca-output-*.gem \ + && {{ macros.install_fluent_plugins(['fluentd-monasca-output-*.gem'], chain=True) }} \ && rm -rf /tmp/fluentd* {% endblock %} diff --git a/docker/macros.j2 b/docker/macros.j2 index 2eb095ae20..25d3a37529 100644 --- a/docker/macros.j2 +++ b/docker/macros.j2 @@ -105,16 +105,17 @@ RUN apt-get update \ && chmod 755 /usr/bin/kubectl {% endmacro %} -{% macro install_fluent_plugins(plugins) -%} +{% macro install_fluent_plugins(plugins, chain=False) -%} {% if plugins is defined and plugins|length > 0 -%} - {% if base_distro in ['centos', 'oraclelinux', 'rhel'] -%} - RUN ulimit -n 65536 && gem install --minimal-deps {{ plugins | join(' ') }} + {% if not chain -%} RUN {% endif -%} + {%- if base_distro in ['centos', 'oraclelinux', 'rhel'] -%} + ulimit -n 65536 && gem install --minimal-deps {{ plugins | join(' ') }} {%- elif base_distro in ['debian', 'ubuntu'] -%} - {% if base_arch == 'x86_64' %} - RUN ulimit -n 65536 && td-agent-gem install {{ plugins | join(' ') }} - {% else %} - RUN ulimit -n 65536 && gem install --minimal-deps {{ plugins | join(' ') }} - {% endif %} + {%- if base_arch == 'x86_64' -%} + ulimit -n 65536 && td-agent-gem install {{ plugins | join(' ') }} + {%- else -%} + ulimit -n 65536 && gem install --minimal-deps {{ plugins | join(' ') }} + {%- endif %} {%- endif %} {%- endif %} {%- endmacro %}