diff --git a/doc/source/admin/image-building.rst b/doc/source/admin/image-building.rst index 3ce4eabc48..d1f249ebd2 100644 --- a/doc/source/admin/image-building.rst +++ b/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`` diff --git a/docker/aodh/aodh-base/Dockerfile.j2 b/docker/aodh/aodh-base/Dockerfile.j2 index a54cbd76be..6c5d7f5710 100644 --- a/docker/aodh/aodh-base/Dockerfile.j2 +++ b/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 \ diff --git a/docker/barbican/barbican-api/Dockerfile.j2 b/docker/barbican/barbican-api/Dockerfile.j2 index fce0e001b8..e25e6fb058 100644 --- a/docker/barbican/barbican-api/Dockerfile.j2 +++ b/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")) }} diff --git a/docker/barbican/barbican-base/Dockerfile.j2 b/docker/barbican/barbican-base/Dockerfile.j2 index 15ce1559a3..4d6843d654 100644 --- a/docker/barbican/barbican-base/Dockerfile.j2 +++ b/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 %} diff --git a/docker/base/Dockerfile.j2 b/docker/base/Dockerfile.j2 index 98e8ff1326..5eeec4e09d 100644 --- a/docker/base/Dockerfile.j2 +++ b/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 %} diff --git a/docker/ceilometer/ceilometer-base/Dockerfile.j2 b/docker/ceilometer/ceilometer-base/Dockerfile.j2 index 8182ba0451..4b004c9452 100644 --- a/docker/ceilometer/ceilometer-base/Dockerfile.j2 +++ b/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', diff --git a/docker/cinder/cinder-api/Dockerfile.j2 b/docker/cinder/cinder-api/Dockerfile.j2 index ddc493d5b8..442e02bded 100644 --- a/docker/cinder/cinder-api/Dockerfile.j2 +++ b/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 diff --git a/docker/cinder/cinder-base/Dockerfile.j2 b/docker/cinder/cinder-base/Dockerfile.j2 index d8becd4f63..ba9d638f45 100644 --- a/docker/cinder/cinder-base/Dockerfile.j2 +++ b/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', diff --git a/docker/cinder/cinder-volume/Dockerfile.j2 b/docker/cinder/cinder-volume/Dockerfile.j2 index dc505e5eb4..88d7b9be73 100644 --- a/docker/cinder/cinder-volume/Dockerfile.j2 +++ b/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 %} diff --git a/docker/cloudkitty/cloudkitty-api/Dockerfile.j2 b/docker/cloudkitty/cloudkitty-api/Dockerfile.j2 index 148ce98716..95656dbc7e 100644 --- a/docker/cloudkitty/cloudkitty-api/Dockerfile.j2 +++ b/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 diff --git a/docker/collectd/Dockerfile.j2 b/docker/collectd/Dockerfile.j2 index 072b038fed..6747edd1fd 100644 --- a/docker/collectd/Dockerfile.j2 +++ b/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 diff --git a/docker/designate/designate-base/Dockerfile.j2 b/docker/designate/designate-base/Dockerfile.j2 index 49fd8dfe4e..86d3c3eb18 100644 --- a/docker/designate/designate-base/Dockerfile.j2 +++ b/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' %} diff --git a/docker/designate/designate-sink/Dockerfile.j2 b/docker/designate/designate-sink/Dockerfile.j2 index 0afbd1604c..ea194c4db5 100644 --- a/docker/designate/designate-sink/Dockerfile.j2 +++ b/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', diff --git a/docker/freezer/freezer-api/Dockerfile.j2 b/docker/freezer/freezer-api/Dockerfile.j2 index 964de809ee..9bef6e1c72 100644 --- a/docker/freezer/freezer-api/Dockerfile.j2 +++ b/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")) }} diff --git a/docker/glance/glance-base/Dockerfile.j2 b/docker/glance/glance-base/Dockerfile.j2 index 06f8947c96..4c8dca9bb0 100644 --- a/docker/glance/glance-base/Dockerfile.j2 +++ b/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', diff --git a/docker/gnocchi/gnocchi-base/Dockerfile.j2 b/docker/gnocchi/gnocchi-base/Dockerfile.j2 index 1d3432bc8e..4576982607 100644 --- a/docker/gnocchi/gnocchi-base/Dockerfile.j2 +++ b/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 diff --git a/docker/heat/heat-base/Dockerfile.j2 b/docker/heat/heat-base/Dockerfile.j2 index a5e2405ac5..2a73abbfd6 100644 --- a/docker/heat/heat-base/Dockerfile.j2 +++ b/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 diff --git a/docker/heat/heat-engine/Dockerfile.j2 b/docker/heat/heat-engine/Dockerfile.j2 index 56e7b51441..524bf2fc3f 100644 --- a/docker/heat/heat-engine/Dockerfile.j2 +++ b/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 %} diff --git a/docker/horizon/Dockerfile.j2 b/docker/horizon/Dockerfile.j2 index f2f3412024..f69ed479c2 100644 --- a/docker/horizon/Dockerfile.j2 +++ b/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")) }} diff --git a/docker/ironic/ironic-api/Dockerfile.j2 b/docker/ironic/ironic-api/Dockerfile.j2 index f7d391cb29..bd86671929 100644 --- a/docker/ironic/ironic-api/Dockerfile.j2 +++ b/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', diff --git a/docker/ironic/ironic-conductor/Dockerfile.j2 b/docker/ironic/ironic-conductor/Dockerfile.j2 index 720eb4bfd5..811a8102dc 100644 --- a/docker/ironic/ironic-conductor/Dockerfile.j2 +++ b/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' diff --git a/docker/ironic/ironic-pxe/Dockerfile.j2 b/docker/ironic/ironic-pxe/Dockerfile.j2 index 3b6937917b..00a7e77ec8 100644 --- a/docker/ironic/ironic-pxe/Dockerfile.j2 +++ b/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 + [ diff --git a/docker/iscsid/Dockerfile.j2 b/docker/iscsid/Dockerfile.j2 index 174ee2f11f..d4b692d1a8 100644 --- a/docker/iscsid/Dockerfile.j2 +++ b/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', diff --git a/docker/keystone/keystone-base/Dockerfile.j2 b/docker/keystone/keystone-base/Dockerfile.j2 index a9160478af..85d98a8347 100644 --- a/docker/keystone/keystone-base/Dockerfile.j2 +++ b/docker/keystone/keystone-base/Dockerfile.j2 @@ -14,12 +14,23 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build 'mod_auth_mellon', 'mod_auth_openidc', 'mod_ssl', - 'mod_wsgi', - 'openstack-keystone', - 'python2-ldappool', - 'python-keystoneclient' + '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', + 'python-keystoneclient', + 'python2-ldappool' + ] %} + {% endif %} + {{ macros.install_packages(keystone_base_packages | customizable("packages")) }} RUN mkdir -p /var/www/cgi-bin/keystone \ && cp -a /usr/bin/keystone-wsgi-public /var/www/cgi-bin/keystone/main \ @@ -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 diff --git a/docker/keystone/keystone/Dockerfile.j2 b/docker/keystone/keystone/Dockerfile.j2 index bbcea3c630..2dbe71ad02 100644 --- a/docker/keystone/keystone/Dockerfile.j2 +++ b/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', diff --git a/docker/macros.j2 b/docker/macros.j2 index 419fa0f4fa..ee1ff93c49 100644 --- a/docker/macros.j2 +++ b/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 diff --git a/docker/manila/manila-api/Dockerfile.j2 b/docker/manila/manila-api/Dockerfile.j2 index c95d6eaeee..8e6f300800 100644 --- a/docker/manila/manila-api/Dockerfile.j2 +++ b/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 diff --git a/docker/mistral/mistral-api/Dockerfile.j2 b/docker/mistral/mistral-api/Dockerfile.j2 index d890e84a0f..809dc38145 100644 --- a/docker/mistral/mistral-api/Dockerfile.j2 +++ b/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 diff --git a/docker/monasca/monasca-base/Dockerfile.j2 b/docker/monasca/monasca-base/Dockerfile.j2 index 6adc1a91b5..37baeade8f 100644 --- a/docker/monasca/monasca-base/Dockerfile.j2 +++ b/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 \ diff --git a/docker/networking-baremetal/ironic-neutron-agent/Dockerfile.j2 b/docker/networking-baremetal/ironic-neutron-agent/Dockerfile.j2 index 977e01b8d3..179e41b09b 100644 --- a/docker/networking-baremetal/ironic-neutron-agent/Dockerfile.j2 +++ b/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 }}' \ diff --git a/docker/neutron/neutron-base/Dockerfile.j2 b/docker/neutron/neutron-base/Dockerfile.j2 index 2b7be6256e..b4d4f81da7 100644 --- a/docker/neutron/neutron-base/Dockerfile.j2 +++ b/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' %} diff --git a/docker/neutron/neutron-metadata-agent-ovn/Dockerfile.j2 b/docker/neutron/neutron-metadata-agent-ovn/Dockerfile.j2 index b5daf31651..edfcc73d58 100644 --- a/docker/neutron/neutron-metadata-agent-ovn/Dockerfile.j2 +++ b/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' diff --git a/docker/neutron/neutron-server-opendaylight/Dockerfile.j2 b/docker/neutron/neutron-server-opendaylight/Dockerfile.j2 index 8cabc0a3c9..287274a5e7 100644 --- a/docker/neutron/neutron-server-opendaylight/Dockerfile.j2 +++ b/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 = [ - 'python-networking-odl', - 'python-networking-bgpvpn', - 'python-networking-l2gw', - 'python-networking-bgpvpn-heat' + 'python3-networking-bgpvpn', + 'python3-networking-bgpvpn-heat', + 'python3-networking-l2gw', + 'python3-networking-odl' ] %} + {% else %} + {% set neutron_server_opendaylight_packages = [ + 'python-networking-bgpvpn', + 'python-networking-bgpvpn-heat', + 'python-networking-l2gw', + '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 %} diff --git a/docker/neutron/neutron-server-ovn/Dockerfile.j2 b/docker/neutron/neutron-server-ovn/Dockerfile.j2 index 24525ff46c..6e2b10cb06 100644 --- a/docker/neutron/neutron-server-ovn/Dockerfile.j2 +++ b/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', diff --git a/docker/neutron/neutron-server/Dockerfile.j2 b/docker/neutron/neutron-server/Dockerfile.j2 index 0ec432045c..6404a79d94 100644 --- a/docker/neutron/neutron-server/Dockerfile.j2 +++ b/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 = [ diff --git a/docker/nova/nova-api/Dockerfile.j2 b/docker/nova/nova-api/Dockerfile.j2 index 2bd2a0cfbd..9024d93871 100644 --- a/docker/nova/nova-api/Dockerfile.j2 +++ b/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 diff --git a/docker/nova/nova-base/Dockerfile.j2 b/docker/nova/nova-base/Dockerfile.j2 index cfbb5e5bba..f64664f65f 100644 --- a/docker/nova/nova-base/Dockerfile.j2 +++ b/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') %} diff --git a/docker/nova/nova-compute/Dockerfile.j2 b/docker/nova/nova-compute/Dockerfile.j2 index 03741d034d..8f58e2b74f 100644 --- a/docker/nova/nova-compute/Dockerfile.j2 +++ b/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' %} diff --git a/docker/nova/nova-placement-api/Dockerfile.j2 b/docker/nova/nova-placement-api/Dockerfile.j2 index ef76e4fb98..5c37e0a231 100644 --- a/docker/nova/nova-placement-api/Dockerfile.j2 +++ b/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 \ diff --git a/docker/nova/nova-spicehtml5proxy/Dockerfile.j2 b/docker/nova/nova-spicehtml5proxy/Dockerfile.j2 index 8003ac9b70..57b4397667 100644 --- a/docker/nova/nova-spicehtml5proxy/Dockerfile.j2 +++ b/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 = [ diff --git a/docker/novajoin/novajoin-base/Dockerfile.j2 b/docker/novajoin/novajoin-base/Dockerfile.j2 index 3495d0ef9c..6c382574ab 100644 --- a/docker/novajoin/novajoin-base/Dockerfile.j2 +++ b/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 }}' \ diff --git a/docker/octavia/octavia-api/Dockerfile.j2 b/docker/octavia/octavia-api/Dockerfile.j2 index 6c1666c55e..cebdd2e547 100644 --- a/docker/octavia/octavia-api/Dockerfile.j2 +++ b/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', diff --git a/docker/openstack-base/Dockerfile.j2 b/docker/openstack-base/Dockerfile.j2 index 4f66271977..493cbd8ced 100644 --- a/docker/openstack-base/Dockerfile.j2 +++ b/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' %} diff --git a/docker/openvswitch/openvswitch-base/Dockerfile.j2 b/docker/openvswitch/openvswitch-base/Dockerfile.j2 index 1b0a7c66c4..439eb12ac5 100644 --- a/docker/openvswitch/openvswitch-base/Dockerfile.j2 +++ b/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', diff --git a/docker/panko/panko-api/Dockerfile.j2 b/docker/panko/panko-api/Dockerfile.j2 index 9e3a061672..ca0db74eeb 100644 --- a/docker/panko/panko-api/Dockerfile.j2 +++ b/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', diff --git a/docker/panko/panko-base/Dockerfile.j2 b/docker/panko/panko-base/Dockerfile.j2 index 1c8757f30b..8111c616c8 100644 --- a/docker/panko/panko-base/Dockerfile.j2 +++ b/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', - 'mod_wsgi', - 'openstack-panko-common', - 'python2-ldappool' + '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', + '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 diff --git a/docker/placement/placement-api/Dockerfile.j2 b/docker/placement/placement-api/Dockerfile.j2 index b573a36d74..4684284536 100644 --- a/docker/placement/placement-api/Dockerfile.j2 +++ b/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 \ diff --git a/docker/rally/Dockerfile.j2 b/docker/rally/Dockerfile.j2 index 2b6b6f8f07..a192a83827 100644 --- a/docker/rally/Dockerfile.j2 +++ b/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', diff --git a/docker/sensu/sensu-client/Dockerfile.j2 b/docker/sensu/sensu-client/Dockerfile.j2 index dae01dcaa0..2a3689c25e 100644 --- a/docker/sensu/sensu-client/Dockerfile.j2 +++ b/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', diff --git a/docker/swift/swift-proxy-server/Dockerfile.j2 b/docker/swift/swift-proxy-server/Dockerfile.j2 index 4cfe18d2b0..1ff9ac591d 100644 --- a/docker/swift/swift-proxy-server/Dockerfile.j2 +++ b/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', diff --git a/docker/tacker/tacker-base/Dockerfile.j2 b/docker/tacker/tacker-base/Dockerfile.j2 index 5a3a8c8708..5f3e2e1de7 100644 --- a/docker/tacker/tacker-base/Dockerfile.j2 +++ b/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' ] %} + {% endif %} {% elif base_package_type == 'deb' %} diff --git a/docker/telegraf/Dockerfile.j2 b/docker/telegraf/Dockerfile.j2 index ded397ae1f..4af2a7e334 100644 --- a/docker/telegraf/Dockerfile.j2 +++ b/docker/telegraf/Dockerfile.j2 @@ -15,9 +15,17 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {% if base_package_type == 'rpm' %} {% set telegraf_packages = telegraf_packages + [ - 'collectd', + 'collectd' + ] %} + {% if distro_python_version.startswith('3') %} + {% set telegraf_packages = telegraf_packages + [ + 'python3-pip' + ] %} + {% else %} + {% set telegraf_packages = telegraf_packages + [ 'python2-pip' ] %} + {% endif %} {% elif base_package_type == 'deb' %} {% set telegraf_packages = telegraf_packages + [ 'collectd-core', diff --git a/docker/tripleoclient/Dockerfile.j2 b/docker/tripleoclient/Dockerfile.j2 index f4ad80d008..b47eff638b 100644 --- a/docker/tripleoclient/Dockerfile.j2 +++ b/docker/tripleoclient/Dockerfile.j2 @@ -7,18 +7,27 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {% if install_type == 'binary' %} {% if base_package_type == 'rpm' %} - {% set tripleoclient_packages = [ + 'e2fsprogs', + 'git', + 'openssh-clients', + 'openstack-tripleo-validations', + 'puppet-tripleo', + 'xfsprogs' + ] %} + + {% if distro_python_version.startswith('3') %} + {% set tripleoclient_packages = tripleoclient_packages + [ + 'python3-openstackclient', + 'python3-tripleoclient' + ] %} + {% else %} + {% set tripleoclient_packages = tripleoclient_packages + [ 'python-ipaddr', 'python-openstackclient', - 'python-tripleoclient', - 'puppet-tripleo', - 'openstack-tripleo-validations', - 'e2fsprogs', - 'xfsprogs', - 'openssh-clients', - 'git' + 'python-tripleoclient' ] %} + {% endif %} {{ macros.install_packages(tripleoclient_packages | customizable("packages")) }} diff --git a/docker/vitrage/vitrage-api/Dockerfile.j2 b/docker/vitrage/vitrage-api/Dockerfile.j2 index e9b9a9fe97..169f75fdf8 100644 --- a/docker/vitrage/vitrage-api/Dockerfile.j2 +++ b/docker/vitrage/vitrage-api/Dockerfile.j2 @@ -11,12 +11,22 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {% set vitrage_api_packages = [ 'httpd', - 'mod_wsgi', 'mod_ssl', - 'python2-ldappool', 'openstack-vitrage-api' ] %} + {% if distro_python_version.startswith('3') %} + {% set vitrage_api_packages = vitrage_api_packages + [ + 'python3-ldappool', + 'python3-mod_wsgi' + ] %} + {% else %} + {% set vitrage_api_packages = vitrage_api_packages + [ + 'mod_wsgi', + 'python2-ldappool' + ] %} + {% endif %} + {{ macros.install_packages(vitrage_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 diff --git a/docker/vitrage/vitrage-base/Dockerfile.j2 b/docker/vitrage/vitrage-base/Dockerfile.j2 index fb9acf2ddb..2e60607e0e 100644 --- a/docker/vitrage/vitrage-base/Dockerfile.j2 +++ b/docker/vitrage/vitrage-base/Dockerfile.j2 @@ -33,10 +33,20 @@ RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ {% set vitrage_base_packages = [ 'httpd', - 'mod_wsgi', 'mod_ssl', + ] %} + {% if distro_python_version.startswith('3') %} + {% set vitrage_base_packages = vitrage_base_packages + [ + 'python3-ldappool', + 'python3-mod_wsgi' + ] %} + {% else %} + {% set vitrage_base_packages = vitrage_base_packages + [ + 'mod_wsgi', 'python2-ldappool' ] %} + {% endif %} + {{ macros.install_packages(vitrage_base_packages | customizable("packages")) }} RUN sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf \ diff --git a/docker/zaqar/zaqar-base/Dockerfile.j2 b/docker/zaqar/zaqar-base/Dockerfile.j2 index c75f7f39a5..d8f42752d1 100644 --- a/docker/zaqar/zaqar-base/Dockerfile.j2 +++ b/docker/zaqar/zaqar-base/Dockerfile.j2 @@ -14,14 +14,24 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build 'openstack-zaqar', 'httpd', 'mod_ssl', + ] %} + + {% if distro_python_version.startswith('3') %} + {% set zaqar_base_packages = zaqar_base_packages + [ + 'python3-ldappool', + 'python3-mod_wsgi' + ] %} + {% else %} + {% set zaqar_base_packages = zaqar_base_packages + [ 'mod_wsgi', 'python2-ldappool' ] %} + {% endif %} {{ macros.install_packages(zaqar_base_packages | customizable("packages")) }} \ && mkdir -p /var/www/cgi-bin/zaqar \ && chown -R zaqar: /var/www/cgi-bin/zaqar \ - && cp -a /usr/lib/python2.7/site-packages/zaqar/transport/wsgi/app.py /var/www/cgi-bin/zaqar/ \ + && cp -a /usr/lib/python{{ distro_python_version }}/site-packages/zaqar/transport/wsgi/app.py /var/www/cgi-bin/zaqar/ \ && 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 @@ -46,9 +56,18 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build {% set zaqar_base_packages = [ 'httpd', 'mod_ssl', + ] %} + {% if distro_python_version.startswith('3') %} + {% set zaqar_base_packages = zaqar_base_packages + [ + 'python3-ldappool', + 'python3-mod_wsgi' + ] %} + {% else %} + {% set zaqar_base_packages = zaqar_base_packages + [ 'mod_wsgi', 'python2-ldappool' ] %} + {% endif %} {{ macros.install_packages(zaqar_base_packages | customizable("packages")) }} \ && sed -i -r 's,^(Listen 80),#\1,' /etc/httpd/conf/httpd.conf \ diff --git a/docker/zun/zun-base/Dockerfile.j2 b/docker/zun/zun-base/Dockerfile.j2 index f60ddb1b91..4bb10bcd39 100644 --- a/docker/zun/zun-base/Dockerfile.j2 +++ b/docker/zun/zun-base/Dockerfile.j2 @@ -18,11 +18,20 @@ RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \ {% set zun_base_packages = [ 'httpd', - 'mod_wsgi', 'mod_ssl', 'numactl', + ] %} + {% if distro_python_version.startswith('3') %} + {% set zun_base_packages = zun_base_packages + [ + 'python3-ldappool', + 'python3-mod_wsgi' + ] %} + {% else %} + {% set zun_base_packages = zun_base_packages + [ + 'mod_wsgi', 'python2-ldappool' ] %} + {% endif %} {{ macros.install_packages(zun_base_packages | customizable("packages")) }} RUN mkdir -p /var/www/cgi-bin/zun \ diff --git a/releasenotes/notes/rhel-python3-support-1078f829dc42c4d6.yaml b/releasenotes/notes/rhel-python3-support-1078f829dc42c4d6.yaml new file mode 100644 index 0000000000..4c27f1a83d --- /dev/null +++ b/releasenotes/notes/rhel-python3-support-1078f829dc42c4d6.yaml @@ -0,0 +1,6 @@ +--- +features: + - | + Added initial support for python3 packages for RHEL systems provided by + RDO. To enable the use of the python3 packages, set distro_python3 to True + and use a python 3.6 RHEL compatible base.