kolla-ansible/docker/neutron/neutron-base/Dockerfile.j2
Paul Bourke b41247c656 Add header blocks to all Dockerfiles
Change needed to add header blocks to all Dockerfiles, similar to the
base.

Use case is to easily run something before packages are installed, e.g.
to COPY a local rpm in that can be added to the package list.

Change-Id: I1bbfdf0b762da0a392aa8bf47781315b45377bee
Closes-Bug: 1618969
2016-09-13 16:53:31 +01:00

99 lines
3.2 KiB
Django/Jinja

FROM {{ namespace }}/{{ image_prefix }}openstack-base:{{ tag }}
MAINTAINER {{ maintainer }}
{% block neutron_base_header %}{% endblock %}
{% import "macros.j2" as macros with context %}
{% if install_type == 'binary' %}
{% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %}
{% set neutron_base_packages = [
'openstack-neutron',
'openstack-neutron-lbaas',
'openstack-neutron-ml2',
'openvswitch',
'python-openvswitch'
] %}
{% elif base_distro in ['ubuntu'] %}
# TODO(Jeffrey4l): UCA latest Newton release lack of neutron-lbaas-common
# package, just remove neutron-lbaas-agent in neutron_base_packages. Once they
# fix it, this should be reverted.
{% set neutron_base_packages = [
'iproute2',
'neutron-plugin-ml2',
'neutron-server',
'openvswitch-switch',
'python-openvswitch'
] %}
{% endif %}
{{ macros.install_packages(neutron_base_packages | customizable("packages")) }}
{% if base_distro in ['ubuntu'] %}
RUN mkdir -p /usr/share/neutron \
&& ln -s /etc/neutron/api-paste.ini /usr/share/neutron/api-paste.ini
{% endif %}
{% elif install_type == 'source' %}
{% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %}
{% set neutron_base_packages = [
'conntrack-tools',
'dnsmasq',
'dnsmasq-utils',
'ipset',
'openvswitch',
'python-openvswitch',
'uuid'
] %}
{% elif base_distro in ['ubuntu', 'debian'] %}
{% set neutron_base_packages = [
'conntrack',
'dnsmasq',
'dnsmasq-utils',
'iproute2',
'ipset',
'iptables',
'iputils-arping',
'openvswitch-switch',
'python-openvswitch',
'uuid-runtime'
] %}
{% endif %}
{{ macros.install_packages(neutron_base_packages | customizable("packages")) }}
ADD neutron-base-archive /neutron-base-source
RUN ln -s neutron-base-source/* neutron \
&& useradd --user-group neutron \
&& /var/lib/kolla/venv/bin/pip --no-cache-dir install --upgrade -c requirements/upper-constraints.txt /neutron \
&& mkdir -p /etc/neutron /usr/share/neutron /var/lib/neutron /home/neutron \
&& cp -r /neutron/etc/* /etc/neutron/ \
&& cp -r /neutron/etc/neutron/* /etc/neutron/ \
&& cp /neutron/etc/api-paste.ini /usr/share/neutron \
&& mv /etc/neutron/neutron/ /etc/neutron/plugins/ \
&& chown -R neutron: /etc/neutron /usr/share/neutron /var/lib/neutron /home/neutron \
&& sed -i 's|^exec_dirs.*|exec_dirs=/var/lib/kolla/venv/bin,/sbin,/usr/sbin,/bin,/usr/bin,/usr/local/bin,/usr/local/sbin|g' /etc/neutron/rootwrap.conf
{% endif %}
COPY neutron_sudoers /etc/sudoers.d/kolla_neutron_sudoers
COPY extend_start.sh /usr/local/bin/kolla_extend_start
RUN usermod -a -G kolla neutron \
&& chmod 750 /etc/sudoers.d \
&& chmod 440 /etc/sudoers.d/kolla_neutron_sudoers \
&& touch /usr/local/bin/kolla_neutron_extend_start \
&& chmod 755 /usr/local/bin/kolla_extend_start /usr/local/bin/kolla_neutron_extend_start
{% block neutron_base_footer %}{% endblock %}