<div dir="ltr"><div><div><div><div><p class="inbox-inbox-MsoNormal"><span style="font-size:11pt;font-family:calibri">> 1.
we agreed on whether the 'network_interface' was, or was not, an
interface that was similar to the existing power, deploy, ... interfaces
so that it fit into the driver composition
work </span></p>with the network interface being environment- (binding a node to a particular Switch type) rather than HW-dependent, I've got an impression it is directed a bit against the driver composition spec in these two points:<br><br>* "Make vendors in charge of defining a set of supported interface implementations and the default implementation to be used." [1]<br>* "The list of hardware interfaces is still hardcoded in the Python code and cannot be extended by plugins."[2]<br><br></div><div>Therefore having network_interface part of hardware_type might effectively prevent competition (mixing and matching switches with nodes) if HW vendor X decides to blacklist Switch vendor Y by not including Y's Switches in X.supported_network_interfaces list.<br></div><br>Moreover if the default-interface logic is "For <em>hardware types</em> setting <tt class="inbox-inbox-docutils inbox-inbox-literal"><span class="inbox-inbox-pre"><interface_name>_interface</span></tt> field to <tt class="inbox-inbox-docutils inbox-inbox-literal"><span class="inbox-inbox-pre">None</span></tt>
means using the <em>vendor</em> default defined in the <em>hardware type</em>.
If the <em>vendor</em> default is <tt class="inbox-inbox-docutils inbox-inbox-literal"><span class="inbox-inbox-pre">None</span></tt>, the interface will be disabled."[3] the HW vendor will have difficulties to express they don't care what switch their node is supposed to be connected to; should they list all possible switch vendors from within the tree in supported_network_interfaces? What about out of tree vendors? Wouldn't this lead to the driver naming the driver reform spec is supposed to prevent (e.g to have X_node_Y_switch, X_node_Z_switch in enabled_hardware_types)?<br><br></div>I'd therefore suggest against network_interface being part of the hardware_type.<br><br></div>Cheers,<br></div>milan<br><div><div><div><div><div><br>[1] section "With this spec we are going to achieve the following goals:" first bullet, <a href="http://specs.openstack.org/openstack/ironic-specs/specs/not-implemented/driver-composition-reform.html#introduction">http://specs.openstack.org/openstack/ironic-specs/specs/not-implemented/driver-composition-reform.html#introduction</a><br>[2] second bullet in the list: <a href="http://specs.openstack.org/openstack/ironic-specs/specs/not-implemented/driver-composition-reform.html#configuration">http://specs.openstack.org/openstack/ironic-specs/specs/not-implemented/driver-composition-reform.html#configuration</a><br></div><div>[3] second bullet in the list: <a href="http://specs.openstack.org/openstack/ironic-specs/specs/not-implemented/driver-composition-reform.html#database-and-rest-api">http://specs.openstack.org/openstack/ironic-specs/specs/not-implemented/driver-composition-reform.html#database-and-rest-api</a><br><br></div></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr">út 12. 7. 2016 v 18:58 odesílatel Loo, Ruby <<a href="mailto:ruby.loo@intel.com">ruby.loo@intel.com</a>> napsal:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="white" lang="EN-US" link="blue" vlink="purple">
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">Thanks Devananda and Dmitry and Sam!<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">From my point of view, I wanted to make sure that:<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">1. we agreed on whether the 'network_interface' was, or was not, an interface that was similar to the existing power, deploy, ... interfaces so that it fit into the driver composition
work <u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">2. we agreed on having or not having the default_network_interface configuration option, and whether/how it fit into the driver composition work.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">I think, because I haven't heard anyone disagree (yet), that the network_interface fits into the driver composition work and that we want the configuration option. It looks like we are
trying to figure out *how* it fits into the driver composition work and hardware_types. To that end, I thought I'd put up a patch [1] that I hope captures everyone's suggestions. Maybe we can move to that patch to comment.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">As far as the multi-tenant networking patches [2] go, as long as we're good with the above, I think we're good to continue. The details wrt how the network_interface and default configuration
option is integrated with hardware_types can be worked out.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">If you think otherwise, please let me know :)<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">--ruby<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">[1] <a href="https://review.openstack.org/#/c/341084/" target="_blank">
https://review.openstack.org/#/c/341084/</a><u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">[2] <a href="https://review.openstack.org/#/c/285852/" target="_blank">
https://review.openstack.org/#/c/285852/</a><u></u><u></u></span></p></div></div><div bgcolor="white" lang="EN-US" link="blue" vlink="purple"><div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri"><u></u> <u></u></span></p>
<div>
<div>
<p class="MsoNormal">On 2016-07-12, 8:02 AM, "Dmitry Tantsur" <<a href="mailto:dtantsur@redhat.com" target="_blank">dtantsur@redhat.com</a>> wrote:<u></u><u></u></p>
</div>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<blockquote style="border:none;border-left:solid #b5c4df 4.5pt;padding:0cm 0cm 0cm 4.0pt;margin-left:3.75pt;margin-right:0cm">
<div>
<div>
<div>
<p class="MsoNormal">Thanks for writing this up, minor comments inline.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">On 07/11/2016 10:57 PM, Devananda van der Veen wrote:<u></u><u></u></p>
</div>
<blockquote style="border:none;border-left:solid #b5c4df 4.5pt;padding:0cm 0cm 0cm 4.0pt;margin-left:3.75pt;margin-right:0cm">
<div>
<p class="MsoNormal">We spent the majority of today's weekly IRC meeting [1] discussing the finer<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">points of this question. I agreed to post a summary of those to the list (it's<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">below the break).<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">tldr;<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">* we don't know if network_interface should behave like other hardware<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">interfaces, but...<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">* we need to come to an agreement on it this week, so we can proceed with the<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">network integration work.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</blockquote>
<div>
<p class="MsoNormal"><snip><u></u><u></u></p>
</div>
<blockquote style="border:none;border-left:solid #b5c4df 4.5pt;padding:0cm 0cm 0cm 4.0pt;margin-left:3.75pt;margin-right:0cm">
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">There was a proposal from sambetts towards the end of the meeting, which I've<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">edited for clarity (please correct if I misunderstood any of your points). This<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">seems to capture/address most of the points above and proposes a way forward,<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">while keeping within the intent of our driver composition reform spec. It was<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">the only clear suggestion during the meeting.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">- in-tree hardware_types declare supported_network_interfaces to be empty [4]<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">and declare no default_network_interface<u></u><u></u></p>
</div>
</blockquote>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">We need supported_network_interfaces, otherwise you won't be able to
<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">check compatibility. I think we should introduce a constant to use like
<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">that:<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"> class MyHwType:<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> supported_network_interfaces = ironic.network.ALL_INTERFACES<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<blockquote style="border:none;border-left:solid #b5c4df 4.5pt;padding:0cm 0cm 0cm 4.0pt;margin-left:3.75pt;margin-right:0cm">
<div>
<p class="MsoNormal">- we add a CONF option for default_network_interface, with a sane default value<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">- this CONF option is validated on conductor load to be supported by all loaded<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">hardware_types, and the conductor refuses to start if this CONF option is set to<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">a value not supported by one or more enabled_hardware_types<u></u><u></u></p>
</div>
</blockquote>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">How do we distinguish between interfaces which have a default and which
<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">don't? For example, I can see a use case for having defaults for deploy
<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">and inspect (the latter would be used by tripleo for sure).<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<blockquote style="border:none;border-left:solid #b5c4df 4.5pt;padding:0cm 0cm 0cm 4.0pt;margin-left:3.75pt;margin-right:0cm">
<div>
<p class="MsoNormal">- if a(n out of tree) hardware_type declares a default_network_interface, this<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">will take precedence over the CONF option<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">- a node created without specifying a network interface will check the<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">hardware_type's supported_network_interfaces, and when that is empty, fall back<u></u><u></u></p>
</div>
</blockquote>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">s/supported/default/ here?<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<blockquote style="border:none;border-left:solid #b5c4df 4.5pt;padding:0cm 0cm 0cm 4.0pt;margin-left:3.75pt;margin-right:0cm">
<div>
<p class="MsoNormal">to the CONF.default_network_interface, just as other interfaces fall back to the<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">hardware_type's relevant default<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">- operators can override a specific node's network_interface, which follows the<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">usual rules for setting an interface on a Node (ie, the interface must be in<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">hardware_type.supported_network_interfaces AND in CONF.enabled_network_interfaces)<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">If anyone else has other clear suggestions that address all the issues here,<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">please reply with them.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">I'm going to make myself available tomorrow at 1700 UTC, in both IRC and by<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">voice [3] (conference line # TBD) to discuss this with anyone. If we need to<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">discuss it again on Wednesday, we can.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Thanks much,<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">--devananda<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">[1] starting at 17:20<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><a href="http://eavesdrop.openstack.org/meetings/ironic/2016/ironic.2016-07-11-17.00.log.html" target="_blank">http://eavesdrop.openstack.org/meetings/ironic/2016/ironic.2016-07-11-17.00.log.html</a><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">[2]<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><a href="http://specs.openstack.org/openstack/ironic-specs/specs/approved/driver-composition-reform.html" target="_blank">http://specs.openstack.org/openstack/ironic-specs/specs/approved/driver-composition-reform.html</a><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">[3] <a href="https://wiki.openstack.org/wiki/Infrastructure/Conferencing" target="_blank">
https://wiki.openstack.org/wiki/Infrastructure/Conferencing</a><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">[4] I think we may need to have in-tree drivers declare<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">supported_network_interfaces to be [noop, flat, neutron], but that is not what<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Sam suggested during the meeting<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">On 06/28/2016 08:32 AM, Dmitry Tantsur wrote:<u></u><u></u></p>
</div>
<blockquote style="border:none;border-left:solid #b5c4df 4.5pt;padding:0cm 0cm 0cm 4.0pt;margin-left:3.75pt;margin-right:0cm">
<div>
<p class="MsoNormal">Hi folks!<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">I was reviewing <a href="https://review.openstack.org/317391" target="_blank">
https://review.openstack.org/317391</a> and realized I don't quite<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">understand why we want to have node.network_interface. What's the real life use<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">case for it?<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Do we expect some nodes to use Neutron, some - not?<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Do we expect some nodes to benefit from network separation, some - not? There<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">may be a use case here, but then we have to expose this field to Nova for<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">scheduling, so that users can request a "secure" node or a "less secure" one. If<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">we don't do that, Nova will pick at random, which makes the use case unclear again.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">If we do that, the whole work goes substantially beyond what we were trying to<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">do initially: isolate tenants from the provisioning network and from each other.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Flexibility it good, but the patches raise upgrade concerns, because it's<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">unclear how to provide a good default for the new field. And anyway it makes the<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">whole thing much more complex than it could be.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Any hints are welcome.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">__________________________________________________________________________<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">OpenStack Development Mailing List (not for usage questions)<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Unsubscribe: <a href="mailto:OpenStack-dev-request@lists.openstack.org" target="_blank">
OpenStack-dev-request@lists.openstack.org</a>?subject:unsubscribe<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><u></u><u></u></p>
</div>
</blockquote>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">__________________________________________________________________________<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">OpenStack Development Mailing List (not for usage questions)<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Unsubscribe: <a href="mailto:OpenStack-dev-request@lists.openstack.org" target="_blank">
OpenStack-dev-request@lists.openstack.org</a>?subject:unsubscribe<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</blockquote>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">__________________________________________________________________________<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">OpenStack Development Mailing List (not for usage questions)<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">Unsubscribe: <a href="mailto:OpenStack-dev-request@lists.openstack.org" target="_blank">
OpenStack-dev-request@lists.openstack.org</a>?subject:unsubscribe<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div></div>
__________________________________________________________________________<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.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</blockquote></div>