Add a Dockerfile for Heka
Partially implements: blueprint heka Change-Id: Iafe0dba1333f1f84bc5956890c3b7a0c2a45cef3
This commit is contained in:
parent
0cb1d969f4
commit
ee95dc5c27
26
docker/heka/Dockerfile.j2
Normal file
26
docker/heka/Dockerfile.j2
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }}
|
||||||
|
MAINTAINER {{ maintainer }}
|
||||||
|
|
||||||
|
{% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %}
|
||||||
|
|
||||||
|
RUN yum -y install https://github.com/mozilla-services/heka/releases/download/v0.10.0/heka-0_10_0-linux-amd64.rpm \
|
||||||
|
&& useradd heka
|
||||||
|
|
||||||
|
{% elif base_distro in ['ubuntu'] %}
|
||||||
|
|
||||||
|
RUN curl --location https://github.com/mozilla-services/heka/releases/download/v0.10.0/heka_0.10.0_amd64.deb -o heka_0.10.0_amd64.deb \
|
||||||
|
&& dpkg -i heka_0.10.0_amd64.deb \
|
||||||
|
&& rm -f heka_0.10.0_amd64.deb
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
COPY heka_sudoers /etc/sudoers.d/heka_sudoers
|
||||||
|
COPY extend_start.sh /usr/local/bin/kolla_extend_start
|
||||||
|
|
||||||
|
RUN usermod -a -G kolla heka \
|
||||||
|
&& chmod 755 /usr/local/bin/kolla_extend_start \
|
||||||
|
&& chown -R heka: /usr/share/heka
|
||||||
|
|
||||||
|
{{ include_footer }}
|
||||||
|
|
||||||
|
USER heka
|
37
docker/heka/extend_start.sh
Normal file
37
docker/heka/extend_start.sh
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Give processes executed with the "kolla" group the permission to create files
|
||||||
|
# and sub-directories in the /var/log/kolla directory.
|
||||||
|
#
|
||||||
|
# Also set the setgid permission on the /var/log/kolla directory so that new
|
||||||
|
# files and sub-directories in that directory inherit its group id ("kolla").
|
||||||
|
if [[ $(stat -c %U:%G /var/log/kolla) != "heka:kolla" ]]; then
|
||||||
|
sudo chown heka:kolla /var/log/kolla
|
||||||
|
fi
|
||||||
|
if [[ $(stat -c %a /var/log/kolla) != "2775" ]]; then
|
||||||
|
sudo chmod 2775 /var/log/kolla
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Bootstrap and exit if KOLLA_BOOTSTRAP variable is set. This catches all cases
|
||||||
|
# of the KOLLA_BOOTSTRAP variable being set, including empty.
|
||||||
|
if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# /var/cache/hekad is what the Heka daemon will use for persistent storage
|
||||||
|
# through process restarts, so make "heka" the user of that directory.
|
||||||
|
if [[ $(stat -c %U:%G /var/cache/hekad) != "heka:heka" ]]; then
|
||||||
|
sudo chown heka: /var/cache/hekad
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Give hekad the permission to create the "log" Unix socket file in the
|
||||||
|
# /var/lib/kolla/heka directory.
|
||||||
|
if [[ $(stat -c %U:%G /var/lib/kolla/heka) != "heka:kolla" ]]; then
|
||||||
|
sudo chown heka:kolla /var/lib/kolla/heka
|
||||||
|
fi
|
||||||
|
|
||||||
|
# The Heka daemon will create the /var/lib/kolla/heka/log Unix socket file, so
|
||||||
|
# make sure it's not present or the Heka daemon will fail when starting.
|
||||||
|
if [[ -e "/var/lib/kolla/heka/log" ]]; then
|
||||||
|
rm -rf /var/lib/kolla/heka/log
|
||||||
|
fi
|
4
docker/heka/heka_sudoers
Normal file
4
docker/heka/heka_sudoers
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
%kolla ALL=(root) NOPASSWD: /bin/chown heka\:kolla /var/log/kolla, /usr/bin/chown heka\:kolla /var/log/kolla
|
||||||
|
%kolla ALL=(root) NOPASSWD: /bin/chmod 2775 /var/log/kolla, /usr/bin/chmod 2775 /var/log/kolla
|
||||||
|
%kolla ALL=(root) NOPASSWD: /bin/chown heka\: /var/cache/hekad, /usr/bin/chown heka\: /var/cache/hekad
|
||||||
|
%kolla ALL=(root) NOPASSWD: /bin/chown heka\:kolla /var/lib/kolla/heka, /usr/bin/chown heka\:kolla /var/lib/kolla/heka
|
@ -27,7 +27,8 @@ _PROFILE_OPTS = [
|
|||||||
cfg.ListOpt('infra',
|
cfg.ListOpt('infra',
|
||||||
default=['ceph', 'mariadb', 'haproxy',
|
default=['ceph', 'mariadb', 'haproxy',
|
||||||
'keepalived', 'kolla-toolbox', 'memcached',
|
'keepalived', 'kolla-toolbox', 'memcached',
|
||||||
'mongodb', 'openvswitch', 'rabbitmq', 'rsyslog'],
|
'mongodb', 'openvswitch', 'rabbitmq', 'rsyslog',
|
||||||
|
'heka'],
|
||||||
help='Infra images'),
|
help='Infra images'),
|
||||||
cfg.ListOpt('main',
|
cfg.ListOpt('main',
|
||||||
default=['cinder', 'ceilometer', 'glance', 'heat',
|
default=['cinder', 'ceilometer', 'glance', 'heat',
|
||||||
@ -42,12 +43,12 @@ _PROFILE_OPTS = [
|
|||||||
default=['kolla-toolbox', 'glance', 'haproxy',
|
default=['kolla-toolbox', 'glance', 'haproxy',
|
||||||
'heat', 'horizon', 'keepalived', 'keystone',
|
'heat', 'horizon', 'keepalived', 'keystone',
|
||||||
'memcached', 'mariadb', 'neutron', 'nova',
|
'memcached', 'mariadb', 'neutron', 'nova',
|
||||||
'openvswitch', 'rabbitmq', 'rsyslog'],
|
'openvswitch', 'rabbitmq', 'rsyslog', 'heka'],
|
||||||
help='Default images'),
|
help='Default images'),
|
||||||
cfg.ListOpt('gate',
|
cfg.ListOpt('gate',
|
||||||
default=['glance', 'haproxy', 'keepalived', 'keystone',
|
default=['glance', 'haproxy', 'keepalived', 'keystone',
|
||||||
'kolla-toolbox', 'mariadb', 'memcached', 'neutron',
|
'kolla-toolbox', 'mariadb', 'memcached', 'neutron',
|
||||||
'nova', 'openvswitch', 'rabbitmq', 'rsyslog'],
|
'nova', 'openvswitch', 'rabbitmq', 'rsyslog', 'heka'],
|
||||||
help='Gate images'),
|
help='Gate images'),
|
||||||
cfg.ListOpt('mesos',
|
cfg.ListOpt('mesos',
|
||||||
default=['chronos', 'marathon', 'mesos-master', 'mesos-slave',
|
default=['chronos', 'marathon', 'mesos-master', 'mesos-slave',
|
||||||
|
Loading…
Reference in New Issue
Block a user