Remove postgresql testing and documentation

Ironic has maintained a CI job for years after postresql support was
deprecated in order to prevent unintentional breakage of that support.
Now, we have confirmed evidence that other openstack components, such as
keystone, required for testing this postgresql support no longer
function in this job.

As a result, ironic can no longer test postgresql support. Operators
utilizing postgresql who have not yet migrated must migrate now.

Change-Id: If6e4432b000996789346a1f7449410cfc8497fe1
This commit is contained in:
Jay Faulkner 2024-10-01 11:33:02 -07:00
parent feb7740009
commit 466cd3902c
10 changed files with 21 additions and 106 deletions

View File

@ -53,12 +53,6 @@ libssl-dev [platform:dpkg test]
libffi-dev [platform:dpkg test] libffi-dev [platform:dpkg test]
libffi-devel [platform:rpm test] libffi-devel [platform:rpm test]
# these are needed by infra for python-* jobs # these are needed by infra for python-* jobs
libpq-dev [platform:dpkg test]
libpq-devel [platform:rpm test]
postgresql
postgresql-client [platform:dpkg]
# postgresql-devel [platform:rpm]
postgresql-server [platform:rpm]
mariadb [platform:rpm] mariadb [platform:rpm]
mariadb-server [platform:rpm platform:debian-bookworm] mariadb-server [platform:rpm platform:debian-bookworm]
# mariadb-devel [platform:rpm] # mariadb-devel [platform:rpm]

View File

@ -55,10 +55,6 @@ libffi-devel [platform:rpm test]
# these are needed by infra for python-* jobs # these are needed by infra for python-* jobs
libpq-dev [platform:dpkg test] libpq-dev [platform:dpkg test]
libpq-devel [platform:rpm test] libpq-devel [platform:rpm test]
postgresql
postgresql-client [platform:dpkg]
# postgresql-devel [platform:rpm]
postgresql-server [platform:rpm]
mariadb [platform:rpm] mariadb [platform:rpm]
mariadb-server [platform:rpm] mariadb-server [platform:rpm]
# mariadb-devel [platform:rpm] # mariadb-devel [platform:rpm]

View File

@ -95,15 +95,15 @@ environment on most current distributions.
- Ubuntu/Debian:: - Ubuntu/Debian::
sudo apt-get install build-essential python3-dev libssl-dev python3-pip libmysqlclient-dev libxml2-dev libxslt-dev libpq-dev git git-review libffi-dev gettext ipmitool psmisc graphviz libjpeg-dev qemu-utils sudo apt-get install build-essential python3-dev libssl-dev python3-pip libmysqlclient-dev libxml2-dev libxslt-dev git git-review libffi-dev gettext ipmitool psmisc graphviz libjpeg-dev qemu-utils
- RHEL/CentOS/Fedora:: - RHEL/CentOS/Fedora::
sudo dnf install python3-devel openssl-devel python3-pip mysql-devel libxml2-devel libxslt-devel postgresql-devel git git-review libffi-devel gettext ipmitool psmisc graphviz gcc libjpeg-turbo-devel qemu-img sudo dnf install python3-devel openssl-devel python3-pip mysql-devel libxml2-devel libxslt-devel git git-review libffi-devel gettext ipmitool psmisc graphviz gcc libjpeg-turbo-devel qemu-img
- openSUSE/SLE:: - openSUSE/SLE::
sudo zypper install git git-review libffi-devel libmysqlclient-devel libopenssl-devel libxml2-devel libxslt-devel postgresql-devel python3-devel python-nose python3-pip gettext-runtime psmisc qemu-img sudo zypper install git git-review libffi-devel libmysqlclient-devel libopenssl-devel libxml2-devel libxslt-devel python3-devel python-nose python3-pip gettext-runtime psmisc qemu-img
To run the tests locally, it is a requirement that your terminal emulator To run the tests locally, it is a requirement that your terminal emulator
supports unicode with the ``en_US.UTF8`` locale. If you use locale-gen to supports unicode with the ``en_US.UTF8`` locale. If you use locale-gen to

