Browse Source

Add python3 packages for RHEL systems

RDO is currently working on python3 support for the next version of
CentOS/RHEL based systems.  This package uses the distro_python3 flag
that was added as part of I4028991bad92c0e8e21066cc4173c06ce5eba393 to
use the python3 specific package names.  This change only adds python3
package names for RHEL systems.

Conflicts-With: https://review.openstack.org/#/c/636457/
Change-Id: Iad6b70b433a0dd1b0f8ae6790fd280594517661a
Related-Blueprint: python3-support
changes/56/632156/29
Alex Schultz 3 years ago
committed by Mark Goddard
parent
commit
3e5d8e2653
  1. 2
      doc/source/admin/image-building.rst
  2. 27
      docker/aodh/aodh-base/Dockerfile.j2
  3. 12
      docker/barbican/barbican-api/Dockerfile.j2
  4. 5
      docker/barbican/barbican-base/Dockerfile.j2
  5. 12
      docker/base/Dockerfile.j2
  6. 15
      docker/ceilometer/ceilometer-base/Dockerfile.j2
  7. 17
      docker/cinder/cinder-api/Dockerfile.j2
  8. 12
      docker/cinder/cinder-base/Dockerfile.j2
  9. 11
      docker/cinder/cinder-volume/Dockerfile.j2
  10. 14
      docker/cloudkitty/cloudkitty-api/Dockerfile.j2
  11. 35
      docker/collectd/Dockerfile.j2
  12. 13
      docker/designate/designate-base/Dockerfile.j2
  13. 11
      docker/designate/designate-sink/Dockerfile.j2
  14. 6
      docker/freezer/freezer-api/Dockerfile.j2
  15. 12
      docker/glance/glance-base/Dockerfile.j2
  16. 23
      docker/gnocchi/gnocchi-base/Dockerfile.j2
  17. 14
      docker/heat/heat-base/Dockerfile.j2
  18. 15
      docker/heat/heat-engine/Dockerfile.j2
  19. 27
      docker/horizon/Dockerfile.j2
  20. 12
      docker/ironic/ironic-api/Dockerfile.j2
  21. 28
      docker/ironic/ironic-conductor/Dockerfile.j2
  22. 6
      docker/ironic/ironic-pxe/Dockerfile.j2
  23. 11
      docker/iscsid/Dockerfile.j2
  24. 27
      docker/keystone/keystone-base/Dockerfile.j2
  25. 13
      docker/keystone/keystone/Dockerfile.j2
  26. 4
      docker/macros.j2
  27. 12
      docker/manila/manila-api/Dockerfile.j2
  28. 12
      docker/mistral/mistral-api/Dockerfile.j2
  29. 6
      docker/monasca/monasca-base/Dockerfile.j2
  30. 11
      docker/networking-baremetal/ironic-neutron-agent/Dockerfile.j2
  31. 14
      docker/neutron/neutron-base/Dockerfile.j2
  32. 6
      docker/neutron/neutron-metadata-agent-ovn/Dockerfile.j2
  33. 15
      docker/neutron/neutron-server-opendaylight/Dockerfile.j2
  34. 9
      docker/neutron/neutron-server-ovn/Dockerfile.j2
  35. 12
      docker/neutron/neutron-server/Dockerfile.j2
  36. 14
      docker/nova/nova-api/Dockerfile.j2
  37. 12
      docker/nova/nova-base/Dockerfile.j2
  38. 17
      docker/nova/nova-compute/Dockerfile.j2
  39. 12
      docker/nova/nova-placement-api/Dockerfile.j2
  40. 11
      docker/nova/nova-spicehtml5proxy/Dockerfile.j2
  41. 6
      docker/novajoin/novajoin-base/Dockerfile.j2
  42. 21
      docker/octavia/octavia-api/Dockerfile.j2
  43. 91
      docker/openstack-base/Dockerfile.j2
  44. 13
      docker/openvswitch/openvswitch-base/Dockerfile.j2
  45. 14
      docker/panko/panko-api/Dockerfile.j2
  46. 24
      docker/panko/panko-base/Dockerfile.j2
  47. 12
      docker/placement/placement-api/Dockerfile.j2
  48. 11
      docker/rally/Dockerfile.j2
  49. 11
      docker/sensu/sensu-client/Dockerfile.j2
  50. 10
      docker/swift/swift-proxy-server/Dockerfile.j2
  51. 10
      docker/tacker/tacker-base/Dockerfile.j2
  52. 10
      docker/telegraf/Dockerfile.j2
  53. 25
      docker/tripleoclient/Dockerfile.j2
  54. 14
      docker/vitrage/vitrage-api/Dockerfile.j2
  55. 12
      docker/vitrage/vitrage-base/Dockerfile.j2
  56. 21
      docker/zaqar/zaqar-base/Dockerfile.j2
  57. 11
      docker/zun/zun-base/Dockerfile.j2
  58. 6
      releasenotes/notes/rhel-python3-support-1078f829dc42c4d6.yaml

2
doc/source/admin/image-building.rst

@ -286,7 +286,7 @@ as part of a binary install type build:
* ``openstack-dashboard``
* ``httpd``
* ``mod_wsgi``
* ``python2-mod_wsgi`` or ``python3-mod_wsgi``
* ``mod_ssl``
* ``gettext``

27
docker/aodh/aodh-base/Dockerfile.j2

@ -10,17 +10,28 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% if install_type == 'binary' %}
{% if base_package_type == 'rpm' %}
{# NOTE(aschultz): added api because the common package doesn't include the wsgi file. I think this needs fixing #}
{% set aodh_base_packages = [
'httpd',
'mod_ssl',
'openstack-aodh-api',
'openstack-aodh-common'
] %}
{% if distro_python_version.startswith('3') %}
{% set aodh_base_packages = aodh_base_packages + [
'python3-ldappool',
'python3-mod_wsgi'
] %}
{% else %}
{% set aodh_base_packages = aodh_base_packages + [
'mod_wsgi',
'openstack-aodh-common',
'python2-ldappool'
] %}
{% endif %}
{{ macros.install_packages(aodh_base_packages | customizable("packages")) }}
RUN mkdir -p /var/www/cgi-bin/aodh \
&& cp -a /usr/lib/python2.7/site-packages/aodh/api/app.wsgi /var/www/cgi-bin/aodh/ \
&& cp -a /usr/bin/aodh-api /var/www/cgi-bin/aodh/ \
&& sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf \
&& sed -i -r 's,^(Listen 443),#\1,' /etc/httpd/conf.d/ssl.conf
{% elif base_package_type == 'deb' %}
@ -44,10 +55,20 @@ RUN mkdir -p /var/www/cgi-bin/aodh \
{% set aodh_base_packages = [
'httpd',
'mod_wsgi',
'mod_ssl',
] %}
{% if distro_python_version.startswith('3') %}
{% set aodh_base_packages = aodh_base_packages + [
'python3-ldappool',
'python3-mod_wsgi'
] %}
{% else %}
{% set aodh_base_packages = aodh_base_packages + [
'mod_wsgi',
'python2-ldappool'
] %}
{% endif %}
{{ macros.install_packages(aodh_base_packages | customizable("packages")) }}
RUN mkdir -p /var/www/cgi-bin/aodh \

12
docker/barbican/barbican-api/Dockerfile.j2

@ -10,10 +10,20 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% set barbican_api_packages = [
'httpd',
'mod_ssl',
'openstack-barbican-api'
] %}
{% if distro_python_version.startswith('3') %}
{% set barbican_api_packages = barbican_api_packages + [
'python3-mod_wsgi',
'uwsgi-plugin-python3'
] %}
{% else %}
{% set barbican_api_packages = barbican_api_packages + [
'mod_wsgi',
'openstack-barbican-api',
'uwsgi-plugin-python'
] %}
{% endif %}
{{ macros.install_packages(barbican_api_packages | customizable("packages")) }}

