diff --git a/config/foreman.hiera/family/RedHat-7.yaml b/config/foreman.hiera/family/RedHat-7.yaml index 6fda065a..ec894429 100644 --- a/config/foreman.hiera/family/RedHat-7.yaml +++ b/config/foreman.hiera/family/RedHat-7.yaml @@ -9,4 +9,14 @@ mongodb::server::logpath: false mongodb::server::config_template: 'mongodb/mongodb.conf.2.6.erb' mongodb::server::manage_pidfile: false mongodb::server::pidfilepath: '/var/opt/rh/rh-mongodb34/run/mongodb/mongod.pid' + redis::globals::scl: rh-redis5 + +postgresql::globals::version: '12' +postgresql::globals::client_package_name: rh-postgresql12-postgresql-syspaths +postgresql::globals::server_package_name: rh-postgresql12-postgresql-server-syspaths +postgresql::globals::contrib_package_name: rh-postgresql12-postgresql-contrib-syspaths +postgresql::globals::service_name: postgresql +postgresql::globals::datadir: /var/opt/rh/rh-postgresql12/lib/pgsql/data +postgresql::globals::confdir: /var/opt/rh/rh-postgresql12/lib/pgsql/data +postgresql::globals::bindir: /usr/bin diff --git a/config/foreman.hiera/scenario/foreman-proxy-content/family/RedHat-7.yaml b/config/foreman.hiera/scenario/foreman-proxy-content/family/RedHat-7.yaml deleted file mode 100644 index f3a62444..00000000 --- a/config/foreman.hiera/scenario/foreman-proxy-content/family/RedHat-7.yaml +++ /dev/null @@ -1,9 +0,0 @@ ---- -postgresql::globals::version: '10' -postgresql::globals::client_package_name: rh-postgresql10-postgresql-syspaths -postgresql::globals::server_package_name: rh-postgresql10-postgresql-server-syspaths -postgresql::globals::contrib_package_name: rh-postgresql10-postgresql-contrib-syspaths -postgresql::globals::service_name: postgresql -postgresql::globals::datadir: /var/opt/rh/rh-postgresql10/lib/pgsql/data -postgresql::globals::confdir: /var/opt/rh/rh-postgresql10/lib/pgsql/data -postgresql::globals::bindir: /usr/bin diff --git a/config/foreman.hiera/scenario/katello/family/RedHat-7.yaml b/config/foreman.hiera/scenario/katello/family/RedHat-7.yaml deleted file mode 100644 index f3a62444..00000000 --- a/config/foreman.hiera/scenario/katello/family/RedHat-7.yaml +++ /dev/null @@ -1,9 +0,0 @@ ---- -postgresql::globals::version: '10' -postgresql::globals::client_package_name: rh-postgresql10-postgresql-syspaths -postgresql::globals::server_package_name: rh-postgresql10-postgresql-server-syspaths -postgresql::globals::contrib_package_name: rh-postgresql10-postgresql-contrib-syspaths -postgresql::globals::service_name: postgresql -postgresql::globals::datadir: /var/opt/rh/rh-postgresql10/lib/pgsql/data -postgresql::globals::confdir: /var/opt/rh/rh-postgresql10/lib/pgsql/data -postgresql::globals::bindir: /usr/bin diff --git a/hooks/boot/01-kafo-hook-extensions.rb b/hooks/boot/01-kafo-hook-extensions.rb index f06a7629..aafbc3ab 100644 --- a/hooks/boot/01-kafo-hook-extensions.rb +++ b/hooks/boot/01-kafo-hook-extensions.rb @@ -40,6 +40,10 @@ def local_redis? (foreman_server? && !param_value('foreman', 'jobs_sidekiq_redis_url')) || param_value('foreman_proxy::plugin::pulp', 'pulpcore_enabled') end + def needs_postgresql_scl_upgrade? + !File.exist?('/var/opt/rh/rh-postgresql12/lib/pgsql/data') && File.exist?('/var/lib/pgsql/data') + end + def el7? facts[:os][:release][:major] == '7' && facts[:os][:family] == 'RedHat' end diff --git a/hooks/pre/30-el7_upgrade_postgresql.rb b/hooks/pre/30-el7_upgrade_postgresql.rb new file mode 100644 index 00000000..69fcea02 --- /dev/null +++ b/hooks/pre/30-el7_upgrade_postgresql.rb @@ -0,0 +1,15 @@ +def postgresql_12_upgrade + execute('foreman-maintain service start --only=postgresql') + (_name, _owner, _enconding, collate, ctype, _privileges) = `runuser postgres -c 'psql -lt | grep -E "^\s+postgres"'`.chomp.split('|').map(&:strip) + execute('foreman-maintain service stop') + ensure_package('rh-postgresql12-postgresql-server', 'installed') + execute(%(scl enable rh-postgresql12 "PGSETUP_INITDB_OPTIONS='--lc-collate=#{collate} --lc-ctype=#{ctype} --locale=#{collate}' postgresql-setup --upgrade")) + ensure_package('postgresql-server', 'absent') + ensure_package('postgresql', 'absent') + execute('rm -f /etc/systemd/system/postgresql.service') + ensure_package('rh-postgresql12-syspaths', 'installed') +end + +if local_postgresql? && el7? && foreman_server? && needs_postgresql_scl_upgrade? + postgresql_12_upgrade +end diff --git a/hooks/pre/31-el7_install_postgresql.rb b/hooks/pre/31-el7_install_postgresql.rb new file mode 100644 index 00000000..89e784e8 --- /dev/null +++ b/hooks/pre/31-el7_install_postgresql.rb @@ -0,0 +1,4 @@ +# Working around https://tickets.puppetlabs.com/browse/PUP-2169 +if local_postgresql? && el7? + ensure_package('rh-postgresql12-postgresql-server', 'installed') +end diff --git a/katello/hooks/pre_validations/32-upgrade.rb b/hooks/pre_validations/30-el7_upgrade_postgresql.rb similarity index 59% rename from katello/hooks/pre_validations/32-upgrade.rb rename to hooks/pre_validations/30-el7_upgrade_postgresql.rb index 1c5bc2af..729f666c 100644 --- a/katello/hooks/pre_validations/32-upgrade.rb +++ b/hooks/pre_validations/30-el7_upgrade_postgresql.rb @@ -1,13 +1,13 @@ def check_postgresql_storage # Ensure there is at least 1x /var/lib/pgsql free disk space available on the main filesystem current_postgres_dir = '/var/lib/pgsql' - new_postgres_dir = '/var/opt/rh/rh-postgresql10/lib/pgsql' + new_postgres_dir = '/var/opt/rh/rh-postgresql12/lib/pgsql' begin - postgres_size = `du -b -s #{current_postgres_dir}`.split[0].to_i + postgres_size = `du --bytes --summarize #{current_postgres_dir}`.split[0].to_i if available_space(new_postgres_dir) < postgres_size - fail_and_exit "The postgres upgrade requires at least #{(postgres_size / 1024) / 1024} MB of storage." + fail_and_exit "The PostgreSQL upgrade requires at least #{(postgres_size / 1024) / 1024} MB of storage to be available at #{new_postgres_dir}." end rescue StandardError fail_and_exit 'Failed to verify available disk space' @@ -23,6 +23,6 @@ def available_space(directory = nil) mountpoint[:available_bytes] end -if app_value(:upgrade) - check_postgresql_storage if local_postgresql? +if local_postgresql? && el7? && foreman_server? && needs_postgresql_scl_upgrade? + check_postgresql_storage end diff --git a/katello/hooks/pre/29-install_postgresql.rb b/katello/hooks/pre/29-install_postgresql.rb deleted file mode 100644 index b68c51bd..00000000 --- a/katello/hooks/pre/29-install_postgresql.rb +++ /dev/null @@ -1,4 +0,0 @@ -# Working around https://tickets.puppetlabs.com/browse/PUP-2169 -if local_postgresql? && facts[:os][:release][:major] == '7' && !app_value(:upgrade) - ensure_package('rh-postgresql10-postgresql-server', 'installed') -end diff --git a/katello/hooks/pre/30-upgrade.rb b/katello/hooks/pre/30-upgrade.rb index c716bc45..497e66b9 100644 --- a/katello/hooks/pre/30-upgrade.rb +++ b/katello/hooks/pre/30-upgrade.rb @@ -11,22 +11,6 @@ def stop_services execute('foreman-maintain service stop') end -def start_postgresql - execute('systemctl start postgresql') -end - -def postgresql_10_upgrade - start_postgresql - (_name, _owner, _enconding, collate, ctype, _privileges) = `runuser postgres -c 'psql -lt | grep -E "^\s+postgres"'`.chomp.split('|').map(&:strip) - stop_services - ensure_package('rh-postgresql10-postgresql-server', 'installed') - execute(%(scl enable rh-postgresql10 "PGSETUP_INITDB_OPTIONS='--lc-collate=#{collate} --lc-ctype=#{ctype} --locale=#{collate}' postgresql-setup --upgrade")) - ensure_package('postgresql-server', 'absent') - ensure_package('postgresql', 'absent') - execute('rm -f /etc/systemd/system/postgresql.service') - ensure_package('rh-postgresql10-syspaths', 'installed') -end - def upgrade_step(step, options = {}) noop = app_value(:noop) ? ' (noop)' : '' long_running = options[:long_running] ? ' (this may take a while) ' : '' @@ -69,9 +53,5 @@ def step_path(step) File.unlink(CANDLEPIN_MIGRATION_MARKER_FILE) end - if local_postgresql? && facts[:os][:release][:major] == '7' - upgrade_step :postgresql_10_upgrade - end - log_and_say :info, 'Upgrade Step: Running installer...' end