Browse Source

Remove support for OracleLinux

We have agreed to remove support for Oracle Linux.

http://lists.openstack.org/pipermail/openstack-discuss/2019-June/006896.html

Change-Id: I961dfba1aeef2c509ecdaf376dfe6928926ffb39
Depends-On: https://review.opendev.org/682858
changes/65/682865/2
Mark Goddard 3 years ago
parent
commit
fa8e174be6
  1. 4
      contrib/template-override/opendaylight-template-overrides.j2
  2. 6
      contrib/template-override/ovs-dpdk.j2
  3. 1
      doc/source/admin/image-building.rst
  4. 3
      doc/source/admin/template-override/ovs-dpdk.rst
  5. 34
      docker/base/Dockerfile.j2
  6. 6
      docker/base/oraclelinux-extras.repo
  7. 2
      docker/cinder/cinder-base/Dockerfile.j2
  8. 8
      docker/cyborg/cyborg-api/Dockerfile.j2
  9. 2
      docker/glance/glance-api/Dockerfile.j2
  10. 2
      docker/ironic/ironic-conductor/Dockerfile.j2
  11. 4
      docker/ironic/ironic-pxe/extend_start.sh
  12. 5
      docker/keystone/keystone/Dockerfile.j2
  13. 2
      docker/macros.j2
  14. 4
      docker/masakari/masakari-monitors/Dockerfile.j2
  15. 8
      docker/nova/nova-base/Dockerfile.j2
  16. 2
      docker/nova/nova-libvirt/Dockerfile.j2
  17. 2
      docker/ovsdpdk/ovsdpdk/Dockerfile.j2
  18. 4
      docker/placement/placement-base/Dockerfile.j2
  19. 2
      docker/sensu/sensu-client/Dockerfile.j2
  20. 2
      docker/sensu/sensu-server/Dockerfile.j2
  21. 4
      kolla/common/config.py
  22. 9
      kolla/image/build.py
  23. 2
      kolla/tests/test_build.py
  24. 4
      releasenotes/notes/remove-oraclelinux-support-109ce54b1952ec3a.yaml
  25. 2
      tests/files/process_build_logs.py
  26. 30
      tests/test_build.py
  27. 2
      tools/validate-binary-build.sh
  28. 20
      tox.ini

4
contrib/template-override/opendaylight-template-overrides.j2

@ -1,9 +1,9 @@
{% extends parent_template %}
{% block opendaylight_install %}
{% if base_distro in ['centos', 'oraclelinux', 'rhel'] %}
{% if base_package_type == 'rpm' %}
{% set opendaylight_packages = ['java-1.8.0-openjdk'] %}
{% elif base_distro in ['ubuntu', 'debian'] %}
{% elif base_package_type == 'deb' %}
{% set opendaylight_packages = ['openjdk-8-jre'] %}
{% endif %}

6
contrib/template-override/ovs-dpdk.j2

