<div dir="ltr"><div><span style="font-size:12.8px">In Nisha's message, "capabilities" refers to "ComputeCapabilitiesFilter".   "capabilities" provides a lot of flexibility for scheduling.  It supports qualitative as well as quantitative attributes.  It supports a variety of operators such as ">=", "<", "=", etc.   For instance, with "capabilities", one can create a flavor for "GPU_Count >=2".  Quantity matters for workloads.  A workload may require at least 2GPUs or at least certain amount of SSD capacity to meet the performance requirements.   Trait will help but it only supports qualitative attributes.  Therefore, we still need "capabilities".  </span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">Standard Resource Class represents quantitative things but it 's not available for Ironic.   Ironic currently can only use one single CUSTOM_Resource_class with exact match.  Prior to Pike, Ironic customers  can use  non-exact match filter to support the use case of "at least this amount of quantitative things on a bare metal node" but it's not supported by Ironic Custom_resource_class.  Therefore it is a regression and will cause issues for those who are depending on it.</span></div><span class="gmail-im" style="font-size:12.8px"><div><span class="gmail-im" style="font-size:12.8px"><br></span></div>On 19 October 2017 at 15:38, Jay Pipes <span dir="ltr"><<a href="mailto:jaypipes@gmail.com" target="_blank">jaypipes@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 10/16/2017 05:31 AM, Nisha Agarwal wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Matt,<br><br>As i understand John's spec <a href="https://review.openstack.org/#/c/507052/" rel="noreferrer" target="_blank">https://review.openstack.org/#<wbr>/c/507052/</a> <<a href="https://review.openstack.org/#/c/507052/" rel="noreferrer" target="_blank">https://review.openstack.org/<wbr>#/c/507052/</a>>, it is actually a replacement for capabilities(qualitative only) for ironic. It doesnt cover the quantitative capabilities as 'traits' are meant only for qualitative capabilities. Quantitative capabilities are covered by resource classes in Nova. We have few (one or two) quantitative capabilities already supported in ironic.<br></blockquote><br>Hi Nisha,<br><br>This may be a case of mixed terminology. We do not refer to anything quantitative as a "capability". Rather, we use the term "resource class" (or sometimes just "resource") to represent quantitative things that may be consumed by the instance.<br><br>Traits, on the other hand, are qualitative. They represent a binary on/off capability that the compute host (or baremetal node in the case of Ironic) exposes.<br><br>There's no limit on the number of traits that may be associated with a particular Ironic baremetal node. However, for Ironic baremetal nodes, if the node.resource_class attribute is set, the Nova Ironic virt driver will create a single inventory record for the node containing a quantity of 1 and a resource class equal to whatever is in the node.resource_class attribute. This resource class is auto-created by Nova as a custom resource class.<br></blockquote><div><br></div></span><div style="font-size:12.8px">Just to follow up on this one...</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">I hope my traits spec will replace the need for the non-exact filters.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Consider two flavors Gold and Gold_Plus. Lets say Gold_plus gives you a slightly newer CPU, or something.<br></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Consider this setup:</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">* both GOLD and GOLD_PLUS ironic nodes have Resource Class: CUSTOM_GOLD</div><div style="font-size:12.8px">* but you can have some have trait: GOLD_REGULAR and some with GOLD_PLUS</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Now you can have the flavors:</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">* GOLD flavor requests resources:CUSTOM_GOLD=1</div><div style="font-size:12.8px">* GOLD_PLUS flavor also has resources:CUSTOM_GOLD=1 but also trait:GOLD_PLUS:requires</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Now eventually we could modify the GOLD flavor to say:</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">* resources:CUSTOM_GOLD=1 and trait:GOLD_REGULAR:prefer</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">@Nisha I think that should largely allow you to construct the same behavior you have today, or am I totally missing what you are wanting to do?</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Oct 19, 2017 at 8:37 AM, John Garbutt <span dir="ltr"><<a href="mailto:john@johngarbutt.com" target="_blank">john@johngarbutt.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span class="">On 19 October 2017 at 15:38, Jay Pipes <span dir="ltr"><<a href="mailto:jaypipes@gmail.com" target="_blank">jaypipes@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>On 10/16/2017 05:31 AM, Nisha Agarwal wrote:<br>
</span><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi Matt,<br>
<br>
As i understand John's spec <a href="https://review.openstack.org/#/c/507052/" rel="noreferrer" target="_blank">https://review.openstack.org/#<wbr>/c/507052/</a> <<a href="https://review.openstack.org/#/c/507052/" rel="noreferrer" target="_blank">https://review.openstack.org/<wbr>#/c/507052/</a>>, it is actually a replacement for capabilities(qualitative only) for ironic. It doesnt cover the quantitative capabilities as 'traits' are meant only for qualitative capabilities. Quantitative capabilities are covered by resource classes in Nova. We have few (one or two) quantitative capabilities already supported in ironic.<br>
</blockquote>
<br>
Hi Nisha,<br>
<br>
This may be a case of mixed terminology. We do not refer to anything quantitative as a "capability". Rather, we use the term "resource class" (or sometimes just "resource") to represent quantitative things that may be consumed by the instance.<br>
<br>
Traits, on the other hand, are qualitative. They represent a binary on/off capability that the compute host (or baremetal node in the case of Ironic) exposes.<br>
<br>
There's no limit on the number of traits that may be associated with a particular Ironic baremetal node. However, for Ironic baremetal nodes, if the node.resource_class attribute is set, the Nova Ironic virt driver will create a single inventory record for the node containing a quantity of 1 and a resource class equal to whatever is in the node.resource_class attribute. This resource class is auto-created by Nova as a custom resource class.<br></blockquote><div><br></div></span><div>Just to follow up on this one...</div><div><br></div><div>I hope my traits spec will replace the need for the non-exact filters.</div><div><br></div><div>Consider two flavors Gold and Gold_Plus. Lets say Gold_plus gives you a slightly newer CPU, or something.<br></div><div><br></div><div>Consider this setup:</div><div><br></div><div>* both GOLD and GOLD_PLUS ironic nodes have Resource Class: CUSTOM_GOLD</div><div>* but you can have some have trait: GOLD_REGULAR and some with GOLD_PLUS</div><div><br></div><div>Now you can have the flavors:</div><div><br></div><div>* GOLD flavor requests resources:CUSTOM_GOLD=1</div><div>* GOLD_PLUS flavor also has resources:CUSTOM_GOLD=1 but also trait:GOLD_PLUS:requires</div><div><br></div><div>Now eventually we could modify the GOLD flavor to say:</div><div><br></div><div>* resources:CUSTOM_GOLD=1 and trait:GOLD_REGULAR:prefer</div><div><br></div><div>@Nisha I think that should largely allow you to construct the same behavior you have today, or am I totally missing what you are wanting to do?</div><div><br></div><div>Thanks,<br></div><div>John</div></div></div></div>
<br>______________________________<wbr>______________________________<wbr>______________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.<wbr>openstack.org?subject:<wbr>unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/<wbr>cgi-bin/mailman/listinfo/<wbr>openstack-dev</a><br>
<br></blockquote></div><br></div>