<div dir="ltr"><div dir="ltr"><div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Thu, 20 Sep 2018 at 16:02, Matt Riedemann <<a href="mailto:mriedemos@gmail.com">mriedemos@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 9/20/2018 4:16 AM, John Garbutt wrote:<br>
> Following on from the PTG discussions, I wanted to bring everyone's <br>
> attention to Nova's plans to deprecate ComputeCapabilitiesFilter, <br>
> including most of the the integration with Ironic Capabilities.<br>
> <br>
> To be specific, this is my proposal in code form:<br>
> <a href="https://review.openstack.org/#/c/603102/" rel="noreferrer" target="_blank">https://review.openstack.org/#/c/603102/</a><br>
> <br>
> Once the code we propose to deprecate is removed we will stop using <br>
> capabilities pushed up from Ironic for 'scheduling', but we would still <br>
> pass capabilities request in the flavor down to Ironic (until we get <br>
> some standard traits and/or deploy templates sorted for things like UEFI).<br>
> <br>
> Functionally, we believe all use cases can be replaced by using the <br>
> simpler placement traits (this is more efficient than post placement <br>
> filtering done using capabilities):<br>
> <a href="https://specs.openstack.org/openstack/nova-specs/specs/queens/implemented/ironic-driver-traits.html" rel="noreferrer" target="_blank">https://specs.openstack.org/openstack/nova-specs/specs/queens/implemented/ironic-driver-traits.html</a><br>
> <br>
> Please note the recent addition of forbidden traits that helps improve <br>
> the usefulness of the above approach:<br>
> <a href="https://specs.openstack.org/openstack/nova-specs/specs/rocky/implemented/placement-forbidden-traits.html" rel="noreferrer" target="_blank">https://specs.openstack.org/openstack/nova-specs/specs/rocky/implemented/placement-forbidden-traits.html</a><br>
> <br>
> For example, a flavor request for GPUs >= 2 could be replaced by a <br>
> custom trait trait that reports if a given Ironic node has <br>
> CUSTOM_MORE_THAN_2_GPUS. That is a bad example (longer term we don't <br>
> want to use traits for this, but that is a discussion for another day) <br>
> but it is the example that keeps being raised in discussions on this topic.<br>
> <br>
> The main reason for reaching out in this email is to ask if anyone has <br>
> needs that the ResourceClass and Traits scheme does not currently <br>
> address, or can think of a problem with a transition to the newer approach.<br>
<br>
I left a few comments in the change, but I'm assuming as part of the <br>
deprecation we'd remove the filter from the default enabled_filters list <br>
so new installs don't automatically get warnings during scheduling?<br></blockquote><div><br></div><div>+1<br></div><div>Good point, we totally need to do that.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Another thing is about existing flavors configured for these <br>
capabilities-scoped specs. Are you saying during the deprecation we'd <br>
continue to use those even if the filter is disabled? In the review I <br>
had suggested that we add a pre-upgrade check which inspects the flavors <br>
and if any of these are found, we report a warning meaning those flavors <br>
need to be updated to use traits rather than capabilities. Would that be <br>
reasonable?<br></blockquote><div><br></div><div>I like the idea of a warning, but there are features that have not yet moved to traits:</div><div><a href="https://specs.openstack.org/openstack/ironic-specs/specs/juno-implemented/uefi-boot-for-ironic.html">https://specs.openstack.org/openstack/ironic-specs/specs/juno-implemented/uefi-boot-for-ironic.html</a><br></div><div><br></div><div>There is a more general plan that will help, but its not quite ready yet:<br></div><div><a href="https://review.openstack.org/#/c/504952/">https://review.openstack.org/#/c/504952/</a><br></div><div><br></div><div>As such, I think we can't get pull the plug on flavors including capabilities and passing them to Ironic, but (after a cycle of deprecation) I think we can now stop pushing capabilities from Ironic into Nova and using them for placement.</div><div><br></div><div>Thanks,</div><div>John</div></div></div></div></div>