@ -4,7 +4,7 @@
# install ovs from source
{% if base_distro in ['centos', 'oraclelinux', 'rhel'] %}
{% if base_package_type == 'rpm' %}
{% set ovs_dpdk_packages = [
'kernel-devel-$(uname -r)',
'redhat-lsb-core',
@ -22,7 +22,7 @@
'crudini'
] %}
{% elif base_distro in [ 'debian', 'ubuntu' ] %}
{% elif base_package_type == 'deb' %}
{% set ovs_dpdk_packages = [
'linux-headers-$(uname -r)',
@ -46,7 +46,7 @@
{{ macros.install_packages(ovs_dpdk_packages | customizable("packages")) }}
{% if base_distro in ['centos', 'oraclelinux', 'rhel'] %}
{% if base_package_type == 'rpm' %}
RUN mkdir -p /lib/modules/$(uname -r) \
&& ln -s /usr/src/kernels/$(uname -r) /lib/modules/$(uname -r)/build
{% endif %}

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

@ -71,7 +71,6 @@ There are following distros available for building images:
- centos
- debian
- oraclelinux
- rhel
- ubuntu

3
doc/source/admin/template-override/ovs-dpdk.rst

@ -1,8 +1,7 @@
OVS-DPDK Source build
=====================
CentOS and Oracle Linux currently do not provide packages
for ovs with dpdk.
CentOS currently does not provide packages for ovs with dpdk.
The Ubuntu packages do not support UIO based drivers.
To use the uio_pci_generic driver on Ubuntu a source build is required.

34
docker/base/Dockerfile.j2

@ -45,15 +45,6 @@ RUN CURRENT_DISTRO_RELEASE=$(awk '{match($0, /[0-9]+/,version)}END{print version
{% block base_yum_conf %}
{% if base_distro in ['oraclelinux'] %}
{% set centos_contentdir = 'centos' %}
{% if base_arch in ['aarch64', 'ppc64le'] %}
{% set centos_contentdir = 'altarch' %}
{% endif %}
RUN echo {{ centos_contentdir }} >> /etc/yum/vars/contentdir
{% endif %}
{% if distro_package_manager == 'dnf' %}
COPY dnf.conf /etc/dnf/dnf.conf
{% else %}
@ -200,31 +191,6 @@ RUN yum-config-manager --enable rhel-7-server-optional-rpms \
{% endif %}
{# Endif for base_distro RHEL #}
{% if base_distro == 'oraclelinux' %}
{% block base_oraclelinux_package_installation %}
COPY oraclelinux-extras.repo /etc/yum.repos.d/oraclelinux-extras.repo
RUN {{ macros.install_packages( ['tar', 'yum-utils', 'https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm' ], chain=True, clean=False) }} \
&& rpm -Uvh --nodeps \
http://mirror.centos.org/centos-7/7/extras/x86_64/Packages/centos-release-nfs-ganesha28-1.0-2.el7.centos.noarch.rpm \
http://mirror.centos.org/centos-7/7/extras/x86_64/Packages/centos-release-ceph-nautilus-1.2-2.el7.centos.noarch.rpm \
http://mirror.centos.org/centos-7/7/extras/x86_64/Packages/centos-release-opstools-1-8.el7.noarch.rpm \
http://mirror.centos.org/centos-7/7/extras/x86_64/Packages/centos-release-qemu-ev-1.0-3.el7.centos.noarch.rpm \
http://mirror.centos.org/centos-7/7/extras/x86_64/Packages/centos-release-virt-common-1-1.el7.centos.noarch.rpm \
http://mirror.centos.org/centos-7/7/extras/x86_64/Packages/centos-release-storage-common-2-2.el7.centos.noarch.rpm \
&& sed -i 's/\$releasever/7/g' /etc/yum.repos.d/CentOS-*.repo \
&& rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 \
&& rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-OpsTools \
&& rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Storage \
&& rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Virtualization \
&& yum-config-manager --enable ol7_optional_latest ol7_addons \
&& {{ macros.install_packages( ['yum-plugin-priorities' ], chain=True, clean=False) }} \
&& {{ macros.rpm_security_update(clean_package_cache) }}
{% endblock %}
{% endif %}
{# Endif for base_distro oraclelinux #}
#### END REPO ENABLEMENT
{# We are back to the basic if conditional here which is:

6
docker/base/oraclelinux-extras.repo

@ -1,6 +0,0 @@
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=7&arch=$basearch&repo=extras&infra=$infra
#baseurl=http://mirror.centos.org/centos/7/extras/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7

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

@ -48,7 +48,7 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
'lvm2',
'cryptsetup',
] %}
{% if base_distro in ['centos', 'oraclelinux'] %}
{% if base_distro in ['centos'] %}
{% set cinder_base_packages = cinder_base_packages + [
'qemu-img-ev'
] %}

8
docker/cyborg/cyborg-api/Dockerfile.j2

@ -10,12 +10,12 @@ RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \
&& /bin/false
{% elif install_type == 'source' %}
{% if base_distro in ['centos', 'oraclelinux', 'rhel'] %}
{% if base_package_type == 'rpm' %}
{% set cyborg_api_packages = [
'mod_ssl',
'mod_wsgi'
] %}
{% elif base_distro in ['debian', 'ubuntu'] %}
{% elif base_package_type == 'deb' %}
{% set cyborg_api_packages = [
'apache2',
'libapache2-mod-wsgi'
@ -26,11 +26,11 @@ RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \
{{ macros.install_packages(cyborg_api_packages | customizable("packages")) }}
{% if base_distro in ['centos', 'oraclelinux', 'rhel'] %}
{% if base_package_type == 'rpm' %}
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
{% elif base_distro in ['debian', 'ubuntu'] %}
{% elif base_package_type == 'deb' %}
RUN echo > /etc/apache2/ports.conf
{% endif %}

2
docker/glance/glance-api/Dockerfile.j2

@ -5,7 +5,7 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% import "macros.j2" as macros with context %}
{% if base_distro in ['centos', 'oraclelinux'] %}
{% if base_distro in ['centos'] %}
{% set glance_api_packages = ['qemu-img-ev'] %}
{% elif base_distro == 'rhel' %}
{% set glance_api_packages = ['qemu-img'] %}

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

@ -47,7 +47,7 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
'systemd-python'
] %}
{% endif %}
{% if base_distro in ['centos', 'oraclelinux'] %}
{% if base_distro in ['centos'] %}
{% set ironic_conductor_packages = ironic_conductor_packages + [
'qemu-img-ev'
] %}

4
docker/ironic/ironic-pxe/extend_start.sh

@ -15,7 +15,7 @@ function prepare_pxe {
function prepare_ipxe {
if [[ "${KOLLA_BASE_DISTRO}" =~ debian|ubuntu ]]; then
cp /usr/lib/ipxe/{undionly.kpxe,ipxe.efi} /tftpboot
elif [[ "${KOLLA_BASE_DISTRO}" =~ centos|oraclelinux|rhel ]]; then
elif [[ "${KOLLA_BASE_DISTRO}" =~ centos|rhel ]]; then
cp /usr/share/ipxe/{undionly.kpxe,ipxe.efi} /tftpboot
fi
}
@ -35,7 +35,7 @@ if [[ "${ironic_arch}" =~ aarch64 ]]; then
if [[ "${KOLLA_BASE_DISTRO}" =~ debian|ubuntu ]]; then
grub-mkimage -v -o /tftpboot/grubaa64.efi -O arm64-efi -p "grub" $modules
elif [[ "${KOLLA_BASE_DISTRO}" =~ centos|oraclelinux|rhel ]]; then
elif [[ "${KOLLA_BASE_DISTRO}" =~ centos|rhel ]]; then
grub2-mkimage -v -o /tftpboot/grubaa64.efi -O arm64-efi -p "EFI/centos" $modules
fi
fi

5
docker/keystone/keystone/Dockerfile.j2

@ -10,8 +10,7 @@ COPY extend_start.sh /usr/local/bin/kolla_extend_start
RUN chmod 755 /usr/local/bin/kolla_extend_start /usr/local/bin/kolla_keystone_bootstrap
{% if install_type == 'binary' %}
# TODO: oraclelinux fails to install these packages. Should be added when this is fixed.
{% if base_package_type == 'rpm' and base_distro != 'oraclelinux' %}
{% if base_package_type == 'rpm' %}
{% set keystone_packages = [
'mod_auth_gssapi'
] %}
@ -33,7 +32,7 @@ RUN chmod 755 /usr/local/bin/kolla_extend_start /usr/local/bin/kolla_keystone_bo
{% endif %}
{{ macros.install_packages(keystone_packages | customizable("packages")) }}
{% elif install_type == 'source' %}
{% if base_package_type == 'rpm' and base_distro != 'oraclelinux' %}
{% if base_package_type == 'rpm' %}
{% set keystone_packages = [
'mod_auth_gssapi',
] %}

2
docker/macros.j2

@ -108,7 +108,7 @@ RUN apt-get update \
{% macro install_fluent_plugins(plugins, chain=False) -%}
{% if plugins is defined and plugins|length > 0 -%}
{% if not chain -%} RUN {% endif -%}
{%- if base_arch == 'x86_64' and base_distro in ['centos', 'oraclelinux', 'rhel', 'ubuntu'] -%}
{%- if base_arch == 'x86_64' and base_distro in ['centos', 'rhel', 'ubuntu'] -%}
ulimit -n 65536 && td-agent-gem install {{ plugins | join(' ') }}
{%- else -%}
ulimit -n 65536 && gem install --minimal-deps {{ plugins | join(' ') }}

4
docker/masakari/masakari-monitors/Dockerfile.j2

@ -14,7 +14,7 @@ RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \
{% elif install_type == 'source' %}
{% if base_distro in ['centos', 'oraclelinux', 'rhel'] %}
{% if base_package_type == 'rpm' %}
{% set masakari_monitors_packages = [
'libvirt-devel',
@ -22,7 +22,7 @@ RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \
'tcpdump',
] %}
{% elif base_distro in ['debian', 'ubuntu'] %}
{% elif base_package_type == 'deb' %}
{% set masakari_monitors_packages = [
'libvirt-dev',

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

@ -16,13 +16,13 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
] %}
{% if base_arch == 'x86_64' %}
{% if base_distro in ['centos', 'oraclelinux', 'rhel'] and base_distro_tag.startswith('7') %}
{% if base_distro_tag.startswith('7') %}
{% set nova_base_packages = nova_base_packages + [
'OVMF'
] %}
{% endif %}
{% elif base_arch == 'aarch64' %}
{% if base_distro in ['centos', 'oraclelinux', 'rhel'] and base_distro_tag.startswith('7') %}
{% if base_distro_tag.startswith('7') %}
{% set nova_base_packages = nova_base_packages + [
'AAVMF'
] %}
@ -61,13 +61,13 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
'openvswitch'
] %}
{% if base_arch == 'x86_64' %}
{% if base_distro in ['centos', 'oraclelinux', 'rhel'] and base_distro_tag.startswith('7') %}
{% if base_distro_tag.startswith('7') %}
{% set nova_base_packages = nova_base_packages + [
'OVMF'
] %}
{% endif %}
{% elif base_arch == 'aarch64' %}
{% if base_distro in ['centos', 'oraclelinux', 'rhel'] and base_distro_tag.startswith('7') %}
{% if base_distro_tag.startswith('7') %}
{% set nova_base_packages = nova_base_packages + [
'AAVMF'
] %}

2
docker/nova/nova-libvirt/Dockerfile.j2

@ -21,7 +21,7 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
'openvswitch',
'trousers'
] %}
{% if base_distro in ['centos', 'oraclelinux'] %}
{% if base_distro in ['centos'] %}
{% set nova_libvirt_packages = nova_libvirt_packages + [
'qemu-kvm-ev'
] %}

