Description of problem: The foreman-maintain's self-upgrade command needs improvement as below, 1. Allow only upgrade to next .Y release 2. Capitalize the ENV variable 3. Provide an option to pass maintenance repository label in case of disconnected or testing environments. This is additional to existing way of exporting 'MAINTENANCE_REPO_LABEL' variable. 4. Unify the ENV var and option name. Version-Release number of selected component (if applicable): 6.11 and 6.10 How reproducible: Steps to Reproduce: 1. 2. 3. Actual results: Expected results: Additional info:
With these changes workflow changes as below, 1. The command changes to, # satellite-maintain self-upgrade There is no target version as its calculated considering the installed version. 2. There is no --target-version option hence no need to pass the version to the command 3. The ENV var changed to 'MAINTENANCE_REPO_LABEL' 4. Have additional optional option 'maintenance-repo-label', # bin/foreman-maintain self-upgrade --help Usage: foreman-maintain self-upgrade [OPTIONS] Options: --maintenance-repo-label REPOSITORY_LABEL Repository label from which packages should be updated.This can be used when standard CDN repositories are unavailable. -h, --help print help
Verified. Tested on Satellite 6.11.0 Snap 21.0 Version: rubygem-foreman_maintain-1.0.10-1.el7sat.noarch Steps: 1. # foreman-maintain self-upgrade 2. Add custom_repo for the next major-version release available with the label 'sat-maintain' 3. # MAINTENANCE_REPO_LABEL='sat-maintain' foreman-maintain self-upgrade 4. # foreman-maintain self-upgrade --maintenance-repo-label sat-maintain Observation, For Step1, No target-version option is required now, instead, it tries only to enable the 6.12 maintenance repo (N+1 only) along with a few RHEL-specific repos to pull related dependencies and updates package(s) satellite-maintain, rubygem-foreman_maintain. And as the N+1 repos won't be available till 6.12 GA, here self-upgrade fails and shows a subscription-manager error message mentioning 6.12 repos aren't available in CDN. Step3 or Step4, For disconnected/testing environments it tries to enable custom repo labeled from MAINTENANCE_REPO_LABEL env var or using option "--maintenance-repo-label" and updates package(s) satellite-maintain, rubygem-foreman_maintain.
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 (Moderate: Satellite 6.11 Release), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHSA-2022:5498