-
Story
-
Resolution: Unresolved
-
Critical
-
rhel-9.7
-
None
-
rhel-upgrades
-
None
-
None
-
Unspecified
-
Unspecified
-
Unspecified
-
None
For the upgrade to a different Linux distribution it needs to be possible to tell leapp what target distribution to upgrade the system to.
Acceptance criteria
- New `--target-os` option for the `leapp upgrade` command is introduced.
- To not have the ambiguous --target option, a --target-version is added as an alias for the --target option. This --target-version will then be considered as the documented option.
- All code operating with distributions needs be updated to respect correctly whether the operation is related to the source or target distribution.
- When the target OS is not specified, the default target Linux distribution is the one leapp is executed on
- The allowed values are based currently centos, rhel, almalinux
- When an invalid value is passed (e.g. typo) it's ok for leapp to fail in a standard python way (i.e. no report inhibitor needed)
- We should not restrict the possible combinations of the source and target distros. We're upstream and we should be open to any upgrade path in leapp. For instance we should not block upstream leapp users from going from centos to almalinux. If a Red Hat customer tries a combination that we don't clearly state in documentation as supported they can't ask Red Hat for help (or they can but they won't be helped).
- LEAPP_UNSUPPORTED is not to be used when upgrading between distros
- Upstream documentation is updated to clearly our upstream stance on developing upgrade paths not supported by Red Hat (e.g. no testing, no bug investigation)
Additional considerations
- Using 'centos' as a distribution is a bit ambiguous as it could mean not only CentOS Stream but also CentOS Linux but since CentOS Linux 8 has been EOLed we won't be adding support for upgrading from it.
- The original suggestion for the CLI option was `--target-distro` but distro is a slang abbreviation of distribution and we should better use a more formal wording. In the official product documentation we use Target OS so let's use that.
- is depended on by
-
RHEL-110568 Define packages to be swapped or removed during the upgrade
-
- Planning
-