)]}'
{"specs/wallaby/ephemeral-heat-overcloud.rst":[{"author":{"_account_id":28223,"name":"Cedric Jeanneret","display_name":"cjeanner (Tengu)","email":"cjeanner@redhat.com","username":"cjeanner"},"change_message_id":"5b510380133f5c05bce0f626c2167bfeb4ea88e1","unresolved":true,"context_lines":[{"line_number":84,"context_line":"next iterative step is to use ephemeral Heat for all of our deployment types."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"Security Impact"},{"line_number":88,"context_line":"---------------"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"The short lived ephemeral heat process uses no authentication. This is in"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7b9999ee_42c8eaf0","line":87,"range":{"start_line":87,"start_character":0,"end_line":87,"end_character":1},"updated":"2020-12-03 15:47:12.000000000","message":"care to add a quick note about SRBAC impact on it? Guess it\u0027s something like \"Since it\u0027s ephemeral without actual API, no change related to SRBAC is needed\" - but would still be good to make it clear.","commit_id":"e0bb2a46a0ec3bfce71a076ffa33089d04195fd0"},{"author":{"_account_id":7144,"name":"James Slagle","email":"jslagle@redhat.com","username":"slagle"},"change_message_id":"33fab2e39b322087a5196962de8db7ab795c2ab3","unresolved":false,"context_lines":[{"line_number":84,"context_line":"next iterative step is to use ephemeral Heat for all of our deployment types."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"Security Impact"},{"line_number":88,"context_line":"---------------"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"The short lived ephemeral heat process uses no authentication. This is in"}],"source_content_type":"text/x-rst","patch_set":1,"id":"804a88f4_b9a3cb3b","line":87,"range":{"start_line":87,"start_character":0,"end_line":87,"end_character":1},"in_reply_to":"7b9999ee_42c8eaf0","updated":"2020-12-03 22:34:36.000000000","message":"Done","commit_id":"e0bb2a46a0ec3bfce71a076ffa33089d04195fd0"},{"author":{"_account_id":28223,"name":"Cedric Jeanneret","display_name":"cjeanner (Tengu)","email":"cjeanner@redhat.com","username":"cjeanner"},"change_message_id":"5b510380133f5c05bce0f626c2167bfeb4ea88e1","unresolved":true,"context_lines":[{"line_number":98,"context_line":"Upgrade Impact"},{"line_number":99,"context_line":"--------------"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"When users upgrade to Wallaby, the Heat processes will be shutdown on the"},{"line_number":102,"context_line":"undercloud, and further stack operations will use ephemeral Heat."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"Upgrade operations for the overcloud will work as expected as all of the update"}],"source_content_type":"text/x-rst","patch_set":1,"id":"a7fd6175_dc8974d8","line":101,"range":{"start_line":101,"start_character":58,"end_line":101,"end_character":66},"updated":"2020-12-03 15:47:12.000000000","message":"but no data will be cleaned I guess?","commit_id":"e0bb2a46a0ec3bfce71a076ffa33089d04195fd0"},{"author":{"_account_id":7144,"name":"James Slagle","email":"jslagle@redhat.com","username":"slagle"},"change_message_id":"33fab2e39b322087a5196962de8db7ab795c2ab3","unresolved":false,"context_lines":[{"line_number":98,"context_line":"Upgrade Impact"},{"line_number":99,"context_line":"--------------"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"When users upgrade to Wallaby, the Heat processes will be shutdown on the"},{"line_number":102,"context_line":"undercloud, and further stack operations will use ephemeral Heat."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"Upgrade operations for the overcloud will work as expected as all of the update"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1ba0786b_0356f221","line":101,"range":{"start_line":101,"start_character":58,"end_line":101,"end_character":66},"in_reply_to":"a7fd6175_dc8974d8","updated":"2020-12-03 22:34:36.000000000","message":"the data will be backed up and archived off into a tarball or similar. In the same way that happens today for the undercloud install.\n\nThe next time a deployment operation is run, it will start with a newly provisioned sqlite db.","commit_id":"e0bb2a46a0ec3bfce71a076ffa33089d04195fd0"},{"author":{"_account_id":28223,"name":"Cedric Jeanneret","display_name":"cjeanner (Tengu)","email":"cjeanner@redhat.com","username":"cjeanner"},"change_message_id":"5b510380133f5c05bce0f626c2167bfeb4ea88e1","unresolved":true,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"End users will no longer have a running instance of Heat to interact with or"},{"line_number":116,"context_line":"run heat client commands against. However, we will add management around"},{"line_number":117,"context_line":"starting an ephemeral Heat process with the previously used sqlite database for"},{"line_number":118,"context_line":"debugging inspection purposes (stack resource list/show, etc)."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"87a5b4c0_b3452866","line":117,"range":{"start_line":117,"start_character":60,"end_line":117,"end_character":75},"updated":"2020-12-03 15:47:12.000000000","message":"sqlite? Nothing in mariadb then? Wondering about the perf impact for a large(r) overcloud","commit_id":"e0bb2a46a0ec3bfce71a076ffa33089d04195fd0"},{"author":{"_account_id":7144,"name":"James Slagle","email":"jslagle@redhat.com","username":"slagle"},"change_message_id":"33fab2e39b322087a5196962de8db7ab795c2ab3","unresolved":true,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"End users will no longer have a running instance of Heat to interact with or"},{"line_number":116,"context_line":"run heat client commands against. However, we will add management around"},{"line_number":117,"context_line":"starting an ephemeral Heat process with the previously used sqlite database for"},{"line_number":118,"context_line":"debugging inspection purposes (stack resource list/show, etc)."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a94d650_33d58abf","line":117,"range":{"start_line":117,"start_character":60,"end_line":117,"end_character":75},"in_reply_to":"87a5b4c0_b3452866","updated":"2020-12-03 22:34:36.000000000","message":"Correct. we\u0027ll have to test the performance. If we can also fully implement the the spec for Scaling with the Ansible inventory[1], then that will help tremendously.\n\n[1] https://specs.openstack.org/openstack/tripleo-specs/specs/ussuri/scaling-with-ansible-inventory.html","commit_id":"e0bb2a46a0ec3bfce71a076ffa33089d04195fd0"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"4e89f111e44815b5e50b6d34a13343f0d69b169a","unresolved":true,"context_lines":[{"line_number":121,"context_line":"------------------"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"The ephemeral Heat process is presently single threaded. This aspect will need"},{"line_number":124,"context_line":"to be addressed as a single threaded Heat process would not scale to meet"},{"line_number":125,"context_line":"overcloud deployment needs."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"First, we can explore what it would take to make it multi-threaded. This"}],"source_content_type":"text/x-rst","patch_set":1,"id":"8bff9068_3ba6b3f5","line":124,"updated":"2020-12-02 16:28:07.000000000","message":"can you be a bit more explicit here about the current limits i.e. a single threaded ephemeral heat can support up to X node deployments ?","commit_id":"e0bb2a46a0ec3bfce71a076ffa33089d04195fd0"},{"author":{"_account_id":7144,"name":"James Slagle","email":"jslagle@redhat.com","username":"slagle"},"change_message_id":"33fab2e39b322087a5196962de8db7ab795c2ab3","unresolved":true,"context_lines":[{"line_number":121,"context_line":"------------------"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"The ephemeral Heat process is presently single threaded. This aspect will need"},{"line_number":124,"context_line":"to be addressed as a single threaded Heat process would not scale to meet"},{"line_number":125,"context_line":"overcloud deployment needs."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"First, we can explore what it would take to make it multi-threaded. This"}],"source_content_type":"text/x-rst","patch_set":1,"id":"8d19b375_b51dfa47","line":124,"in_reply_to":"8bff9068_3ba6b3f5","updated":"2020-12-03 22:34:36.000000000","message":"I don\u0027t have the data yet, but I think it\u0027s clear it won\u0027t scale to today\u0027s requirements. We will have to explore making it multi-threaded/process and relying on the the Scaling with the Ansible Inventory[1] spec\n\n[1] https://specs.openstack.org/openstack/tripleo-specs/specs/ussuri/scaling-with-ansible-inventory.html","commit_id":"e0bb2a46a0ec3bfce71a076ffa33089d04195fd0"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"4e89f111e44815b5e50b6d34a13343f0d69b169a","unresolved":true,"context_lines":[{"line_number":148,"context_line":"enable inspecting the Heat stack for debugging purposes."},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"In some cases, some service template updates may be required where there are"},{"line_number":151,"context_line":"instances that those templates rely on saved state in the Heat stack."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"Implementation"},{"line_number":154,"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":"0782d381_5adcd408","line":151,"range":{"start_line":151,"start_character":0,"end_line":151,"end_character":44},"updated":"2020-12-02 16:28:07.000000000","message":"second time you mention it if there is a specific example please link it?","commit_id":"e0bb2a46a0ec3bfce71a076ffa33089d04195fd0"},{"author":{"_account_id":7144,"name":"James Slagle","email":"jslagle@redhat.com","username":"slagle"},"change_message_id":"33fab2e39b322087a5196962de8db7ab795c2ab3","unresolved":true,"context_lines":[{"line_number":148,"context_line":"enable inspecting the Heat stack for debugging purposes."},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"In some cases, some service template updates may be required where there are"},{"line_number":151,"context_line":"instances that those templates rely on saved state in the Heat stack."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"Implementation"},{"line_number":154,"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":"1b49ac31_12b343a6","line":151,"range":{"start_line":151,"start_character":0,"end_line":151,"end_character":44},"in_reply_to":"0782d381_5adcd408","updated":"2020-12-03 22:34:36.000000000","message":"I don\u0027t have one. Alex mentioned it earlier, but we don\u0027t have a specific example (yet).","commit_id":"e0bb2a46a0ec3bfce71a076ffa33089d04195fd0"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"9a845c64036da49e72e90fc9c6ee4f0f75559c74","unresolved":true,"context_lines":[{"line_number":81,"context_line":"The alternative is to make no changes and continue to use Heat as we do today"},{"line_number":82,"context_line":"for the overcloud deployment. With the work that has already been done to"},{"line_number":83,"context_line":"decouple Heat from Nova, Ironic, and now Neutron, it instead seems like the"},{"line_number":84,"context_line":"next iterative step is to use ephemeral Heat for all of our deployment types."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"Security Impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"db726719_039c5297","line":84,"range":{"start_line":84,"start_character":30,"end_line":84,"end_character":44},"updated":"2020-12-04 16:10:52.000000000","message":"possible alternative, use Heat but make the stack itself ephemeral, for example dump DB and re-initialize heat prior to anything doing a stack operation.","commit_id":"f0d8ef9831c8c964bcbbcfc0de2ae45a699425d1"},{"author":{"_account_id":7144,"name":"James Slagle","email":"jslagle@redhat.com","username":"slagle"},"change_message_id":"f016b9fd93331dfeece5484a5cedddb293934d4d","unresolved":false,"context_lines":[{"line_number":81,"context_line":"The alternative is to make no changes and continue to use Heat as we do today"},{"line_number":82,"context_line":"for the overcloud deployment. With the work that has already been done to"},{"line_number":83,"context_line":"decouple Heat from Nova, Ironic, and now Neutron, it instead seems like the"},{"line_number":84,"context_line":"next iterative step is to use ephemeral Heat for all of our deployment types."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"Security Impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"6e881f69_1d1000e1","line":84,"range":{"start_line":84,"start_character":30,"end_line":84,"end_character":44},"in_reply_to":"db726719_039c5297","updated":"2020-12-11 21:13:50.000000000","message":"I added that idea as an alternative.","commit_id":"f0d8ef9831c8c964bcbbcfc0de2ae45a699425d1"},{"author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"change_message_id":"fee3d8794389638140fcbcaf5180722be0384319","unresolved":true,"context_lines":[{"line_number":106,"context_line":"Upgrade operations for the overcloud will work as expected as all of the update"},{"line_number":107,"context_line":"and upgrade tasks are entirely generated with config-download on each stack"},{"line_number":108,"context_line":"operation. There may be some services that rely on saved state in the existing"},{"line_number":109,"context_line":"Heat stack, although there are no specific circumstances that have yet to be"},{"line_number":110,"context_line":"identified. We will however need to ensure proper upgrade testing to be sure"},{"line_number":111,"context_line":"that all services can be upgraded appropriately using ephemeral Heat."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7e5c02be_b96f7351","line":110,"range":{"start_line":109,"start_character":11,"end_line":110,"end_character":11},"updated":"2020-12-04 10:03:18.000000000","message":"To name a few, things like https://github.com/openstack/python-tripleoclient/blob/master/tripleoclient/utils.py#L1031 and missing network environment.","commit_id":"f0d8ef9831c8c964bcbbcfc0de2ae45a699425d1"},{"author":{"_account_id":7144,"name":"James Slagle","email":"jslagle@redhat.com","username":"slagle"},"change_message_id":"f016b9fd93331dfeece5484a5cedddb293934d4d","unresolved":false,"context_lines":[{"line_number":106,"context_line":"Upgrade operations for the overcloud will work as expected as all of the update"},{"line_number":107,"context_line":"and upgrade tasks are entirely generated with config-download on each stack"},{"line_number":108,"context_line":"operation. There may be some services that rely on saved state in the existing"},{"line_number":109,"context_line":"Heat stack, although there are no specific circumstances that have yet to be"},{"line_number":110,"context_line":"identified. We will however need to ensure proper upgrade testing to be sure"},{"line_number":111,"context_line":"that all services can be upgraded appropriately using ephemeral Heat."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"ca3c55b0_4368c831","line":110,"range":{"start_line":109,"start_character":11,"end_line":110,"end_character":11},"in_reply_to":"7e5c02be_b96f7351","updated":"2020-12-11 21:13:50.000000000","message":"Thanks, that\u0027s a great example. I\u0027ve added some points to the \"overview\" about how we can handle these types of scenarios.","commit_id":"f0d8ef9831c8c964bcbbcfc0de2ae45a699425d1"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"9a845c64036da49e72e90fc9c6ee4f0f75559c74","unresolved":true,"context_lines":[{"line_number":126,"context_line":"to be addressed as a single threaded Heat process would not scale to meet"},{"line_number":127,"context_line":"overcloud deployment needs."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"First, we can explore what it would take to make it multi-threaded. This"},{"line_number":130,"context_line":"approach may involve making use of rabbitmq to enable multiple heat-engine"},{"line_number":131,"context_line":"workers. Rabbitmq is still installed on the undercloud as it\u0027s in use by"},{"line_number":132,"context_line":"Neutron, or we could use an ephemeral rabbitmq process."}],"source_content_type":"text/x-rst","patch_set":2,"id":"2500b3a0_30fef5c2","line":129,"range":{"start_line":129,"start_character":44,"end_line":129,"end_character":66},"updated":"2020-12-04 16:10:52.000000000","message":"An alternative would be to re-initialize the heat database on every run, and not use heat-all. We\u0027d then keep the multi-threading capabilities that is there. But still benefit from not having all the issues with potential state in the heat stack.","commit_id":"f0d8ef9831c8c964bcbbcfc0de2ae45a699425d1"},{"author":{"_account_id":7144,"name":"James Slagle","email":"jslagle@redhat.com","username":"slagle"},"change_message_id":"f016b9fd93331dfeece5484a5cedddb293934d4d","unresolved":false,"context_lines":[{"line_number":126,"context_line":"to be addressed as a single threaded Heat process would not scale to meet"},{"line_number":127,"context_line":"overcloud deployment needs."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"First, we can explore what it would take to make it multi-threaded. This"},{"line_number":130,"context_line":"approach may involve making use of rabbitmq to enable multiple heat-engine"},{"line_number":131,"context_line":"workers. Rabbitmq is still installed on the undercloud as it\u0027s in use by"},{"line_number":132,"context_line":"Neutron, or we could use an ephemeral rabbitmq process."}],"source_content_type":"text/x-rst","patch_set":2,"id":"a7a2a375_4aa31634","line":129,"range":{"start_line":129,"start_character":44,"end_line":129,"end_character":66},"in_reply_to":"1a7c4a51_fa5d2dc9","updated":"2020-12-11 21:13:50.000000000","message":"I added the alternative of re-intializing the db to the \"alternatives\" section.","commit_id":"f0d8ef9831c8c964bcbbcfc0de2ae45a699425d1"},{"author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"change_message_id":"827b567db49aa49991138e5056fcd18b933712fe","unresolved":true,"context_lines":[{"line_number":126,"context_line":"to be addressed as a single threaded Heat process would not scale to meet"},{"line_number":127,"context_line":"overcloud deployment needs."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"First, we can explore what it would take to make it multi-threaded. This"},{"line_number":130,"context_line":"approach may involve making use of rabbitmq to enable multiple heat-engine"},{"line_number":131,"context_line":"workers. Rabbitmq is still installed on the undercloud as it\u0027s in use by"},{"line_number":132,"context_line":"Neutron, or we could use an ephemeral rabbitmq process."}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a7c4a51_fa5d2dc9","line":129,"range":{"start_line":129,"start_character":44,"end_line":129,"end_character":66},"in_reply_to":"2500b3a0_30fef5c2","updated":"2020-12-07 04:21:41.000000000","message":"heat-all runs heat-engine and heat-api services in threads in a single process. Heat engine scalability is based around multiple workers in separate processes. When you specify a single worker, it\u0027s run in the parent process[1].\n\nAlso I don\u0027t think we can scale by using multiple heat-all processes in the undercloud (I\u0027m sure it won\u0027t give the benefits of convergence heat engine).\n\nTo me it looks like (mentioned earlier too), if we want to converge standalone(undercloud) and overcloud deployments we\u0027ve to change both.\n\n[1] https://opendev.org/openstack/oslo.service/src/branch/master/oslo_service/service.py#L835-L839","commit_id":"f0d8ef9831c8c964bcbbcfc0de2ae45a699425d1"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"b8afbef5a5b81b79cf897ce67ffe9806c905ee50","unresolved":false,"context_lines":[{"line_number":126,"context_line":"to be addressed as a single threaded Heat process would not scale to meet"},{"line_number":127,"context_line":"overcloud deployment needs."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"First, we can explore what it would take to make it multi-threaded. This"},{"line_number":130,"context_line":"approach may involve making use of rabbitmq to enable multiple heat-engine"},{"line_number":131,"context_line":"workers. Rabbitmq is still installed on the undercloud as it\u0027s in use by"},{"line_number":132,"context_line":"Neutron, or we could use an ephemeral rabbitmq process."}],"source_content_type":"text/x-rst","patch_set":2,"id":"a557bf65_1a623f48","line":129,"range":{"start_line":129,"start_character":44,"end_line":129,"end_character":66},"in_reply_to":"a7a2a375_4aa31634","updated":"2021-01-11 10:26:39.000000000","message":"Please consider making re-initialization the default for this proposal. With an optional \"ephemeral mode\". That would solve all scaling issues, f.e. when running upgrades.","commit_id":"f0d8ef9831c8c964bcbbcfc0de2ae45a699425d1"},{"author":{"_account_id":18002,"name":"John Fulton","email":"fulton@redhat.com","username":"fultonj"},"change_message_id":"693022c1837ec953b45952440c5ca2a928e171f9","unresolved":true,"context_lines":[{"line_number":127,"context_line":"overcloud deployment needs."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"First, we can explore what it would take to make it multi-threaded. This"},{"line_number":130,"context_line":"approach may involve making use of rabbitmq to enable multiple heat-engine"},{"line_number":131,"context_line":"workers. Rabbitmq is still installed on the undercloud as it\u0027s in use by"},{"line_number":132,"context_line":"Neutron, or we could use an ephemeral rabbitmq process."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Alternatively, we can finish the work started in `Scaling with the Ansible"}],"source_content_type":"text/x-rst","patch_set":2,"id":"942d7391_24a2e710","line":131,"range":{"start_line":130,"start_character":54,"end_line":131,"end_character":7},"updated":"2020-12-07 15:44:17.000000000","message":"Would these additional heat-engines be undercloud minions [1]? Are we planning to keep the minion feature for scale?\n\nhttps://docs.openstack.org/project-deploy-guide/tripleo-docs/latest/features/undercloud_minion.html","commit_id":"f0d8ef9831c8c964bcbbcfc0de2ae45a699425d1"},{"author":{"_account_id":7144,"name":"James Slagle","email":"jslagle@redhat.com","username":"slagle"},"change_message_id":"12e9c3c696a3139b524c263699c64b1a947f96ce","unresolved":true,"context_lines":[{"line_number":127,"context_line":"overcloud deployment needs."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"First, we can explore what it would take to make it multi-threaded. This"},{"line_number":130,"context_line":"approach may involve making use of rabbitmq to enable multiple heat-engine"},{"line_number":131,"context_line":"workers. Rabbitmq is still installed on the undercloud as it\u0027s in use by"},{"line_number":132,"context_line":"Neutron, or we could use an ephemeral rabbitmq process."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Alternatively, we can finish the work started in `Scaling with the Ansible"}],"source_content_type":"text/x-rst","patch_set":2,"id":"e27e734c_ab37b3ea","line":131,"range":{"start_line":130,"start_character":54,"end_line":131,"end_character":7},"in_reply_to":"942d7391_24a2e710","updated":"2020-12-08 13:59:43.000000000","message":"these would not be minions. I\u0027m talking about the possibility of somehow running multiple heat-engine workers alongside heat-all, which today is not possible.","commit_id":"f0d8ef9831c8c964bcbbcfc0de2ae45a699425d1"},{"author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"change_message_id":"fee3d8794389638140fcbcaf5180722be0384319","unresolved":true,"context_lines":[{"line_number":130,"context_line":"approach may involve making use of rabbitmq to enable multiple heat-engine"},{"line_number":131,"context_line":"workers. Rabbitmq is still installed on the undercloud as it\u0027s in use by"},{"line_number":132,"context_line":"Neutron, or we could use an ephemeral rabbitmq process."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Alternatively, we can finish the work started in `Scaling with the Ansible"},{"line_number":135,"context_line":"inventory`_. That work will enable deploying the Heat stack with a count of 1"},{"line_number":136,"context_line":"for each role. With that change, the Heat stack operation times will scale with"}],"source_content_type":"text/x-rst","patch_set":2,"id":"10a7f709_1bca990d","line":133,"updated":"2020-12-04 10:03:18.000000000","message":"I think sqlite would not scale for overcloud stacks with large number of nodes.\n\nAFAIK, sqlite requires too much memory to run if the database is big. It also has limitations for multi-thread access, connection sharing and some write performance.\n\nThough I\u0027m not saying we can\u0027t use sqlite for overcloud stack, we probably need to document this and see how it works.\n\nIf we go ahead with the option below, then we would not have these concerns.","commit_id":"f0d8ef9831c8c964bcbbcfc0de2ae45a699425d1"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"9a845c64036da49e72e90fc9c6ee4f0f75559c74","unresolved":true,"context_lines":[{"line_number":130,"context_line":"approach may involve making use of rabbitmq to enable multiple heat-engine"},{"line_number":131,"context_line":"workers. Rabbitmq is still installed on the undercloud as it\u0027s in use by"},{"line_number":132,"context_line":"Neutron, or we could use an ephemeral rabbitmq process."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Alternatively, we can finish the work started in `Scaling with the Ansible"},{"line_number":135,"context_line":"inventory`_. That work will enable deploying the Heat stack with a count of 1"},{"line_number":136,"context_line":"for each role. With that change, the Heat stack operation times will scale with"}],"source_content_type":"text/x-rst","patch_set":2,"id":"24ec0910_1e4b7199","line":133,"in_reply_to":"10a7f709_1bca990d","updated":"2020-12-04 16:10:52.000000000","message":"second that, I know they tried to use sqlite for Metal3 and ran into issues with multi-thread access. I think they reverted to us a proper DB even tough it\u0027s \"ephemeral\".","commit_id":"f0d8ef9831c8c964bcbbcfc0de2ae45a699425d1"},{"author":{"_account_id":7144,"name":"James Slagle","email":"jslagle@redhat.com","username":"slagle"},"change_message_id":"f016b9fd93331dfeece5484a5cedddb293934d4d","unresolved":false,"context_lines":[{"line_number":130,"context_line":"approach may involve making use of rabbitmq to enable multiple heat-engine"},{"line_number":131,"context_line":"workers. Rabbitmq is still installed on the undercloud as it\u0027s in use by"},{"line_number":132,"context_line":"Neutron, or we could use an ephemeral rabbitmq process."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Alternatively, we can finish the work started in `Scaling with the Ansible"},{"line_number":135,"context_line":"inventory`_. That work will enable deploying the Heat stack with a count of 1"},{"line_number":136,"context_line":"for each role. With that change, the Heat stack operation times will scale with"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9e314157_c4032aed","line":133,"in_reply_to":"24ec0910_1e4b7199","updated":"2020-12-11 21:13:50.000000000","message":"I\u0027ve listed this option in the \"alternatives\" section.","commit_id":"f0d8ef9831c8c964bcbbcfc0de2ae45a699425d1"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"9a845c64036da49e72e90fc9c6ee4f0f75559c74","unresolved":true,"context_lines":[{"line_number":131,"context_line":"workers. Rabbitmq is still installed on the undercloud as it\u0027s in use by"},{"line_number":132,"context_line":"Neutron, or we could use an ephemeral rabbitmq process."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Alternatively, we can finish the work started in `Scaling with the Ansible"},{"line_number":135,"context_line":"inventory`_. That work will enable deploying the Heat stack with a count of 1"},{"line_number":136,"context_line":"for each role. With that change, the Heat stack operation times will scale with"},{"line_number":137,"context_line":"the number of roles in the deployment, and not the number of nodes, which will"},{"line_number":138,"context_line":"allow for similar performance as currently exists."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Other Deployer Impact"},{"line_number":141,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"52bd9f11_fd94bb11","line":138,"range":{"start_line":134,"start_character":0,"end_line":138,"end_character":50},"updated":"2020-12-04 16:10:52.000000000","message":"+1, I always like that idea.","commit_id":"f0d8ef9831c8c964bcbbcfc0de2ae45a699425d1"},{"author":{"_account_id":7144,"name":"James Slagle","email":"jslagle@redhat.com","username":"slagle"},"change_message_id":"f016b9fd93331dfeece5484a5cedddb293934d4d","unresolved":false,"context_lines":[{"line_number":131,"context_line":"workers. Rabbitmq is still installed on the undercloud as it\u0027s in use by"},{"line_number":132,"context_line":"Neutron, or we could use an ephemeral rabbitmq process."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Alternatively, we can finish the work started in `Scaling with the Ansible"},{"line_number":135,"context_line":"inventory`_. That work will enable deploying the Heat stack with a count of 1"},{"line_number":136,"context_line":"for each role. With that change, the Heat stack operation times will scale with"},{"line_number":137,"context_line":"the number of roles in the deployment, and not the number of nodes, which will"},{"line_number":138,"context_line":"allow for similar performance as currently exists."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Other Deployer Impact"},{"line_number":141,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"53b813c2_5d4b2867","line":138,"range":{"start_line":134,"start_character":0,"end_line":138,"end_character":50},"in_reply_to":"52bd9f11_fd94bb11","updated":"2020-12-11 21:13:50.000000000","message":"Ack","commit_id":"f0d8ef9831c8c964bcbbcfc0de2ae45a699425d1"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"a88be79e8030c9a8d79853d0c7de939bc39e50ee","unresolved":true,"context_lines":[{"line_number":161,"context_line":"Primary assignee:"},{"line_number":162,"context_line":"  james-slagle"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"Work Items"},{"line_number":165,"context_line":"----------"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"* Add option to \"overcloud deploy\" to use ephemeral Heat"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5550de0b_896ba04e","line":164,"range":{"start_line":164,"start_character":0,"end_line":164,"end_character":4},"updated":"2020-12-09 10:20:58.000000000","message":"would be nice to add some kind of estimated time frame to this..  more to signal that some of the things described here are beyond wallaby, even though you plan to start delivering some of these items during W.","commit_id":"f0d8ef9831c8c964bcbbcfc0de2ae45a699425d1"},{"author":{"_account_id":7144,"name":"James Slagle","email":"jslagle@redhat.com","username":"slagle"},"change_message_id":"f016b9fd93331dfeece5484a5cedddb293934d4d","unresolved":false,"context_lines":[{"line_number":161,"context_line":"Primary assignee:"},{"line_number":162,"context_line":"  james-slagle"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"Work Items"},{"line_number":165,"context_line":"----------"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"* Add option to \"overcloud deploy\" to use ephemeral Heat"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3f0de80e_d0a47a78","line":164,"range":{"start_line":164,"start_character":0,"end_line":164,"end_character":4},"in_reply_to":"5550de0b_896ba04e","updated":"2020-12-11 21:13:50.000000000","message":"Done","commit_id":"f0d8ef9831c8c964bcbbcfc0de2ae45a699425d1"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"ee248b3ec46a7cac803d760f050884ef3fd10e3d","unresolved":true,"context_lines":[{"line_number":71,"context_line":"Managing the templates used during the deployment becomes even more important"},{"line_number":72,"context_line":"with this change, as the templates and environments passed to the \"overcloud"},{"line_number":73,"context_line":"deploy\" command are the entire source of truth to recreate the deployment. We"},{"line_number":74,"context_line":"may consider further management around the templates, such as a git repository"},{"line_number":75,"context_line":"but that is outside the scope of this spec."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"There are some cases where the saved state in the stack is inspected before a"}],"source_content_type":"text/x-rst","patch_set":3,"id":"298b171e_0687f076","line":74,"range":{"start_line":74,"start_character":4,"end_line":74,"end_character":78},"updated":"2020-12-24 08:53:23.000000000","message":"which templates are you referring to here? tripleo-heat-templates is already a repository so must be something else?","commit_id":"9b3fa8163fff2b186b0b6349a0f19037c160b7c0"},{"author":{"_account_id":7144,"name":"James Slagle","email":"jslagle@redhat.com","username":"slagle"},"change_message_id":"8e8534a3062e721cd93162e610c77e01b944997f","unresolved":true,"context_lines":[{"line_number":71,"context_line":"Managing the templates used during the deployment becomes even more important"},{"line_number":72,"context_line":"with this change, as the templates and environments passed to the \"overcloud"},{"line_number":73,"context_line":"deploy\" command are the entire source of truth to recreate the deployment. We"},{"line_number":74,"context_line":"may consider further management around the templates, such as a git repository"},{"line_number":75,"context_line":"but that is outside the scope of this spec."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"There are some cases where the saved state in the stack is inspected before a"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7277c675_94270130","line":74,"range":{"start_line":74,"start_character":4,"end_line":74,"end_character":78},"in_reply_to":"298b171e_0687f076","updated":"2021-01-04 15:03:01.000000000","message":"the templates used during the deployment, which are usually /home/stack/templates.","commit_id":"9b3fa8163fff2b186b0b6349a0f19037c160b7c0"},{"author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"change_message_id":"c239feae111695bee36b7e3dca41ab3f4abd3dec","unresolved":true,"context_lines":[{"line_number":79,"context_line":"input and what exists in the stack, as well as checking for a missing"},{"line_number":80,"context_line":"network-isolation.yaml environment."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"In cases such as these, we need a way to perform these checks outside of"},{"line_number":83,"context_line":"inspecting the Heat stack itself. A straightforward way to do these types of"},{"line_number":84,"context_line":"checks would be to add ansible tasks that check the existing deployed overcloud"},{"line_number":85,"context_line":"(instead of the stack) and then cause an error that will stop the deployment if"},{"line_number":86,"context_line":"an invalid change is detected."}],"source_content_type":"text/x-rst","patch_set":3,"id":"720d03dd_0d1f07d3","line":83,"range":{"start_line":82,"start_character":0,"end_line":83,"end_character":32},"updated":"2020-12-16 05:48:38.000000000","message":"Have we thought about how to manage passwords and their rotations? Are we going to maintain a password file like undercloud (at present it\u0027s stored in plan or stack env)? We would atleast need to get them from the existing plan/stack before we move to ephemeral stack. I think it would not be simple to manage them outside of the heat stack with ansible (injecting into role data) after config-download.","commit_id":"9b3fa8163fff2b186b0b6349a0f19037c160b7c0"},{"author":{"_account_id":7144,"name":"James Slagle","email":"jslagle@redhat.com","username":"slagle"},"change_message_id":"61e7ad61114263c0d7d18dcb2434ae0de7596ffa","unresolved":true,"context_lines":[{"line_number":79,"context_line":"input and what exists in the stack, as well as checking for a missing"},{"line_number":80,"context_line":"network-isolation.yaml environment."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"In cases such as these, we need a way to perform these checks outside of"},{"line_number":83,"context_line":"inspecting the Heat stack itself. A straightforward way to do these types of"},{"line_number":84,"context_line":"checks would be to add ansible tasks that check the existing deployed overcloud"},{"line_number":85,"context_line":"(instead of the stack) and then cause an error that will stop the deployment if"},{"line_number":86,"context_line":"an invalid change is detected."}],"source_content_type":"text/x-rst","patch_set":3,"id":"dcd6d419_11037a4b","line":83,"range":{"start_line":82,"start_character":0,"end_line":83,"end_character":32},"in_reply_to":"08ad8750_0c44bca1","updated":"2020-12-18 20:10:47.000000000","message":"only parts from the \"tripleo deploy\" code that I intend to use are the management of the heat-all process. I will probably refactor that out into tripleo-common as well. \"overcloud deploy\" will still work as it does today for all the plan management and environment management, then when it goes to actually talk to the heat api, it will start heat-all and use that api.\n\nwe could then migrate \"tripleo deploy\" to use \"overcloud deploy\", which is what I think we want to do anyway. That way, tripleo deploy has the benefit of things like password rotation, etc.","commit_id":"9b3fa8163fff2b186b0b6349a0f19037c160b7c0"},{"author":{"_account_id":7144,"name":"James Slagle","email":"jslagle@redhat.com","username":"slagle"},"change_message_id":"9097a6f414ccb377ee39aca6a65f6296d86b1248","unresolved":true,"context_lines":[{"line_number":79,"context_line":"input and what exists in the stack, as well as checking for a missing"},{"line_number":80,"context_line":"network-isolation.yaml environment."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"In cases such as these, we need a way to perform these checks outside of"},{"line_number":83,"context_line":"inspecting the Heat stack itself. A straightforward way to do these types of"},{"line_number":84,"context_line":"checks would be to add ansible tasks that check the existing deployed overcloud"},{"line_number":85,"context_line":"(instead of the stack) and then cause an error that will stop the deployment if"},{"line_number":86,"context_line":"an invalid change is detected."}],"source_content_type":"text/x-rst","patch_set":3,"id":"eadbd857_579602d8","line":83,"range":{"start_line":82,"start_character":0,"end_line":83,"end_character":32},"in_reply_to":"28501f83_1efa041c","updated":"2021-01-06 20:00:37.000000000","message":"we can certainly revisit keeping the plan around. I view the plan as an intermediate step given it is deleted and recreated on every deployment. we do have a \"plan deploy\" command, but I\u0027m not convinced any users rely on that functionality.","commit_id":"9b3fa8163fff2b186b0b6349a0f19037c160b7c0"},{"author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"change_message_id":"32cd5aa007468f68563847f73850cedc8cf9e7cc","unresolved":true,"context_lines":[{"line_number":79,"context_line":"input and what exists in the stack, as well as checking for a missing"},{"line_number":80,"context_line":"network-isolation.yaml environment."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"In cases such as these, we need a way to perform these checks outside of"},{"line_number":83,"context_line":"inspecting the Heat stack itself. A straightforward way to do these types of"},{"line_number":84,"context_line":"checks would be to add ansible tasks that check the existing deployed overcloud"},{"line_number":85,"context_line":"(instead of the stack) and then cause an error that will stop the deployment if"},{"line_number":86,"context_line":"an invalid change is detected."}],"source_content_type":"text/x-rst","patch_set":3,"id":"08ad8750_0c44bca1","line":83,"range":{"start_line":82,"start_character":0,"end_line":83,"end_character":32},"in_reply_to":"5c9af6f5_deb3aeaa","updated":"2020-12-18 16:48:47.000000000","message":"OK, I did not know that we want to continue using the overcloud plan (after tripleo-ui) which is in swift atm. If we still use the plan concept (local after swift removal) then we can\u0027t possibly use lot of tripleo deploy code other than using ephemeral heat.\n\n\nI\u0027m working on enabling server side heat env merging, which would require the plan to mostly dissapear.May be we\u0027ll address it with that effort.","commit_id":"9b3fa8163fff2b186b0b6349a0f19037c160b7c0"},{"author":{"_account_id":7144,"name":"James Slagle","email":"jslagle@redhat.com","username":"slagle"},"change_message_id":"c05cc891b9628a36656fd85da6867ef231c131ef","unresolved":true,"context_lines":[{"line_number":79,"context_line":"input and what exists in the stack, as well as checking for a missing"},{"line_number":80,"context_line":"network-isolation.yaml environment."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"In cases such as these, we need a way to perform these checks outside of"},{"line_number":83,"context_line":"inspecting the Heat stack itself. A straightforward way to do these types of"},{"line_number":84,"context_line":"checks would be to add ansible tasks that check the existing deployed overcloud"},{"line_number":85,"context_line":"(instead of the stack) and then cause an error that will stop the deployment if"},{"line_number":86,"context_line":"an invalid change is detected."}],"source_content_type":"text/x-rst","patch_set":3,"id":"5c9af6f5_deb3aeaa","line":83,"range":{"start_line":82,"start_character":0,"end_line":83,"end_character":32},"in_reply_to":"720d03dd_0d1f07d3","updated":"2020-12-18 16:24:04.000000000","message":"yes, they\u0027re stored in the plan and that is where we can continue to retrieve them and manage them as needed. Using ephemeral heat shouldn\u0027t affect the plan usage at all, we still need the concept of the plan.","commit_id":"9b3fa8163fff2b186b0b6349a0f19037c160b7c0"},{"author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"change_message_id":"c6a6fed5fb8912a878b0010d2127a8847bfbf959","unresolved":true,"context_lines":[{"line_number":79,"context_line":"input and what exists in the stack, as well as checking for a missing"},{"line_number":80,"context_line":"network-isolation.yaml environment."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"In cases such as these, we need a way to perform these checks outside of"},{"line_number":83,"context_line":"inspecting the Heat stack itself. A straightforward way to do these types of"},{"line_number":84,"context_line":"checks would be to add ansible tasks that check the existing deployed overcloud"},{"line_number":85,"context_line":"(instead of the stack) and then cause an error that will stop the deployment if"},{"line_number":86,"context_line":"an invalid change is detected."}],"source_content_type":"text/x-rst","patch_set":3,"id":"28501f83_1efa041c","line":83,"range":{"start_line":82,"start_character":0,"end_line":83,"end_character":32},"in_reply_to":"dcd6d419_11037a4b","updated":"2021-01-05 09:29:10.000000000","message":"I think keeping the plan (as discussed above, containing passwords and derived parameters etc) is probably not aligned to statement earlier that \"templates and environments passed to overcloud deploy would be the single source of truth\". Probably we can clarify that here unless we leave it as a detail to be figured out later.","commit_id":"9b3fa8163fff2b186b0b6349a0f19037c160b7c0"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"b89dedd77dc55107a2a22e357c91dac3ad4ea2d1","unresolved":true,"context_lines":[{"line_number":94,"context_line":"decouple Heat from Nova, Ironic, and now Neutron, it instead seems like the"},{"line_number":95,"context_line":"next iterative step is to use ephemeral Heat for all of our deployment types."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"If scaling proves to be an issue that is difficult to mitigate, then an"},{"line_number":98,"context_line":"alternative could be to continue to install and configure Heat as we do today,"},{"line_number":99,"context_line":"but just treat the stack as ephemeral. The Heat db could be wiped after each"},{"line_number":100,"context_line":"deployment operation to make sure nothing is saved as state."},{"line_number":101,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"778d702b_4dbc5c72","line":98,"range":{"start_line":97,"start_character":0,"end_line":98,"end_character":78},"updated":"2021-01-11 10:20:59.000000000","message":"The scale testing is usually taken much later after the release, so this cannot be the predicate. Please consider adding that switch option from the beginning. And probably as the default deployment mode?","commit_id":"9b3fa8163fff2b186b0b6349a0f19037c160b7c0"},{"author":{"_account_id":7144,"name":"James Slagle","email":"jslagle@redhat.com","username":"slagle"},"change_message_id":"3369e418289c672d70f3c319ef1e66a4a9c86bc4","unresolved":true,"context_lines":[{"line_number":94,"context_line":"decouple Heat from Nova, Ironic, and now Neutron, it instead seems like the"},{"line_number":95,"context_line":"next iterative step is to use ephemeral Heat for all of our deployment types."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"If scaling proves to be an issue that is difficult to mitigate, then an"},{"line_number":98,"context_line":"alternative could be to continue to install and configure Heat as we do today,"},{"line_number":99,"context_line":"but just treat the stack as ephemeral. The Heat db could be wiped after each"},{"line_number":100,"context_line":"deployment operation to make sure nothing is saved as state."},{"line_number":101,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"f3109117_d5c04fcc","line":98,"range":{"start_line":97,"start_character":0,"end_line":98,"end_character":78},"in_reply_to":"778d702b_4dbc5c72","updated":"2021-01-12 21:20:10.000000000","message":"with the listed alternatives in the latest revision, we\u0027d effectively have the same model we do today, so I do believe the scaling will be similar to the performance we offer today.","commit_id":"9b3fa8163fff2b186b0b6349a0f19037c160b7c0"},{"author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"change_message_id":"c239feae111695bee36b7e3dca41ab3f4abd3dec","unresolved":true,"context_lines":[{"line_number":148,"context_line":"want to consider the alternative of using a managed heat process, but not save"},{"line_number":149,"context_line":"any state in the db as recorded in the `Alternatives`_ section."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"Alternatively, we can finish the work started in `Scaling with the Ansible"},{"line_number":152,"context_line":"inventory`_. That work will enable deploying the Heat stack with a count of 1"},{"line_number":153,"context_line":"for each role. With that change, the Heat stack operation times will scale with"},{"line_number":154,"context_line":"the number of roles in the deployment, and not the number of nodes, which will"},{"line_number":155,"context_line":"allow for similar performance as currently exists."},{"line_number":156,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"093e7c47_74a0fbc5","line":153,"range":{"start_line":151,"start_character":0,"end_line":153,"end_character":13},"updated":"2020-12-16 05:48:38.000000000","message":"If we can do this we can avoid all the efforts around scaling heat-all and probably should prioritize this.","commit_id":"9b3fa8163fff2b186b0b6349a0f19037c160b7c0"},{"author":{"_account_id":7144,"name":"James Slagle","email":"jslagle@redhat.com","username":"slagle"},"change_message_id":"c05cc891b9628a36656fd85da6867ef231c131ef","unresolved":true,"context_lines":[{"line_number":148,"context_line":"want to consider the alternative of using a managed heat process, but not save"},{"line_number":149,"context_line":"any state in the db as recorded in the `Alternatives`_ section."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"Alternatively, we can finish the work started in `Scaling with the Ansible"},{"line_number":152,"context_line":"inventory`_. That work will enable deploying the Heat stack with a count of 1"},{"line_number":153,"context_line":"for each role. With that change, the Heat stack operation times will scale with"},{"line_number":154,"context_line":"the number of roles in the deployment, and not the number of nodes, which will"},{"line_number":155,"context_line":"allow for similar performance as currently exists."},{"line_number":156,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"40bf87e6_62f79a6c","line":153,"range":{"start_line":151,"start_character":0,"end_line":153,"end_character":13},"in_reply_to":"093e7c47_74a0fbc5","updated":"2020-12-18 16:24:04.000000000","message":"i plan to look at it","commit_id":"9b3fa8163fff2b186b0b6349a0f19037c160b7c0"},{"author":{"_account_id":7144,"name":"James Slagle","email":"jslagle@redhat.com","username":"slagle"},"change_message_id":"3369e418289c672d70f3c319ef1e66a4a9c86bc4","unresolved":true,"context_lines":[{"line_number":148,"context_line":"want to consider the alternative of using a managed heat process, but not save"},{"line_number":149,"context_line":"any state in the db as recorded in the `Alternatives`_ section."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"Alternatively, we can finish the work started in `Scaling with the Ansible"},{"line_number":152,"context_line":"inventory`_. That work will enable deploying the Heat stack with a count of 1"},{"line_number":153,"context_line":"for each role. With that change, the Heat stack operation times will scale with"},{"line_number":154,"context_line":"the number of roles in the deployment, and not the number of nodes, which will"},{"line_number":155,"context_line":"allow for similar performance as currently exists."},{"line_number":156,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"e2c575cb_c23be95a","line":153,"range":{"start_line":151,"start_character":0,"end_line":153,"end_character":13},"in_reply_to":"366d9eca_2ed6874c","updated":"2021-01-12 21:20:10.000000000","message":"Given what it would take to finish that space, I\u0027ve proposed something different in the latest patch set. Instead of using a single threaded heat-all, we can use separate ephemeral Heat processes which will allow us to start multiple engine workers. Management should be straightforward using a podman pod.\n\nFor sqlite, we can look at using MySQL. I\u0027d still like to look at sqlite to see how bad of an issue we have with the performance.","commit_id":"9b3fa8163fff2b186b0b6349a0f19037c160b7c0"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"ed20ee730c1ffd3ba9cdf2188d63ebcc5463c71c","unresolved":true,"context_lines":[{"line_number":148,"context_line":"want to consider the alternative of using a managed heat process, but not save"},{"line_number":149,"context_line":"any state in the db as recorded in the `Alternatives`_ section."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"Alternatively, we can finish the work started in `Scaling with the Ansible"},{"line_number":152,"context_line":"inventory`_. That work will enable deploying the Heat stack with a count of 1"},{"line_number":153,"context_line":"for each role. With that change, the Heat stack operation times will scale with"},{"line_number":154,"context_line":"the number of roles in the deployment, and not the number of nodes, which will"},{"line_number":155,"context_line":"allow for similar performance as currently exists."},{"line_number":156,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"366d9eca_2ed6874c","line":153,"range":{"start_line":151,"start_character":0,"end_line":153,"end_character":13},"in_reply_to":"40bf87e6_62f79a6c","updated":"2021-01-11 10:07:31.000000000","message":"Yes, I think this needs to be prioritized before implementing ephemeral Heat stacks. Please move that to the main proposal instead alternatives. Otherwise, scaling ephemeral heat-workers over sqlite would looks a waste effort to me.","commit_id":"9b3fa8163fff2b186b0b6349a0f19037c160b7c0"},{"author":{"_account_id":28223,"name":"Cedric Jeanneret","display_name":"cjeanner (Tengu)","email":"cjeanner@redhat.com","username":"cjeanner"},"change_message_id":"229f24cf8ba0282f3b9114f9d143457896dda8a1","unresolved":true,"context_lines":[{"line_number":148,"context_line":"want to consider the alternative of using a managed heat process, but not save"},{"line_number":149,"context_line":"any state in the db as recorded in the `Alternatives`_ section."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"Alternatively, we can finish the work started in `Scaling with the Ansible"},{"line_number":152,"context_line":"inventory`_. That work will enable deploying the Heat stack with a count of 1"},{"line_number":153,"context_line":"for each role. With that change, the Heat stack operation times will scale with"},{"line_number":154,"context_line":"the number of roles in the deployment, and not the number of nodes, which will"},{"line_number":155,"context_line":"allow for similar performance as currently exists."},{"line_number":156,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"cb7ef271_ce925a33","line":153,"range":{"start_line":151,"start_character":0,"end_line":153,"end_character":13},"in_reply_to":"e2c575cb_c23be95a","updated":"2021-01-13 07:17:11.000000000","message":"sqlite has a major locking issue - meaning you can\u0027t really have a threaded process hitting an sqlite db... My take here is \"avoid it\", especially since we already have MySQL on the undercloud... If it\u0027s just a matter of ensuring the new ephemeral thing \"creates the DB, fill it, output the data, dump the DB, drop the DB\", I think it should be pretty easy/clean. Dumping the DB means we can investigate later by simply reloading it in some MySQL service.","commit_id":"9b3fa8163fff2b186b0b6349a0f19037c160b7c0"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"f8ff22497ea25ec164660e5beeff163bf275e63b","unresolved":true,"context_lines":[{"line_number":203,"context_line":"This work depends on other ongoing work to decouple Heat from management of"},{"line_number":204,"context_line":"other OpenStack API resources, particularly the composable networks v2 work."},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"* Network Data v2 Blueprint - https://blueprints.launchpad.net/tripleo/+spec/network-data-v2-ports"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"Testing"},{"line_number":209,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"f2942973_1e69a303","line":206,"updated":"2021-01-11 10:11:26.000000000","message":"so please add \"Scaling with the Ansible inventory\" as a dependency","commit_id":"9b3fa8163fff2b186b0b6349a0f19037c160b7c0"},{"author":{"_account_id":7144,"name":"James Slagle","email":"jslagle@redhat.com","username":"slagle"},"change_message_id":"3369e418289c672d70f3c319ef1e66a4a9c86bc4","unresolved":true,"context_lines":[{"line_number":203,"context_line":"This work depends on other ongoing work to decouple Heat from management of"},{"line_number":204,"context_line":"other OpenStack API resources, particularly the composable networks v2 work."},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"* Network Data v2 Blueprint - https://blueprints.launchpad.net/tripleo/+spec/network-data-v2-ports"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"Testing"},{"line_number":209,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"0fe6767c_b73dd447","line":206,"in_reply_to":"f2942973_1e69a303","updated":"2021-01-12 21:20:10.000000000","message":"i added an alternative, in order to limit the scope for now.","commit_id":"9b3fa8163fff2b186b0b6349a0f19037c160b7c0"},{"author":{"_account_id":28223,"name":"Cedric Jeanneret","display_name":"cjeanner (Tengu)","email":"cjeanner@redhat.com","username":"cjeanner"},"change_message_id":"2b75c89cbc686e0706b25299fbad70ee1f7fa189","unresolved":true,"context_lines":[{"line_number":52,"context_line":"--------"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"The ephemeral Heat stack model involves starting a short lived heat process"},{"line_number":55,"context_line":"using a sqlite db backend for the purposes of creating the stack. After the"},{"line_number":56,"context_line":"stack is created, the config-download workflow is run to download and render"},{"line_number":57,"context_line":"the ansible project directory to complete the deployment. The short lived heat"},{"line_number":58,"context_line":"process is killed and the sqlite db is deleted, however, enough artifacts are"}],"source_content_type":"text/x-rst","patch_set":4,"id":"4fcb3376_06c3aad2","line":55,"range":{"start_line":55,"start_character":8,"end_line":55,"end_character":25},"updated":"2021-01-13 07:51:06.000000000","message":"I would really, really avoid mentioning \"sqlite\". Maybe a more generic thing, such as \"db engine\". As said in some other comment, sqlite has hard locking, that might prevent threaded app to access it for write actions (though parallel read should be OK).","commit_id":"013d4b2592f96de55641b2be6e26e59fdc6fb447"},{"author":{"_account_id":7144,"name":"James Slagle","email":"jslagle@redhat.com","username":"slagle"},"change_message_id":"c6ce501e05fb273a303089c0797e6662c92e2d9b","unresolved":true,"context_lines":[{"line_number":52,"context_line":"--------"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"The ephemeral Heat stack model involves starting a short lived heat process"},{"line_number":55,"context_line":"using a sqlite db backend for the purposes of creating the stack. After the"},{"line_number":56,"context_line":"stack is created, the config-download workflow is run to download and render"},{"line_number":57,"context_line":"the ansible project directory to complete the deployment. The short lived heat"},{"line_number":58,"context_line":"process is killed and the sqlite db is deleted, however, enough artifacts are"}],"source_content_type":"text/x-rst","patch_set":4,"id":"23a03a13_0584bf4e","line":55,"range":{"start_line":55,"start_character":8,"end_line":55,"end_character":25},"in_reply_to":"4fcb3376_06c3aad2","updated":"2021-01-13 22:27:45.000000000","message":"i\u0027ve changed the proposal to say we will use the undercloud\u0027s MySQL. I also mention we will still support using SQLite for single node deployments so that we can maintain compatibility with how tripleo deploy works today if we want to eventually consolidate on a single command.","commit_id":"013d4b2592f96de55641b2be6e26e59fdc6fb447"},{"author":{"_account_id":28223,"name":"Cedric Jeanneret","display_name":"cjeanner (Tengu)","email":"cjeanner@redhat.com","username":"cjeanner"},"change_message_id":"2b75c89cbc686e0706b25299fbad70ee1f7fa189","unresolved":true,"context_lines":[{"line_number":55,"context_line":"using a sqlite db backend for the purposes of creating the stack. After the"},{"line_number":56,"context_line":"stack is created, the config-download workflow is run to download and render"},{"line_number":57,"context_line":"the ansible project directory to complete the deployment. The short lived heat"},{"line_number":58,"context_line":"process is killed and the sqlite db is deleted, however, enough artifacts are"},{"line_number":59,"context_line":"saved to reproduce the Heat stack if necessary."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"This model is already used by the \"tripleo deploy\" command for the standalone"}],"source_content_type":"text/x-rst","patch_set":4,"id":"a7d9feb5_c3535df1","line":58,"range":{"start_line":58,"start_character":26,"end_line":58,"end_character":46},"updated":"2021-01-13 07:51:06.000000000","message":"same (don\u0027t mention \"sqlite\")- and, maybe, instead of deleting the content (or before), we can do a backup for future investigation. Else we\u0027ll be blind in some cases, and it will make debugging harder if we don\u0027t have any DB at disposal. I can\u0027t count the amount of time Rabi came in, and with 2-3 sql queries, he could point a root cause. Of course, the resolution won\u0027t be based on queries anymore, since it\u0027s an ephemeral DB, but at least it will help understanding why we get \"that value\" in a template.","commit_id":"013d4b2592f96de55641b2be6e26e59fdc6fb447"},{"author":{"_account_id":7144,"name":"James Slagle","email":"jslagle@redhat.com","username":"slagle"},"change_message_id":"c6ce501e05fb273a303089c0797e6662c92e2d9b","unresolved":false,"context_lines":[{"line_number":55,"context_line":"using a sqlite db backend for the purposes of creating the stack. After the"},{"line_number":56,"context_line":"stack is created, the config-download workflow is run to download and render"},{"line_number":57,"context_line":"the ansible project directory to complete the deployment. The short lived heat"},{"line_number":58,"context_line":"process is killed and the sqlite db is deleted, however, enough artifacts are"},{"line_number":59,"context_line":"saved to reproduce the Heat stack if necessary."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"This model is already used by the \"tripleo deploy\" command for the standalone"}],"source_content_type":"text/x-rst","patch_set":4,"id":"41c7cf46_9e62f2d5","line":58,"range":{"start_line":58,"start_character":26,"end_line":58,"end_character":46},"in_reply_to":"a7d9feb5_c3535df1","updated":"2021-01-13 22:27:45.000000000","message":"Done","commit_id":"013d4b2592f96de55641b2be6e26e59fdc6fb447"},{"author":{"_account_id":28223,"name":"Cedric Jeanneret","display_name":"cjeanner (Tengu)","email":"cjeanner@redhat.com","username":"cjeanner"},"change_message_id":"2b75c89cbc686e0706b25299fbad70ee1f7fa189","unresolved":true,"context_lines":[{"line_number":63,"context_line":"the overcloud deployment to also use ephemeral Heat aligns all of the different"},{"line_number":64,"context_line":"deployments to use Heat the same way."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"We can scale the ephemeral Heat processes by using a podman pod that"},{"line_number":67,"context_line":"encapsulates containers for heat-api, heat-engine, and any other process we"},{"line_number":68,"context_line":"needed. Running separate Heat processes containerized instead of a single"},{"line_number":69,"context_line":"heat-all process will allow starting multiple engine workers to allow for"}],"source_content_type":"text/x-rst","patch_set":4,"id":"b70dde37_9e5a5e40","line":66,"range":{"start_line":66,"start_character":53,"end_line":66,"end_character":63},"updated":"2021-01-13 07:51:06.000000000","message":"I love that idea. Having pod for that ephemeral heat might lead to actual pod usage within tripleo instead of standalone containers.","commit_id":"013d4b2592f96de55641b2be6e26e59fdc6fb447"},{"author":{"_account_id":28223,"name":"Cedric Jeanneret","display_name":"cjeanner (Tengu)","email":"cjeanner@redhat.com","username":"cjeanner"},"change_message_id":"2b75c89cbc686e0706b25299fbad70ee1f7fa189","unresolved":true,"context_lines":[{"line_number":71,"context_line":"and it will use default podman networking."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"As part of this change, we will also add the ability to run Heat commands"},{"line_number":74,"context_line":"against the saved Heat sqlite db from a given deployment. This will give"},{"line_number":75,"context_line":"operators a way to inspect the Heat stack that was created for debugging"},{"line_number":76,"context_line":"purposes."},{"line_number":77,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"01755632_a79e7e12","line":74,"range":{"start_line":74,"start_character":12,"end_line":74,"end_character":32},"updated":"2021-01-13 07:51:06.000000000","message":"oh, if by \"enough artifacts are saved\" (line 58) you meant \"the DB is backuped\", that\u0027s fine :).","commit_id":"013d4b2592f96de55641b2be6e26e59fdc6fb447"},{"author":{"_account_id":7144,"name":"James Slagle","email":"jslagle@redhat.com","username":"slagle"},"change_message_id":"c6ce501e05fb273a303089c0797e6662c92e2d9b","unresolved":true,"context_lines":[{"line_number":71,"context_line":"and it will use default podman networking."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"As part of this change, we will also add the ability to run Heat commands"},{"line_number":74,"context_line":"against the saved Heat sqlite db from a given deployment. This will give"},{"line_number":75,"context_line":"operators a way to inspect the Heat stack that was created for debugging"},{"line_number":76,"context_line":"purposes."},{"line_number":77,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"fb6d4daa_228e137e","line":74,"range":{"start_line":74,"start_character":12,"end_line":74,"end_character":32},"in_reply_to":"01755632_a79e7e12","updated":"2021-01-13 22:27:45.000000000","message":"i added mention of the db dump explicitly.","commit_id":"013d4b2592f96de55641b2be6e26e59fdc6fb447"},{"author":{"_account_id":28223,"name":"Cedric Jeanneret","display_name":"cjeanner (Tengu)","email":"cjeanner@redhat.com","username":"cjeanner"},"change_message_id":"2b75c89cbc686e0706b25299fbad70ee1f7fa189","unresolved":true,"context_lines":[{"line_number":78,"context_line":"Managing the templates used during the deployment becomes even more important"},{"line_number":79,"context_line":"with this change, as the templates and environments passed to the \"overcloud"},{"line_number":80,"context_line":"deploy\" command are the entire source of truth to recreate the deployment. We"},{"line_number":81,"context_line":"may consider further management around the templates, such as a git repository"},{"line_number":82,"context_line":"but that is outside the scope of this spec."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"There are some cases where the saved state in the stack is inspected before a"}],"source_content_type":"text/x-rst","patch_set":4,"id":"65b77da4_7b527294","line":81,"range":{"start_line":81,"start_character":64,"end_line":81,"end_character":78},"updated":"2021-01-13 07:51:06.000000000","message":"config-download uses a git repository (at least for the overcloud - apparently it\u0027s not the case for standalone)","commit_id":"013d4b2592f96de55641b2be6e26e59fdc6fb447"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"ea3c079713bf71a93c5584e69457c587589d8b2b","unresolved":false,"context_lines":[{"line_number":78,"context_line":"Managing the templates used during the deployment becomes even more important"},{"line_number":79,"context_line":"with this change, as the templates and environments passed to the \"overcloud"},{"line_number":80,"context_line":"deploy\" command are the entire source of truth to recreate the deployment. We"},{"line_number":81,"context_line":"may consider further management around the templates, such as a git repository"},{"line_number":82,"context_line":"but that is outside the scope of this spec."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"There are some cases where the saved state in the stack is inspected before a"}],"source_content_type":"text/x-rst","patch_set":4,"id":"a4a82576_5504e935","line":81,"updated":"2021-01-13 20:38:10.000000000","message":"correct standalone zips up the deploy each time so you have a copy you can extract/reuse later","commit_id":"013d4b2592f96de55641b2be6e26e59fdc6fb447"},{"author":{"_account_id":28223,"name":"Cedric Jeanneret","display_name":"cjeanner (Tengu)","email":"cjeanner@redhat.com","username":"cjeanner"},"change_message_id":"2b75c89cbc686e0706b25299fbad70ee1f7fa189","unresolved":true,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"In cases such as these, we need a way to perform these checks outside of"},{"line_number":90,"context_line":"inspecting the Heat stack itself. A straightforward way to do these types of"},{"line_number":91,"context_line":"checks would be to add ansible tasks that check the existing deployed overcloud"},{"line_number":92,"context_line":"(instead of the stack) and then cause an error that will stop the deployment if"},{"line_number":93,"context_line":"an invalid change is detected."},{"line_number":94,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"0435336d_33ccb674","line":91,"range":{"start_line":91,"start_character":19,"end_line":91,"end_character":47},"updated":"2021-01-13 07:51:06.000000000","message":"this sounds like a job for validations (in-flight, probably).","commit_id":"013d4b2592f96de55641b2be6e26e59fdc6fb447"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"de07425bbe1cafc8db712d706376851818591b87","unresolved":true,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"* Maintaining the Heat stack can be problematic due to corruption via either"},{"line_number":27,"context_line":"  user or software error. Backups are often not available, and even when they"},{"line_number":28,"context_line":"  exist, they are no guarantee to recover the stack. Corrupting or losing the"},{"line_number":29,"context_line":"  Heat stack requires custom recovery procedures or re-deployments."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"* The Heat deployment itself must be maintained, updated, and upgraded. These"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bf548e5e_279c4f67","line":28,"range":{"start_line":28,"start_character":67,"end_line":28,"end_character":73},"updated":"2021-01-14 13:38:58.000000000","message":"nit: typo? loosing?","commit_id":"640612e1b3826a7f635f9bac80438a3a664e336a"},{"author":{"_account_id":7144,"name":"James Slagle","email":"jslagle@redhat.com","username":"slagle"},"change_message_id":"7fd10b01e11dc2e30f8d7a3e6477659b66302721","unresolved":true,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"* Maintaining the Heat stack can be problematic due to corruption via either"},{"line_number":27,"context_line":"  user or software error. Backups are often not available, and even when they"},{"line_number":28,"context_line":"  exist, they are no guarantee to recover the stack. Corrupting or losing the"},{"line_number":29,"context_line":"  Heat stack requires custom recovery procedures or re-deployments."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"* The Heat deployment itself must be maintained, updated, and upgraded. These"}],"source_content_type":"text/x-rst","patch_set":5,"id":"a4db3315_63c694de","line":28,"range":{"start_line":28,"start_character":67,"end_line":28,"end_character":73},"in_reply_to":"bf548e5e_279c4f67","updated":"2021-01-14 14:53:50.000000000","message":"not a typo, i\u0027m referring to loss of the Heat stack, such as in the case of accidental deletion or complete loss of the undercloud node. I\u0027ll update the language to make it clear.","commit_id":"640612e1b3826a7f635f9bac80438a3a664e336a"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"de07425bbe1cafc8db712d706376851818591b87","unresolved":true,"context_lines":[{"line_number":52,"context_line":"--------"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"The ephemeral Heat stack model involves starting a short lived heat process"},{"line_number":55,"context_line":"using and using a database engine for the purposes of creating the stack. The"},{"line_number":56,"context_line":"initial proposal assumes using the MySQL instance already present on the"},{"line_number":57,"context_line":"undercloud as the database engine. To maintain compatibility with the already"},{"line_number":58,"context_line":"implemented \"tripleo deploy\" code path, SQLite will also be supported for"}],"source_content_type":"text/x-rst","patch_set":5,"id":"377fce2c_90ce5773","line":55,"range":{"start_line":55,"start_character":0,"end_line":55,"end_character":17},"updated":"2021-01-14 13:38:58.000000000","message":"nit: \u0027using a database ...\u0027.","commit_id":"640612e1b3826a7f635f9bac80438a3a664e336a"},{"author":{"_account_id":7144,"name":"James Slagle","email":"jslagle@redhat.com","username":"slagle"},"change_message_id":"7fd10b01e11dc2e30f8d7a3e6477659b66302721","unresolved":false,"context_lines":[{"line_number":52,"context_line":"--------"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"The ephemeral Heat stack model involves starting a short lived heat process"},{"line_number":55,"context_line":"using and using a database engine for the purposes of creating the stack. The"},{"line_number":56,"context_line":"initial proposal assumes using the MySQL instance already present on the"},{"line_number":57,"context_line":"undercloud as the database engine. To maintain compatibility with the already"},{"line_number":58,"context_line":"implemented \"tripleo deploy\" code path, SQLite will also be supported for"}],"source_content_type":"text/x-rst","patch_set":5,"id":"70dcd784_330bba5f","line":55,"range":{"start_line":55,"start_character":0,"end_line":55,"end_character":17},"in_reply_to":"377fce2c_90ce5773","updated":"2021-01-14 14:53:50.000000000","message":"Done","commit_id":"640612e1b3826a7f635f9bac80438a3a664e336a"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"5e158175ed5703bc55f530dd970e4d488b0a0fc2","unresolved":true,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"After the stack is created, the config-download workflow is run to download and"},{"line_number":64,"context_line":"render the ansible project directory to complete the deployment. The short"},{"line_number":65,"context_line":"lived heat process is killed and the database is deleted, however, enough"},{"line_number":66,"context_line":"artifacts are saved to reproduce the Heat stack if necessary including the"},{"line_number":67,"context_line":"database dump."},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"062bc78d_6c036417","line":65,"range":{"start_line":65,"start_character":33,"end_line":65,"end_character":56},"updated":"2021-01-15 14:00:50.000000000","message":"this adds impact to the UC backup/restore procedures, which will have to be adjusted. For example to not have deleted databases restored from backups","commit_id":"012d80f6dcdfbebec7842479326229ba6ce55dc1"},{"author":{"_account_id":7144,"name":"James Slagle","email":"jslagle@redhat.com","username":"slagle"},"change_message_id":"cfd08a9ac9d476c05a03fd222b5a197ba9cefd21","unresolved":true,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"After the stack is created, the config-download workflow is run to download and"},{"line_number":64,"context_line":"render the ansible project directory to complete the deployment. The short"},{"line_number":65,"context_line":"lived heat process is killed and the database is deleted, however, enough"},{"line_number":66,"context_line":"artifacts are saved to reproduce the Heat stack if necessary including the"},{"line_number":67,"context_line":"database dump."},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"ff79a5a7_cee25400","line":65,"range":{"start_line":65,"start_character":33,"end_line":65,"end_character":56},"in_reply_to":"062bc78d_6c036417","updated":"2021-01-15 22:13:57.000000000","message":"thanks, i will add a note about that.","commit_id":"012d80f6dcdfbebec7842479326229ba6ce55dc1"},{"author":{"_account_id":7144,"name":"James Slagle","email":"jslagle@redhat.com","username":"slagle"},"change_message_id":"5e5c13b6202587bca3e6771706e91459f711a889","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"After the stack is created, the config-download workflow is run to download and"},{"line_number":64,"context_line":"render the ansible project directory to complete the deployment. The short"},{"line_number":65,"context_line":"lived heat process is killed and the database is deleted, however, enough"},{"line_number":66,"context_line":"artifacts are saved to reproduce the Heat stack if necessary including the"},{"line_number":67,"context_line":"database dump."},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"d1fdb23c_7205b5a6","line":65,"range":{"start_line":65,"start_character":33,"end_line":65,"end_character":56},"in_reply_to":"ff79a5a7_cee25400","updated":"2021-01-26 16:50:38.000000000","message":"Done","commit_id":"012d80f6dcdfbebec7842479326229ba6ce55dc1"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"5e158175ed5703bc55f530dd970e4d488b0a0fc2","unresolved":true,"context_lines":[{"line_number":76,"context_line":"needed. Running separate Heat processes containerized instead of a single"},{"line_number":77,"context_line":"heat-all process will allow starting multiple engine workers to allow for"},{"line_number":78,"context_line":"scale. Management and configuration of the heat pod will be fairly prescriptive"},{"line_number":79,"context_line":"and it will use default podman networking."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"As part of this change, we will also add the ability to run Heat commands"},{"line_number":82,"context_line":"against the saved database from a given deployment. This will give"}],"source_content_type":"text/x-rst","patch_set":6,"id":"0150d6f5_abbf6f0c","line":79,"range":{"start_line":79,"start_character":12,"end_line":79,"end_character":41},"updated":"2021-01-15 14:00:50.000000000","message":"it should use host networking, or we\u0027ll need to implement some container networking solution for UC minions running other heat pods (IIUC)","commit_id":"012d80f6dcdfbebec7842479326229ba6ce55dc1"},{"author":{"_account_id":7144,"name":"James Slagle","email":"jslagle@redhat.com","username":"slagle"},"change_message_id":"cfd08a9ac9d476c05a03fd222b5a197ba9cefd21","unresolved":true,"context_lines":[{"line_number":76,"context_line":"needed. Running separate Heat processes containerized instead of a single"},{"line_number":77,"context_line":"heat-all process will allow starting multiple engine workers to allow for"},{"line_number":78,"context_line":"scale. Management and configuration of the heat pod will be fairly prescriptive"},{"line_number":79,"context_line":"and it will use default podman networking."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"As part of this change, we will also add the ability to run Heat commands"},{"line_number":82,"context_line":"against the saved database from a given deployment. This will give"}],"source_content_type":"text/x-rst","patch_set":6,"id":"d554a89c_10fd16a9","line":79,"range":{"start_line":79,"start_character":12,"end_line":79,"end_character":41},"in_reply_to":"0150d6f5_abbf6f0c","updated":"2021-01-15 22:13:57.000000000","message":"I don\u0027t think we need the minion concept for scaling Heat any longer. multi-stack basically allows us to scale Heat outside of the total number of engine worker limit. Doing thousands of nodes in parallel isn\u0027t really a model I think we want to be moving towards anyway.","commit_id":"012d80f6dcdfbebec7842479326229ba6ce55dc1"},{"author":{"_account_id":7144,"name":"James Slagle","email":"jslagle@redhat.com","username":"slagle"},"change_message_id":"5e5c13b6202587bca3e6771706e91459f711a889","unresolved":false,"context_lines":[{"line_number":76,"context_line":"needed. Running separate Heat processes containerized instead of a single"},{"line_number":77,"context_line":"heat-all process will allow starting multiple engine workers to allow for"},{"line_number":78,"context_line":"scale. Management and configuration of the heat pod will be fairly prescriptive"},{"line_number":79,"context_line":"and it will use default podman networking."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"As part of this change, we will also add the ability to run Heat commands"},{"line_number":82,"context_line":"against the saved database from a given deployment. This will give"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3c27ddac_d817fd0b","line":79,"range":{"start_line":79,"start_character":12,"end_line":79,"end_character":41},"in_reply_to":"272b607e_55c97920","updated":"2021-01-26 16:50:38.000000000","message":"Done","commit_id":"012d80f6dcdfbebec7842479326229ba6ce55dc1"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"93b0589dd9d1859794373a2fb9af33a74a0010b7","unresolved":true,"context_lines":[{"line_number":76,"context_line":"needed. Running separate Heat processes containerized instead of a single"},{"line_number":77,"context_line":"heat-all process will allow starting multiple engine workers to allow for"},{"line_number":78,"context_line":"scale. Management and configuration of the heat pod will be fairly prescriptive"},{"line_number":79,"context_line":"and it will use default podman networking."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"As part of this change, we will also add the ability to run Heat commands"},{"line_number":82,"context_line":"against the saved database from a given deployment. This will give"}],"source_content_type":"text/x-rst","patch_set":6,"id":"272b607e_55c97920","line":79,"range":{"start_line":79,"start_character":12,"end_line":79,"end_character":41},"in_reply_to":"3d3bbe2f_6986b5c3","updated":"2021-01-18 16:12:37.000000000","message":"Thank you for clarification. As an offtopic - then it seems there is no more use for minions and the feature must be deprecated","commit_id":"012d80f6dcdfbebec7842479326229ba6ce55dc1"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"72921717d950c2509961bb4dfa67d55da359bf44","unresolved":true,"context_lines":[{"line_number":76,"context_line":"needed. Running separate Heat processes containerized instead of a single"},{"line_number":77,"context_line":"heat-all process will allow starting multiple engine workers to allow for"},{"line_number":78,"context_line":"scale. Management and configuration of the heat pod will be fairly prescriptive"},{"line_number":79,"context_line":"and it will use default podman networking."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"As part of this change, we will also add the ability to run Heat commands"},{"line_number":82,"context_line":"against the saved database from a given deployment. This will give"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3d3bbe2f_6986b5c3","line":79,"range":{"start_line":79,"start_character":12,"end_line":79,"end_character":41},"in_reply_to":"d554a89c_10fd16a9","updated":"2021-01-15 22:22:03.000000000","message":"Yea the minion was necessary for handling all the additional long requests and offloading processing so that neutron/nova/etc would have more resources.  Once networking and provisioning are extracted, heat just does internal processing so we don\u0027t need the minion anymore. In fact it doesn\u0027t make much sense in V+","commit_id":"012d80f6dcdfbebec7842479326229ba6ce55dc1"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"fc5b532942b6bd5dc29fe1752456cb9664f688a9","unresolved":true,"context_lines":[{"line_number":201,"context_line":"* Use code from \"tripleo deploy\" for management of ephemeral Heat"},{"line_number":202,"context_line":"* Ensure artifacts from the deployment are saved in known locations and"},{"line_number":203,"context_line":"  reusable as needed"},{"line_number":204,"context_line":"* Add commands to enable running Heat commands with a previously used "},{"line_number":205,"context_line":"  database"},{"line_number":206,"context_line":"* Switch some CI jobs over to use the optional ephemeral Heat"},{"line_number":207,"context_line":"* Eventually make using ephemeral Heat the default in \"overcloud deploy\""}],"source_content_type":"text/x-rst","patch_set":6,"id":"6b3b1af5_5c910327","line":204,"updated":"2021-01-15 07:35:56.000000000","message":"end of line whitespace nit","commit_id":"012d80f6dcdfbebec7842479326229ba6ce55dc1"},{"author":{"_account_id":7144,"name":"James Slagle","email":"jslagle@redhat.com","username":"slagle"},"change_message_id":"5e5c13b6202587bca3e6771706e91459f711a889","unresolved":false,"context_lines":[{"line_number":201,"context_line":"* Use code from \"tripleo deploy\" for management of ephemeral Heat"},{"line_number":202,"context_line":"* Ensure artifacts from the deployment are saved in known locations and"},{"line_number":203,"context_line":"  reusable as needed"},{"line_number":204,"context_line":"* Add commands to enable running Heat commands with a previously used "},{"line_number":205,"context_line":"  database"},{"line_number":206,"context_line":"* Switch some CI jobs over to use the optional ephemeral Heat"},{"line_number":207,"context_line":"* Eventually make using ephemeral Heat the default in \"overcloud deploy\""}],"source_content_type":"text/x-rst","patch_set":6,"id":"ab8c5eeb_71879021","line":204,"in_reply_to":"6b3b1af5_5c910327","updated":"2021-01-26 16:50:38.000000000","message":"Done","commit_id":"012d80f6dcdfbebec7842479326229ba6ce55dc1"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"beee05791faf588d432cfc38e341698f60078c2d","unresolved":true,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/tripleo/+spec/ephemeral-heat-overcloud"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec proposes using the ephemeral Heat stack model for all deployments"},{"line_number":14,"context_line":"types, including the overcloud.  Using ephemeral Heat is already done for"},{"line_number":15,"context_line":"standalone deployments with the \"tripleo deploy\" command, and for the"},{"line_number":16,"context_line":"undercloud install as well. Expanding its use to overcloud deployments will"},{"line_number":17,"context_line":"align the different deployment methods into just a single method. It will also"}],"source_content_type":"text/x-rst","patch_set":7,"id":"c8400efe_e51a997f","line":14,"range":{"start_line":14,"start_character":31,"end_line":14,"end_character":32},"updated":"2021-01-26 08:24:04.000000000","message":"extra space","commit_id":"4cf04dc5fe4903ca329792c732877493d1d428ff"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"beee05791faf588d432cfc38e341698f60078c2d","unresolved":true,"context_lines":[{"line_number":72,"context_line":"the overcloud deployment to also use ephemeral Heat aligns all of the different"},{"line_number":73,"context_line":"deployments to use Heat the same way."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"We can scale the ephemeral Heat processes by using a podman pod that"},{"line_number":76,"context_line":"encapsulates containers for heat-api, heat-engine, and any other process we"},{"line_number":77,"context_line":"needed. Running separate Heat processes containerized instead of a single"},{"line_number":78,"context_line":"heat-all process will allow starting multiple engine workers to allow for"}],"source_content_type":"text/x-rst","patch_set":7,"id":"6ca5b822_403ad619","line":75,"range":{"start_line":75,"start_character":0,"end_line":75,"end_character":12},"updated":"2021-01-26 08:24:04.000000000","message":"just noticed this paragraph changed quite a bit along the way/since you first proposed this.\nIt sounds like this has been investigated and there is at least some confidence that running the containers for the heat services will work fine for us and in particular the ability to run multiple heat-engine containers as needed","commit_id":"4cf04dc5fe4903ca329792c732877493d1d428ff"},{"author":{"_account_id":7144,"name":"James Slagle","email":"jslagle@redhat.com","username":"slagle"},"change_message_id":"5e5c13b6202587bca3e6771706e91459f711a889","unresolved":true,"context_lines":[{"line_number":72,"context_line":"the overcloud deployment to also use ephemeral Heat aligns all of the different"},{"line_number":73,"context_line":"deployments to use Heat the same way."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"We can scale the ephemeral Heat processes by using a podman pod that"},{"line_number":76,"context_line":"encapsulates containers for heat-api, heat-engine, and any other process we"},{"line_number":77,"context_line":"needed. Running separate Heat processes containerized instead of a single"},{"line_number":78,"context_line":"heat-all process will allow starting multiple engine workers to allow for"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ad02db39_7819b5b2","line":75,"range":{"start_line":75,"start_character":0,"end_line":75,"end_character":12},"in_reply_to":"6ca5b822_403ad619","updated":"2021-01-26 16:50:38.000000000","message":"Yes, cjeanner is looking into this piece. etherpad is here:\nhttps://etherpad.opendev.org/p/podman-generate-kube","commit_id":"4cf04dc5fe4903ca329792c732877493d1d428ff"},{"author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"change_message_id":"d03fda405eebf6b1a8cfe15cb2ee681710b850c1","unresolved":true,"context_lines":[{"line_number":78,"context_line":"heat-all process will allow starting multiple engine workers to allow for"},{"line_number":79,"context_line":"scale. Management and configuration of the heat pod will be fairly prescriptive"},{"line_number":80,"context_line":"and it will use default podman networking as we do not need the Heat processes"},{"line_number":81,"context_line":"to scale beyond a single host. Moving forward, undercloud minions will no"},{"line_number":82,"context_line":"longer install heat-engine process as a means for scale."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"As part of this change, we will also add the ability to run Heat commands"}],"source_content_type":"text/x-rst","patch_set":7,"id":"496897b9_f33a2387","line":81,"updated":"2021-01-27 06:16:35.000000000","message":"I\u0027m not very clear how this would work with podman networking as services talk to each other using the endpoints in the catalog (mostly public/admin endpoints). But we can work this out later.","commit_id":"4cf04dc5fe4903ca329792c732877493d1d428ff"},{"author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"change_message_id":"d03fda405eebf6b1a8cfe15cb2ee681710b850c1","unresolved":true,"context_lines":[{"line_number":81,"context_line":"to scale beyond a single host. Moving forward, undercloud minions will no"},{"line_number":82,"context_line":"longer install heat-engine process as a means for scale."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"As part of this change, we will also add the ability to run Heat commands"},{"line_number":85,"context_line":"against the saved database from a given deployment. This will give"},{"line_number":86,"context_line":"operators a way to inspect the Heat stack that was created for debugging"},{"line_number":87,"context_line":"purposes."}],"source_content_type":"text/x-rst","patch_set":7,"id":"c237b2fe_ae4dc2db","line":84,"range":{"start_line":84,"start_character":60,"end_line":84,"end_character":73},"updated":"2021-01-27 06:16:35.000000000","message":"Heat commands use standard heat apis. We can\u0027t run them without a heat (In this case the pod) running atm. I guess we\u0027re talking about starting the ephemeral heat again with the saved database and allow users running commands.","commit_id":"4cf04dc5fe4903ca329792c732877493d1d428ff"},{"author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"change_message_id":"d03fda405eebf6b1a8cfe15cb2ee681710b850c1","unresolved":true,"context_lines":[{"line_number":146,"context_line":"Performance Impact"},{"line_number":147,"context_line":"------------------"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"The ephemeral Heat process is presently single threaded. Addressing this"},{"line_number":150,"context_line":"limitation by using a podman pod for the Heat processes will allow the"},{"line_number":151,"context_line":"deployment to scale to meet overcloud deployment needs, while keeping the"},{"line_number":152,"context_line":"process ephemeral and easy to manage with just a few commands."}],"source_content_type":"text/x-rst","patch_set":7,"id":"c0fb119d_ff25512e","line":149,"range":{"start_line":149,"start_character":0,"end_line":149,"end_character":55},"updated":"2021-01-27 06:16:35.000000000","message":"I guess we\u0027re saying we would run multiple \u0027heat-all\u0027 in separate pods on the host? This way the engines won\u0027t communicate with reach other.","commit_id":"4cf04dc5fe4903ca329792c732877493d1d428ff"}]}
