<div dir="ltr"><div class="gmail_extra">Hi,</div><div class="gmail_extra"><br></div><div class="gmail_extra">I'm concerned with the dependencies between "os-capabilities" library and all the other OpenStack services such as Nova, Placement, Ironic, etc.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Rather than embedding the universal "os-capabilities" in Nova, Cinder, Glance, Ironic services that will introduce complexities if the library versions are different, I'd prefer to hide this library behind the placement service and expose consistent interfaces as well as caps to all the other services. But the drawback here is also obvious: for example, when nova wants to support a new capability, the development will require os-capabilities updates, and related lib version bumps, which is inconvenient and seems unnecessary.</div><div class="gmail_extra"><br></div><div class="gmail_extra">So IMHO, the possible solution is: </div><div class="gmail_extra">* Let each services (Nova, Ironic ...) themselves manage their capabilities under proper namespaces such as "compute", "ironic" or "storage";</div><div class="gmail_extra">* Let os-capabilities define as few as caps possible that are only cross-project;</div><div class="gmail_extra">* And also use os-capabilities to convert service-defined or user-defined caps to a standardized and distinct form that can be understood by the placement engine. </div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">My two cents,</div><div class="gmail_extra">Yingxin</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div></div>