View File

@ -111,9 +111,3 @@ The description of each jobs that runs in the CI when you submit a patch for
* - bifrost-integration-redfish-vmedia-uefi-centos-9 * - bifrost-integration-redfish-vmedia-uefi-centos-9
- Tests the integration between Ironic and Bifrost using redfish vmedia and - Tests the integration between Ironic and Bifrost using redfish vmedia and
a dib image based on centos stream 9. a dib image based on centos stream 9.
* - ironic-tempest-pxe_ipmitool-postgres
- Deploys Ironic in DevStack, configured to use tinyipa ramdisk partition
image with ``pxe`` boot and ``ipmi`` driver and postgres instead of mysql.
Runs tempest tests that match the regex
``ironic_tempest_plugin.tests.scenario``, also deploys 1 virtual
baremetal.

View File

@ -15,23 +15,14 @@
# under the License. # under the License.
""" """
Tests for database migrations. There are "opportunistic" tests for both mysql Tests for database migrations. There are "opportunistic" tests for mysql in
and postgresql in here, which allows testing against these databases in a here, which allow testing against a database in a properly configured unit
properly configured unit test environment. test environment.
For the opportunistic testing you need to set up a db named 'openstack_citest' For the opportunistic testing you need to set up a db named 'openstack_citest'
with user 'openstack_citest' and password 'openstack_citest' on localhost. with user 'openstack_citest' and password 'openstack_citest' on localhost.
The test will then use that db and u/p combo to run the tests. The test will then use that db and u/p combo to run the tests. See
tools/test-setup.sh in the root of the repo for a full setup example.
For postgres on Ubuntu this can be done with the following commands:
::
sudo -u postgres psql
postgres=# create user openstack_citest with createdb login password
'openstack_citest';
postgres=# create database openstack_citest with owner openstack_citest;
""" """
import collections import collections
@ -1631,10 +1622,3 @@ class ModelsMigrationsSyncMysql(ModelsMigrationSyncMixin,
test_fixtures.OpportunisticDBTestMixin, test_fixtures.OpportunisticDBTestMixin,
test_base.BaseTestCase): test_base.BaseTestCase):
FIXTURE = test_fixtures.MySQLOpportunisticFixture FIXTURE = test_fixtures.MySQLOpportunisticFixture
class ModelsMigrationsSyncPostgres(ModelsMigrationSyncMixin,
test_migrations.ModelsMigrationsSync,
test_fixtures.OpportunisticDBTestMixin,
test_base.BaseTestCase):
FIXTURE = test_fixtures.PostgresqlOpportunisticFixture

View File

@ -0,0 +1,13 @@
---
upgrade:
- |
Deployers using PostgreSQL must migrate to a supported mysql-compatible
database, such as MySQL or MariaDB.
deprecations:
- |
Use of postgresql has been deprecated for all OpenStack projects,
including ironic, for several years. However, in an effort to avoid
breaking existing installs, we had tested database migrations and
performed a basic functionality test against PostgreSQL. This test has
now been removed, and operators deployed on PostgreSQL must migrate to
a MySQL-compatible database, such as MySQL or MariaDB, before upgrade.

View File

@ -6,7 +6,6 @@ iso8601>=0.1.11 # MIT
oslo.reports>=1.18.0 # Apache-2.0 oslo.reports>=1.18.0 # Apache-2.0
oslotest>=3.2.0 # Apache-2.0 oslotest>=3.2.0 # Apache-2.0
stestr>=2.0.0 # Apache-2.0 stestr>=2.0.0 # Apache-2.0
psycopg2>=2.8.5 # LGPL/ZPL
testtools>=2.5.0 # MIT testtools>=2.5.0 # MIT
WebTest>=2.0.27 # MIT WebTest>=2.0.27 # MIT
pysnmp-lextudio>=5.0.0 # BSD pysnmp-lextudio>=5.0.0 # BSD

View File