2
docker/ovsdpdk/ovsdpdk/Dockerfile.j2

@ -9,7 +9,7 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% if base_package_type == 'rpm' %}
#TODO(sean-k-mooney) create repo via open suse build system to package
# for centos/oraclelinux/rhel distros.
# for centos/rhel distros.
RUN echo '{{ install_type }} not yet available for {{ base_distro }}' \
&& /bin/false

4
docker/placement/placement-base/Dockerfile.j2

@ -31,13 +31,13 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
{% elif install_type == 'source' %}
{% if base_distro in ['centos', 'oraclelinux', 'rhel'] %}
{% if base_package_type == 'rpm' %}
{% set placement_base_packages = [
'mariadb',
] %}
{% elif base_distro in ['debian', 'ubuntu'] %}
{% elif base_package_type == 'deb' %}
{% set placement_base_packages = [
'mariadb-client',

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

@ -59,7 +59,7 @@ RUN echo '{{ image_name }} not yet available for {{ base_distro }}' \
# Sensu plugins are all using semantic versioning.
# Let's cap them to the known major version that works with the ruby shipped on
# rhel/centos/oraclelinux (currently 2.0)
# rhel/centos (currently 2.0)
{% set sensu_plugins = [
'ceph:"~>1"',
'cpu-checks:"~>1"',

2
docker/sensu/sensu-server/Dockerfile.j2

@ -25,7 +25,7 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
# Sensu plugins are all using semantic versioning.
# Let's cap them to the known major version that works with the ruby shipped on
# rhel/centos/oraclelinux (currently 2.0)
# rhel/centos (currently 2.0)
{% set sensu_plugins = [
'mailer:"~>3"',
'slack:"~>3"'

4
kolla/common/config.py

@ -19,19 +19,17 @@ from oslo_config import types
from kolla.version import version_info as version
BASE_OS_DISTRO = ['centos', 'rhel', 'ubuntu', 'oraclelinux', 'debian']
BASE_OS_DISTRO = ['centos', 'rhel', 'ubuntu', 'debian']
BASE_ARCH = ['x86_64', 'ppc64le', 'aarch64']
DEFAULT_BASE_TAGS = {
'centos': '7',
'rhel': '7',
'oraclelinux': '7-slim',
'debian': 'buster',
'ubuntu': '18.04',
}
DISTRO_RELEASE = {
'centos': '7',
'rhel': '7',
'oraclelinux': '7',
'debian': 'buster',
'ubuntu': '18.04',
}

9
kolla/image/build.py

@ -123,9 +123,6 @@ UNBUILDABLE_IMAGES = {
'centos': {
"ovsdpdk",
},
'oraclelinux': {
"ovsdpdk",
},
'debian': {
"bifrost-base", # tries to install 'mysql-server' which is not in
# Debian 'buster'
@ -173,10 +170,6 @@ UNBUILDABLE_IMAGES = {
"zaqar",
},
'oraclelinux+source': {
"bifrost-base",
},
'ubuntu+binary': {
"cloudkitty-base",
"congress-base",
@ -681,7 +674,7 @@ class KollaWorker(object):
conf.rpm_setup_config if repo_file is not None])
self.rpm_setup = self.build_rpm_setup(rpm_setup_config)
rh_base = ['centos', 'oraclelinux', 'rhel']
rh_base = ['centos', 'rhel']
rh_type = ['source', 'binary', 'rdo', 'rhos']
deb_base = ['ubuntu', 'debian']
deb_type = ['source', 'binary']

2
kolla/tests/test_build.py

@ -283,7 +283,7 @@ class KollaWorkerTest(base.TestCase):
self.mock_client = patcher.start()
def test_supported_base_type(self):
rh_base = ['centos', 'oraclelinux', 'rhel']
rh_base = ['centos', 'rhel']
rh_type = ['source', 'binary', 'rdo', 'rhos']
deb_base = ['ubuntu', 'debian']
deb_type = ['source', 'binary']

4
releasenotes/notes/remove-oraclelinux-support-109ce54b1952ec3a.yaml

@ -0,0 +1,4 @@
---
upgrade:
- |
Removes support for building OracleLinux container images.

2
tests/files/process_build_logs.py

@ -30,7 +30,7 @@ parser.add_argument('-b', '--base',
required=True)
args = vars(parser.parse_args())
if args['base'] not in ['centos', 'rhel', 'oraclelinux']:
if args['base'] not in ['centos', 'rhel']:
print("Non rpm-based distros are not yet supported.")
sys.exit()

30
tests/test_build.py

@ -111,22 +111,6 @@ class BuildTestDebianSource(BuildTest, base.BaseTestCase):
"--type", "source"])
class BuildTestOracleLinuxBinary(BuildTest, base.BaseTestCase):
def setUp(self):
super(BuildTestOracleLinuxBinary, self).setUp()
self.build_args.extend(["--base", "oraclelinux",
"--type", "binary"])
class BuildTestOracleLinuxSource(BuildTest, base.BaseTestCase):
def setUp(self):
super(BuildTestOracleLinuxSource, self).setUp()
self.build_args.extend(["--base", "oraclelinux",
"--type", "source"])
class DeployTestCentosBinary(BuildTestCentosBinary):
def setUp(self):
@ -141,20 +125,6 @@ class DeployTestCentosSource(BuildTestCentosSource):
self.build_args.extend(["--profile", "gate"])
class DeployTestOracleLinuxBinary(BuildTestOracleLinuxBinary):
def setUp(self):
super(DeployTestOracleLinuxBinary, self).setUp()
self.build_args.extend(["--profile", "gate"])
class DeployTestOracleLinuxSource(BuildTestOracleLinuxSource):
def setUp(self):
super(DeployTestOracleLinuxSource, self).setUp()
self.build_args.extend(["--profile", "gate"])
class DeployTestUbuntuBinary(BuildTestUbuntuBinary):
def setUp(self):

2
tools/validate-binary-build.sh

@ -28,7 +28,7 @@ check_for_errors () {
echo Looking for forbidden instructions in binary image templates
for distro in debian ubuntu centos rhel oraclelinux; do
for distro in debian ubuntu centos rhel; do
tmpdir=$(mktemp -d kolla-templates.XXXXXX --tmpdir)
generate_templates
check_for_errors "gem .*install"

20
tox.ini

@ -135,26 +135,6 @@ commands =
bash -c "if [ ! -d .stestr ]; then stestr init; fi"
stestr run test_build.BuildTestDebianSource
[testenv:build-oraclelinux-binary]
whitelist_externals = find
bash
setenv =
DOCKER_BUILD_TEST=1
commands =
find . -type f -name "*.py[c|o]" -delete -o -type l -name "*.py[c|o]" -delete
bash -c "if [ ! -d .stestr ]; then stestr init; fi"
stestr run test_build.BuildTestOracleLinuxBinary
[testenv:build-oraclelinux-source]
whitelist_externals = find
bash
setenv =
DOCKER_BUILD_TEST=1
commands =
find . -type f -name "*.py[c|o]" -delete -o -type l -name "*.py[c|o]" -delete
bash -c "if [ ! -d .stestr ]; then stestr init; fi"
stestr run test_build.BuildTestOracleLinuxSource
[testenv:genconfig]
whitelist_externals = which
commands=

Loading…
Cancel
Save