Description of problem:
We should warn that upgrades aren't yet supported when attempting to run the upgrade, just in case someone attempts to run the upgrade before instructions are released.
To handle this issue with overcloud upgrade, we can outright disable "openstack overcloud upgrade prepare" command, which has been the initial step of the upgrade workflow for quite some time now. This should make it clear for the user that they shouldn't attempt to upgrade the overcloud.
With undercloud, the situation is tricky, because in the undercloud upgrade code path there is no distinction between minor update and major upgrade. We always run `openstack undercloud upgrade` which essentially tries to perform a major upgrade. In case the command is being used in a minor update context, the DB syncs are essentially no-ops, but they are still being run.
Implementing a heuristic approach for the undercloud might be unreliable. We'd probably go along the lines of "if there is an existing OSP 15 undercloud present already, allow the upgrade". However, detecting the undercloud presence is not straightforward. E.g. if Satellite was used, the images loaded in Podman might not have "osp15" in their names. Or there could have been a problem which forced the user to clean the containers/images in Podman, and how would we then tell if the undercloud was already installed or not... Maybe go look at mariadb directory presence... This gets into hacky solutions and probably is best not attempted.
What we want to do for undercloud is to only allow running `openstack undercloud upgrade` on RHEL 8, not RHEL 7. This way, if a user manages to install the OSP 15 tripleoclient while still on RHEL 7, they will get an error message that they ran "openstack undercloud upgrade" on incompatible OS. If they haven't looked into upgrade docs yet by any chance, now they should go look, and we would ideally have a note in the docs that the upgrade isn't supported yet, until it is.
The way to force overcloud upgrade prepare to happen with the patched client is (applicable for preliminary testing):
OVERCLOUD_SKIP_UPGRADE_SUPPORT_CHECK=1 openstack overcloud upgrade prepare <args>
The way to force undercloud upgrade on RHEL 7 (i don't see why would ever someone want to do this except for the RHEL 8 check perhaps producing a false positive):
UNDERCLOUD_SKIP_OS_CHECK=1 openstack undercloud upgrade
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.