aboutsummaryrefslogtreecommitdiff
path: root/kolla/docker/neutron/neutron-base/Dockerfile.j2
diff options
context:
space:
mode:
Diffstat (limited to 'kolla/docker/neutron/neutron-base/Dockerfile.j2')
-rw-r--r--kolla/docker/neutron/neutron-base/Dockerfile.j2104
1 files changed, 104 insertions, 0 deletions
diff --git a/kolla/docker/neutron/neutron-base/Dockerfile.j2 b/kolla/docker/neutron/neutron-base/Dockerfile.j2
new file mode 100644
index 000000000..e91c1e6e6
--- /dev/null
+++ b/kolla/docker/neutron/neutron-base/Dockerfile.j2
@@ -0,0 +1,104 @@
+FROM {{ namespace }}/{{ image_prefix }}openstack-base:{{ tag }}
+{% block labels %}
+LABEL maintainer="{{ maintainer }}" name="{{ image_name }}"
+{% endblock %}
+
+{% block neutron_base_header %}{% endblock %}
+
+{% import "macros.j2" as macros with context %}
+
+{{ macros.enable_extra_repos(['docker-ce']) }}
+{{ macros.configure_user(name='neutron') }}
+
+{% if base_package_type == 'rpm' %}
+
+{{ macros.enable_extra_repos(['openvswitch']) }}
+
+ {% set neutron_base_packages = [
+ 'conntrack-tools',
+ 'dnsmasq',
+ 'dnsmasq-utils',
+ 'docker-ce-cli',
+ 'haproxy',
+ 'iproute-tc',
+ 'ipset',
+ 'iptables',
+ 'iputils',
+ 'keepalived',
+ 'net-tools',
+ 'openvswitch${KOLLA_RPM_OVS_VERSION}',
+ 'python3-openvswitch${KOLLA_RPM_OVS_VERSION}',
+ 'radvd',
+ 'uuid'
+ ] %}
+
+{% elif base_package_type == 'deb' %}
+
+ {% set neutron_base_packages = [
+ 'conntrack',
+ 'dnsmasq',
+ 'dnsmasq-utils',
+ 'docker-ce-cli',
+ 'haproxy',
+ 'iproute2',
+ 'ipset',
+ 'iptables',
+ 'iputils-arping',
+ 'iputils-ping',
+ 'keepalived',
+ 'net-tools',
+ 'openvswitch-switch',
+ 'python3-openvswitch',
+ 'radvd',
+ 'uuid-runtime'
+ ] %}
+
+{% endif %}
+
+{{ macros.install_packages(neutron_base_packages | customizable("packages")) }}
+
+ADD neutron-base-archive /neutron-base-source
+ADD plugins-archive /
+
+{% set neutron_base_pip_packages = [
+ '/neutron',
+ 'oslo-vmware',
+ 'tap-as-a-service'
+] %}
+
+{% set neutron_base_plugins_pip_packages = [
+ '/plugins/*'
+] %}
+
+COPY neutron_sudoers /etc/sudoers.d/kolla_neutron_sudoers
+COPY extend_start.sh /usr/local/bin/kolla_extend_start
+RUN mkdir -p /usr/local/lib/neutron-wrappers /usr/local/etc/neutron-wrappers
+COPY dnsmasq haproxy keepalived neutron-keepalived-state-change radvd copy-wrappers delete-wrappers /usr/local/lib/neutron-wrappers/
+RUN chmod +x /usr/local/lib/neutron-wrappers/copy-wrappers \
+ && chmod +x /usr/local/lib/neutron-wrappers/delete-wrappers
+
+RUN ln -s neutron-base-source/* neutron \
+ && {{ macros.upper_constraints_remove('networking-generic-switch') }} \
+ && {{ macros.install_pip(neutron_base_pip_packages | customizable("pip_packages")) }} \
+ && mkdir -p /etc/neutron \
+ && cp -r /neutron/etc/* /etc/neutron/ \
+ && cp -r /neutron/etc/neutron/* /etc/neutron/ \
+ && cp /var/lib/kolla/venv/etc/pycadf/neutron_api_audit_map.conf /etc/neutron/ \
+ && mv /etc/neutron/neutron/ /etc/neutron/plugins/ \
+ && 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 \
+ && if [ "$(ls /plugins)" ]; then \
+ {{ macros.install_pip(neutron_base_plugins_pip_packages) }} \
+ && for neutron_plugins in $(ls /plugins); do \
+ if [ -d "/plugins/$neutron_plugins/etc/neutron/rootwrap.d" ]; then \
+ cp /plugins/$neutron_plugins/etc/neutron/rootwrap.d/* /etc/neutron/rootwrap.d; \
+ fi; \
+ done; \
+ fi \
+ && chmod 750 /etc/sudoers.d \
+ && chmod 440 /etc/sudoers.d/kolla_neutron_sudoers \
+ && touch /usr/local/bin/kolla_neutron_extend_start \
+ && chmod 644 /usr/local/bin/kolla_extend_start /usr/local/bin/kolla_neutron_extend_start
+
+{{ macros.kolla_patch_sources() }}
+
+{% block neutron_base_footer %}{% endblock %}