<div dir="ltr"><div>Hi Matt,</div><div>thanks for these great summaries.</div><div><br></div><div>I didn't find any mention to nested quotas.</div><div>Was it discussed in the PTG? and what can we expect for Queens?</div><div><br></div><div>thanks,</div><div>Belmiro</div><div>CERN</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Sep 18, 2017 at 11:58 PM, Matt Riedemann <span dir="ltr"><<a href="mailto:mriedemos@gmail.com" target="_blank">mriedemos@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">There was a whole lot of other stuff discussed at the PTG. The details are in [1]. I won't go into everything here, so I'm just highlighting some of the more concrete items that had owners or TODOs.<br>
<br>
Ironic<br>
------<br>
<br>
The Ironic team came over on Wednesday afternoon. We talked a bit, had some laughs, it was a good time. Since I don't speak fluent baremetal, Dmitry Tantsur is going to recap those discussions in the mailing list. Thanks again, Dmitry.<br>
<br>
Privsep<br>
-------<br>
<br>
Michael Still has been going hog wild converting the nova libvirt driver code to use privsep instead of rootwrap. He has a series of changes tracked under this blueprint [2]. Most of the discussion was a refresh on privsep and a recap of what's already been merged and some discussion on outstanding patches. The goal for Queens is to get the entire libvirt driver converted and also try to get all of nova-compute converted, but we want to limit that to getting things merged early in the release to flush out bugs since a lot of these are weird, possibly untested code paths. There was also discussion of a kind of privsep heartbeat daemon to tell if it's running (even though it's not a separate service) but this is complicated and is not something we'll pursue for Queens.<br>
<br>
Websockify security proxy framework<br>
------------------------------<wbr>-----<br>
<br>
This is a long-standing security hardening feature [3] which has changed hands a few times and hasn't gotten much review. Sean Dague and Melanie Witt agreed to focus on reviewing this for Queens.<br>
<br>
Certificate validation<br>
----------------------<br>
<br>
This is another item that's been discussed since at least the Ocata summit but hasn't made much progress. Sean Dague agreed to help review this, and Eric Fried said he knew someone that could help review the security aspects of this change. Sean also suggested scheduling a hangout so the John Hopkins University team working on this can give a primer on the feature and what to look out for during review. We also suggested getting a scenario test written for this in the barbican tempest plugin, which runs as an experimental queue job for nova.<br>
<br>
Notifications<br>
-------------<br>
<br>
Given the state of the Searchlight project and how we don't plan on using Searchlight as a global proxy for the compute REST API, we are not going to work on parity with versioned notifications there. There are some cleanups we still need to do in Nova for versioned notifications from a performance perspective. We also agreed that we aren't going to consider deprecating legacy unversioned notifications until we have parity with the versioned notifications, especially given legacy unversioned notification consumers have not yet moved to using the versioned notifications.<br>
<br>
vGPU support<br>
------------<br>
<br>
This depends on nested resource providers (like lots of other things). It was not clear from the discussion if this is static or dynamic support, e.g. can we hot plug vGPUs using Cyborg? I assume we will not support hot plugging at first. We also need improved functional testing of this space before we can make big changes.<br>
<br>
Preemptible (spot) instances<br>
-----------------------------<br>
<br>
This was continuing the discussion from the Boston forum session [5]. The major issue in Nova is that we don't want Nova to be in charge of orchestrating preempting instances when a request comes in for a "paid" instance. We agreed to start small where you can't burst over quota. Blazar also delivered some reservation features in Pike [6] which sound like they can be built on here, which also sound like expiration policies. Someone will have to prototype an external (to nova) "reaper" which will cull the preemptible instances based on some configurable policy. Honestly the notes here are confusing so we're going to need someone to drive this forward. That might mean picking up John Garbutt's draft spec for this (link not available right now).<br>
<br>
Driver updates<br>
--------------<br>
<br>
Various teams from IBM gave updates on plans for their drivers in Queens.<br>
<br>
PowerVM (in tree): the team is proposing a few more capabilities to the driver in Queens. Details are in the spec [7].<br>
<br>
zDPM (out of tree): this out of tree driver has had two releases (ocata and pike) and is working on 3rd party CI. One issue they have with Tempest is they can only boot from volume.<br>
<br>
zVM (out of tree): the team is working on refactoring some code into a library, similar to os-xenapi, os-powervm and oslo.vmware. They have CI running but are not yet reporting against nova changes.<br>
<br>
Endpoint discovery<br>
------------------<br>
<br>
This is carry-over work from Ocata and Pike to standardize how Nova does endpoint discovery with other services, like keystone/placement/cinder/glan<wbr>ce/neutron/ironic/barbican. The spec is here [8]. The dependent keystoneauth1 changes were released in Pike so we should be able to make quick progress on this early in Queens to flush out bugs.<br>
<br>
Documentation<br>
-------------<br>
<br>
We talked about the review process for docs changes and agreed it's not easy to define when we can have a single +2 to approve a docs change (typo fixes and such are fine). We also noted that it's OK for people to ping other cores in IRC when they think a docs patch is ready to go, so that we can help move docs patches along faster.<br>
<br>
We also talked a bit about the proposed docs tree structure laid out here [9] and everyone seemed OK with that. Note that we never had a cross-project discussion about how to organize the various project team main pages. If the broader docs team did, maybe someone can please recap that for us.<br>
<br>
Deprecations<br>
------------<br>
<br>
We talked about several things worth deprecating in Queens.<br>
<br>
* The os-cells REST API: we aren't going to do a formal microversion deprecation for this. It's just going to go away when the cells v1 code goes away, hopefully in Rocky.<br>
<br>
* Running nova-api under eventlet: we've been running nova-api under uwsgi in CI since Pike, so we agreed to deprecate running nova-api under eventlet in Queens and remove that support in Rocky. Doing this deprecation needs an owner...<br>
<br>
* Deprecating (personality) file injection: we talked about this at the Pike PTG and agreed we should still do this. People can use userdata. I'm going to write a spec for what this looks like in the API. We also need to consider, as part of this, if we should allow the user to specify new userdata during rebuild. Note that the backend code (with libguestfs) will continue to work with older microversions using file injection, but this is how we signal it's going away or you shouldn't use it.<br>
<br>
* Ephemeral and swap disks: these aren't going away, but Matthew Booth would like to remove image caching for them, since it causes lot of problems. This seems OK to do.<br>
<br>
Strict isolation of hosts for image and flavor<br>
------------------------------<wbr>----------------<br>
<br>
This was a re-hash of a spec [10] and discussion we had at the Pike PTG. Tushar Patil's team is going to take over the spec and update it. And just like we said in Atlanta, stakeholders that are doing some variant of this scheduler filter already (Intel, WindRiver) should be reviewing the spec to make sure it will cover their existing use cases and out of tree scheduler filters.<br>
<br>
Updating server instance keypairs<br>
------------------------------<wbr>---<br>
<br>
Several API consumers, including OpenStack Infra, have asked for the ability to update the keypair associated with an instance. We initially talked about just being able to specify a new keypair during rebuild, but then it was pointed out that depending on how cloud-init is configured, all one might need to do is update the keypair and reboot the instance. Kevin Zheng is going to take over the spec [11] and update it for the rebuild/reboot cases which will probably determine how we want the API to behave.<br>
<br>
More instance action (event) records<br>
------------------------------<wbr>------<br>
<br>
We track instance action start/end events for a lot of server action APIs but not all, like attach/detach interfaces/volumes. Kevin Zheng is going to work on filling in some of these gaps in Queens.<br>
<br>
Performance issue of listing instances and filtering on IP<br>
------------------------------<wbr>----------------------------<br>
<br>
A long-standing known performance issue [12] is that when listing instances and filtering on IP, we don't do the IP filtering in the DB SQL query, we do it in code. We talked about a few ways to solve this, such as adding a new mapping table for the filter/join, but this might get out of sync with the instance_info_caches table. Another idea was doing an up-front filter of instances using the Neutron ports API such that we could figure out which instances (via port.device_id) have certain fixed IPs. The issue here is that the Neutron ports API does not perform a regex filter on the IPs, which the compute API does. It also means more proxying to other services. We kicked around the idea of implementing this client-side in openstackclient and then having that be a template for other client/SDK code to model (something I'm not personally in love with). The TODO on this is to see what it would take to get the Neutron ports API to support regex matching on IP filters.<br>
<br>
Add a description field to flavors<br>
------------------------------<wbr>----<br>
<br>
There was general agreement on doing this [13], and allowing to update the description for a flavor. We said we wouldn't persist the flavor.description with the instance though, so showing an embedded flavor with server details wouldn't include the description (microversion >= 2.47).<br>
<br>
Deprecating the keymap option<br>
-----------------------------<br>
<br>
The proposal to deprecate the keymap option [14] will wait until there is an alternative, which will not be available until a new release of the noVNC package happens (version 1.0.0?). As for specifying the keymap when creating a server, we said to not do this with flavor extra specs, but instead pass userdata through to cloud-init.<br>
<br>
Availability zones with ':' in the name<br>
------------------------------<wbr>---------<br>
<br>
This was a discussion about a latent bug [15] and the forced hosts capability for admins to specify AZ:HOST:NODE in the API. If the availability zone name has a colon in it, it breaks the parsing. We agreed that we will update the schema for AZs to not allow colons in the name. We realize this means requests which used to work to create an AZ with ':' in the name will now fail, and we are not going to do this with a microversion, because even though you can create AZs with colons in the name, you can't use them - it will just result in an obscure failure later. We also agreed to backport the fix for this, and make sure it's clearly documented in the API reference.<br>
<br>
[1] <a href="https://etherpad.openstack.org/p/nova-ptg-queens" rel="noreferrer" target="_blank">https://etherpad.openstack.org<wbr>/p/nova-ptg-queens</a><br>
[2] <a href="https://blueprints.launchpad.net/nova/+spec/hurrah-for-privsep" rel="noreferrer" target="_blank">https://blueprints.launchpad.n<wbr>et/nova/+spec/hurrah-for-privs<wbr>ep</a><br>
[3] <a href="https://review.openstack.org/#/c/496160/" rel="noreferrer" target="_blank">https://review.openstack.org/#<wbr>/c/496160/</a><br>
[4] <a href="https://review.openstack.org/#/q/topic:bp/nova-validate-certificates+status:open" rel="noreferrer" target="_blank">https://review.openstack.org/#<wbr>/q/topic:bp/nova-validate-cert<wbr>ificates+status:open</a><br>
[5] <a href="https://etherpad.openstack.org/p/BOS-forum-advanced-instance-scheduling" rel="noreferrer" target="_blank">https://etherpad.openstack.org<wbr>/p/BOS-forum-advanced-instance<wbr>-scheduling</a><br>
[6] <a href="http://blazar.readthedocs.io/en/latest/userdoc/using.instance-reservation.html" rel="noreferrer" target="_blank">http://blazar.readthedocs.io/e<wbr>n/latest/userdoc/using.instanc<wbr>e-reservation.html</a><br>
[7] <a href="https://review.openstack.org/#/c/503061/" rel="noreferrer" target="_blank">https://review.openstack.org/#<wbr>/c/503061/</a><br>
[8] <a href="https://review.openstack.org/500190" rel="noreferrer" target="_blank">https://review.openstack.org/5<wbr>00190</a><br>
[9] <a href="https://etherpad.openstack.org/p/ideal-nova-docs-landing-page" rel="noreferrer" target="_blank">https://etherpad.openstack.org<wbr>/p/ideal-nova-docs-landing-pag<wbr>e</a><br>
[10] <a href="https://review.openstack.org/#/c/381912/" rel="noreferrer" target="_blank">https://review.openstack.org/#<wbr>/c/381912/</a><br>
[11] <a href="https://review.openstack.org/#/c/375221/" rel="noreferrer" target="_blank">https://review.openstack.org/#<wbr>/c/375221/</a><br>
[12] <a href="https://bugs.launchpad.net/nova/+bug/1711303" rel="noreferrer" target="_blank">https://bugs.launchpad.net/nov<wbr>a/+bug/1711303</a><br>
[13] <a href="https://review.openstack.org/#/c/501017/" rel="noreferrer" target="_blank">https://review.openstack.org/#<wbr>/c/501017/</a><br>
[14] <a href="https://review.openstack.org/#/c/483994/" rel="noreferrer" target="_blank">https://review.openstack.org/#<wbr>/c/483994/</a><br>
[15] <a href="https://review.openstack.org/#/c/490722/" rel="noreferrer" target="_blank">https://review.openstack.org/#<wbr>/c/490722/</a><span class="HOEnZb"><font color="#888888"><br>
<br>
-- <br>
<br>
Thanks,<br>
<br>
Matt<br>
<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.op<wbr>enstack.org?subject:unsubscrib<wbr>e</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi<wbr>-bin/mailman/listinfo/openstac<wbr>k-dev</a><br>
</font></span></blockquote></div><br></div>