]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/cephadm/upgrade: set require-osd-release when done with OSDs
authorSage Weil <sage@newdream.net>
Mon, 25 Jan 2021 23:21:05 +0000 (17:21 -0600)
committerSage Weil <sage@newdream.net>
Mon, 1 Feb 2021 22:23:02 +0000 (16:23 -0600)
After we've upgraded all of the osds, complete the major version upgrade
for core RADOS by setting the OSD cluster min.

Signed-off-by: Sage Weil <sage@newdream.net>
src/pybind/mgr/cephadm/upgrade.py

index ff26aeb969acbbc661c6f9207cd43993713a1f9e..7cc6b3fc8e07141d023e43254a16135604c5a246 100644 (file)
@@ -303,8 +303,9 @@ class CephadmUpgrade:
             target_image = self.target_image
         target_version = self.upgrade_state.target_version
         target_major, target_minor, target_patch = target_version.split('.')
-        logger.info('Upgrade: Target is version %s, container %s with id %s' % (
-            target_version, target_image, target_id))
+        target_major_name = self.mgr.lookup_release_name(int(target_major))
+        logger.info('Upgrade: Target is version %s (%s), container %s id %s' % (
+            target_version, target_major_name, target_image, target_id))
 
         version_error = self._check_target_version(target_version)
         if version_error:
@@ -458,6 +459,18 @@ class CephadmUpgrade:
             logger.info('Upgrade: All %s daemons are up to date.' %
                         daemon_type)
 
+            # complete osd upgrade?
+            if daemon_type == 'osd':
+                osdmap = self.mgr.get("osd_map")
+                osd_min_name = osdmap.get("require_osd_release", "argonaut")
+                osd_min = ord(osd_min_name[0]) - ord('a') + 1
+                if osd_min < int(target_major):
+                    logger.info(f'Upgrade: Setting require_osd_release to {target_major} {target_major_name}')
+                    ret, _, err = self.mgr.check_mon_command({
+                        'prefix': 'osd require-osd-release',
+                        'release': target_major_name,
+                    })
+
         # clean up
         logger.info('Upgrade: Finalizing container_image settings')
         self.mgr.set_container_image('global', target_image)