@ -6,9 +6,6 @@
# Try starting mariadb # Try starting mariadb
sudo systemctl start mariadb || true sudo systemctl start mariadb || true
# Try starting postgresql
sudo postgresql-setup --initdb || true
sudo systemctl start postgresql || true
# This setup needs to be run as a user that can run sudo. # This setup needs to be run as a user that can run sudo.
@ -38,50 +35,3 @@ mysql -u $DB_USER -p$DB_PW -h 127.0.0.1 -e "
DROP DATABASE IF EXISTS openstack_citest; DROP DATABASE IF EXISTS openstack_citest;
CREATE DATABASE openstack_citest CHARACTER SET utf8;" CREATE DATABASE openstack_citest CHARACTER SET utf8;"
# Same for PostgreSQL
# The root password for the PostgreSQL database; pass it in via
# POSTGRES_ROOT_PW.
DB_ROOT_PW=${POSTGRES_ROOT_PW:-insecure_slave}
# Change working directory to a folder all users can access
# as psql on centos8 needs to be able to open the working directory
# which it can't when executed as the postgres user, which is required
# as same user as process for initial administrative authentication to
# the postgres database
cd /tmp
# Identify and update the postgres hba file which can be in
# a version specific path.
PG_HBA=$(sudo -H -u postgres psql -t -c "show hba_file")
PG_CONF=$(sudo -H -u postgres psql -t -c "show config_file")
# setup postgres encryption algorithm and authentication
sudo sed -i 's/ident$/scram-sha-256/g' $PG_HBA
sudo sed -i 's/md5$/scram-sha-256/g' $PG_HBA
sudo sed -i 's/^.*password_encryption =.*/password_encryption = scram-sha-256/' $PG_CONF
sudo cat $PG_HBA
sudo cat $PG_CONF
# restart postgres with new HBA file is loaded
sudo systemctl stop postgresql || true
sudo systemctl start postgresql || true
# Setup user
root_roles=$(sudo -H -u postgres psql -t -c "
SELECT 'HERE' from pg_roles where rolname='$DB_USER'")
if [[ ${root_roles} == *HERE ]];then
sudo -H -u postgres psql -c "ALTER ROLE $DB_USER WITH SUPERUSER LOGIN PASSWORD '$DB_PW'"
else
sudo -H -u postgres psql -c "CREATE ROLE $DB_USER WITH SUPERUSER LOGIN PASSWORD '$DB_PW'"
fi
# Store password for tests
cat << EOF > $HOME/.pgpass
*:*:*:$DB_USER:$DB_PW
EOF
chmod 0600 $HOME/.pgpass
# Now create our database
psql -h 127.0.0.1 -U $DB_USER -d postgres -c "DROP DATABASE IF EXISTS openstack_citest"
createdb -h 127.0.0.1 -U $DB_USER -l C -T template0 -E utf8 openstack_citest

View File

@ -421,19 +421,6 @@
ironic-inspector: True ironic-inspector: True
ironic-inspector-dhcp: True ironic-inspector-dhcp: True
- job:
name: ironic-tempest-pxe_ipmitool-postgres
description: ironic-tempest-pxe_ipmitool-postgres
parent: ironic-base
vars:
devstack_localrc:
IRONIC_ENABLED_BOOT_INTERFACES: "fake,pxe"
IRONIC_IPXE_ENABLED: False
IRONIC_AUTOMATED_CLEAN_ENABLED: False
devstack_services:
mysql: False
postgresql: True
# NOTE(rpittau): converted job but not running for now as there # NOTE(rpittau): converted job but not running for now as there
# could be an issue with the lookup in ironic-python-agent # could be an issue with the lookup in ironic-python-agent
- job: - job:

View File

@ -64,8 +64,6 @@
voting: false voting: false
- bifrost-integration-redfish-vmedia-uefi-centos-9: - bifrost-integration-redfish-vmedia-uefi-centos-9:
voting: false voting: false
- ironic-tempest-pxe_ipmitool-postgres:
voting: false
gate: gate:
jobs: jobs:
- ironic-tox-unit-mysql-migrations - ironic-tox-unit-mysql-migrations