Project

General

Profile

Bug #47358

Updated by Nathan Cutler over 3 years ago

The following service_spec.yml works fine for "ceph orch apply", apply osd", but produces an error with "ceph orch apply osd" osd --dry-run" 

 <pre> 
     master: ++ cat /root/service_spec_core.yml 
     master: --- 
     master: service_type: mon 
     master: placement: 
     master:       hosts: 
     master:           - 'node1' 
     master:           - 'node2' 
     master:           - 'node3' 
     master: --- 
     master: service_type: mgr 
     master: placement: 
     master:       hosts: 
     master:           - 'node1' 
     master:           - 'node2' 
     master:           - 'node3' 
     master: --- 
     master: service_type: osd 
     master: service_id: sesdev_osd_deployment 
     master: placement: 
     master:       hosts: 
     master:           - 'node1' 
     master:           - 'node2' 
     master:           - 'node3' 
     master: data_devices: 
     master:       all: true 
     master: ++ ceph orch apply osd -i /root/service_spec_core.yml --dry-run 
     master: Error EINVAL: Failed to validate Drive Group: Didn't find Drivegroup specs 
 </pre> 

 The error is: 

 <pre> 
     master: ++ ceph orch apply osd -i /root/service_spec_core.yml --dry-run 
     master: Error EINVAL: Failed to validate Drive Group: Didn't find Drivegroup specs 
 </pre> 

 A couple things: 

 First, it seems like the error message could be improved? A better wording might be: 

 "Your spec file includes services other than 'osd', but 'ceph orch apply osd' only works with service_type: osd" 

 Second, it seems that, by issuing "ceph orch apply osd", the user is explicitly stating that they want OSDs only to be deployed. In that case, the non-osd service stanzas could simply be ignored? Then the user would get an OSD deployment, as requested, instead of an error message.

Back