5
docker/barbican/barbican-base/Dockerfile.j2

@ -18,7 +18,12 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% elif install_type == 'source' %}
{% if base_package_type == 'rpm' %}
{% if distro_python_version.startswith('3') %}
{% set barbican_base_packages = ['uwsgi-plugin-python3'] %}
{% else %}
{% set barbican_base_packages = ['uwsgi-plugin-python'] %}
{% endif %}
{% elif base_package_type == 'deb' %}
{% set barbican_base_packages = ['uwsgi-plugin-python'] %}
{% endif %}

12
docker/base/Dockerfile.j2

@ -227,15 +227,25 @@ RUN yum -y install \
{% block base_redhat_binary_versionlock %}{% endblock %}
{% if install_type == 'binary' %}
{% set base_centos_binary_packages = [
'findutils',
'iproute',
'iscsi-initiator-utils',
'lvm2',
'python',
'scsi-target-utils',
'socat',
'sudo',
'which'
] %}
{% if distro_python_version.startswith('3') %}
{% set base_centos_binary_packages = base_centos_binary_packages + [
'python3'
] %}
{% else %}
{% set base_centos_binary_packages = base_centos_binary_packages + [
'python'
] %}
{% endif %}
# Install base packages
{{ macros.install_packages( base_centos_binary_packages | customizable("centos_binary_packages")) }}
{% endif %}

15
docker/ceilometer/ceilometer-base/Dockerfile.j2

@ -10,12 +10,23 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% if install_type == 'binary' %}
{% if base_package_type == 'rpm' %}
{% set ceilometer_base_packages = [
'openstack-ceilometer-common',
'python-panko',
'openstack-ceilometer-common'
] %}
{% if distro_python_version.startswith('3') %}
{% set ceilometer_base_packages = ceilometer_base_packages + [
'python3-gnocchiclient',
'python3-oslo-db',
'python3-panko',
'python3-tooz'
] %}
{% else %}
{% set ceilometer_base_packages = ceilometer_base_packages + [
'python-gnocchiclient',
'python-oslo-db',
'python-panko',
'python-tooz'
] %}
{% endif %}
{% elif base_package_type == 'deb' %}
{% set ceilometer_base_packages = [
'ceilometer-common',

17
docker/cinder/cinder-api/Dockerfile.j2

@ -10,9 +10,19 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% set cinder_api_packages = [
'httpd',
'mod_ssl',
] %}
{% if distro_python_version.startswith('3') %}
{% set cinder_api_packages = cinder_api_packages + [
'python3-keystone',
'python3-mod_wsgi'
] %}
{% else %}
{% set cinder_api_packages = cinder_api_packages + [
'mod_wsgi',
'python-keystone'
] %}
{% endif %}
{{ macros.install_packages(cinder_api_packages | customizable("packages")) }}
RUN mkdir -p /var/www/cgi-bin/cinder \
&& cp -a /usr/bin/cinder-wsgi /var/www/cgi-bin/cinder/cinder-wsgi \
@ -37,8 +47,13 @@ RUN mkdir -p /var/www/cgi-bin/cinder \
{% set cinder_api_packages = [
'httpd',
'mod_ssl',
'mod_wsgi'
] %}
{% if distro_python_version.startswith('3') %}
{% set cinder_api_packages = cinder_api_packages + ['python3-mod_wsgi'] %}
{% else %}
{% set cinder_api_packages = cinder_api_packages + ['mod_wsgi'] %}
{% endif %}
{{ macros.install_packages(cinder_api_packages | customizable("packages")) }}
RUN sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf \
&& sed -i -r 's,^(Listen 443),#\1,' /etc/httpd/conf.d/ssl.conf

12
docker/cinder/cinder-base/Dockerfile.j2

@ -13,10 +13,20 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
'ceph-common',
'lvm2',
'cryptsetup',
'openstack-cinder',
'openstack-cinder'
] %}
{% if distro_python_version.startswith('3') %}
{% set cinder_base_packages = cinder_base_packages + [
'python3-automaton',
'python3-oslo-vmware'
] %}
{% else %}
{% set cinder_base_packages = cinder_base_packages + [
'python-automaton',
'python-oslo-vmware'
] %}
{% endif %}
{% elif base_package_type == 'deb' %}
{% set cinder_base_packages = [
'ceph-common',

11
docker/cinder/cinder-volume/Dockerfile.j2

@ -9,11 +9,20 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% set cinder_volume_packages = [
'nfs-utils',
'nvmetcli',
'python-rtslib',
'scsi-target-utils',
'sysfsutils',
'targetcli'
] %}
{% if distro_python_version.startswith('3') %}
{% set cinder_volume_packages = cinder_volume_packages + [
'python3-rtslib',
] %}
{% else %}
{% set cinder_volume_packages = cinder_volume_packages + [
'python-rtslib',
] %}
{% endif %}
{{ macros.install_packages(cinder_volume_packages | customizable("packages")) }}
{% block cinder_volume_redhat_setup %}

14
docker/cloudkitty/cloudkitty-api/Dockerfile.j2

@ -11,9 +11,13 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% set cloudkitty_api_packages = [
'httpd',
'mod_ssl',
'mod_wsgi',
'openstack-cloudkitty-api',
'openstack-cloudkitty-api'
] %}
{% if distro_python_version.startswith('3') %}
{% set cloudkitty_api_packages = cloudkitty_api_packages + ['python3-mod_wsgi'] %}
{% else %}
{% set cloudkitty_api_packages = cloudkitty_api_packages + ['mod_wsgi'] %}
{% endif %}
{{ macros.install_packages(cloudkitty_api_packages | customizable("packages")) }}
RUN sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf \
&& sed -i -r 's,^(Listen 443),#\1,' /etc/httpd/conf.d/ssl.conf
@ -31,8 +35,12 @@ RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \
{% set cloudkitty_api_packages = [
'httpd',
'mod_ssl',
'mod_wsgi'
] %}
{% if distro_python_version.startswith('3') %}
{% set cloudkitty_api_packages = cloudkitty_api_packages + ['python3-mod_wsgi'] %}
{% else %}
{% set cloudkitty_api_packages = cloudkitty_api_packages + ['mod_wsgi'] %}
{% endif %}
{{ macros.install_packages(cloudkitty_api_packages | customizable("packages")) }}
RUN sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf \
&& sed -i -r 's,^(Listen 443),#\1,' /etc/httpd/conf.d/ssl.conf

