)]}'
{"specs/train/approved/request-filter-image-types.rst":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e2b84e50afa61dba0ab47714c885f2cff7c324b3","unresolved":false,"context_lines":[{"line_number":105,"context_line":"Performance Impact"},{"line_number":106,"context_line":"------------------"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"Performance should not be impacted negatively, but could improved"},{"line_number":109,"context_line":"depending on what current hacks are in place in deployer\u0027s systems to"},{"line_number":110,"context_line":"provide this. Performance is definitely improved if operators are"},{"line_number":111,"context_line":"currently requiring glance to flatten all images to raw, as after this"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_0a93615e","line":108,"range":{"start_line":108,"start_character":57,"end_line":108,"end_character":65},"updated":"2019-03-19 18:27:47.000000000","message":"be improved","commit_id":"83178a7a9576f58b952da1ba36ac3c0f9fbeb0e1"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e2b84e50afa61dba0ab47714c885f2cff7c324b3","unresolved":false,"context_lines":[{"line_number":114,"context_line":"Other deployer impact"},{"line_number":115,"context_line":"---------------------"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"This effort will add a scheduler request filter, which generally come"},{"line_number":118,"context_line":"with a config toggle to enable them. Otherwise, the virt drivers"},{"line_number":119,"context_line":"should be able to determine which image format capabilities to expose"},{"line_number":120,"context_line":"from existing configuration data."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_aa09ed95","line":117,"range":{"start_line":117,"start_character":17,"end_line":117,"end_character":47},"updated":"2019-03-19 18:27:47.000000000","message":"I\u0027m going to embarrass myself here, but what\u0027s a scheduler request filter?\n\nI was expecting this to be implemented by marking the image type trait as required in the image_meta. Is that part of it?","commit_id":"83178a7a9576f58b952da1ba36ac3c0f9fbeb0e1"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"5b0dd07cfedc98eff4e5352171af467fd40b9f95","unresolved":false,"context_lines":[{"line_number":114,"context_line":"Other deployer impact"},{"line_number":115,"context_line":"---------------------"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"This effort will add a scheduler request filter, which generally come"},{"line_number":118,"context_line":"with a config toggle to enable them. Otherwise, the virt drivers"},{"line_number":119,"context_line":"should be able to determine which image format capabilities to expose"},{"line_number":120,"context_line":"from existing configuration data."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_a9e564de","line":117,"range":{"start_line":117,"start_character":17,"end_line":117,"end_character":47},"in_reply_to":"5fc1f717_2e7f3aac","updated":"2019-03-20 16:02:55.000000000","message":"Okay, cool, thanks. See PS2 followon...","commit_id":"83178a7a9576f58b952da1ba36ac3c0f9fbeb0e1"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"4e2a50042845412eab476ae39b5291629c642ddc","unresolved":false,"context_lines":[{"line_number":114,"context_line":"Other deployer impact"},{"line_number":115,"context_line":"---------------------"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"This effort will add a scheduler request filter, which generally come"},{"line_number":118,"context_line":"with a config toggle to enable them. Otherwise, the virt drivers"},{"line_number":119,"context_line":"should be able to determine which image format capabilities to expose"},{"line_number":120,"context_line":"from existing configuration data."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5fc1f717_2e7f3aac","line":117,"range":{"start_line":117,"start_character":17,"end_line":117,"end_character":47},"in_reply_to":"5fc1f717_aa09ed95","updated":"2019-03-20 15:41:41.000000000","message":"It\u0027s the stuff I added a couple cycles ago that just adds some functions to the path before we call placement. Gives us a chance to add traits and things into the reqspec before we call placement. scheduler/request_filter.py.","commit_id":"83178a7a9576f58b952da1ba36ac3c0f9fbeb0e1"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"5b0dd07cfedc98eff4e5352171af467fd40b9f95","unresolved":false,"context_lines":[{"line_number":115,"context_line":"---------------------"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"This effort will add a scheduler request filter, which generally come"},{"line_number":118,"context_line":"with a config toggle to enable them. Otherwise, the virt drivers"},{"line_number":119,"context_line":"should be able to determine which image format capabilities to expose"},{"line_number":120,"context_line":"from existing configuration data."},{"line_number":121,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_a981e4c5","line":118,"range":{"start_line":118,"start_character":5,"end_line":118,"end_character":35},"updated":"2019-03-20 16:02:55.000000000","message":"Can you provide a little more detail here please? Is the config option just going to enable the filtering method, but the method itself will use image meta to augment the required traits in the reqspec? (If so, is the conf option really necessary?)","commit_id":"ee74a1c1d87cb7473811ca6e6089cf83210d425b"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"94868b8a09bf8770848f996df85d8480c0ed8f7f","unresolved":false,"context_lines":[{"line_number":115,"context_line":"---------------------"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"This effort will add a scheduler request filter, which generally come"},{"line_number":118,"context_line":"with a config toggle to enable them. Otherwise, the virt drivers"},{"line_number":119,"context_line":"should be able to determine which image format capabilities to expose"},{"line_number":120,"context_line":"from existing configuration data."},{"line_number":121,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5fc1f717_6496c397","line":118,"range":{"start_line":118,"start_character":5,"end_line":118,"end_character":35},"in_reply_to":"5fc1f717_a981e4c5","updated":"2019-03-20 16:18:41.000000000","message":"A toggle is necessary (see the upgrade section) and it\u0027s just a boolean, like all the others in this category (which is why I referenced the others) but sure.","commit_id":"ee74a1c1d87cb7473811ca6e6089cf83210d425b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"17cf19b18b85287fd11fb12a269f68b680886de3","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Request Filter for Image Types"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad blueprint:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://blueprints.launchpad.net/nova/+spec/request-filter-image-types"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_d36f3a90","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":44},"updated":"2019-03-20 20:52:59.000000000","message":"You can remove this, it\u0027s from the template.","commit_id":"4f06ea054f5dd60c3059c1f386001b609d82c75c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"17cf19b18b85287fd11fb12a269f68b680886de3","unresolved":false,"context_lines":[{"line_number":13,"context_line":"https://blueprints.launchpad.net/nova/+spec/request-filter-image-types"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Nova supports multiple hypervisor drivers with multiple potential"},{"line_number":16,"context_line":"configurations, most of which support some subset of the allowable"},{"line_number":17,"context_line":"image types that can be uploaded to glance. Nova needs a way to make"},{"line_number":18,"context_line":"sure that it picks compute nodes that are capable of using the type of"},{"line_number":19,"context_line":"image requested by the user."},{"line_number":20,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_d3f41ad2","line":17,"range":{"start_line":16,"start_character":57,"end_line":17,"end_character":42},"updated":"2019-03-20 20:52:59.000000000","message":"If you\u0027re talking about this specifically, please link to it for reference:\n\nhttps://docs.openstack.org/image-guide/image-formats.html#disk-formats","commit_id":"4f06ea054f5dd60c3059c1f386001b609d82c75c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"17cf19b18b85287fd11fb12a269f68b680886de3","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Currently, Nova will happily schedule instances to compute nodes with"},{"line_number":25,"context_line":"no regard for whether or not the compute node can even read the format"},{"line_number":26,"context_line":"that the requested image is stored in. For example, if the other"},{"line_number":27,"context_line":"properties match, the scheduler will choose a vmware host to boot a"},{"line_number":28,"context_line":"qcow image, which it may not be able to even read. The existing"},{"line_number":29,"context_line":"methods for preventing this include drastic global policy to"},{"line_number":30,"context_line":"auto-convert all images to flat raw files, or to do a lot of"},{"line_number":31,"context_line":"hand-rolled segregating of the deployment to prevent images from"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_73f2069d","line":28,"range":{"start_line":26,"start_character":39,"end_line":28,"end_character":50},"updated":"2019-03-20 20:52:59.000000000","message":"Tangentially related but this reminds me of something I fixed before with snapshots and xen:\n\nhttps://review.openstack.org/#/c/375875/","commit_id":"4f06ea054f5dd60c3059c1f386001b609d82c75c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"17cf19b18b85287fd11fb12a269f68b680886de3","unresolved":false,"context_lines":[{"line_number":26,"context_line":"that the requested image is stored in. For example, if the other"},{"line_number":27,"context_line":"properties match, the scheduler will choose a vmware host to boot a"},{"line_number":28,"context_line":"qcow image, which it may not be able to even read. The existing"},{"line_number":29,"context_line":"methods for preventing this include drastic global policy to"},{"line_number":30,"context_line":"auto-convert all images to flat raw files, or to do a lot of"},{"line_number":31,"context_line":"hand-rolled segregating of the deployment to prevent images from"},{"line_number":32,"context_line":"landing on inappropriate compute nodes."},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_53182ad2","line":30,"range":{"start_line":29,"start_character":44,"end_line":30,"end_character":41},"updated":"2019-03-20 20:52:59.000000000","message":"Is there a configuration option or something in glance that does this? I\u0027m guessing this?\n\nhttps://docs.openstack.org/glance/latest/configuration/glance_api.html#taskflow_executor.conversion_format\n\nIs that nullable? The help text on that option is really confusing because it says it defaults to \u0027raw\u0027 but then also says: \"By default, conversion_format is not set and must be set explicitly in the configuration file.\"\n\nOh I see, \u0027raw\u0027 is a sample default, not the actual default:\n\nhttps://github.com/openstack/glance/blob/9a80f7ab86a1fa9d9e77383bf6b305889fa8245c/glance/async_/flows/convert.py#L36\n\nAnyway, it\u0027d be nice to link to this for reference.","commit_id":"4f06ea054f5dd60c3059c1f386001b609d82c75c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"17cf19b18b85287fd11fb12a269f68b680886de3","unresolved":false,"context_lines":[{"line_number":28,"context_line":"qcow image, which it may not be able to even read. The existing"},{"line_number":29,"context_line":"methods for preventing this include drastic global policy to"},{"line_number":30,"context_line":"auto-convert all images to flat raw files, or to do a lot of"},{"line_number":31,"context_line":"hand-rolled segregating of the deployment to prevent images from"},{"line_number":32,"context_line":"landing on inappropriate compute nodes."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_f3335661","line":31,"updated":"2019-03-20 20:52:59.000000000","message":"i.e. aggregates yeah?","commit_id":"4f06ea054f5dd60c3059c1f386001b609d82c75c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"74761bcabb37455b4026af46700478424c226622","unresolved":false,"context_lines":[{"line_number":28,"context_line":"qcow image, which it may not be able to even read. The existing"},{"line_number":29,"context_line":"methods for preventing this include drastic global policy to"},{"line_number":30,"context_line":"auto-convert all images to flat raw files, or to do a lot of"},{"line_number":31,"context_line":"hand-rolled segregating of the deployment to prevent images from"},{"line_number":32,"context_line":"landing on inappropriate compute nodes."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_aed47348","line":31,"in_reply_to":"5fc1f717_f3335661","updated":"2019-03-21 13:46:02.000000000","message":"Or a custom filter, or regions, or...","commit_id":"4f06ea054f5dd60c3059c1f386001b609d82c75c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"17cf19b18b85287fd11fb12a269f68b680886de3","unresolved":false,"context_lines":[{"line_number":54,"context_line":"about where to put new instances (i.e. the scheduler). This work aims"},{"line_number":55,"context_line":"to bridge that gap so nova can make better decisions."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"By exposing virt driver image format support as capabilities, and by"},{"line_number":58,"context_line":"translating those capabilities to traits, we can report those to"},{"line_number":59,"context_line":"placement so they are discoverable. The scheduler can examine the"},{"line_number":60,"context_line":"format of the image during a boot request and ask placement only for"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_b3b06e8d","line":57,"updated":"2019-03-20 20:52:59.000000000","message":"We don\u0027t need to rathole on implementation details here, but I\u0027m not sure if the driver capabilities-as-traits interface is best for this, or if the driver should just populate traits in the update_provider_tree periodic call. I mean, driver capabilities today are simple booleans, e.g. supports_device_tagging - either the driver supports it or it doesn\u0027t.\n\nIt sounds like the disk_format would be a list of acceptable formats yeah? Like libvirt could report [qcow2,raw], xen could report [vhd,raw] and vmware would report [vmdk,raw]. So it seems like rather than shoe-horn this into the capabilities dict (unless you\u0027re going to add like a supports_qcow2, supports_vmdk, etc for each disk_format), the update_provider_tree routine that builds the supported traits can just do that directly, e.g. somewhere in here:\n\nhttps://github.com/openstack/nova/blob/59f1f187e5dceb5841a711f265280346d70a972b/nova/virt/libvirt/driver.py#L6700-L6708","commit_id":"4f06ea054f5dd60c3059c1f386001b609d82c75c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"74761bcabb37455b4026af46700478424c226622","unresolved":false,"context_lines":[{"line_number":54,"context_line":"about where to put new instances (i.e. the scheduler). This work aims"},{"line_number":55,"context_line":"to bridge that gap so nova can make better decisions."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"By exposing virt driver image format support as capabilities, and by"},{"line_number":58,"context_line":"translating those capabilities to traits, we can report those to"},{"line_number":59,"context_line":"placement so they are discoverable. The scheduler can examine the"},{"line_number":60,"context_line":"format of the image during a boot request and ask placement only for"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_ce53ffe1","line":57,"in_reply_to":"5fc1f717_b3b06e8d","updated":"2019-03-21 13:46:02.000000000","message":"No, I was planning to just add more booleans, for each type that is or is not supported. They\u0027re effectively booleans when they\u0027re converted to traits anyway. If I take/store a list, I have to validate that list and fail if some driver claims to support something crazy.\n\nDo you feel strongly about it being a list exported from the driver or were you just assuming I was going to change the data type of the capabilities dict?","commit_id":"4f06ea054f5dd60c3059c1f386001b609d82c75c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cd1afd56a5959d69a74b875b8883cc6a0b09cd7c","unresolved":false,"context_lines":[{"line_number":54,"context_line":"about where to put new instances (i.e. the scheduler). This work aims"},{"line_number":55,"context_line":"to bridge that gap so nova can make better decisions."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"By exposing virt driver image format support as capabilities, and by"},{"line_number":58,"context_line":"translating those capabilities to traits, we can report those to"},{"line_number":59,"context_line":"placement so they are discoverable. The scheduler can examine the"},{"line_number":60,"context_line":"format of the image during a boot request and ask placement only for"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_4e838f05","line":57,"in_reply_to":"5fc1f717_ce53ffe1","updated":"2019-03-21 13:49:59.000000000","message":"\u003e Do you feel strongly about it being a list exported from the driver or were you just assuming I was going to change the data type of the capabilities dict?\n\nI\u0027m not strong on it no, I just didn\u0027t know if you were planning on adding a capability that had a non-boolean value for the supported image formats, or if you\u0027d just list them in order, e.g. supports_qcow2, supports_raw, supports_vmdk, etc.","commit_id":"4f06ea054f5dd60c3059c1f386001b609d82c75c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"17cf19b18b85287fd11fb12a269f68b680886de3","unresolved":false,"context_lines":[{"line_number":57,"context_line":"By exposing virt driver image format support as capabilities, and by"},{"line_number":58,"context_line":"translating those capabilities to traits, we can report those to"},{"line_number":59,"context_line":"placement so they are discoverable. The scheduler can examine the"},{"line_number":60,"context_line":"format of the image during a boot request and ask placement only for"},{"line_number":61,"context_line":"compute nodes that support that type (i.e. via a new scheduler request"},{"line_number":62,"context_line":"filter)."},{"line_number":63,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_33c6be18","line":60,"range":{"start_line":60,"start_character":29,"end_line":60,"end_character":41},"updated":"2019-03-20 20:52:59.000000000","message":"nit: server create or move request - since this would also be necessary for migrations, unshelve, evacuate, etc.","commit_id":"4f06ea054f5dd60c3059c1f386001b609d82c75c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"808cb5c9baa7e77f1fb67670d844af29eb7af7f4","unresolved":false,"context_lines":[{"line_number":59,"context_line":"placement so they are discoverable. The scheduler can examine the"},{"line_number":60,"context_line":"format of the image during a boot request and ask placement only for"},{"line_number":61,"context_line":"compute nodes that support that type (i.e. via a new scheduler request"},{"line_number":62,"context_line":"filter)."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Alternatives"},{"line_number":65,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_48e87515","line":62,"updated":"2019-03-20 19:38:47.000000000","message":"Okay, discussed this in IRC a bit [1]. This is the part I was missing, would be nice if it were mentioned in here:\n\nThe request filter works by mapping the image format to the appropriate trait and including it as a required trait in the request.\n\n[1] http://eavesdrop.openstack.org/irclogs/%23openstack-nova/%23openstack-nova.2019-03-20.log.html#t2019-03-20T19:23:13","commit_id":"4f06ea054f5dd60c3059c1f386001b609d82c75c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"74761bcabb37455b4026af46700478424c226622","unresolved":false,"context_lines":[{"line_number":59,"context_line":"placement so they are discoverable. The scheduler can examine the"},{"line_number":60,"context_line":"format of the image during a boot request and ask placement only for"},{"line_number":61,"context_line":"compute nodes that support that type (i.e. via a new scheduler request"},{"line_number":62,"context_line":"filter)."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Alternatives"},{"line_number":65,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_ce1a1f16","line":62,"in_reply_to":"5fc1f717_48e87515","updated":"2019-03-21 13:46:02.000000000","message":"What do you want mentioned? A link to the scheduler request filters? I feel like linking to each part of the code where a change is going to be made is a little heavy handed for an otherwise really simple spec.","commit_id":"4f06ea054f5dd60c3059c1f386001b609d82c75c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"dd3434e2f6fc0867c79a94a7764b5705e98d591a","unresolved":false,"context_lines":[{"line_number":59,"context_line":"placement so they are discoverable. The scheduler can examine the"},{"line_number":60,"context_line":"format of the image during a boot request and ask placement only for"},{"line_number":61,"context_line":"compute nodes that support that type (i.e. via a new scheduler request"},{"line_number":62,"context_line":"filter)."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Alternatives"},{"line_number":65,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_e2d5a71c","line":62,"in_reply_to":"5fc1f717_ce1a1f16","updated":"2019-03-21 18:42:05.000000000","message":"I wanted you to add literally\n\n\"The request filter works by mapping the image format to the appropriate trait and including it as a required trait in the request.\"\n\nIt seems trivial/obvious now that we\u0027ve discussed it to death, but to the new reader it needs to be explicit.","commit_id":"4f06ea054f5dd60c3059c1f386001b609d82c75c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"17cf19b18b85287fd11fb12a269f68b680886de3","unresolved":false,"context_lines":[{"line_number":109,"context_line":"depending on what current hacks are in place in deployer\u0027s systems to"},{"line_number":110,"context_line":"provide this. Performance is definitely improved if operators are"},{"line_number":111,"context_line":"currently requiring glance to flatten all images to raw, as after this"},{"line_number":112,"context_line":"they would be able to leverage native optimized image formats."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Other deployer impact"},{"line_number":115,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_b375cece","line":112,"updated":"2019-03-20 20:52:59.000000000","message":"Yup, plus could potentially cut down on reschedules if you\u0027re not using aggregates and just hoping to get lucky.","commit_id":"4f06ea054f5dd60c3059c1f386001b609d82c75c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"17cf19b18b85287fd11fb12a269f68b680886de3","unresolved":false,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":"This effort will add a scheduler request filter, which (as is typical"},{"line_number":118,"context_line":"with these) will bring a new boolean config toggle in the form of"},{"line_number":119,"context_line":"``[scheduler]/filter_hosts_by_image_type_support``. The virt drivers"},{"line_number":120,"context_line":"should be able to determine which image format capabilities to expose"},{"line_number":121,"context_line":"from existing configuration data and thus do not need additional"},{"line_number":122,"context_line":"configuration elements. The toggle for this could potentially be"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_9303f20f","line":119,"updated":"2019-03-20 20:52:59.000000000","message":"OK so if I\u0027m not using libvirt, I just always disable this.\n\nIf I\u0027m using a mix of libvirt and vmware, and the vmware driver isn\u0027t reporting this stuff, then what? I could enable it, but might start getting NoValidHost for any images with disk_format\u003dvmdk. I guess the answer would be, if you are doing mixed hypervisor and want this, pony up some code to support it in the other non-libvirt driver you care about.","commit_id":"4f06ea054f5dd60c3059c1f386001b609d82c75c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"74761bcabb37455b4026af46700478424c226622","unresolved":false,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":"This effort will add a scheduler request filter, which (as is typical"},{"line_number":118,"context_line":"with these) will bring a new boolean config toggle in the form of"},{"line_number":119,"context_line":"``[scheduler]/filter_hosts_by_image_type_support``. The virt drivers"},{"line_number":120,"context_line":"should be able to determine which image format capabilities to expose"},{"line_number":121,"context_line":"from existing configuration data and thus do not need additional"},{"line_number":122,"context_line":"configuration elements. The toggle for this could potentially be"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_ceef7fe7","line":119,"in_reply_to":"5fc1f717_9303f20f","updated":"2019-03-21 13:46:02.000000000","message":"I was planning to make all the in-tree drivers expose the right thing for the images they support. That will require some SME input, and could result in one driver exposing nothing initially if we can\u0027t scare up someone to consult on, say, xen.","commit_id":"4f06ea054f5dd60c3059c1f386001b609d82c75c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cd1afd56a5959d69a74b875b8883cc6a0b09cd7c","unresolved":false,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":"This effort will add a scheduler request filter, which (as is typical"},{"line_number":118,"context_line":"with these) will bring a new boolean config toggle in the form of"},{"line_number":119,"context_line":"``[scheduler]/filter_hosts_by_image_type_support``. The virt drivers"},{"line_number":120,"context_line":"should be able to determine which image format capabilities to expose"},{"line_number":121,"context_line":"from existing configuration data and thus do not need additional"},{"line_number":122,"context_line":"configuration elements. The toggle for this could potentially be"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_0ea2679b","line":119,"in_reply_to":"5fc1f717_ceef7fe7","updated":"2019-03-21 13:49:59.000000000","message":"OK, I\u0027d think xen and vmware should be pretty easy, but I\u0027m not sure about hyperv or powervm, or whatever ironic uses.","commit_id":"4f06ea054f5dd60c3059c1f386001b609d82c75c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"17cf19b18b85287fd11fb12a269f68b680886de3","unresolved":false,"context_lines":[{"line_number":156,"context_line":"* Add capabilities and trait translations to the base virt driver"},{"line_number":157,"context_line":"* Augment each in-tree driver with code to expose the desired capabilities"},{"line_number":158,"context_line":"* Add a scheduler request filter for image types"},{"line_number":159,"context_line":"* Enable the filter in a tempest gate job"},{"line_number":160,"context_line":"* Add words to the existing scheduler documentation about request filters"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_ce0ead31","line":159,"updated":"2019-03-20 20:52:59.000000000","message":"ooo nova-next for sure","commit_id":"4f06ea054f5dd60c3059c1f386001b609d82c75c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"17cf19b18b85287fd11fb12a269f68b680886de3","unresolved":false,"context_lines":[{"line_number":169,"context_line":""},{"line_number":170,"context_line":"Existing request filters are suitably covered by functional tests. We"},{"line_number":171,"context_line":"should also be able to enable this request filter in a tempest job and"},{"line_number":172,"context_line":"have it exercise this code."},{"line_number":173,"context_line":""},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_ee20499e","line":172,"updated":"2019-03-20 20:52:59.000000000","message":"Arguably we can also do this with our in-tree functional tests since we have an image API fixture which we can \"upload\" different fake images with their own unique disk_formats to, and use our fake virt driver for whatever we want to expose as support. That might be better than tempest since tempest is just running on whatever devstack is using, which is going to default to qcow2 I assume.\n\nAnyway, definitely enable in nova-next for integration test coverage with default devstack and tempest, but we can do some more exotic stuff with in-tree functional tests, i.e. the mixed hypervisor case (although that could be tricky due to our global config conundrum).","commit_id":"4f06ea054f5dd60c3059c1f386001b609d82c75c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"74761bcabb37455b4026af46700478424c226622","unresolved":false,"context_lines":[{"line_number":169,"context_line":""},{"line_number":170,"context_line":"Existing request filters are suitably covered by functional tests. We"},{"line_number":171,"context_line":"should also be able to enable this request filter in a tempest job and"},{"line_number":172,"context_line":"have it exercise this code."},{"line_number":173,"context_line":""},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5fc1f717_0ecfc77f","line":172,"in_reply_to":"5fc1f717_ee20499e","updated":"2019-03-21 13:46:02.000000000","message":"I meant to imply that functional tests (which work for other request filters) will also work for this and that I would write them).","commit_id":"4f06ea054f5dd60c3059c1f386001b609d82c75c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"145aa1d932c89a55c2c7a9d06b177778e2ab4444","unresolved":false,"context_lines":[{"line_number":55,"context_line":"By exposing virt driver image format support as capabilities, and by"},{"line_number":56,"context_line":"translating those capabilities to traits, we can report those to"},{"line_number":57,"context_line":"placement so they are discoverable. The scheduler can examine the"},{"line_number":58,"context_line":"format of the image during a server create or move request and ask"},{"line_number":59,"context_line":"placement only for compute nodes that support that type (i.e. via a"},{"line_number":60,"context_line":"new scheduler request filter)."},{"line_number":61,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5fc1f717_8e05f77c","line":58,"updated":"2019-03-21 13:52:15.000000000","message":"Another thing I thought of, which you don\u0027t need to document in here, but we\u0027ll want to be aware of and test with functional tests probably, is rebuild with a new image. We\u0027ll want to make sure to run the pre-request filter in that case because the image could change and the new image disk_format could be invalid for the current host - but we\u0027d skip that in the case of a volume-backed server.","commit_id":"1c6e896392b9ffec95223072f790178e6bd924ff"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e0e4fe0a54895d0c53edb32b132c5fec48c6708f","unresolved":false,"context_lines":[{"line_number":179,"context_line":"References"},{"line_number":180,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"* [1] Glance image allowable disk formats: https://docs.openstack.org/image-guide/image-formats.html#disk-formats"},{"line_number":183,"context_line":"* [2] Glance forced format configuration: https://docs.openstack.org/glance/latest/configuration/glance_api.html#taskflow_executor.conversion_format"},{"line_number":184,"context_line":"* Virt driver capabilities are now exposed as traits: https://review.openstack.org/#/c/538498/"},{"line_number":185,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5fc1f717_8e7897f8","line":182,"updated":"2019-03-21 13:53:52.000000000","message":"This formatting is wrong, footnotes would be:\n\n.. [1] blah\n.. [2] blah\n\nhttp://docutils.sourceforge.net/docs/user/rst/quickref.html#footnotes","commit_id":"1c6e896392b9ffec95223072f790178e6bd924ff"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"2a6d5f67644cd86c1f00a93abfb6381ecc8231ce","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"One alternative, as always, is to do nothing. Currently people solve"},{"line_number":68,"context_line":"this in a variety of ways, from telling glance to auto-convert"},{"line_number":69,"context_line":"everything to raw (i.e. the universal format), to hand-maintaining"},{"line_number":70,"context_line":"aggregates and metadata to prevent images from landing in groupings of"},{"line_number":71,"context_line":"hosts that will not be able to boot them."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Another alternative could be to do this as a scheduler filter. That"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5fc1f717_af7a9a20","line":70,"range":{"start_line":69,"start_character":50,"end_line":70,"end_character":24},"updated":"2019-03-27 19:18:59.000000000","message":"not really sure what \"hand-maintaining aggregates and metadata\" is. It\u0027s not like it requires more than just setting some aggregate metadata keys and assigning compute hosts to an aggregate.","commit_id":"c57e6f9c7ccf421c42c704f91f6f05ec21619a53"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"2a6d5f67644cd86c1f00a93abfb6381ecc8231ce","unresolved":false,"context_lines":[{"line_number":73,"context_line":"Another alternative could be to do this as a scheduler filter. That"},{"line_number":74,"context_line":"would still require the virt drivers to expose their supported types,"},{"line_number":75,"context_line":"but would have the downside of much more (inefficient) filtering of"},{"line_number":76,"context_line":"hosts in the scheduler."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Data model impact"},{"line_number":79,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5fc1f717_6f4112a6","line":76,"updated":"2019-03-27 19:18:59.000000000","message":"I\u0027m a little surprised that the forbidden and member_of aggregate approach wasn\u0027t discussed, since this use case is pretty much exactly what Tushar described in that spec.\n\nBasically, you\u0027d look up aggregates that have a particular metadata key (say, \"image_format_iso\u003dtrue\" or \"image_format_vmdk\u003dfalse\") and then be able to look up aggregates that have the image format that the requested image would use. The results of that aggregate metadata query would then cause the placement request filter for member_of\u003d\u003clist_of_aggs\u003e to be applied.","commit_id":"c57e6f9c7ccf421c42c704f91f6f05ec21619a53"}]}
