)]}'
{"specs/wallaby/approved/libvirt-stash-instance-machine-type.rst":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"886cd1c04a1d9eb4acb986198ac7247194bd9e11","unresolved":true,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":"The machine type will be stored within the ``Instance`` object under the"},{"line_number":107,"context_line":"``system_metadata`` field that is a ``DictOfNullableStringsField`` using the"},{"line_number":108,"context_line":"key ``hw_machine_type``."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Note that a string is used here as we cannot enumerate all of the possible"},{"line_number":111,"context_line":"values of machine_type as different distributions provide different versioned"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fc5b01a2_eab70f72","line":108,"updated":"2021-01-06 16:13:04.000000000","message":"I wasn\u0027t in the discussions, but agree that system_metadata is the right place for this.","commit_id":"8c8a26db15cb251fc0b8e980bb013f7ab0118a6a"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"ba0f9343be77d5f060772c021a746a30d526771f","unresolved":false,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":"The machine type will be stored within the ``Instance`` object under the"},{"line_number":107,"context_line":"``system_metadata`` field that is a ``DictOfNullableStringsField`` using the"},{"line_number":108,"context_line":"key ``hw_machine_type``."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Note that a string is used here as we cannot enumerate all of the possible"},{"line_number":111,"context_line":"values of machine_type as different distributions provide different versioned"}],"source_content_type":"text/x-rst","patch_set":1,"id":"48604e5b_6694ec77","line":108,"in_reply_to":"fc5b01a2_eab70f72","updated":"2021-01-06 17:22:22.000000000","message":"Ack","commit_id":"8c8a26db15cb251fc0b8e980bb013f7ab0118a6a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"886cd1c04a1d9eb4acb986198ac7247194bd9e11","unresolved":true,"context_lines":[{"line_number":107,"context_line":"``system_metadata`` field that is a ``DictOfNullableStringsField`` using the"},{"line_number":108,"context_line":"key ``hw_machine_type``."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Note that a string is used here as we cannot enumerate all of the possible"},{"line_number":111,"context_line":"values of machine_type as different distributions provide different versioned"},{"line_number":112,"context_line":"machine_types. For example Fedora provides machine types versioned by the"},{"line_number":113,"context_line":"underlying QEMU version, while RHEL provides machine types versioned by the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"4b823d5a_7fb7b7d5","line":110,"range":{"start_line":110,"start_character":0,"end_line":110,"end_character":58},"updated":"2021-01-06 16:13:04.000000000","message":"This is less important to call out now, since you\u0027re using sysmeta, which is going to be a string regardless. Not having the full original spec in my head, it took me a second to realize why you were making a point here :)","commit_id":"8c8a26db15cb251fc0b8e980bb013f7ab0118a6a"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"ba0f9343be77d5f060772c021a746a30d526771f","unresolved":true,"context_lines":[{"line_number":107,"context_line":"``system_metadata`` field that is a ``DictOfNullableStringsField`` using the"},{"line_number":108,"context_line":"key ``hw_machine_type``."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Note that a string is used here as we cannot enumerate all of the possible"},{"line_number":111,"context_line":"values of machine_type as different distributions provide different versioned"},{"line_number":112,"context_line":"machine_types. For example Fedora provides machine types versioned by the"},{"line_number":113,"context_line":"underlying QEMU version, while RHEL provides machine types versioned by the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"60e393d3_192a45be","line":110,"range":{"start_line":110,"start_character":0,"end_line":110,"end_character":58},"in_reply_to":"4b823d5a_7fb7b7d5","updated":"2021-01-06 17:22:22.000000000","message":"Fair point I might reword this as IMHO the versioned machine types are still a useful wrinkle to call out in the context of this spec.","commit_id":"8c8a26db15cb251fc0b8e980bb013f7ab0118a6a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"886cd1c04a1d9eb4acb986198ac7247194bd9e11","unresolved":true,"context_lines":[{"line_number":201,"context_line":"don\u0027t reside on a compute host a ``nova-manage`` command will be introduced"},{"line_number":202,"context_line":"that will allow operators/admins to record a machine type. As above this will"},{"line_number":203,"context_line":"rely first on any stored image properties but if non is found will require a"},{"line_number":204,"context_line":"specific machine type to be provided by the caller."},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"A ``nova-status`` command will be introduced to allow operators/admins to"},{"line_number":207,"context_line":"determine when all non-deleted instances have had a machine type recorded"}],"source_content_type":"text/x-rst","patch_set":1,"id":"02dc9894_f2c72fa9","line":204,"updated":"2021-01-06 16:13:04.000000000","message":"Apologies if this is obvious from the discussion that I missed, but:\n\nAm I reading this right that instances in the SHUTOFF state will only be allowed to go from something like q35-2.8 to q35-5.0, but SHELVED_OFFLOADED instances will be able to go from pc to q35? I wasn\u0027t sure why this was being called out separately from SHUTOFF until I realized that this is (I assume) to allow updating the machine type on an instance that doesn\u0027t have a list of supported types, since it\u0027s not on a host. So I assume that\u0027s why  it can take a bigger transition?\n\nMaybe I missed it, but is this sysmeta[\u0027type\u0027] going to be considered for scheduling at all? What happens if I offload an instance, set it to q35-whizbang and then unshelve it and it can\u0027t go back to any of my original compute nodes because they\u0027re too old? I assume it will schedule and then fail to start at the very end?","commit_id":"8c8a26db15cb251fc0b8e980bb013f7ab0118a6a"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"ba0f9343be77d5f060772c021a746a30d526771f","unresolved":true,"context_lines":[{"line_number":201,"context_line":"don\u0027t reside on a compute host a ``nova-manage`` command will be introduced"},{"line_number":202,"context_line":"that will allow operators/admins to record a machine type. As above this will"},{"line_number":203,"context_line":"rely first on any stored image properties but if non is found will require a"},{"line_number":204,"context_line":"specific machine type to be provided by the caller."},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"A ``nova-status`` command will be introduced to allow operators/admins to"},{"line_number":207,"context_line":"determine when all non-deleted instances have had a machine type recorded"}],"source_content_type":"text/x-rst","patch_set":1,"id":"4aaeee24_ad46083a","line":204,"in_reply_to":"02dc9894_f2c72fa9","updated":"2021-01-06 17:22:22.000000000","message":"\u003e Apologies if this is obvious from the discussion that I missed, but:\n\u003e \n\u003e Am I reading this right that instances in the SHUTOFF state will only be allowed to go from something like q35-2.8 to q35-5.0, but SHELVED_OFFLOADED instances will be able to go from pc to q35? I wasn\u0027t sure why this was being called out separately from SHUTOFF until I realized that this is (I assume) to allow updating the machine type on an instance that doesn\u0027t have a list of supported types, since it\u0027s not on a host. So I assume that\u0027s why  it can take a bigger transition?\n\nWhen an existing machine type is listed for the instance in sysmeta or image metadata then I wanted to block operators moving between these underlying types for both SHUTOFF and SHELVED_OFFLOADED instances.\n\nWhen a machine type isn\u0027t already listed in the instance sysmeta or image metadata then I was going to allow operators to set whatever they want (with the caveat that they shouldn\u0027t move between underlying types outside of a rebuild documented) as there\u0027s no sane way for us to check config defaults where the instance was previously running without forcing these commands to run on the computes etc.\n\n\u003e Maybe I missed it, but is this sysmeta[\u0027type\u0027] going to be considered for scheduling at all? What happens if I offload an instance, set it to q35-whizbang and then unshelve it and it can\u0027t go back to any of my original compute nodes because they\u0027re too old? I assume it will schedule and then fail to start at the very end?\n\nNo that wasn\u0027t part of this spec but I could definitely follow up with another where I look into improving this situation.\n\nAs noted earlier my only concern here is with a trait explosion caused by the versioned nature of these machine types in QEMU. We could easily trait\u0027ify the underlying types but that\u0027s only of limited value IMHO compared to the versioned machine types.","commit_id":"8c8a26db15cb251fc0b8e980bb013f7ab0118a6a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"520d08bf2531addaff062d777d9b78123ffe4790","unresolved":true,"context_lines":[{"line_number":201,"context_line":"don\u0027t reside on a compute host a ``nova-manage`` command will be introduced"},{"line_number":202,"context_line":"that will allow operators/admins to record a machine type. As above this will"},{"line_number":203,"context_line":"rely first on any stored image properties but if non is found will require a"},{"line_number":204,"context_line":"specific machine type to be provided by the caller."},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"A ``nova-status`` command will be introduced to allow operators/admins to"},{"line_number":207,"context_line":"determine when all non-deleted instances have had a machine type recorded"}],"source_content_type":"text/x-rst","patch_set":1,"id":"a070b2e4_958ad8e7","line":204,"in_reply_to":"4aaeee24_ad46083a","updated":"2021-01-06 17:42:10.000000000","message":"\u003e When an existing machine type is listed for the instance in sysmeta or image metadata then I wanted to block operators moving between these underlying types for both SHUTOFF and SHELVED_OFFLOADED instances.\n\nAck, this makes sense of course (modulo the --force TODO in the code).\n\n\u003e When a machine type isn\u0027t already listed in the instance sysmeta or image metadata then I was going to allow operators to set whatever they want (with the caveat that they shouldn\u0027t move between underlying types outside of a rebuild documented) as there\u0027s no sane way for us to check config defaults where the instance was previously running without forcing these commands to run on the computes etc.\n\nOkay, but same rules for SHELVED (and _OFFLOADED) as SHUTOFF right? Point being it looks like in this spec you\u0027re calling for different rules for SHUTOFF and SHELVED_OFFLOADED and I\u0027m just wondering if that is really required or if they\u0027re the same.\n\n\u003e No that wasn\u0027t part of this spec but I could definitely follow up with another where I look into improving this situation.\n\u003e \n\u003e As noted earlier my only concern here is with a trait explosion caused by the versioned nature of these machine types in QEMU. We could easily trait\u0027ify the underlying types but that\u0027s only of limited value IMHO compared to the versioned machine types.\n\nYeah, I\u0027m just wondering about the damage they\u0027ll be able to do by setting the machine_type to something really new on an offloaded instance, effectively making those instances not startable. Just pondering if it makes more sense to leave the offloaded instances unset, to be lazily fixed when they\u0027re unshelved.","commit_id":"8c8a26db15cb251fc0b8e980bb013f7ab0118a6a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"9d7eaaef10910ad9cb518cf25b313e9c0b07fb6d","unresolved":true,"context_lines":[{"line_number":201,"context_line":"don\u0027t reside on a compute host a ``nova-manage`` command will be introduced"},{"line_number":202,"context_line":"that will allow operators/admins to record a machine type. As above this will"},{"line_number":203,"context_line":"rely first on any stored image properties but if non is found will require a"},{"line_number":204,"context_line":"specific machine type to be provided by the caller."},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"A ``nova-status`` command will be introduced to allow operators/admins to"},{"line_number":207,"context_line":"determine when all non-deleted instances have had a machine type recorded"}],"source_content_type":"text/x-rst","patch_set":1,"id":"df0d6882_8b97d908","line":204,"in_reply_to":"69239974_82144aa2","updated":"2021-01-07 14:53:48.000000000","message":"\u003e I\u0027ve managed to fudge that in the spec as the assumption was that STOPPED and SHELVED instances would be automatically updated by the logic in init_host as they still reference the host.\n\nWell, I think that\u0027s actually the best thing of course, to let the virt driver do it. However, just now I realized I might have been misunderstanding what you were saying. You were using SHUTOFF to mean the power state, which would apply to both STOPPED and SHELVED vm_states right? If so, that makes more sense about why you were calling out SHELVED_OFFLOADED and SHUTOFF separately, although I think it\u0027s confusing since you\u0027re mixing \"units\" there. I think it\u0027d be clearer to list only vm_states in here, unless the power_state actually needs to be considered.\n\n\u003e I\u0027ll rewrite this to make it clear that we will allow STOPPED, SHELVED and SHELVED_OFFLOADED instances to be updated.\n\nAck, I think a vm_state would be clearer.","commit_id":"8c8a26db15cb251fc0b8e980bb013f7ab0118a6a"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"da548f12fce7d3870777fc42e2e59da96856004b","unresolved":true,"context_lines":[{"line_number":201,"context_line":"don\u0027t reside on a compute host a ``nova-manage`` command will be introduced"},{"line_number":202,"context_line":"that will allow operators/admins to record a machine type. As above this will"},{"line_number":203,"context_line":"rely first on any stored image properties but if non is found will require a"},{"line_number":204,"context_line":"specific machine type to be provided by the caller."},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"A ``nova-status`` command will be introduced to allow operators/admins to"},{"line_number":207,"context_line":"determine when all non-deleted instances have had a machine type recorded"}],"source_content_type":"text/x-rst","patch_set":1,"id":"69239974_82144aa2","line":204,"in_reply_to":"a070b2e4_958ad8e7","updated":"2021-01-07 10:56:47.000000000","message":"\u003e \u003e When an existing machine type is listed for the instance in sysmeta or image metadata then I wanted to block operators moving between these underlying types for both SHUTOFF and SHELVED_OFFLOADED instances.\n\u003e \n\u003e Ack, this makes sense of course (modulo the --force TODO in the code).\n\nYeah that was a random thought while writing the WIP code, I\u0027ll add a note to the spec about this.\n\n\u003e \u003e When a machine type isn\u0027t already listed in the instance sysmeta or image metadata then I was going to allow operators to set whatever they want (with the caveat that they shouldn\u0027t move between underlying types outside of a rebuild documented) as there\u0027s no sane way for us to check config defaults where the instance was previously running without forcing these commands to run on the computes etc.\n\u003e \n\u003e Okay, but same rules for SHELVED (and _OFFLOADED) as SHUTOFF right? Point being it looks like in this spec you\u0027re calling for different rules for SHUTOFF and SHELVED_OFFLOADED and I\u0027m just wondering if that is really required or if they\u0027re the same.\n\nI\u0027ve managed to fudge that in the spec as the assumption was that STOPPED and SHELVED instances would be automatically updated by the logic in init_host as they still reference the host.\n\nI\u0027ll rewrite this to make it clear that we will allow STOPPED, SHELVED and SHELVED_OFFLOADED instances to be updated.\n\n\u003e \u003e No that wasn\u0027t part of this spec but I could definitely follow up with another where I look into improving this situation.\n\u003e \u003e \n\u003e \u003e As noted earlier my only concern here is with a trait explosion caused by the versioned nature of these machine types in QEMU. We could easily trait\u0027ify the underlying types but that\u0027s only of limited value IMHO compared to the versioned machine types.\n\u003e \n\u003e Yeah, I\u0027m just wondering about the damage they\u0027ll be able to do by setting the machine_type to something really new on an offloaded instance, effectively making those instances not startable. Just pondering if it makes more sense to leave the offloaded instances unset, to be lazily fixed when they\u0027re unshelved.\n\nAssuming the instance doesn\u0027t have a hw_machine_type image property set then it\u0027s going to default to whatever is configured for the arch when we unshelve. Given the spec is trying to allow deployment tools, operators and devs to change these defaults going forward then that\u0027s likely going to result in the underlying machine type changing (pc-i440fx to q35 etc).\n\nI\u0027d rather document this, add the nova-status command, possibly add another nova-manage command to validate a given machine type on a compute allowing operators a way of sanity checking before applying changes and leave it at that for now.","commit_id":"8c8a26db15cb251fc0b8e980bb013f7ab0118a6a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"886cd1c04a1d9eb4acb986198ac7247194bd9e11","unresolved":true,"context_lines":[{"line_number":218,"context_line":"command will not allow the machine_type to be changed between actual types of"},{"line_number":219,"context_line":"machine_type, for example ``pc`` to ``q35``. This will continue to require a"},{"line_number":220,"context_line":"full rebuild of the instance using a new image with associated"},{"line_number":221,"context_line":"``hw_machine_type`` image property set."},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"Implementation"},{"line_number":224,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"8c1657ae_c16b9dba","line":221,"updated":"2021-01-06 16:13:04.000000000","message":"Presumably we also want SHELVED to behave like SHUTOFF, right? The instance will be in a different state, but it\u0027s basically the same behavior if they unshelve without offloading. Unless there\u0027s some reason not to allow it, I think people would expect it to work in SHELVED as well.","commit_id":"8c8a26db15cb251fc0b8e980bb013f7ab0118a6a"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"ba0f9343be77d5f060772c021a746a30d526771f","unresolved":true,"context_lines":[{"line_number":218,"context_line":"command will not allow the machine_type to be changed between actual types of"},{"line_number":219,"context_line":"machine_type, for example ``pc`` to ``q35``. This will continue to require a"},{"line_number":220,"context_line":"full rebuild of the instance using a new image with associated"},{"line_number":221,"context_line":"``hw_machine_type`` image property set."},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"Implementation"},{"line_number":224,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"e64a848d_dab0d5e8","line":221,"in_reply_to":"8c1657ae_c16b9dba","updated":"2021-01-06 17:22:22.000000000","message":"ACK I can add SHELVED.","commit_id":"8c8a26db15cb251fc0b8e980bb013f7ab0118a6a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"afbdf3eec59600cfdc2636a8d38372870ab6d7b2","unresolved":true,"context_lines":[{"line_number":160,"context_line":"For non-deleted instances that are marked as ``SHELVED_OFFLOADED`` and thus"},{"line_number":161,"context_line":"don\u0027t reside on a compute host a ``update_machine_type`` ``nova-manage``"},{"line_number":162,"context_line":"command will be introduced that will allow operators to set a machine"},{"line_number":163,"context_line":"type. As above this will rely first on any stored image properties but if non"},{"line_number":164,"context_line":"is found will require a specific machine type to be provided by the caller."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"A ``nova-status`` command will be introduced to allow operators to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9ddafb6c_ae2d296e","line":163,"range":{"start_line":163,"start_character":74,"end_line":163,"end_character":77},"updated":"2021-01-11 16:14:16.000000000","message":"none","commit_id":"ec3614260c44966db3d2849512ff6cb4598131a5"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"afbdf3eec59600cfdc2636a8d38372870ab6d7b2","unresolved":true,"context_lines":[{"line_number":172,"context_line":"versioned machine either per image or per architecture on a given compute host."},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"As a result the same ``update_machine_type`` ``nova-manage`` command used to"},{"line_number":175,"context_line":"set the macine type of ``SHELVED_OFFLOADED`` instances will also be able to"},{"line_number":176,"context_line":"update the machine type of instances with a vm_state of ``STOPPED``,"},{"line_number":177,"context_line":"``SHELVED`` or ``SHELVED_OFFLOADED``."},{"line_number":178,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3d7c3439_bd5b9b1c","line":175,"range":{"start_line":175,"start_character":8,"end_line":175,"end_character":14},"updated":"2021-01-11 16:14:16.000000000","message":"machine","commit_id":"ec3614260c44966db3d2849512ff6cb4598131a5"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"afbdf3eec59600cfdc2636a8d38372870ab6d7b2","unresolved":true,"context_lines":[{"line_number":235,"context_line":"  been updated for all instances residing on a given host in the env or across"},{"line_number":236,"context_line":"  all hosts."},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"* Write extensive operator documentation for the above."},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"Dependencies"},{"line_number":241,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"b01c8057_b42cf43f","line":238,"range":{"start_line":238,"start_character":8,"end_line":238,"end_character":17},"updated":"2021-01-11 16:14:16.000000000","message":"Really setting yourself up for \"-1 I don\u0027t think this is extensive\" but ... okay :P","commit_id":"ec3614260c44966db3d2849512ff6cb4598131a5"}]}