35
docker/collectd/Dockerfile.j2

@ -13,12 +13,10 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% if base_package_type == 'rpm' %}
{% set collectd_packages = collectd_packages + [
'collectd-amqp1',
'collectd-apache',
'collectd-bind',
'collectd-ceph',
'collectd-chrony',
'collectd-connectivity',
'collectd-curl',
'collectd-curl_json',
'collectd-curl_xml',
@ -33,25 +31,39 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
'collectd-mysql',
'collectd-netlink',
'collectd-openldap',
'collectd-ovs-events',
'collectd-ovs-stats',
'collectd-ping',
'collectd-procevent',
'collectd-python',
'collectd-sensors',
'collectd-smart',
'collectd-snmp',
'collectd-snmp-agent',
'collectd-sysevent',
'collectd-utils',
'collectd-virt',
'collectd-write_http',
'collectd-write_kafka',
'collectd-write_prometheus',
'collectd-write_prometheus'
] %}
{% if distro_python_version.startswith('3') %}
{# TODO(aschultz): there are some missing packages here #}
{% set collectd_packages = collectd_packages + [
'collectd-ovs_events',
'collectd-ovs_stats',
'collectd-snmp_agent',
] %}
{% else %}
{% set collectd_packages = collectd_packages + [
'collectd-amqp1',
'collectd-connectivity',
'collectd-ovs-events',
'collectd-ovs-stats',
'collectd-procevent',
'collectd-snmp-agent',
'collectd-sysevent',
'python-collectd-gnocchi',
'python2-collectd-rabbitmq-monitoring',
'python2-sqlalchemy-collectd'
] %}
{% endif %}
{% if base_arch in ['x86_64', 'ppc64le'] %}
{% set collectd_packages = collectd_packages + [
@ -60,11 +72,18 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% endif %}
{% if base_arch =='x86_64' %}
{% if distro_python_version.startswith('3') %}
{# NOTE(aschultz): there are some missing packages here #}
{% set collectd_packages = collectd_packages + [
'collectd-hugepages',
] %}
{% else %}
{% set collectd_packages = collectd_packages + [
'collectd-hugepages',
'collectd-rdt',
'collectd-turbostat'
] %}
{% endif %}
{% endif %}
# make sure, collectd is pulled from centos-opstools

13
docker/designate/designate-base/Dockerfile.j2

@ -10,11 +10,22 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% if install_type == 'binary' %}
{% if base_package_type == 'rpm' %}
{% set designate_base_packages = [
'openstack-designate-common',
'openstack-designate-common'
] %}
{% if distro_python_version.startswith('3') %}
{% set designate_base_packages = designate_base_packages + [
'python3-oslo-reports',
'python3-suds',
'python3-tooz'
] %}
{% else %}
{% set designate_base_packages = designate_base_packages + [
'python-tooz',
'python2-oslo-reports',
'python2-suds'
] %}
{% endif %}
{{ macros.install_packages(designate_base_packages | customizable("packages")) }}
{% elif base_package_type == 'deb' %}

11
docker/designate/designate-sink/Dockerfile.j2

@ -8,9 +8,18 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% if install_type == 'binary' %}
{% if base_package_type == 'rpm' %}
{% set designate_sink_packages = [
'openstack-designate-sink',
'openstack-designate-sink'
] %}
{% if distro_python_version.startswith('3') %}
{% set designate_sink_packages = designate_sink_packages + [
'python3-designateclient'
] %}
{% else %}
{% set designate_sink_packages = designate_sink_packages + [
'python-designateclient'
] %}
{% endif %}
{% elif base_package_type == 'deb' %}
{% set designate_sink_packages = [
'designate-sink',

6
docker/freezer/freezer-api/Dockerfile.j2

@ -16,8 +16,12 @@ RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \
{% set freezer_api_packages = [
'httpd',
'mod_ssl',
'mod_wsgi'
] %}
{% if distro_python_version.startswith('3') %}
{% set freezer_api_packages = freezer_api_packages + ['python3-mod_wsgi'] %}
{% else %}
{% set freezer_api_packages = freezer_api_packages + ['mod_wsgi'] %}
{% endif %}
{{ macros.install_packages(freezer_api_packages | customizable("packages")) }}

12
docker/glance/glance-base/Dockerfile.j2

@ -10,11 +10,21 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% if install_type == 'binary' %}
{% if base_package_type == 'rpm' %}
{% set glance_base_packages = [
'openstack-glance',
'openstack-glance'
] %}
{% if distro_python_version.startswith('3') %}
{% set glance_base_packages = glance_base_packages + [
'python3-oslo-vmware',
'python3-rados',
'python3-rbd'
] %}
{% else %}
{% set glance_base_packages = glance_base_packages + [
'python-oslo-vmware',
'python-rados',
'python-rbd'
] %}
{% endif %}
{% elif base_package_type == 'deb' %}
{% set glance_base_packages = [
'glance',

23
docker/gnocchi/gnocchi-base/Dockerfile.j2

@ -10,15 +10,24 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% if install_type == 'binary' %}
{% if base_package_type == 'rpm' %}
{% set gnocchi_base_packages = [
{% set gnocchi_base_packages = [
'gnocchi-common',
'httpd',
'mod_ssl',
] %}
{% if distro_python_version.startswith('3') %}
{% set gnocchi_base_packages = gnocchi_base_packages + [
'python3-cradox',
'python3-ldappool',
'python3-mod_wsgi'
] %}
{% else %}
{% set gnocchi_base_packages = gnocchi_base_packages + [
'mod_wsgi',
'python2-ldappool',
'python2-cradox'
] %}
{% endif %}
{{ macros.install_packages(gnocchi_base_packages | customizable("packages")) }}
RUN sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf \
&& sed -i -r 's,^(Listen 443),#\1,' /etc/httpd/conf.d/ssl.conf
@ -52,9 +61,19 @@ RUN {{ macros.install_pip(gnocchi_base_pip_packages | customizable("pip_packages
'httpd',
'librados2-devel',
'mod_ssl',
] %}
{% if distro_python_version.startswith('3') %}
{% set gnocchi_base_packages = gnocchi_base_packages + [
'python3-ldappool',
'python3-mod_wsgi'
] %}
{% else %}
{% set gnocchi_base_packages = gnocchi_base_packages + [
'mod_wsgi',
'python2-ldappool'
] %}
{% endif %}
# on x86-64 pip grabs precompiled numpy/scipy - on aarch64/ppc64le
# it needs to be built

14
docker/heat/heat-base/Dockerfile.j2

@ -13,9 +13,14 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% set heat_base_packages = [
'httpd',
'mod_ssl',
'mod_wsgi',
'openstack-heat-common'
] %}
{% if distro_python_version.startswith('3') %}
{% set heat_base_packages = heat_base_packages + ['python3-mod_wsgi'] %}
{% else %}
{% set heat_base_packages = heat_base_packages + ['mod_wsgi'] %}
{% endif %}
{{ macros.install_packages(heat_base_packages | customizable("packages")) }}
RUN sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf \
&& sed -i -r 's,^(Listen 443),#\1,' /etc/httpd/conf.d/ssl.conf
@ -36,8 +41,13 @@ RUN echo > /etc/apache2/ports.conf
{% set heat_base_packages = [
'httpd',
'mod_ssl',
'mod_wsgi'
] %}
{% if distro_python_version.startswith('3') %}
{% set heat_base_packages = heat_base_packages + ['python3-mod_wsgi'] %}
{% else %}
{% set heat_base_packages = heat_base_packages + ['mod_wsgi'] %}
{% endif %}
{{ macros.install_packages(heat_base_packages | customizable("packages")) }}
RUN sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf \
&& sed -i -r 's,^(Listen 443),#\1,' /etc/httpd/conf.d/ssl.conf

15
docker/heat/heat-engine/Dockerfile.j2

@ -7,11 +7,20 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% if install_type == 'binary' %}
{% if base_package_type == 'rpm' %}
{% set heat_engine_packages = [
'python-barbicanclient',
'python-zaqarclient',
{% set heat_engine_packages = [
'openstack-heat-engine'
] %}
{% if distro_python_version.startswith('3') %}
{% set heat_engine_packages = heat_engine_packages + [
'python3-barbicanclient',
'python3-zaqarclient'
] %}
{% else %}
{% set heat_engine_packages = heat_engine_packages + [
'python-barbicanclient',
'python-zaqarclient'
] %}
{% endif %}
{% elif base_package_type == 'deb' %}
{% set heat_engine_packages = ['heat-engine'] %}
{% endif %}

27
docker/horizon/Dockerfile.j2

@ -9,11 +9,15 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% if install_type == 'binary' %}
{% if base_package_type == 'rpm' %}
{% if distro_python_version.startswith('3') %}
{% set horizon_python = 'python3' %}
{% else %}
{% set horizon_python = 'python2' %}
{% endif %}
{% set horizon_packages = [
'gettext',
'httpd',
'mod_ssl',
'mod_wsgi',
'openstack-cloudkitty-ui',
'openstack-dashboard',
'openstack-designate-ui',
@ -29,22 +33,27 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
'openstack-trove-ui',
'openstack-vitrage-ui'
] %}
{% if distro_python_version.startswith('3') %}
{% set horizon_packages = horizon_packages + ['python3-mod_wsgi'] %}
{% else %}
{% set horizon_packages = horizon_packages + ['mod_wsgi'] %}
{% endif %}
{{ macros.install_packages(horizon_packages | customizable("packages")) }}
{% block horizon_redhat_binary_setup %}
RUN sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf \
&& sed -i -r 's,^(Listen 443),#\1,' /etc/httpd/conf.d/ssl.conf \
&& ln -s /usr/share/openstack-dashboard/openstack_dashboard /usr/lib/python2.7/site-packages/openstack_dashboard \
&& ln -s /usr/share/openstack-dashboard/static /usr/lib/python2.7/site-packages/static \
&& ln -s /usr/share/openstack-dashboard/openstack_dashboard /usr/lib/python{{ distro_python_version }}/site-packages/openstack_dashboard \
&& ln -s /usr/share/openstack-dashboard/static /usr/lib/python{{ distro_python_version }}/site-packages/static \
&& chown -R horizon: /etc/openstack-dashboard /usr/share/openstack-dashboard \
&& chown -R apache: /usr/share/openstack-dashboard/static \
&& sed -i "s|WEBROOT = '/dashboard/'|WEBROOT = '/'|" /etc/openstack-dashboard/local_settings \
&& cp /usr/share/openstack-dashboard/manage.py /usr/bin/manage.py \
&& rm -f /usr/share/openstack-dashboard/openstack_dashboard/local/enabled/?[^_]*.py* \
&& rm -f /usr/lib/python2.7/site-packages/openstack_dashboard/local/enabled/?[^_]*.py* \
&& for locale in /usr/lib/python2.7/site-packages/*/locale; do \
(cd ${locale%/*} && /usr/bin/python /usr/bin/manage.py compilemessages) \
&& rm -f /usr/lib/python{{ distro_python_version }}/site-packages/openstack_dashboard/local/enabled/?[^_]*.py* \
&& for locale in /usr/lib/python{{ distro_python_version }}/site-packages/*/locale; do \
(cd ${locale%/*} && /usr/bin/{{ horizon_python }} /usr/bin/manage.py compilemessages) \
done
{% endblock %}
@ -87,8 +96,12 @@ RUN echo > /etc/apache2/ports.conf \
'gettext',
'httpd',
'mod_ssl',
'mod_wsgi'
] %}
{% if distro_python_version.startswith('3') %}
{% set horizon_packages = horizon_packages + ['python3-mod_wsgi'] %}
{% else %}
{% set horizon_packages = horizon_packages + ['mod_wsgi'] %}
{% endif %}
{{ macros.install_packages(horizon_packages | customizable("packages")) }}

12
docker/ironic/ironic-api/Dockerfile.j2

@ -10,9 +10,13 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% set ironic_api_packages = [
'httpd',
'mod_ssl',
'mod_wsgi',
'openstack-ironic-api'
] %}
{% if distro_python_version.startswith('3') %}
{% set ironic_api_packages = ironic_api_packages + ['python3-mod_wsgi'] %}
{% else %}
{% set ironic_api_packages = ironic_api_packages + ['mod_wsgi'] %}
{% endif %}
{% elif base_package_type == 'deb' %}
{% set ironic_api_packages = [
'apache2',
@ -26,8 +30,12 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% set ironic_api_packages = [
'httpd',
'mod_ssl',
'mod_wsgi'
] %}
{% if distro_python_version.startswith('3') %}
{% set ironic_api_packages = ironic_api_packages + ['python3-mod_wsgi'] %}
{% else %}
{% set ironic_api_packages = ironic_api_packages + ['mod_wsgi'] %}
{% endif %}
{% elif base_package_type == 'deb' %}
{% set ironic_api_packages = [
'apache2',

28
docker/ironic/ironic-conductor/Dockerfile.j2

@ -18,19 +18,35 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
'openstack-ironic-staging-drivers',
'parted',
'psmisc',
'shellinabox',
'util-linux',
'xfsprogs'
] %}
{% if distro_python_version.startswith('3') %}
{% set ironic_conductor_packages = ironic_conductor_packages + [
'ansible-python3',
'python3-dracclient',
'python3-ironic-inspector-client',
'python3-proliantutils',
'python3-pysnmp',
'python3-scciclient',
'python3-sushy',
'python3-systemd'
] %}
{% else %}
{% set ironic_conductor_packages = ironic_conductor_packages + [
'pysnmp',
'python2-ImcSdk',
'python-UcsSdk',
'python-dracclient',
'python-ironic-inspector-client',
'python-proliantutils',
'python-scciclient',
'python-sushy',
'python-UcsSdk',
'shellinabox',
'systemd-python',
'util-linux',
'xfsprogs',
'python2-ImcSdk',
'systemd-python'
] %}
{% endif %}
{% if base_distro in ['centos', 'oraclelinux'] %}
{% set ironic_conductor_packages = ironic_conductor_packages + [
'qemu-img-ev'

6
docker/ironic/ironic-pxe/Dockerfile.j2

@ -10,9 +10,13 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
'httpd',
'ipxe-bootimgs',
'mod_ssl',
'mod_wsgi',
'tftp-server'
] %}
{% if distro_python_version.startswith('3') %}
{% set ironic_pxe_packages = ironic_pxe_packages + ['python3-mod_wsgi'] %}
{% else %}
{% set ironic_pxe_packages = ironic_pxe_packages + ['mod_wsgi'] %}
{% endif %}
{% if base_arch == 'x86_64' %}
{% set ironic_pxe_packages = ironic_pxe_packages + [

11
docker/iscsid/Dockerfile.j2

@ -8,10 +8,19 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% if base_package_type == 'rpm' %}
{% set iscsid_packages = [
'iscsi-initiator-utils',
'python-rtslib',
'targetcli'
] %}
{% if distro_python_version.startswith('3') %}
{% set iscsid_packages = iscsid_packages + [
'python3-rtslib'
] %}
{% else %}
{% set iscsid_packages = iscsid_packages + [
'python-rtslib'
] %}
{% endif %}
{% elif base_package_type == 'deb' %}
{% set iscsid_packages = [
'open-iscsi',

27
docker/keystone/keystone-base/Dockerfile.j2

@ -14,11 +14,22 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
'mod_auth_mellon',
'mod_auth_openidc',
'mod_ssl',
'openstack-keystone'
] %}
{% if distro_python_version.startswith('3') %}
{% set keystone_base_packages = keystone_base_packages + [
'python3-keystoneclient',
'python3-ldappool',
'python3-mod_wsgi'
] %}
{% else %}
{% set keystone_base_packages = keystone_base_packages + [
'mod_wsgi',
'openstack-keystone',
'python2-ldappool',
'python-keystoneclient'
'python-keystoneclient',
'python2-ldappool'
] %}
{% endif %}
{{ macros.install_packages(keystone_base_packages | customizable("packages")) }}
RUN mkdir -p /var/www/cgi-bin/keystone \
@ -52,9 +63,19 @@ RUN mkdir -p /var/www/cgi-bin/keystone \
'mod_auth_mellon',
'mod_auth_openidc',
'mod_ssl',
] %}
{% if distro_python_version.startswith('3') %}
{% set keystone_base_packages = keystone_base_packages + [
'python3-ldappool',
'python3-mod_wsgi'
] %}
{% else %}
{% set keystone_base_packages = keystone_base_packages + [
'mod_wsgi',
'python2-ldappool'
] %}
{% endif %}
{{ macros.install_packages(keystone_base_packages | customizable("packages")) }}
RUN sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf \
&& sed -i -r 's,^(Listen 443),#\1,' /etc/httpd/conf.d/ssl.conf

13
docker/keystone/keystone/Dockerfile.j2

@ -13,9 +13,18 @@ RUN chmod 755 /usr/local/bin/kolla_extend_start /usr/local/bin/kolla_keystone_bo
# TODO: oraclelinux fails to install these packages. Should be added when this is fixed.
{% if base_package_type == 'rpm' and base_distro != 'oraclelinux' %}
{% set keystone_packages = [
'mod_auth_gssapi',
'python-requests-kerberos',
'mod_auth_gssapi'
] %}
{% if distro_python_version.startswith('3') %}
{% set keystone_packages = keystone_packages + [
'python3-requests-kerberos'
] %}
{% else %}
{% set keystone_packages = keystone_packages + [
'python-requests-kerberos'
] %}
{% endif %}
{% elif base_package_type == 'deb' %}
{% set keystone_packages = [
'libapache2-mod-auth-gssapi',

4
docker/macros.j2

@ -1,8 +1,8 @@
{% macro install_packages(packages) -%}
{% if packages is defined and packages|length > 0 -%}
{% if base_distro in ['centos', 'oraclelinux', 'rhel'] -%}
{% if base_package_type == 'rpm' -%}
RUN yum -y install {{ packages | join(' ') }} && yum clean all && rm -rf /var/cache/yum
{%- elif base_distro in ['debian', 'ubuntu'] -%}
{%- elif base_package_type == 'deb' -%}
{#-
debian_package_install is a utility method to build up an appropriate
set of commands to install packages in a debian-based environment that

12
docker/manila/manila-api/Dockerfile.j2

@ -10,8 +10,12 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% set manila_api_packages = [
'httpd',
'mod_ssl',
'mod_wsgi'
] %}
{% if distro_python_version.startswith('3') %}
{% set manila_api_packages = manila_api_packages + ['python3-mod_wsgi' ] %}
{% else %}
{% set manila_api_packages = manila_api_packages + ['mod_wsgi' ] %}
{% endif %}
{{ macros.install_packages(manila_api_packages | customizable("packages")) }}
RUN mkdir -p /var/www/cgi-bin/manila \
&& cp -a /usr/bin/manila-wsgi /var/www/cgi-bin/manila/manila-wsgi \
@ -37,8 +41,12 @@ RUN mkdir -p /var/www/cgi-bin/manila \
{% set manila_api_packages = [
'httpd',
'mod_ssl',
'mod_wsgi'
] %}
{% if distro_python_version.startswith('3') %}
{% set manila_api_packages = manila_api_packages + ['python3-mod_wsgi' ] %}
{% else %}
{% set manila_api_packages = manila_api_packages + ['mod_wsgi' ] %}
{% endif %}
{{ macros.install_packages(manila_api_packages | customizable("packages")) }}
RUN sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf \
&& sed -i -r 's,^(Listen 443),#\1,' /etc/httpd/conf.d/ssl.conf

12
docker/mistral/mistral-api/Dockerfile.j2

@ -10,9 +10,13 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% set mistral_api_packages = [
'httpd',
'mod_ssl',
'mod_wsgi',
'openstack-mistral-api'
] %}
{% if distro_python_version.startswith('3') %}
{% set mistral_api_packages = mistral_api_packages + ['python3-mod_wsgi'] %}
{% else %}
{% set mistral_api_packages = mistral_api_packages + ['mod_wsgi'] %}
{% endif %}
{{ macros.install_packages(mistral_api_packages | customizable("packages")) }}
RUN sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf \
&& sed -i -r 's,^(Listen 443),#\1,' /etc/httpd/conf.d/ssl.conf
@ -32,8 +36,12 @@ RUN echo > /etc/apache2/ports.conf
{% set mistral_api_packages = [
'httpd',
'mod_ssl',
'mod_wsgi'
] %}
{% if distro_python_version.startswith('3') %}
{% set mistral_api_packages = mistral_api_packages + ['python3-mod_wsgi'] %}
{% else %}
{% set mistral_api_packages = mistral_api_packages + ['mod_wsgi'] %}
{% endif %}
{{ macros.install_packages(mistral_api_packages | customizable("packages")) }}
RUN sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf \
&& sed -i -r 's,^(Listen 443),#\1,' /etc/httpd/conf.d/ssl.conf

6
docker/monasca/monasca-base/Dockerfile.j2

@ -18,8 +18,12 @@ RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \
{% set monasca_base_packages = [
'httpd',
'mod_ssl',
'mod_wsgi'
] %}
{% if distro_python_version.startswith('3') %}
{% set monasca_base_packages = monasca_base_packages + ['python3-mod_wsgi'] %}
{% else %}
{% set monasca_base_packages = monasca_base_packages + ['mod_wsgi'] %}
{% endif %}
{{ macros.install_packages(monasca_base_packages | customizable("packages")) }}
RUN sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf \

11
docker/networking-baremetal/ironic-neutron-agent/Dockerfile.j2

@ -9,11 +9,18 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% if base_package_type == 'rpm' %}
{% if distro_python_version.startswith('3') %}
{% set ironic_neutron_agent_packages = [
'python-networking-baremetal',
'python-ironic-neutron-agent'
'python3-ironic-neutron-agent',
'python3-networking-baremetal'
] %}
{% else %}
{% set ironic_neutron_agent_packages = [
'python-ironic-neutron-agent',
'python-networking-baremetal'
] %}
{% endif %}
{% elif base_package_type == 'deb' %}
RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \

14
docker/neutron/neutron-base/Dockerfile.j2

@ -22,13 +22,25 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
'openstack-neutron-fwaas',
'openstack-neutron-lbaas',
'openstack-neutron-ml2',
'openvswitch',
'openvswitch'
] %}
{% if distro_python_version.startswith('3') %}
{% set neutron_base_packages = neutron_base_packages + [
'python3-networking-sfc',
'python3-networking-vmware-nsx',
'python3-networking-baremetal',
'python3-openvswitch',
'python3-oslo-vmware'
] %}
{% else %}
{% set neutron_base_packages = neutron_base_packages + [
'python-networking-sfc',
'python-networking-vmware-nsx',
'python2-networking-baremetal',
'python2-openvswitch',
'python2-oslo-vmware'
] %}
{% endif %}
{% elif base_package_type == 'deb' %}

6
docker/neutron/neutron-metadata-agent-ovn/Dockerfile.j2

@ -8,9 +8,15 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% if install_type == 'binary' %}
{% if base_package_type == 'rpm' %}
{% if distro_python_version.startswith('3') %}
{% set neutron_metadata_agent_ovn_packages = [
'python3-networking-ovn-metadata-agent'
] %}
{% else %}
{% set neutron_metadata_agent_ovn_packages = [
'python-networking-ovn-metadata-agent'
] %}
{% endif %}
{% elif base_package_type == 'deb' %}
{% set neutron_metadata_agent_ovn_packages = [
'python3-networking-ovn'

15
docker/neutron/neutron-server-opendaylight/Dockerfile.j2

@ -9,17 +9,26 @@ USER root
{% if install_type == 'binary' %}
{% if base_package_type == 'rpm' %}
{% if distro_python_version.startswith('3') %}
{% set neutron_server_opendaylight_packages = [
'python3-networking-bgpvpn',
'python3-networking-bgpvpn-heat',
'python3-networking-l2gw',
'python3-networking-odl'
] %}
{% else %}
{% set neutron_server_opendaylight_packages = [
'python-networking-odl',
'python-networking-bgpvpn',
'python-networking-bgpvpn-heat',
'python-networking-l2gw',
'python-networking-bgpvpn-heat'
'python-networking-odl'
] %}
{% endif %}
{% elif base_package_type == 'deb' %}
{% set neutron_server_opendaylight_packages = [
'python3-networking-odl',
'python3-networking-bgpvpn',
'python3-networking-l2gw',
'python3-networking-odl'
] %}
{% endif %}

9
docker/neutron/neutron-server-ovn/Dockerfile.j2

@ -9,9 +9,16 @@ USER root
{% if install_type == 'binary' %}
{% if base_package_type == 'rpm' %}
{% if distro_python_version.startswith('3') %}
{% set neutron_server_ovn_packages = [
'python-networking-ovn',
'python3-networking-ovn'
] %}
{% else %}
{% set neutron_server_ovn_packages = [
'python-networking-ovn'
] %}
{% endif %}
{% elif base_package_type == 'deb' %}
{% set neutron_server_ovn_packages = [
'python3-networking-ovn',

12
docker/neutron/neutron-server/Dockerfile.j2

@ -7,12 +7,20 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% if install_type == 'binary' %}
{% if base_package_type == 'rpm' %}
{% set neutron_server_packages = [
'openstack-neutron-vpnaas',
'python-networking-generic-switch',
] %}
{% if distro_python_version.startswith('3') %}
{% set neutron_server_packages = neutron_server_packages + [
'python3-networking-generic-switch'
] %}
{% else %}
{% set neutron_server_packages = neutron_server_packages + [
'python-networking-generic-switch'
] %}
{% endif %}
{% elif base_package_type == 'deb' %}
{% set neutron_server_packages = [

14
docker/nova/nova-api/Dockerfile.j2

@ -11,9 +11,14 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% set nova_api_packages = [
'httpd',
'mod_ssl',
'mod_wsgi',
'openstack-nova-api'
] %}
{% if distro_python_version.startswith('3') %}
{% set nova_api_packages = nova_api_packages + ['python3-mod_wsgi'] %}
{% else %}
{% set nova_api_packages = nova_api_packages + ['mod_wsgi'] %}
{% endif %}
{{ macros.install_packages(nova_api_packages | customizable("packages")) }}
RUN sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf \
&& sed -i -r 's,^(Listen 443),#\1,' /etc/httpd/conf.d/ssl.conf
@ -38,8 +43,13 @@ RUN echo > /etc/apache2/ports.conf
{% set nova_api_packages = [
'httpd',
'mod_ssl',
'mod_wsgi'
] %}
{% if distro_python_version.startswith('3') %}
{% set nova_api_packages = nova_api_packages + ['python3-mod_wsgi'] %}
{% else %}
{% set nova_api_packages = nova_api_packages + ['mod_wsgi'] %}
{% endif %}
{{ macros.install_packages(nova_api_packages | customizable("packages")) }}
RUN sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf \
&& sed -i -r 's,^(Listen 443),#\1,' /etc/httpd/conf.d/ssl.conf

12
docker/nova/nova-base/Dockerfile.j2

@ -12,10 +12,20 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% set nova_base_packages = [
'openstack-nova-common',
'openvswitch',
'openvswitch'
] %}
{% if distro_python_version.startswith('3') %}
{% set nova_base_packages = nova_base_packages + [
'python3-cinderclient',
'python3-keystoneclient'
] %}
{% else %}
{% set nova_base_packages = nova_base_packages + [
'python-cinderclient',
'python-keystoneclient'
] %}
{% endif %}
{% if base_arch == 'x86_64' %}
{% if base_distro in ['centos', 'oraclelinux', 'rhel'] and base_distro_tag.startswith('7') %}

17
docker/nova/nova-compute/Dockerfile.j2

@ -19,13 +19,24 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
'openstack-nova-compute',
'openvswitch',
'parted',
'python-libguestfs',
'python-oslo-vmware',
'python-rtslib',
'sysfsutils',
'targetcli'
] %}
{% if distro_python_version.startswith('3') %}
{% set nova_compute_packages = nova_compute_packages + [
'python3-libguestfs',
'python3-oslo-vmware',
'python3-rtslib'
] %}
{% else %}
{% set nova_compute_packages = nova_compute_packages + [
'python-libguestfs',
'python-oslo-vmware',
'python-rtslib'
] %}
{% endif %}
{{ macros.install_packages(nova_compute_packages | customizable("packages")) }}
{% elif base_package_type == 'deb' %}

12
docker/nova/nova-placement-api/Dockerfile.j2

@ -11,9 +11,13 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% set nova_placement_api_packages = [
'httpd',
'mod_ssl',
'mod_wsgi',
'openstack-nova-placement-api'
] %}
{% if distro_python_version.startswith('3') %}
{% set nova_placement_api_packages = nova_placement_api_packages + ['python3-mod_wsgi'] %}
{% else %}
{% set nova_placement_api_packages = nova_placement_api_packages + ['mod_wsgi'] %}
{% endif %}
{{ macros.install_packages(nova_placement_api_packages | customizable("packages")) }}
RUN sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf \
@ -37,8 +41,12 @@ RUN truncate -s 0 /etc/apache2/ports.conf
{% set nova_placement_api_packages = [
'httpd',
'mod_ssl',
'mod_wsgi'
] %}
{% if distro_python_version.startswith('3') %}
{% set nova_placement_api_packages = nova_placement_api_packages + ['python3-mod_wsgi'] %}
{% else %}
{% set nova_placement_api_packages = nova_placement_api_packages + ['mod_wsgi'] %}
{% endif %}
{{ macros.install_packages(nova_placement_api_packages | customizable("packages")) }}
RUN sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf \

11
docker/nova/nova-spicehtml5proxy/Dockerfile.j2

@ -9,11 +9,20 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% if base_package_type == 'rpm' %}
{% set nova_spicehtml5proxy_packages = [
'numpy',
'openstack-nova-spicehtml5proxy',
'spice-html5'
] %}
{% if distro_python_version.startswith('3') %}
{% set nova_spicehtml5proxy_packages = nova_spicehtml5proxy_packages + [
'python3-numpy',
] %}
{% else %}
{% set nova_spicehtml5proxy_packages = nova_spicehtml5proxy_packages + [
'numpy',
] %}
{% endif %}
{% elif base_package_type == 'deb' %}
{% set nova_spicehtml5proxy_packages = [

6
docker/novajoin/novajoin-base/Dockerfile.j2

@ -10,9 +10,15 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% if install_type == 'binary' %}
{% if base_package_type == 'rpm' %}
{% if distro_python_version.startswith('3') %}
{% set novajoin_base_packages = [
'python3-novajoin'
] %}
{% else %}
{% set novajoin_base_packages = [
'python-novajoin'
] %}
{% endif %}
{% else %}
RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \

21
docker/octavia/octavia-api/Dockerfile.j2

@ -10,9 +10,17 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% set octavia_api_packages = [
'openstack-octavia-api',
'httpd',
'mod_ssl',
'mod_ssl'
] %}
{% if distro_python_version.startswith('3') %}
{% set octavia_api_packages = octavia_api_packages + [
'python3-mod_wsgi'
] %}
{% else %}
{% set octavia_api_packages = octavia_api_packages + [
'mod_wsgi'
] %}
{% endif %}
{% elif base_package_type == 'deb' %}
RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \
&& /bin/false
@ -23,9 +31,18 @@ RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \
{% if base_package_type == 'rpm' %}
{% set octavia_api_packages = [
'httpd',
'mod_ssl',
'mod_ssl'
] %}
{% if distro_python_version.startswith('3') %}
{% set octavia_api_packages = octavia_api_packages + [
'python3-mod_wsgi'
] %}
{% else %}
{% set octavia_api_packages = octavia_api_packages + [
'mod_wsgi'
] %}
{% endif %}
{% elif base_package_type == 'deb' %}
{% set octavia_api_packages = [
'apache2',

91
docker/openstack-base/Dockerfile.j2

@ -15,8 +15,92 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
'libxslt',
'libyaml',
'mailcap',
'MySQL-python',
'openssl',
'systemd-sysv',
'tcp_wrappers-libs'
] %}
{% if distro_python_version.startswith('3') %}
{% set openstack_base_packages = openstack_base_packages + [
'procps-ng',
'python3-PyYAML',
'python3-alembic',
'python3-anyjson',
'python3-aodhclient',
'python3-barbicanclient',
'python3-cachetools',
'python3-cloudkittyclient',
'python3-congressclient',
'python3-contextlib2',
'python3-cryptography',
'python3-designateclient',
'python3-elasticsearch',
'python3-eventlet',
'python3-extras',
'python3-glanceclient',
'python3-gnocchiclient',
'python3-heatclient',
'python3-httplib2',
'python3-ironicclient',
'python3-iso8601',
'python3-kazoo',
'python3-keystoneauth1',
'python3-keystoneclient',
'python3-keystonemiddleware',
'python3-logutils',
'python3-lxml',
'python3-magnumclient',
'python3-manilaclient',
'python3-migrate',
'python3-mimeparse',
'python3-mistralclient',
'python3-muranoclient',
'python3-mysql',
'python3-neutronclient',
'python3-novaclient',
'python3-openstackclient',
'python3-oslo-cache',
'python3-oslo-concurrency',
'python3-oslo-config',
'python3-oslo-context',
'python3-oslo-db',
'python3-oslo-i18n',
'python3-oslo-log',
'python3-oslo-messaging',
'python3-oslo-middleware',
'python3-oslo-policy',
'python3-oslo-reports',
'python3-oslo-rootwrap',
'python3-oslo-serialization',
'python3-oslo-service',
'python3-oslo-utils',
'python3-oslo-versionedobjects',
'python3-osprofiler',
'python3-paramiko',
'python3-paste-deploy',
'python3-pbr',
'python3-pika',
'python3-posix_ipc',
'python3-prettytable',
'python3-psycopg2',
'python3-pyasn1',
'python3-redis',
'python3-retrying',
'python3-routes',
'python3-saharaclient',
'python3-sqlalchemy',
'python3-sqlparse',
'python3-swiftclient',
'python3-sysv_ipc',
'python3-tooz',
'python3-troveclient',
'python3-vitrageclient',
'python3-webob',
'python3-zaqarclient',
'util-linux-user'
] %}
{% else %}
{% set openstack_base_packages = openstack_base_packages + [
'MySQL-python',
'python2-cryptography',
'python2-eventlet',
'python2-iso8601',
@ -91,10 +175,9 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
'python2-webob',
'python-zaqarclient',
'PyYAML',
'systemd-sysv',
'sysvinit-tools',
'tcp_wrappers-libs'
'sysvinit-tools'
] %}
{% endif %}
{% elif base_package_type == 'deb' %}

13
docker/openvswitch/openvswitch-base/Dockerfile.j2

@ -10,11 +10,20 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% if base_package_type == 'rpm' %}
{% set openvswitch_base_packages = [
'openvswitch',
'python-netifaces',
'python-openvswitch',
'tcpdump'
] %}
{% if distro_python_version.startswith('3') %}
{% set openvswitch_base_packages = openvswitch_base_packages + [
'python3-netifaces',
'python3-openvswitch'
] %}
{% else %}
{% set openvswitch_base_packages = openvswitch_base_packages + [
'python-netifaces',
'python-openvswitch'
] %}
{% endif %}
{% elif base_package_type == 'deb' %}
{% set openvswitch_base_packages = [
'openvswitch-switch',

14
docker/panko/panko-api/Dockerfile.j2

@ -7,11 +7,19 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% if install_type == 'binary' %}
{% if base_package_type == 'rpm' %}
{% set panko_api_packages = [
'openstack-panko-api',
'python-pymongo'
{% set panko_api_packages = [
'openstack-panko-api'
] %}
{% if distro_python_version.startswith('3') %}
{% set panko_api_packages = panko_api_packages + [
'python3-pymongo'
] %}
{% else %}
{% set panko_api_packages = panko_api_packages + [
'python-pymongo'
] %}
{% endif %}
{% elif base_package_type == 'deb' %}
{% set panko_api_packages = [
'panko-api',

24
docker/panko/panko-base/Dockerfile.j2

@ -10,14 +10,23 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% if install_type == 'binary' %}
{% if base_package_type == 'rpm' %}
{% set panko_base_packages = [
{% set panko_base_packages = [
'httpd',
'mod_ssl',
'openstack-panko-common'
] %}
{% if distro_python_version.startswith('3') %}
{% set panko_base_packages = panko_base_packages + [
'python3-ldappool',
'python3-mod_wsgi'
] %}
{% else %}
{% set panko_base_packages = panko_base_packages + [
'mod_wsgi',
'openstack-panko-common',
'python2-ldappool'
] %}
{% endif %}
{{ macros.install_packages(panko_base_packages | customizable("packages")) }}
RUN sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf \
&& sed -i -r 's,^(Listen 443),#\1,' /etc/httpd/conf.d/ssl.conf
@ -35,9 +44,18 @@ RUN echo > /etc/apache2/ports.conf
{% set panko_base_packages = [
'httpd',
'mod_ssl',
] %}
{% if distro_python_version.startswith('3') %}
{% set panko_base_packages = panko_base_packages + [
'python3-ldappool',
'python3-mod_wsgi'
] %}
{% else %}
{% set panko_base_packages = panko_base_packages + [
'mod_wsgi',
'python2-ldappool'
] %}
{% endif %}
{{ macros.install_packages(panko_base_packages | customizable("packages")) }}
RUN sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf \
&& sed -i -r 's,^(Listen 443),#\1,' /etc/httpd/conf.d/ssl.conf

12
docker/placement/placement-api/Dockerfile.j2

@ -11,9 +11,13 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% set placement_api_packages = [
'httpd',
'mod_ssl',
'mod_wsgi',
'openstack-placement-api'
] %}
{% if distro_python_version.startswith('3') %}
{% set placement_api_packages = placement_api_packages + ['python3-mod_wsgi'] %}
{% else %}
{% set placement_api_packages = placement_api_packages + ['mod_wsgi'] %}
{% endif %}
{{ macros.install_packages(placement_api_packages | customizable("packages")) }}
RUN sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf \
@ -37,8 +41,12 @@ RUN truncate -s 0 /etc/apache2/ports.conf
{% set placement_api_packages = [
'httpd',
'mod_ssl',
'mod_wsgi'
] %}
{% if distro_python_version.startswith('3') %}
{% set placement_api_packages = placement_api_packages + ['python3-mod_wsgi'] %}
{% else %}
{% set placement_api_packages = placement_api_packages + ['mod_wsgi'] %}
{% endif %}
{{ macros.install_packages(placement_api_packages | customizable("packages")) }}
RUN sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf \

11
docker/rally/Dockerfile.j2

@ -11,9 +11,18 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% if base_package_type == 'rpm' %}
{% set rally_packages = [
'openstack-rally',
'openstack-rally'
] %}
{% if distro_python_version.startswith('3') %}
{% set rally_packages = rally_packages + [
'python3-os-testr'
] %}
{% else %}
{% set rally_packages = rally_packages + [
'python-os-testr'
] %}
{% endif %}
{% elif base_package_type == 'deb' %}
{% set rally_packages = [
'python-os-testr',

11
docker/sensu/sensu-client/Dockerfile.j2

@ -15,9 +15,18 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
'mariadb',
'ntp',
'osops-tools-monitoring-oschecks',
'python-pymongo',
'ruby-devel'
] %}
{% if distro_python_version.startswith('3') %}
{% set sensu_client_packages = sensu_client_packages + [
'python3-pymongo'
] %}
{% else %}
{% set sensu_client_packages = sensu_client_packages + [
'python-pymongo'
] %}
{% endif %}
{% elif base_package_type == 'deb' %}
{% set sensu_client_packages = [
'build-essential',

10
docker/swift/swift-proxy-server/Dockerfile.j2

@ -8,9 +8,17 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% if install_type == 'binary' %}
{% if base_package_type == 'rpm' %}
{% set swift_proxy_server_packages = [
'openstack-swift-proxy',
'openstack-swift-proxy'
] %}
{% if distro_python_version.startswith('3') %}
{% set swift_proxy_server_packages = swift_proxy_server_packages + [
'python3-ceilometermiddleware'
] %}
{% else %}
{% set swift_proxy_server_packages = swift_proxy_server_packages + [
'python-ceilometermiddleware'
] %}
{% endif %}
{% elif base_package_type == 'deb' %}
{% set swift_proxy_server_packages = [
'swift-proxy',

10
docker/tacker/tacker-base/Dockerfile.j2

@ -11,9 +11,17 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% if base_package_type == 'rpm' %}
{% set tacker_base_packages = [
'openstack-tacker-common',
'openstack-tacker-common'
] %}
{% if distro_python_version.startswith('3') %}
{% set tacker_base_packages = tacker_base_packages + [
'python3-networking-sfc'
] %}
{% else %}
{% set tacker_base_packages = tacker_base_packages + [
'python-networking-sfc'
] %}