)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"991d557b17d0cd1fa4ef7fd290639a84644424cc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"aa76157f_664dbf41","updated":"2025-09-11 13:49:49.000000000","message":"this is a pretty soft -1\nover all this looks ok to me we jsut need to be a little more precise with wording a bit.\n\ni do not have any concerns with the overall direction and proposal.","commit_id":"bf5d7bb8f8a5f5f034e43fe411fbefa2685d1972"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c5ee76c6b4055fb57c36711421068f9e343e998c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"755745e8_84a5e055","updated":"2025-09-15 11:16:27.000000000","message":"still a little bit of impovement needed to dot `i`s and cross `t`s but\nthis is moving in the correct direction.","commit_id":"ad76f01194ed18e8ba73bdd70e26b2c8c7467a5d"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"173298a8b4d2b3845f465662c2736fb20fe1257f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"ec401352_40bf281e","updated":"2026-01-05 07:54:13.000000000","message":"recheck","commit_id":"fd5807109a812a65ac4547d6bbe062c41e64ab81"}],"specs/2026.1/approved/restrict-booting-from-volume-with-system-disk.rst":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"991d557b17d0cd1fa4ef7fd290639a84644424cc","unresolved":false,"context_lines":[{"line_number":23,"context_line":"the same flavor with 0 GB disk. If a customer launches an instance with boot"},{"line_number":24,"context_line":"from volume, but by mistake chooses a flavor with a system disk of 20 GB,"},{"line_number":25,"context_line":"that customer may be billed for the 20 GB storage space that is not actually"},{"line_number":26,"context_line":"provisionned anywhere."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Use Cases"},{"line_number":29,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"b4cb6ca1_fab4bcd1","line":26,"updated":"2025-09-11 13:49:49.000000000","message":"+1 this is a good summery of the probelm","commit_id":"bf5d7bb8f8a5f5f034e43fe411fbefa2685d1972"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"991d557b17d0cd1fa4ef7fd290639a84644424cc","unresolved":false,"context_lines":[{"line_number":34,"context_line":"   booting from volume with a flavor that includes disk space."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"#. As a public cloud user, in order to avoid wrongly billed space, I would"},{"line_number":37,"context_line":"   prefer that my provider prevents spawning a VM the wrong way."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Proposed change"},{"line_number":40,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"b1c14199_d3878379","line":37,"updated":"2025-09-11 13:49:49.000000000","message":"and these are in the corect usecase format.\n`as a ....`","commit_id":"bf5d7bb8f8a5f5f034e43fe411fbefa2685d1972"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"991d557b17d0cd1fa4ef7fd290639a84644424cc","unresolved":true,"context_lines":[{"line_number":42,"context_line":"The same way we\u0027re currently refusing to boot a VM if it isn\u0027t doing a boot"},{"line_number":43,"context_line":"from volume AND if the flavor contains no disk space [1], we could do the"},{"line_number":44,"context_line":"opposite: forbid booting a VM if it is booting from volume and if it has"},{"line_number":45,"context_line":"disk space included in the flavor."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"[1] https://github.com/openstack/nova/blob/master/nova/policies/servers.py#L288-L312"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"ddda106f_2e572a62","line":45,"updated":"2025-09-11 13:49:49.000000000","message":"lets be a little more precise in the proposal\n\nim +1 in having this forbid using flavor that have disk !\u003d 0\n\nbut it shoudl not prevent you form creating a bfv instnace with a flavor that has\n\ndisk\u003d0 OS-FLV-EXT-DATA:ephemeral\u003d100 swap\u003d8\n\n\nwhen you create a BFV instancve the swap an ephemeral disk are still local\n\nthat provides better performance when you use bfv form cpeh with swap and epmeral on raw/flat/qcow local sotrage then\n\nputtign all 3 on ceph when you use image_type\u003drbd\n\nif i understand yoru pilling problem statment properly the issues is that the\nenduser when build by flavor disk hours is not able to use that stroage if booted from a volume\n\nthat is not true of the swap and ephemral disks if specified,\nboth of which will consum local disk and the vm will have access too them.","commit_id":"bf5d7bb8f8a5f5f034e43fe411fbefa2685d1972"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"2e131c9596bfed3ea50650be34eb4edc2fd168ca","unresolved":false,"context_lines":[{"line_number":42,"context_line":"The same way we\u0027re currently refusing to boot a VM if it isn\u0027t doing a boot"},{"line_number":43,"context_line":"from volume AND if the flavor contains no disk space [1], we could do the"},{"line_number":44,"context_line":"opposite: forbid booting a VM if it is booting from volume and if it has"},{"line_number":45,"context_line":"disk space included in the flavor."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"[1] https://github.com/openstack/nova/blob/master/nova/policies/servers.py#L288-L312"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"6cc09544_f54c0d77","line":45,"in_reply_to":"ddda106f_2e572a62","updated":"2025-09-13 21:20:10.000000000","message":"My proposal didn\u0027t even talk about ephemeral and swap. Let me be more explicit.","commit_id":"bf5d7bb8f8a5f5f034e43fe411fbefa2685d1972"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"991d557b17d0cd1fa4ef7fd290639a84644424cc","unresolved":true,"context_lines":[{"line_number":49,"context_line":"To avoid any surprise in already existing deployment that will upgrade to"},{"line_number":50,"context_line":"a version of Nova that includes this new feature, it is desirable that this"},{"line_number":51,"context_line":"new restriction is set to off by default. Operators of public clouds willing"},{"line_number":52,"context_line":"to use this new feature will have to explicitely set it to \"on\" in nova.conf."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Alternatives"},{"line_number":55,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"358436ae_a458063a","line":52,"updated":"2025-09-11 13:49:49.000000000","message":"that not quite how this woudl work\n\nthe new policy woudl be set to project_member_or_admin\n\nwhich will keep the behovr the same btu the \"feature\" is not actully disable the policy rule will jsut allow the existing beahivor by default.\n\nthis coudl change in a future release.\n\nyou are folllowing the normal pattern of additng the new config point (in this case a policy rule) without changing beahvior so i agree this avoids any upgrade impact.","commit_id":"bf5d7bb8f8a5f5f034e43fe411fbefa2685d1972"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"2e131c9596bfed3ea50650be34eb4edc2fd168ca","unresolved":true,"context_lines":[{"line_number":49,"context_line":"To avoid any surprise in already existing deployment that will upgrade to"},{"line_number":50,"context_line":"a version of Nova that includes this new feature, it is desirable that this"},{"line_number":51,"context_line":"new restriction is set to off by default. Operators of public clouds willing"},{"line_number":52,"context_line":"to use this new feature will have to explicitely set it to \"on\" in nova.conf."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Alternatives"},{"line_number":55,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"a22c5780_19e1072b","line":52,"in_reply_to":"358436ae_a458063a","updated":"2025-09-13 21:20:10.000000000","message":"Not sure what to say here. If you can suggest something else for the text, I\u0027d love to have it.","commit_id":"bf5d7bb8f8a5f5f034e43fe411fbefa2685d1972"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"23bb1fb9dfde5071cae6ac4ec6664a587e547bbd","unresolved":false,"context_lines":[{"line_number":49,"context_line":"To avoid any surprise in already existing deployment that will upgrade to"},{"line_number":50,"context_line":"a version of Nova that includes this new feature, it is desirable that this"},{"line_number":51,"context_line":"new restriction is set to off by default. Operators of public clouds willing"},{"line_number":52,"context_line":"to use this new feature will have to explicitely set it to \"on\" in nova.conf."},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Alternatives"},{"line_number":55,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"61e9bdf3_691ab336","line":52,"in_reply_to":"a22c5780_19e1072b","updated":"2025-09-13 21:21:01.000000000","message":"Acknowledged","commit_id":"bf5d7bb8f8a5f5f034e43fe411fbefa2685d1972"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"991d557b17d0cd1fa4ef7fd290639a84644424cc","unresolved":true,"context_lines":[{"line_number":64,"context_line":"REST API impact"},{"line_number":65,"context_line":"---------------"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"None"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Security impact"},{"line_number":70,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"276f0507_b75e7056","line":67,"updated":"2025-09-11 13:49:49.000000000","message":"ya  so this is alwasy a funny one.\n\nwe do not consider policy changes to affect the api micoversion but the are a rest api chagne.\n\ni think this is ok to leave none.","commit_id":"bf5d7bb8f8a5f5f034e43fe411fbefa2685d1972"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"2e131c9596bfed3ea50650be34eb4edc2fd168ca","unresolved":false,"context_lines":[{"line_number":64,"context_line":"REST API impact"},{"line_number":65,"context_line":"---------------"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"None"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Security impact"},{"line_number":70,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"c352f973_749637fc","line":67,"in_reply_to":"276f0507_b75e7056","updated":"2025-09-13 21:20:10.000000000","message":"Acknowledged","commit_id":"bf5d7bb8f8a5f5f034e43fe411fbefa2685d1972"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"991d557b17d0cd1fa4ef7fd290639a84644424cc","unresolved":true,"context_lines":[{"line_number":80,"context_line":"---------------------"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Users that may have been used to boot the wrong flavor with boot from volume"},{"line_number":83,"context_line":"will get a 403 error. Though that\u0027s for their own good."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"Performance Impact"},{"line_number":86,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"361df38c_7c7aec2a","line":83,"updated":"2025-09-11 13:49:49.000000000","message":"well what they reqeust is valid form a nova api point of vew. nova correctly acconts for this in the quota usage. but for cloud that use a billling system that does nto proprly accont for this its true.","commit_id":"bf5d7bb8f8a5f5f034e43fe411fbefa2685d1972"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"2e131c9596bfed3ea50650be34eb4edc2fd168ca","unresolved":false,"context_lines":[{"line_number":80,"context_line":"---------------------"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Users that may have been used to boot the wrong flavor with boot from volume"},{"line_number":83,"context_line":"will get a 403 error. Though that\u0027s for their own good."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"Performance Impact"},{"line_number":86,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"24213f19_beaa1893","line":83,"in_reply_to":"361df38c_7c7aec2a","updated":"2025-09-13 21:20:10.000000000","message":"Acknowledged","commit_id":"bf5d7bb8f8a5f5f034e43fe411fbefa2685d1972"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"991d557b17d0cd1fa4ef7fd290639a84644424cc","unresolved":true,"context_lines":[{"line_number":100,"context_line":"Upgrade impact"},{"line_number":101,"context_line":"--------------"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Operators will have to enable the restriction."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":2,"id":"32c8231a_807e50da","line":103,"updated":"2025-09-11 13:49:49.000000000","message":"you can leave this as None","commit_id":"bf5d7bb8f8a5f5f034e43fe411fbefa2685d1972"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"2e131c9596bfed3ea50650be34eb4edc2fd168ca","unresolved":false,"context_lines":[{"line_number":100,"context_line":"Upgrade impact"},{"line_number":101,"context_line":"--------------"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Operators will have to enable the restriction."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":2,"id":"39a64fda_51151fe3","line":103,"in_reply_to":"32c8231a_807e50da","updated":"2025-09-13 21:20:10.000000000","message":"Done","commit_id":"bf5d7bb8f8a5f5f034e43fe411fbefa2685d1972"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"991d557b17d0cd1fa4ef7fd290639a84644424cc","unresolved":true,"context_lines":[{"line_number":118,"context_line":"Work Items"},{"line_number":119,"context_line":"----------"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"#. Add a new option ``forbid_boot_from_volume_with_nonzero_disk``."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"#. Implement the API restriction and return a 403 if we\u0027re on the case that"},{"line_number":124,"context_line":"   this spec wants to forbid."}],"source_content_type":"text/x-rst","patch_set":2,"id":"bfdadd8c_bcd098c4","line":121,"updated":"2025-09-11 13:49:49.000000000","message":"to keep it consitent with the exsting rule \n`os_compute_api:servers:create:zero_disk_flavor` it would be \n`os_compute_api:servers:create:bfv_with_non_zero_disk_flavor`\n\nhttps://github.com/openstack/nova/blob/master/nova/policies/servers.py#L288-L311\n\n```\n    policy.DocumentedRuleDefault(\n        name\u003dBFV_NON_ZERO_DISK_FLAVOR,\n        check_str\u003dbase.PROJECT_MEMBER_OR_ADMIN,\n        description\u003d\"\"\"\nThis rule controls the compute API validation behavior of creating a server\nbooted form a volume with a flavor that has disk !\u003d 0.\n\nWhen simple flavor based billing is doen allowing bfv instnace to use\nflavor with a non zero disk leads to over billing as the root disk space\nis not available to the guest. In such an envionment this policy can be\nused to control the ablity to create such a vm.\n\"\"\",\n        operations\u003d[\n            {\n                \u0027method\u0027: \u0027POST\u0027,\n                \u0027path\u0027: \u0027/servers\u0027\n            }\n        ],\n```\n\nwith that saisd this detail shoudl be eailer in teh spec in the propsoed changes section or perhaps the rest api or Other deployer impact sections.\n\nwhgile we are here the other policy si only applied to creating a server.\n\nit might be worth considerign if both policies shoul also eb applied to resize since that woudl cause the same billing problem.","commit_id":"bf5d7bb8f8a5f5f034e43fe411fbefa2685d1972"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"2e131c9596bfed3ea50650be34eb4edc2fd168ca","unresolved":false,"context_lines":[{"line_number":118,"context_line":"Work Items"},{"line_number":119,"context_line":"----------"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"#. Add a new option ``forbid_boot_from_volume_with_nonzero_disk``."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"#. Implement the API restriction and return a 403 if we\u0027re on the case that"},{"line_number":124,"context_line":"   this spec wants to forbid."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3cdbe33c_679724b6","line":121,"in_reply_to":"bfdadd8c_bcd098c4","updated":"2025-09-13 21:20:10.000000000","message":"Done","commit_id":"bf5d7bb8f8a5f5f034e43fe411fbefa2685d1972"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c5ee76c6b4055fb57c36711421068f9e343e998c","unresolved":true,"context_lines":[{"line_number":8,"context_line":"Restrict booting from volume to only flavor with 0 GB system disk"},{"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\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\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/restrict-booting-from-volume"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec proposes to restrict booting from volume only to flavor having"},{"line_number":14,"context_line":"zero bytes system disk."}],"source_content_type":"text/x-rst","patch_set":3,"id":"11f529e6_5ec9a7a5","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":72},"updated":"2025-09-15 11:16:27.000000000","message":"the filename and spec shoudl be the same for our reslease tooling to work\n\nyou also need to create it in launchpad ideally before the sepc is appoved.\n\ni have created it for you here \n\nhttps://blueprints.launchpad.net/nova/+spec/restrict-booting-from-volume-with-system-disk\n\ncan you update the url to point to it.","commit_id":"ad76f01194ed18e8ba73bdd70e26b2c8c7467a5d"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"460a6e979c373474ff40412c43854a14f50b82f2","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Restrict booting from volume to only flavor with 0 GB system disk"},{"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\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\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/restrict-booting-from-volume"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec proposes to restrict booting from volume only to flavor having"},{"line_number":14,"context_line":"zero bytes system disk."}],"source_content_type":"text/x-rst","patch_set":3,"id":"c245f2d3_65d86400","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":72},"in_reply_to":"11f529e6_5ec9a7a5","updated":"2026-01-05 15:49:49.000000000","message":"Done","commit_id":"ad76f01194ed18e8ba73bdd70e26b2c8c7467a5d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c5ee76c6b4055fb57c36711421068f9e343e998c","unresolved":true,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Note that this proposed change says nothing about swap or ephemeral space."},{"line_number":50,"context_line":"It is still a valid use case to spawn an instance with boot-from-volume"},{"line_number":51,"context_line":"with ephemeral or swap space."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"To avoid any surprise in already existing deployment that will upgrade to"},{"line_number":54,"context_line":"a version of Nova that includes this new feature, it is desirable that this"}],"source_content_type":"text/x-rst","patch_set":3,"id":"8e953598_f2624f2a","line":51,"updated":"2025-09-15 11:16:27.000000000","message":"+1","commit_id":"ad76f01194ed18e8ba73bdd70e26b2c8c7467a5d"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"460a6e979c373474ff40412c43854a14f50b82f2","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Note that this proposed change says nothing about swap or ephemeral space."},{"line_number":50,"context_line":"It is still a valid use case to spawn an instance with boot-from-volume"},{"line_number":51,"context_line":"with ephemeral or swap space."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"To avoid any surprise in already existing deployment that will upgrade to"},{"line_number":54,"context_line":"a version of Nova that includes this new feature, it is desirable that this"}],"source_content_type":"text/x-rst","patch_set":3,"id":"602af017_53fd799f","line":51,"in_reply_to":"8e953598_f2624f2a","updated":"2026-01-05 15:49:49.000000000","message":"Done","commit_id":"ad76f01194ed18e8ba73bdd70e26b2c8c7467a5d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c5ee76c6b4055fb57c36711421068f9e343e998c","unresolved":true,"context_lines":[{"line_number":50,"context_line":"It is still a valid use case to spawn an instance with boot-from-volume"},{"line_number":51,"context_line":"with ephemeral or swap space."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"To avoid any surprise in already existing deployment that will upgrade to"},{"line_number":54,"context_line":"a version of Nova that includes this new feature, it is desirable that this"},{"line_number":55,"context_line":"new restriction is set to off by default. Operators of public clouds willing"},{"line_number":56,"context_line":"to use this new feature will have to explicitely set it to \"on\" in nova.conf."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"This proposal also applies to resize of VMs for the same reasons explained above."},{"line_number":59,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"ced24e73_1c33853c","line":56,"range":{"start_line":53,"start_character":0,"end_line":56,"end_character":77},"updated":"2025-09-15 11:16:27.000000000","message":"so you are still presenting this as a featuc with  a dedicated config flag\nin nova.conf, rather then a policy rule in policy.yaml\n\nwe do not allow config (nova.conf) driven api behavior but we do allow custom policy rules.\n\n\n\n```suggestion\nTo avoid any surprise in already existing deployment that will upgrade to\na version of Nova that includes this new capablity, the new policy rule will\ndefault to ``project_admin_or_member``. This will continue to allow normal endusers\nwith the ``member`` role to create BFV instance with flavors with non-zero root disk. Operators of public clouds desiring to block this behavior can restrict this\ncapablity to a dedicated rule such as ``admin`` or prevent everyone form using it via ``!``, https://docs.openstack.org/oslo.policy/latest/admin/policy-yaml-file.html#syntax\n```","commit_id":"ad76f01194ed18e8ba73bdd70e26b2c8c7467a5d"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"460a6e979c373474ff40412c43854a14f50b82f2","unresolved":false,"context_lines":[{"line_number":50,"context_line":"It is still a valid use case to spawn an instance with boot-from-volume"},{"line_number":51,"context_line":"with ephemeral or swap space."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"To avoid any surprise in already existing deployment that will upgrade to"},{"line_number":54,"context_line":"a version of Nova that includes this new feature, it is desirable that this"},{"line_number":55,"context_line":"new restriction is set to off by default. Operators of public clouds willing"},{"line_number":56,"context_line":"to use this new feature will have to explicitely set it to \"on\" in nova.conf."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"This proposal also applies to resize of VMs for the same reasons explained above."},{"line_number":59,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"ab7c8126_db02e8b7","line":56,"range":{"start_line":53,"start_character":0,"end_line":56,"end_character":77},"in_reply_to":"ced24e73_1c33853c","updated":"2026-01-05 15:49:49.000000000","message":"Done","commit_id":"ad76f01194ed18e8ba73bdd70e26b2c8c7467a5d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c5ee76c6b4055fb57c36711421068f9e343e998c","unresolved":true,"context_lines":[{"line_number":55,"context_line":"new restriction is set to off by default. Operators of public clouds willing"},{"line_number":56,"context_line":"to use this new feature will have to explicitely set it to \"on\" in nova.conf."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"This proposal also applies to resize of VMs for the same reasons explained above."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Alternatives"},{"line_number":61,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"31027fba_7eec5bd5","line":58,"updated":"2025-09-15 11:16:27.000000000","message":"AssertionError: False is not true : specs/2026.1/approved/restrict-booting-from-volume-with-system-disk.rst:58: Line limited to a maximum of 79 characters.\nthis is why pep8 is unhappy.","commit_id":"ad76f01194ed18e8ba73bdd70e26b2c8c7467a5d"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"e89a465a5f0d553ea3a90890821210949990ee9d","unresolved":false,"context_lines":[{"line_number":55,"context_line":"new restriction is set to off by default. Operators of public clouds willing"},{"line_number":56,"context_line":"to use this new feature will have to explicitely set it to \"on\" in nova.conf."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"This proposal also applies to resize of VMs for the same reasons explained above."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Alternatives"},{"line_number":61,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ae1d7a31_f6be027c","line":58,"in_reply_to":"31027fba_7eec5bd5","updated":"2026-01-21 13:40:00.000000000","message":"Done","commit_id":"ad76f01194ed18e8ba73bdd70e26b2c8c7467a5d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c5ee76c6b4055fb57c36711421068f9e343e998c","unresolved":true,"context_lines":[{"line_number":85,"context_line":"Other end user impact"},{"line_number":86,"context_line":"---------------------"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Users that may have been used to boot the a flavor with system disk and"},{"line_number":89,"context_line":"with boot from volume, will get a 403 error. Though that\u0027s for their own"},{"line_number":90,"context_line":"good so they don\u0027t get unfortunate extra bill for some stage they can\u0027t"},{"line_number":91,"context_line":"use."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Performance Impact"},{"line_number":94,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"8556252e_d27fba2b","line":91,"range":{"start_line":88,"start_character":0,"end_line":91,"end_character":4},"updated":"2025-09-15 11:16:27.000000000","message":"On clouds with custom policy overrides, Users that may have been used to boot instances with a flavor with system disk and with boot from volume, will get a 403 error.\n\nThough that\u0027s for their own good so they don\u0027t get unfortunate extra bill for some storage they can\u0027t use.","commit_id":"ad76f01194ed18e8ba73bdd70e26b2c8c7467a5d"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"460a6e979c373474ff40412c43854a14f50b82f2","unresolved":false,"context_lines":[{"line_number":85,"context_line":"Other end user impact"},{"line_number":86,"context_line":"---------------------"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Users that may have been used to boot the a flavor with system disk and"},{"line_number":89,"context_line":"with boot from volume, will get a 403 error. Though that\u0027s for their own"},{"line_number":90,"context_line":"good so they don\u0027t get unfortunate extra bill for some stage they can\u0027t"},{"line_number":91,"context_line":"use."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Performance Impact"},{"line_number":94,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"76e2b0b8_95755bba","line":91,"range":{"start_line":88,"start_character":0,"end_line":91,"end_character":4},"in_reply_to":"8556252e_d27fba2b","updated":"2026-01-05 15:49:49.000000000","message":"Acknowledged","commit_id":"ad76f01194ed18e8ba73bdd70e26b2c8c7467a5d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c5ee76c6b4055fb57c36711421068f9e343e998c","unresolved":true,"context_lines":[{"line_number":126,"context_line":"Work Items"},{"line_number":127,"context_line":"----------"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"#. Add a new option:"},{"line_number":130,"context_line":"os_compute_api:servers:create:bfv_with_non_zero_disk_flavor"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"#. Implement the API restriction and return a 403 if we\u0027re on the case that"}],"source_content_type":"text/x-rst","patch_set":3,"id":"0a293eb5_956e4ad8","line":129,"updated":"2025-09-15 11:16:27.000000000","message":"```suggestion\n#. Add a new policy rule will be added:\n```","commit_id":"ad76f01194ed18e8ba73bdd70e26b2c8c7467a5d"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"460a6e979c373474ff40412c43854a14f50b82f2","unresolved":false,"context_lines":[{"line_number":126,"context_line":"Work Items"},{"line_number":127,"context_line":"----------"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"#. Add a new option:"},{"line_number":130,"context_line":"os_compute_api:servers:create:bfv_with_non_zero_disk_flavor"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"#. Implement the API restriction and return a 403 if we\u0027re on the case that"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9797f526_399c6aa3","line":129,"in_reply_to":"0a293eb5_956e4ad8","updated":"2026-01-05 15:49:49.000000000","message":"Done","commit_id":"ad76f01194ed18e8ba73bdd70e26b2c8c7467a5d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c5ee76c6b4055fb57c36711421068f9e343e998c","unresolved":true,"context_lines":[{"line_number":155,"context_line":"Documentation Impact"},{"line_number":156,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"- Document this new feature."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":3,"id":"04b10702_244411f0","line":158,"updated":"2025-09-15 11:16:27.000000000","message":"there are 2 places that might warrant updating \n\nyou could add a note perhaps in the preconditions of server create\nhttps://docs.openstack.org/api-ref/compute/#create-server\nand/or resize\nhttps://docs.openstack.org/api-ref/compute/#resize-server-resize-action\njust noting that on some cloud boot from a 0 disk flavor or non 0 flavor is enfoced based on if its bfv or not.\n\n\nthe other place to document this would be in create an instance user docs\nyou could add a note in the top level doc https://docs.openstack.org/nova/latest/user/launch-instances.html\nbut it might be better to add notes to the boog form image and boot form voluem docs directly.\nhttps://docs.openstack.org/nova/latest/user/launch-instance-from-image.html\nhttps://docs.openstack.org/nova/latest/user/launch-instance-from-volume.html\n\nthe last location to consider updation is the text of the Root Disk GB section of the flvour doc to mention the new policy rule\nhttps://docs.openstack.org/nova/latest/user/flavors.html\n\nit already has references to os_compute_api:servers:create:zero_disk_flavor so you can just extend this to detail the behaviour of the new policy rule.\n\nthis does not necessarily need extensive docs but those are perhaps the 3 most discoverable locations. if i choose only one it would be https://docs.openstack.org/nova/latest/user/flavors.html\nfollwoed by https://docs.openstack.org/nova/latest/user/launch-instance-from-volume.html\n\ncan you summarise that here. if you just want to go with the main bfv and flavor doc then feel free to just list those tow locations. we will also have a release note for this change which is the other form of docs htat will be a little more admin focused but you dont really need to call that out here.","commit_id":"ad76f01194ed18e8ba73bdd70e26b2c8c7467a5d"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"e89a465a5f0d553ea3a90890821210949990ee9d","unresolved":false,"context_lines":[{"line_number":155,"context_line":"Documentation Impact"},{"line_number":156,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"- Document this new feature."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":3,"id":"da7e435c_b8142f2b","line":158,"in_reply_to":"04b10702_244411f0","updated":"2026-01-21 13:40:00.000000000","message":"Done","commit_id":"ad76f01194ed18e8ba73bdd70e26b2c8c7467a5d"}]}
