From 5ce40e65db219aa6f4d435a7d0d41707387ee355 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 30 Sep 2019 12:56:29 -0500 Subject: [PATCH] ceph-daemon: make deploy work for osd (do a c-v prepare) This is sufficient to deploy an OSD that is based on ceph-volume lvm. YMMV if it's not an lvm-based OSD. Run the OSD container privileged so we can open the raw block device. Signed-off-by: Sage Weil --- src/ceph-daemon | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/ceph-daemon b/src/ceph-daemon index 2177c0c81f2fd..22ba52ecc0b5f 100755 --- a/src/ceph-daemon +++ b/src/ceph-daemon @@ -169,6 +169,8 @@ def get_container(fsid, daemon_type, daemon_id): else: dname = daemon_type podman_args = [] + if daemon_type == 'osd': + podman_args += ['--privileged'] return CephContainer( image=args.image, entrypoint='/usr/bin/ceph-' + daemon_type, @@ -239,6 +241,21 @@ def deploy_daemon(fsid, daemon_type, daemon_id, c, uid, gid, uid, gid, config, keyring) + if daemon_type == 'osd' and args.osd_fsid: + pc = CephContainer( + image=args.image, + entrypoint='/usr/sbin/ceph-volume', + args=[ + 'lvm', 'activate', + daemon_id, args.osd_fsid, + '--no-systemd' + ], + podman_args=['--privileged'], + volume_mounts=get_container_mounts(fsid, daemon_type, daemon_id), + cname='ceph-%s-activate-%s.%s' % (fsid, daemon_type, daemon_id), + ) + pc.run() + deploy_daemon_units(fsid, daemon_type, daemon_id, c) def deploy_daemon_units(fsid, daemon_type, daemon_id, c): @@ -931,6 +948,9 @@ parser_deploy.add_argument( parser_deploy.add_argument( '--mon-ip', help='mon IP') +parser_deploy.add_argument( + '--osd-fsid', + help='OSD uuid, if creating an OSD container') args = parser.parse_args() -- 2.39.5