From 344dc600a08a21d022b470d922f44e4b0591a39a Mon Sep 17 00:00:00 2001 From: Joshua Schmid Date: Tue, 7 Apr 2020 11:23:10 +0200 Subject: [PATCH] ceph-volume: add ceph.osdspec_affinity tag Signed-off-by: Joshua Schmid (cherry picked from commit b7bc6f7607d79af6d43e788ea2a26785f4ed5d45) --- src/ceph-volume/ceph_volume/api/lvm.py | 1 + src/ceph-volume/ceph_volume/devices/lvm/prepare.py | 1 + src/ceph-volume/ceph_volume/util/prepare.py | 4 ++++ 3 files changed, 6 insertions(+) diff --git a/src/ceph-volume/ceph_volume/api/lvm.py b/src/ceph-volume/ceph_volume/api/lvm.py index e7bdefd589256..ffe2ad7aa0b82 100644 --- a/src/ceph-volume/ceph_volume/api/lvm.py +++ b/src/ceph-volume/ceph_volume/api/lvm.py @@ -947,6 +947,7 @@ class Volume(object): 'type': type_, 'osd_fsid': self.tags['ceph.osd_fsid'], 'cluster_fsid': self.tags['ceph.cluster_fsid'], + 'osdspec_affinity': self.tags.get('ceph.osdspec_affinity', ''), } type_uuid = '{}_uuid'.format(type_) report[type_uuid] = self.tags['ceph.{}'.format(type_uuid)] diff --git a/src/ceph-volume/ceph_volume/devices/lvm/prepare.py b/src/ceph-volume/ceph_volume/devices/lvm/prepare.py index 4440109417438..284f3c43ac1a4 100644 --- a/src/ceph-volume/ceph_volume/devices/lvm/prepare.py +++ b/src/ceph-volume/ceph_volume/devices/lvm/prepare.py @@ -294,6 +294,7 @@ class Prepare(object): 'ceph.cluster_fsid': cluster_fsid, 'ceph.cluster_name': conf.cluster, 'ceph.crush_device_class': crush_device_class, + 'ceph.osdspec_affinity': prepare_utils.get_osdspec_affinity() } if self.args.filestore: #TODO: allow auto creation of journal on passed device, only works diff --git a/src/ceph-volume/ceph_volume/util/prepare.py b/src/ceph-volume/ceph_volume/util/prepare.py index 3afd1763fdf23..bf70b49a5b4bd 100644 --- a/src/ceph-volume/ceph_volume/util/prepare.py +++ b/src/ceph-volume/ceph_volume/util/prepare.py @@ -457,6 +457,10 @@ def osd_mkfs_bluestore(osd_id, fsid, keyring=None, wal=False, db=False): raise RuntimeError('Command failed with exit code %s: %s' % (returncode, ' '.join(command))) +def get_osdspec_affinity(): + return os.environ.get('CEPH_VOLUME_OSDSPEC_AFFINITY', '') + + def osd_mkfs_filestore(osd_id, fsid, keyring): """ Create the files for the OSD to function. A normal call will look like: -- 2.39.5