)]}'
{"specs/rocky/approved/placement-aggregate-allocation-ratios.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b7bb773a4ada1be9653ee231ecc1338ef2fd112f","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Use first Nova aggregate allocation ratios for Placement inventory"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad blueprint:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_99e02ccf","line":8,"range":{"start_line":8,"start_character":4,"end_line":8,"end_character":9},"updated":"2018-02-14 20:40:30.000000000","message":"We should use the min per the existing behavior:\n\nhttps://github.com/openstack/nova/blob/68e17a8d10f2e0ec63cd2f8813378f31722414df/nova/scheduler/filters/utils.py#L71","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"81d83e227811ee6142945a646a0b7d649f24ed83","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Use first Nova aggregate allocation ratios for Placement inventory"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad blueprint:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_d85ea0e8","line":8,"range":{"start_line":8,"start_character":4,"end_line":8,"end_character":9},"in_reply_to":"3fa0c359_99e02ccf","updated":"2018-02-15 12:34:29.000000000","message":"+1","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b7bb773a4ada1be9653ee231ecc1338ef2fd112f","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Use first Nova aggregate allocation ratios for Placement inventory"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Include the URL of your launchpad blueprint:"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"https://blueprints.launchpad.net/nova/+spec/placement-aggregate-allocation-ratios"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_79ba00e2","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":44},"updated":"2018-02-14 20:40:30.000000000","message":"You can remove this.","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"81d83e227811ee6142945a646a0b7d649f24ed83","unresolved":false,"context_lines":[{"line_number":16,"context_line":"service worker handles nova.conf configuration option values for allocation"},{"line_number":17,"context_line":"ratios that are set to 0.0. Instead of defaulting the 0.0 values to"},{"line_number":18,"context_line":"16.0/1.5/1.0 (for CPU, RAM and disk respectively), this blueprint proposes that"},{"line_number":19,"context_line":"we *first* check to see if the compute host is in a host aggregate that has a"},{"line_number":20,"context_line":"corresponding allocation_ratio key corresponding to a resource class. If one is"},{"line_number":21,"context_line":"found, then the value of the host aggregate\u0027s metadata for that resource class\u0027"},{"line_number":22,"context_line":"allocation ratio will be used as the compute host\u0027s allocation ratio and that"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_58b0508c","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":66},"updated":"2018-02-15 12:34:29.000000000","message":"like Matt said, the problem is that it would be an upcall...\n\nThat said, see my comment below about the API notifying the compute service when adding a host to an aggregate.","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b7bb773a4ada1be9653ee231ecc1338ef2fd112f","unresolved":false,"context_lines":[{"line_number":65,"context_line":"  `CONF.{resource}_allocation_ratio` option associated with the resource"},{"line_number":66,"context_line":"  class, do nothing different (that value will be used as the allocation ratio"},{"line_number":67,"context_line":"  in the placement service for that resource class)"},{"line_number":68,"context_line":"* If the `nova.conf` file does NOT contain a value for the"},{"line_number":69,"context_line":"  `CONF.{resource}_allocation_ratio` option, then oslo.cfg will return a 0.0"},{"line_number":70,"context_line":"  value for the option. If this is the case, then the `nova-compute` will look"},{"line_number":71,"context_line":"  to see if the compute host belongs to any host aggregates that have the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_19f5fc83","line":68,"updated":"2018-02-14 20:40:30.000000000","message":"Probably want to mention the \u0027min\u0027 behavior here if the host is in multiple aggregates with different values for the allocation ratio key.","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"81d83e227811ee6142945a646a0b7d649f24ed83","unresolved":false,"context_lines":[{"line_number":66,"context_line":"  class, do nothing different (that value will be used as the allocation ratio"},{"line_number":67,"context_line":"  in the placement service for that resource class)"},{"line_number":68,"context_line":"* If the `nova.conf` file does NOT contain a value for the"},{"line_number":69,"context_line":"  `CONF.{resource}_allocation_ratio` option, then oslo.cfg will return a 0.0"},{"line_number":70,"context_line":"  value for the option. If this is the case, then the `nova-compute` will look"},{"line_number":71,"context_line":"  to see if the compute host belongs to any host aggregates that have the"},{"line_number":72,"context_line":"  corresponding aggregate metadata key for that resource\u0027s allocation ratio. If"},{"line_number":73,"context_line":"  it finds one, it will use this value as the resource\u0027s allocation ratio. If"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_8b3f6486","line":70,"range":{"start_line":69,"start_character":50,"end_line":70,"end_character":23},"updated":"2018-02-15 12:34:29.000000000","message":"well, that was because of an upgrade concern when I wrote that for Mitaka. Now that we\u0027re in Rocky, we could just modify the conf opt values to be the default ones and remove all of https://github.com/openstack/nova/blob/b5bd19c608584423a1ccc48bde7ad71cc5b44c40/nova/objects/compute_node.py#L188-L207 by the \"S\" release. \n\nTBH, that\u0027s something I\u0027d like because a lot of operators don\u0027t understand why when looking at nova.conf they see 0.0","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"dbbb7b8fb2306ac174914056bed61ec9a7626a7d","unresolved":false,"context_lines":[{"line_number":66,"context_line":"  class, do nothing different (that value will be used as the allocation ratio"},{"line_number":67,"context_line":"  in the placement service for that resource class)"},{"line_number":68,"context_line":"* If the `nova.conf` file does NOT contain a value for the"},{"line_number":69,"context_line":"  `CONF.{resource}_allocation_ratio` option, then oslo.cfg will return a 0.0"},{"line_number":70,"context_line":"  value for the option. If this is the case, then the `nova-compute` will look"},{"line_number":71,"context_line":"  to see if the compute host belongs to any host aggregates that have the"},{"line_number":72,"context_line":"  corresponding aggregate metadata key for that resource\u0027s allocation ratio. If"},{"line_number":73,"context_line":"  it finds one, it will use this value as the resource\u0027s allocation ratio. If"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_946bf81d","line":70,"range":{"start_line":69,"start_character":50,"end_line":70,"end_character":23},"in_reply_to":"3fa0c359_8b3f6486","updated":"2018-02-15 17:04:09.000000000","message":"But that\u0027s exactly what we *don\u0027t* want when the operators are using host aggregates for allocation ratios. And there would be no way of differentiating between a nova.conf CONF.cpu_allocation_ratio that was manually set to 16.0 and one that was defaulted to 16.0. :(","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b7bb773a4ada1be9653ee231ecc1338ef2fd112f","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    with inventory of resources. This was a deliberate design decision made to"},{"line_number":83,"context_line":"    prevent the current problem that exsts in nova where if a compute host is"},{"line_number":84,"context_line":"    associated to multiple host aggregates and those aggregates contain the"},{"line_number":85,"context_line":"    same metadata key, there is no way to decide *which* of the metadata values"},{"line_number":86,"context_line":"    to use for that compute host."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Alternatives"},{"line_number":89,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_992eecf8","line":86,"range":{"start_line":85,"start_character":23,"end_line":86,"end_character":33},"updated":"2018-02-14 20:40:30.000000000","message":"Well, we decide by taking the minimum.","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"42a3614da2befb3569e8a4f4abeec293c7fe7653","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    with inventory of resources. This was a deliberate design decision made to"},{"line_number":83,"context_line":"    prevent the current problem that exsts in nova where if a compute host is"},{"line_number":84,"context_line":"    associated to multiple host aggregates and those aggregates contain the"},{"line_number":85,"context_line":"    same metadata key, there is no way to decide *which* of the metadata values"},{"line_number":86,"context_line":"    to use for that compute host."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Alternatives"},{"line_number":89,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_3c58e6f8","line":86,"range":{"start_line":85,"start_character":23,"end_line":86,"end_character":33},"in_reply_to":"3fa0c359_992eecf8","updated":"2018-02-14 21:09:51.000000000","message":"For this specific case.  But that doesn\u0027t extend to the general case.","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"dbbb7b8fb2306ac174914056bed61ec9a7626a7d","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    with inventory of resources. This was a deliberate design decision made to"},{"line_number":83,"context_line":"    prevent the current problem that exsts in nova where if a compute host is"},{"line_number":84,"context_line":"    associated to multiple host aggregates and those aggregates contain the"},{"line_number":85,"context_line":"    same metadata key, there is no way to decide *which* of the metadata values"},{"line_number":86,"context_line":"    to use for that compute host."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Alternatives"},{"line_number":89,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_1461283a","line":86,"range":{"start_line":85,"start_character":23,"end_line":86,"end_character":33},"in_reply_to":"3fa0c359_992eecf8","updated":"2018-02-15 17:04:09.000000000","message":"ack. I wasn\u0027t aware of the minimum thing. I\u0027ll update the spec around that.","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"613d4a8b1654d212566e47bd4bc2729cbf0a3ff9","unresolved":false,"context_lines":[{"line_number":89,"context_line":"------------"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"We could require operators to use configuration management systems to set the"},{"line_number":92,"context_line":"allocation ratio overrides on all of their compute hosts."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"We could add aggregate metadata to placement\u0027s concept of aggregates. However,"},{"line_number":95,"context_line":"this leads to the problem of not knowing which allocation ratio to use when a"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_181ba873","line":92,"updated":"2018-02-15 11:16:58.000000000","message":"Should we strongly suggest this as the \"normal way\" while still allowing the aggregate metadata way?","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"dbbb7b8fb2306ac174914056bed61ec9a7626a7d","unresolved":false,"context_lines":[{"line_number":89,"context_line":"------------"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"We could require operators to use configuration management systems to set the"},{"line_number":92,"context_line":"allocation ratio overrides on all of their compute hosts."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"We could add aggregate metadata to placement\u0027s concept of aggregates. However,"},{"line_number":95,"context_line":"this leads to the problem of not knowing which allocation ratio to use when a"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_94545856","line":92,"in_reply_to":"3fa0c359_181ba873","updated":"2018-02-15 17:04:09.000000000","message":"I already \"strongly suggested\" this on the ML. Operators don\u0027t like being told to do this, for the reasons stated by mgagne on the ML (being able to have admins set allocation ratios and not let them have access to the configuration management system is what he wants)","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"81d83e227811ee6142945a646a0b7d649f24ed83","unresolved":false,"context_lines":[{"line_number":96,"context_line":"compute host is associated with \u003e1 aggregate that has the same metadata key. In"},{"line_number":97,"context_line":"addition to the multi-aggregate-same-metadata key problem, there is also the"},{"line_number":98,"context_line":"problem that placement currently does not support the same RBAC mechanisms as"},{"line_number":99,"context_line":"the Compute API."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"I think long term, a solution that allows administrators to set allocation"},{"line_number":102,"context_line":"ratios and traits for all providers in an aggregate at the same time would be a"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_6b79b82d","line":99,"updated":"2018-02-15 12:34:29.000000000","message":"++ We have some design issues when explaining to operators that the same structure (an aggregate) can be *both* a grouping structure (many nodes having the same metadata) *and* a meta-definition superseding a per-node value (the allocation ratio stuff).\n\nPlease leave Placement aggregates only be a grouping structure, please.","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"613d4a8b1654d212566e47bd4bc2729cbf0a3ff9","unresolved":false,"context_lines":[{"line_number":96,"context_line":"compute host is associated with \u003e1 aggregate that has the same metadata key. In"},{"line_number":97,"context_line":"addition to the multi-aggregate-same-metadata key problem, there is also the"},{"line_number":98,"context_line":"problem that placement currently does not support the same RBAC mechanisms as"},{"line_number":99,"context_line":"the Compute API."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"I think long term, a solution that allows administrators to set allocation"},{"line_number":102,"context_line":"ratios and traits for all providers in an aggregate at the same time would be a"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_d826a0bb","line":99,"updated":"2018-02-15 11:16:58.000000000","message":"Please, no.","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"613d4a8b1654d212566e47bd4bc2729cbf0a3ff9","unresolved":false,"context_lines":[{"line_number":103,"context_line":"better choice that would push configuration to be data-driven (as opposed to"},{"line_number":104,"context_line":"configuration-file-driven). However, until placement supports RBAC (so"},{"line_number":105,"context_line":"operators can segregate access to administrative actions like this), this isn\u0027t"},{"line_number":106,"context_line":"feasible."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"Data model impact"},{"line_number":109,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_986ed8c7","line":106,"updated":"2018-02-15 11:16:58.000000000","message":"Not entirely germane to this spec, but at some point can we clarify the human roles that drive the RBAC thoughts here. In my mind it seems like modifying anything in placement ought to equate with \"you are root\" (until we are using it to report usages).","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"81d83e227811ee6142945a646a0b7d649f24ed83","unresolved":false,"context_lines":[{"line_number":103,"context_line":"better choice that would push configuration to be data-driven (as opposed to"},{"line_number":104,"context_line":"configuration-file-driven). However, until placement supports RBAC (so"},{"line_number":105,"context_line":"operators can segregate access to administrative actions like this), this isn\u0027t"},{"line_number":106,"context_line":"feasible."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"Data model impact"},{"line_number":109,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_6e1d460e","line":106,"updated":"2018-02-15 12:34:29.000000000","message":"One other alternative would be to modify the Placement inventory fields for CPU/RAM/disk to be the ones given by the aggregates if we add a host to an aggregate.\nThat would need neither an upcall, nor a caching mechanism on the compute if we do some prototype like that :\n\n- API updates Placement if a host is added to an aggregate by adding a call in https://github.com/openstack/nova/blob/b5bd19c608584423a1ccc48bde7ad71cc5b44c40/nova/compute/api.py#L5031\n- compute only updates the ratio if when looking up the ratio value, it\u0027s not a default one *and* it\u0027s less than the Placement value it\u0027s looking up (it could be a flag where operators would define whether they want a per-aggregate policy for that host or not).\n\nThat way, we could *also* deprecate the Aggregate-like ratio filters. Yeepikay.","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},"change_message_id":"2c2ace074ed47a5d36257ef5204abf10e4d6706a","unresolved":false,"context_lines":[{"line_number":103,"context_line":"better choice that would push configuration to be data-driven (as opposed to"},{"line_number":104,"context_line":"configuration-file-driven). However, until placement supports RBAC (so"},{"line_number":105,"context_line":"operators can segregate access to administrative actions like this), this isn\u0027t"},{"line_number":106,"context_line":"feasible."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"Data model impact"},{"line_number":109,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_bb97fc3a","line":106,"in_reply_to":"3fa0c359_3b6c4c9b","updated":"2018-02-15 22:25:37.000000000","message":"Previous solution allowed to segregate a user to very specific actions: add/remove host from an aggregate, nothing else.\n\nProposed solution (with placement API only): That same user could very well delete everything (resource providers, allocations, etc.) from placement API, be it by mistakes or malicious intents. This is an unacceptable risk. We need to protect ourselves and our users/ops from themselves.","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":7156,"name":"Mathieu Gagné","email":"mgagne@calavera.ca","username":"mgagne"},"change_message_id":"718dd947a205f2ebe3a684cf2f17e4c71826713c","unresolved":false,"context_lines":[{"line_number":103,"context_line":"better choice that would push configuration to be data-driven (as opposed to"},{"line_number":104,"context_line":"configuration-file-driven). However, until placement supports RBAC (so"},{"line_number":105,"context_line":"operators can segregate access to administrative actions like this), this isn\u0027t"},{"line_number":106,"context_line":"feasible."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"Data model impact"},{"line_number":109,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_f6db591e","line":106,"in_reply_to":"3fa0c359_5b8ef8d0","updated":"2018-02-15 23:20:06.000000000","message":"I used to be able to control \"characteristics\" of a compute node with aggregate memberships, that\u0027s an awesome feature we heavily rely on. The user can\u0027t create/update/delete aggregates themselves. Aggregates are created/managed for them. They are very limited in the actions they can perform.\n\nWith placement API, the closest thing would be the \"allocation_ratio\" of the inventory.\n\nBeing suggested to move to a new API without RBAC is an idea very difficult to accept or even entertain. Hence why I\u0027m suggesting to improve that aspect.","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"e2029ab9c7cb3423dd9e814ec09b77e689886e3e","unresolved":false,"context_lines":[{"line_number":103,"context_line":"better choice that would push configuration to be data-driven (as opposed to"},{"line_number":104,"context_line":"configuration-file-driven). However, until placement supports RBAC (so"},{"line_number":105,"context_line":"operators can segregate access to administrative actions like this), this isn\u0027t"},{"line_number":106,"context_line":"feasible."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"Data model impact"},{"line_number":109,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_866bd21d","line":106,"in_reply_to":"3fa0c359_6e1d460e","updated":"2018-02-15 16:11:42.000000000","message":"Yeah, we could do this. It would mean updating placement for existing things, and it would mean that we could fail to update placement even though we added the compute to the aggregate, so we would want some good error handling and rollback.\n\nMaybe the way to go about this is to deprecate the config option, default them to None (as our sentinel to not report it), and then rely on doing this via aggregates?\n\nIf a compute creates its provider record, then it defaults the ratios to zero, and doesn\u0027t clobber them if they change. The thing people won\u0027t like will be that allocation ratios can\u0027t be set until the compute comes online the first time, which I get, but.. seems like simplicity would be an improvement.","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"dbbb7b8fb2306ac174914056bed61ec9a7626a7d","unresolved":false,"context_lines":[{"line_number":103,"context_line":"better choice that would push configuration to be data-driven (as opposed to"},{"line_number":104,"context_line":"configuration-file-driven). However, until placement supports RBAC (so"},{"line_number":105,"context_line":"operators can segregate access to administrative actions like this), this isn\u0027t"},{"line_number":106,"context_line":"feasible."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"Data model impact"},{"line_number":109,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_341ea470","line":106,"in_reply_to":"3fa0c359_866bd21d","updated":"2018-02-15 17:04:09.000000000","message":"ack, yeah, that sounds like it might work.","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"dbbb7b8fb2306ac174914056bed61ec9a7626a7d","unresolved":false,"context_lines":[{"line_number":103,"context_line":"better choice that would push configuration to be data-driven (as opposed to"},{"line_number":104,"context_line":"configuration-file-driven). However, until placement supports RBAC (so"},{"line_number":105,"context_line":"operators can segregate access to administrative actions like this), this isn\u0027t"},{"line_number":106,"context_line":"feasible."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"Data model impact"},{"line_number":109,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_d4b6608b","line":106,"in_reply_to":"3fa0c359_986ed8c7","updated":"2018-02-15 17:04:09.000000000","message":"@cdent: see mgagne\u0027s needs as highlighted in this ML thread subpost:\n\nhttp://lists.openstack.org/pipermail/openstack-dev/2018-January/126369.html\n\nSpecifically this:\n\n\"Our setup has a configuration management system and we use aggregates\nexclusively when it comes to allocation ratio.\nWe do not rely on cpu_allocation_ratio config in nova-scheduler or nova-compute.\nOne of the reasons is we do not wish to have to\nupdate/package/redeploy our configuration management system just to\nadd one or multiple compute nodes to an aggregate/capacity pool.\nThis means anyone (likely an operator or other provisioning\ntechnician) can perform this action without having to touch or even\nknow about our configuration management system.\"","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"5b10155e04d24b4af157e640d5c3ef03ca05c13e","unresolved":false,"context_lines":[{"line_number":103,"context_line":"better choice that would push configuration to be data-driven (as opposed to"},{"line_number":104,"context_line":"configuration-file-driven). However, until placement supports RBAC (so"},{"line_number":105,"context_line":"operators can segregate access to administrative actions like this), this isn\u0027t"},{"line_number":106,"context_line":"feasible."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"Data model impact"},{"line_number":109,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_5b8ef8d0","line":106,"in_reply_to":"3fa0c359_bb97fc3a","updated":"2018-02-15 22:34:57.000000000","message":"\u003e Proposed solution (with placement API only): That same user could\n \u003e very well delete everything (resource providers, allocations, etc.)\n \u003e from placement API, be it by mistakes or malicious intents. This is\n \u003e an unacceptable risk. We need to protect ourselves and our\n \u003e users/ops from themselves.\n\nOkay, but what are the actions you want to bound? Are you suggesting that some user/ops need to be able to update inventories, but nothing else. Or that some user/ops need to be able to update just allocation_ratios?\n\nThe latter would be ... complex.","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"285a56b25aa835ff19eeec7eedb175557c813b22","unresolved":false,"context_lines":[{"line_number":103,"context_line":"better choice that would push configuration to be data-driven (as opposed to"},{"line_number":104,"context_line":"configuration-file-driven). However, until placement supports RBAC (so"},{"line_number":105,"context_line":"operators can segregate access to administrative actions like this), this isn\u0027t"},{"line_number":106,"context_line":"feasible."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"Data model impact"},{"line_number":109,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_3b6c4c9b","line":106,"in_reply_to":"3fa0c359_d4b6608b","updated":"2018-02-15 22:14:17.000000000","message":"Jay, I must be being dim, but I\u0027m still not quite getting it. Is the crux here that \"an operator or other provisioning technician\" is not \"admin\" (in the sense that placement thinks of \"admin\")?\n\nBecause the way I read what\u0027s written there is \"we don\u0027t want the operator to need to touch config mgt\". I recall that mgagne said somewhere else they wanted RBAC but I didn\u0027t hear/see what the roles actually are.\n\nI ask because the available actions in placement are fairly limited and I can\u0027t perceive clear boundaries in value for things like being able to e.g., write inventories but not write resource providers. I\u0027m fairly confident this is because of a failure of imagination on my part, so my request is not because I\u0027m sternly \"let\u0027s not do that\" but rather \"I haven\u0027t got a good picture of that\".\n\nMore on the current version.","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b7bb773a4ada1be9653ee231ecc1338ef2fd112f","unresolved":false,"context_lines":[{"line_number":104,"context_line":"configuration-file-driven). However, until placement supports RBAC (so"},{"line_number":105,"context_line":"operators can segregate access to administrative actions like this), this isn\u0027t"},{"line_number":106,"context_line":"feasible."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"Data model impact"},{"line_number":109,"context_line":"-----------------"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_1923bc07","line":107,"updated":"2018-02-14 20:40:30.000000000","message":"Sylvain also mentioned another possible workaround:\n\nhttps://review.openstack.org/#/c/541018/1/releasenotes/notes/agg-resource-filters-6e24c92a69afa85f.yaml@20","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"81d83e227811ee6142945a646a0b7d649f24ed83","unresolved":false,"context_lines":[{"line_number":104,"context_line":"configuration-file-driven). However, until placement supports RBAC (so"},{"line_number":105,"context_line":"operators can segregate access to administrative actions like this), this isn\u0027t"},{"line_number":106,"context_line":"feasible."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"Data model impact"},{"line_number":109,"context_line":"-----------------"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_2b69708a","line":107,"in_reply_to":"3fa0c359_1923bc07","updated":"2018-02-15 12:34:29.000000000","message":"Yeah, setting ratios to be 99999.0 means that the Placement service will accept all the computes until the Aggregate filter will use the minimum one in between the aggregate value and 999999.0 ;)","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b7bb773a4ada1be9653ee231ecc1338ef2fd112f","unresolved":false,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":"While there will not be any changes to the data model itself, this spec does"},{"line_number":112,"context_line":"introduce a need for the ``nova-compute`` workers to be able to get metadata"},{"line_number":113,"context_line":"information about aggregates to which the compute host belongs. This would, I"},{"line_number":114,"context_line":"believe, introduce the need for an \"upcall\" from the cell to the API layer"},{"line_number":115,"context_line":"since aggregate metadata is tracked in the top-level API database."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"REST API impact"},{"line_number":118,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_99982c1c","line":115,"range":{"start_line":113,"start_character":64,"end_line":115,"end_character":66},"updated":"2018-02-14 20:40:30.000000000","message":"This definitely introduces a new up-call for cells v2:\n\nhttps://docs.openstack.org/nova/latest/user/cellsv2-layout.html#operations-requiring-upcalls\n\nNot sure if that should go in deployer impact, or developer impact, or what. Deployers are likely already needing to allow up-calls for the late affinity checks so I don\u0027t know if throwing this on the pile of issues is going to be a big deal or not.\n\nNote that #4 and #5 in that list already require up-calls to get aggregates, so...yeah, we already suck. The main difference is those at least depend on your configuration (#4 is only if you\u0027re using xenapi and #5 is only if you\u0027re setting [cinder]cross_az_attach\u003dFalse, which is not the default).\n\nTherefore, I wonder if we\u0027d want to add a new [workarounds] or [compute] option for this new up-call so that deployers that don\u0027t want this happening can nix it via config, although in thinking about that, if I set allocation ratios in all of my nova.conf\u0027s on the nova-compute, then I\u0027m already effectively disabling this up-call...so I guess the problem takes care of itself.","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"42a3614da2befb3569e8a4f4abeec293c7fe7653","unresolved":false,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":"While there will not be any changes to the data model itself, this spec does"},{"line_number":112,"context_line":"introduce a need for the ``nova-compute`` workers to be able to get metadata"},{"line_number":113,"context_line":"information about aggregates to which the compute host belongs. This would, I"},{"line_number":114,"context_line":"believe, introduce the need for an \"upcall\" from the cell to the API layer"},{"line_number":115,"context_line":"since aggregate metadata is tracked in the top-level API database."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"REST API impact"},{"line_number":118,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_dc99c279","line":115,"range":{"start_line":113,"start_character":64,"end_line":115,"end_character":66},"in_reply_to":"3fa0c359_99982c1c","updated":"2018-02-14 21:09:51.000000000","message":"We could mirror the host aggregate in placement as a ghost resource provider with inventory of zero total, but the appropriate allocation_ratio.  Then we can discover the allocation ratio by asking placement, and avoid the upcall.\n\nI\u0027m (mostly) joking.","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"e2029ab9c7cb3423dd9e814ec09b77e689886e3e","unresolved":false,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":"While there will not be any changes to the data model itself, this spec does"},{"line_number":112,"context_line":"introduce a need for the ``nova-compute`` workers to be able to get metadata"},{"line_number":113,"context_line":"information about aggregates to which the compute host belongs. This would, I"},{"line_number":114,"context_line":"believe, introduce the need for an \"upcall\" from the cell to the API layer"},{"line_number":115,"context_line":"since aggregate metadata is tracked in the top-level API database."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"REST API impact"},{"line_number":118,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_867c3221","line":115,"range":{"start_line":113,"start_character":64,"end_line":115,"end_character":66},"in_reply_to":"3fa0c359_cb4b2c5d","updated":"2018-02-15 16:11:42.000000000","message":"Except that doesn\u0027t help us after our service restarts.","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"81d83e227811ee6142945a646a0b7d649f24ed83","unresolved":false,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":"While there will not be any changes to the data model itself, this spec does"},{"line_number":112,"context_line":"introduce a need for the ``nova-compute`` workers to be able to get metadata"},{"line_number":113,"context_line":"information about aggregates to which the compute host belongs. This would, I"},{"line_number":114,"context_line":"believe, introduce the need for an \"upcall\" from the cell to the API layer"},{"line_number":115,"context_line":"since aggregate metadata is tracked in the top-level API database."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"REST API impact"},{"line_number":118,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_cb4b2c5d","line":115,"range":{"start_line":113,"start_character":64,"end_line":115,"end_character":66},"in_reply_to":"3fa0c359_dc99c279","updated":"2018-02-15 12:34:29.000000000","message":"When adding a host to an aggregate, we notify the compute service for the virt drivers. Maybe we could cache that instead of upcalling...\n\nhttps://github.com/openstack/nova/blob/b5bd19c608584423a1ccc48bde7ad71cc5b44c40/nova/compute/api.py#L5066-L5067","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b7bb773a4ada1be9653ee231ecc1338ef2fd112f","unresolved":false,"context_lines":[{"line_number":139,"context_line":"------------------"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"There would be a new call from the ``nova-compute`` workers to the ``nova-api``"},{"line_number":142,"context_line":"(or maybe cell conductors?) in the ``update_available_resource`` periodic task"},{"line_number":143,"context_line":"interval to look up allocation ratios of any associated host aggregates. There"},{"line_number":144,"context_line":"is already quite a bit of back and forth between the ``nova-compute`` worker"},{"line_number":145,"context_line":"and both the placement service and cell database (via the cell conductor)"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_b9e2c89f","line":142,"range":{"start_line":142,"start_character":1,"end_line":142,"end_character":26},"updated":"2018-02-14 20:40:30.000000000","message":"Well, nova-compute isn\u0027t going to nova-api, it\u0027s going through the cell conductor which would have to be configured for the [api_database] to get the aggregate information.","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"e2029ab9c7cb3423dd9e814ec09b77e689886e3e","unresolved":false,"context_lines":[{"line_number":139,"context_line":"------------------"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"There would be a new call from the ``nova-compute`` workers to the ``nova-api``"},{"line_number":142,"context_line":"(or maybe cell conductors?) in the ``update_available_resource`` periodic task"},{"line_number":143,"context_line":"interval to look up allocation ratios of any associated host aggregates. There"},{"line_number":144,"context_line":"is already quite a bit of back and forth between the ``nova-compute`` worker"},{"line_number":145,"context_line":"and both the placement service and cell database (via the cell conductor)"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_66d6c6f4","line":142,"range":{"start_line":142,"start_character":1,"end_line":142,"end_character":26},"in_reply_to":"3fa0c359_b844f41c","updated":"2018-02-15 16:11:42.000000000","message":"Meaning compute hitting the REST api right? We\u0027ve discussed it before, and it\u0027s a thing we could do. However, most of the large deployments I know of heavily firewall the compute nodes from pretty much anything else. Some even firewall the computes from each other (and thus won\u0027t allow migrations of any kind because they would mean computes talking to each other). That, and computes have to have credentials for that API, and in this case, would require credentials that allow access to would-be-admin-only data.\n\nIt\u0027s a thing, but I\u0027m guessing that if you\u0027re big enough to not want to set allocation ratios in compute configs, you probably also are big enough to not want your computes reaching out to your API either.","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"613d4a8b1654d212566e47bd4bc2729cbf0a3ff9","unresolved":false,"context_lines":[{"line_number":139,"context_line":"------------------"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"There would be a new call from the ``nova-compute`` workers to the ``nova-api``"},{"line_number":142,"context_line":"(or maybe cell conductors?) in the ``update_available_resource`` periodic task"},{"line_number":143,"context_line":"interval to look up allocation ratios of any associated host aggregates. There"},{"line_number":144,"context_line":"is already quite a bit of back and forth between the ``nova-compute`` worker"},{"line_number":145,"context_line":"and both the placement service and cell database (via the cell conductor)"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_b844f41c","line":142,"range":{"start_line":142,"start_character":1,"end_line":142,"end_character":26},"in_reply_to":"3fa0c359_b9e2c89f","updated":"2018-02-15 11:16:58.000000000","message":"Out of curiosity, why _not_ query for the info over the nova-api instead via rpc/conductor?","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b7bb773a4ada1be9653ee231ecc1338ef2fd112f","unresolved":false,"context_lines":[{"line_number":184,"context_line":"Testing"},{"line_number":185,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"We\u0027d want to emulate the setup of a pre-Ocata deployment that uses the"},{"line_number":188,"context_line":"aggregate ram/cpu/disk filters and does not set the CONF options for"},{"line_number":189,"context_line":"``nova-compute`` allocation ratios. And then run the"},{"line_number":190,"context_line":"``update_available_resource`` periodic task on the ``nova-compute`` and ensure"},{"line_number":191,"context_line":"that the allocation ratios for the host aggregate was used for the resource"},{"line_number":192,"context_line":"provider inventory in placement."},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"Documentation Impact"},{"line_number":195,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_597064dd","line":192,"range":{"start_line":187,"start_character":0,"end_line":192,"end_character":32},"updated":"2018-02-14 20:40:30.000000000","message":"We could definitely do this with in-tree functional test where we don\u0027t have the cells v2 layout issues (split MQ), but we couldn\u0027t in devstack by default which runs in \u0027superconductor\u0027 mode such that the computes can\u0027t reach the API DB.\n\nSo for devstack, we should just set the defaults from code into nova-cpu.conf.","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"586f297339c42927ebb81b9478315968ac6e957c","unresolved":false,"context_lines":[{"line_number":184,"context_line":"Testing"},{"line_number":185,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"We\u0027d want to emulate the setup of a pre-Ocata deployment that uses the"},{"line_number":188,"context_line":"aggregate ram/cpu/disk filters and does not set the CONF options for"},{"line_number":189,"context_line":"``nova-compute`` allocation ratios. And then run the"},{"line_number":190,"context_line":"``update_available_resource`` periodic task on the ``nova-compute`` and ensure"},{"line_number":191,"context_line":"that the allocation ratios for the host aggregate was used for the resource"},{"line_number":192,"context_line":"provider inventory in placement."},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"Documentation Impact"},{"line_number":195,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_27e3d5a6","line":192,"range":{"start_line":187,"start_character":0,"end_line":192,"end_character":32},"in_reply_to":"3fa0c359_597064dd","updated":"2018-02-19 13:41:35.000000000","message":"Doesn\u0027t really matter because I\u0027m changing the spec to not do upcalls anyway.","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b7bb773a4ada1be9653ee231ecc1338ef2fd112f","unresolved":false,"context_lines":[{"line_number":194,"context_line":"Documentation Impact"},{"line_number":195,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"None."},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"References"},{"line_number":200,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_f97b7026","line":197,"updated":"2018-02-14 20:40:30.000000000","message":"We likely should have already documented something in the scheduler docs for the aggregate ram/core/disk filters about the issue:\n\nhttps://docs.openstack.org/nova/latest/admin/configuration/schedulers.html","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"586f297339c42927ebb81b9478315968ac6e957c","unresolved":false,"context_lines":[{"line_number":194,"context_line":"Documentation Impact"},{"line_number":195,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"None."},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"References"},{"line_number":200,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_274e75c1","line":197,"in_reply_to":"3fa0c359_f97b7026","updated":"2018-02-19 13:41:35.000000000","message":"Done","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b7bb773a4ada1be9653ee231ecc1338ef2fd112f","unresolved":false,"context_lines":[{"line_number":199,"context_line":"References"},{"line_number":200,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"* http://lists.openstack.org/pipermail/openstack-dev/2018-January/126283.html"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_19909c4e","line":202,"updated":"2018-02-14 20:40:30.000000000","message":"https://etherpad.openstack.org/p/nova-aggregate-filter-allocation-ratio-snafu would also help since it attempts to distill the ML thread.","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"586f297339c42927ebb81b9478315968ac6e957c","unresolved":false,"context_lines":[{"line_number":199,"context_line":"References"},{"line_number":200,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"* http://lists.openstack.org/pipermail/openstack-dev/2018-January/126283.html"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_6726bd19","line":202,"in_reply_to":"3fa0c359_19909c4e","updated":"2018-02-19 13:41:35.000000000","message":"Done","commit_id":"7bfb0cb3469c8498e2b760dcf7612e0207ba1b49"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"586f297339c42927ebb81b9478315968ac6e957c","unresolved":false,"context_lines":[{"line_number":15,"context_line":"ratios that are set to ``None``. Instead of defaulting the allocation ratio"},{"line_number":16,"context_line":"values to 16.0/1.5/1.0 (for CPU, RAM and disk respectively), this blueprint"},{"line_number":17,"context_line":"proposes that the resource tracker only set the allocation ratios for its"},{"line_number":18,"context_line":"inventory records if it sees the placement API already has an allocation ratio"},{"line_number":19,"context_line":"set for that resource class. We will change the nova host aggregate object"},{"line_number":20,"context_line":"model to set allocation ratios for inventory records in placement when the host"},{"line_number":21,"context_line":"aggregate\u0027s membership changes AND there exists an allocation ratio host"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa0c359_f808f528","line":18,"range":{"start_line":18,"start_character":46,"end_line":18,"end_character":54},"updated":"2018-02-19 13:41:35.000000000","message":"should be: does *not* already have...","commit_id":"fea0a2984961b36d3dcd22081f73ece57249ca56"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"5b10155e04d24b4af157e640d5c3ef03ca05c13e","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Before Ocata, operators had the ability to set a special key/value item on a"},{"line_number":28,"context_line":"nova host aggregate\u0027s metadata. These special metadata items were used by the"},{"line_number":29,"context_line":"``Aggregate[Cpu|Ram|Disk]Filter`` scheduler filter to adjust the allocation ratio"},{"line_number":30,"context_line":"for those resource classes. When an aggregate\u0027s allocation ratio was found for"},{"line_number":31,"context_line":"a particular compute host, the aggregate\u0027s allocation ratio for a resource"},{"line_number":32,"context_line":"would affect the calculation of whether a new instance would be able to fit on"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa0c359_1b32b0a8","line":29,"updated":"2018-02-15 22:34:57.000000000","message":"line length nit","commit_id":"fea0a2984961b36d3dcd22081f73ece57249ca56"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"586f297339c42927ebb81b9478315968ac6e957c","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Before Ocata, operators had the ability to set a special key/value item on a"},{"line_number":28,"context_line":"nova host aggregate\u0027s metadata. These special metadata items were used by the"},{"line_number":29,"context_line":"``Aggregate[Cpu|Ram|Disk]Filter`` scheduler filter to adjust the allocation ratio"},{"line_number":30,"context_line":"for those resource classes. When an aggregate\u0027s allocation ratio was found for"},{"line_number":31,"context_line":"a particular compute host, the aggregate\u0027s allocation ratio for a resource"},{"line_number":32,"context_line":"would affect the calculation of whether a new instance would be able to fit on"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa0c359_1825a1ab","line":29,"in_reply_to":"3fa0c359_1b32b0a8","updated":"2018-02-19 13:41:35.000000000","message":"Done","commit_id":"fea0a2984961b36d3dcd22081f73ece57249ca56"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9aab82cbe4fc07c97168ef6298827d11dbbad6ee","unresolved":false,"context_lines":[{"line_number":59,"context_line":"This proposed change has three primary components:"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* Deprecating the CONF options around allocation ratios and setting the default"},{"line_number":62,"context_line":"  value for those allocation ratio CONF options to ``None``"},{"line_number":63,"context_line":"* Modify the ``nova-compute`` code to only override the allocation ratios"},{"line_number":64,"context_line":"  for its resources if sees a not ``None`` value for the CONF option **and** it"},{"line_number":65,"context_line":"  seems that the placement API already has set something for the corresponding"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa0c359_26718ce1","line":62,"updated":"2018-02-16 10:45:30.000000000","message":"Mmm, when I provided my thoughts in PS1, I wasn\u0027t thinking of deprecating the CONF options, just seeing if the values were the default.\n\nThe problem I would see with operators is that if we stop to have the CONF opts, it would need to only use aggregates for the ratios, right?\nI\u0027m sure some ops would be -1 for that.","commit_id":"fea0a2984961b36d3dcd22081f73ece57249ca56"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"e1aec8f79d8b41e6fdafea1a69bad019cac7ca97","unresolved":false,"context_lines":[{"line_number":59,"context_line":"This proposed change has three primary components:"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* Deprecating the CONF options around allocation ratios and setting the default"},{"line_number":62,"context_line":"  value for those allocation ratio CONF options to ``None``"},{"line_number":63,"context_line":"* Modify the ``nova-compute`` code to only override the allocation ratios"},{"line_number":64,"context_line":"  for its resources if sees a not ``None`` value for the CONF option **and** it"},{"line_number":65,"context_line":"  seems that the placement API already has set something for the corresponding"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa0c359_3e674828","line":62,"in_reply_to":"3fa0c359_26718ce1","updated":"2018-02-16 18:34:43.000000000","message":"Deprecating these options was my idea. Just because I don\u0027t like having multiple ways to do the same thing. It leads to situations just like this where we make some change and forget that there are 42 ways to specify a limit and we broke one of them.\n\nI\u0027m not pushing hard for this, but tbh aside from very small clouds, I\u0027m not really sure why we _wouldn\u0027t_ want to specify ratios in groups instead of per compute. If there are good reasons, then cool.\n\nMy only concern with getting rid of them is the complexity related to reporting allocation ratios on compute hosts without those compute hosts being able to inspect the aggregate\u0027s ratio themselves. However, having a control service do it when the service is added to or removed from an aggregate seems probably better than having compute do it every minute during RT sync or whatever.","commit_id":"fea0a2984961b36d3dcd22081f73ece57249ca56"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9aab82cbe4fc07c97168ef6298827d11dbbad6ee","unresolved":false,"context_lines":[{"line_number":61,"context_line":"* Deprecating the CONF options around allocation ratios and setting the default"},{"line_number":62,"context_line":"  value for those allocation ratio CONF options to ``None``"},{"line_number":63,"context_line":"* Modify the ``nova-compute`` code to only override the allocation ratios"},{"line_number":64,"context_line":"  for its resources if sees a not ``None`` value for the CONF option **and** it"},{"line_number":65,"context_line":"  seems that the placement API already has set something for the corresponding"},{"line_number":66,"context_line":"  inventory record\u0027s allocation ratio"},{"line_number":67,"context_line":"* Modify the ``nova.objects.Aggregate`` code to write allocation ratios when"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa0c359_663554f7","line":64,"range":{"start_line":64,"start_character":20,"end_line":64,"end_character":69},"updated":"2018-02-16 10:45:30.000000000","message":"We could just hard-code (like we did in https://github.com/openstack/nova/blob/b5bd19c608584423a1ccc48bde7ad71cc5b44c40/nova/objects/compute_node.py#L188-L207 ) the default values and see if the conf option is using the default one...","commit_id":"fea0a2984961b36d3dcd22081f73ece57249ca56"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"e1aec8f79d8b41e6fdafea1a69bad019cac7ca97","unresolved":false,"context_lines":[{"line_number":61,"context_line":"* Deprecating the CONF options around allocation ratios and setting the default"},{"line_number":62,"context_line":"  value for those allocation ratio CONF options to ``None``"},{"line_number":63,"context_line":"* Modify the ``nova-compute`` code to only override the allocation ratios"},{"line_number":64,"context_line":"  for its resources if sees a not ``None`` value for the CONF option **and** it"},{"line_number":65,"context_line":"  seems that the placement API already has set something for the corresponding"},{"line_number":66,"context_line":"  inventory record\u0027s allocation ratio"},{"line_number":67,"context_line":"* Modify the ``nova.objects.Aggregate`` code to write allocation ratios when"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa0c359_9e753ccf","line":64,"range":{"start_line":64,"start_character":20,"end_line":64,"end_character":69},"in_reply_to":"3fa0c359_663554f7","updated":"2018-02-16 18:34:43.000000000","message":"Assuming the default value means \"don\u0027t report\" is bad, IMHO. thing\u003dNone is very clear about which should be done.","commit_id":"fea0a2984961b36d3dcd22081f73ece57249ca56"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"586f297339c42927ebb81b9478315968ac6e957c","unresolved":false,"context_lines":[{"line_number":62,"context_line":"  value for those allocation ratio CONF options to ``None``"},{"line_number":63,"context_line":"* Modify the ``nova-compute`` code to only override the allocation ratios"},{"line_number":64,"context_line":"  for its resources if sees a not ``None`` value for the CONF option **and** it"},{"line_number":65,"context_line":"  seems that the placement API already has set something for the corresponding"},{"line_number":66,"context_line":"  inventory record\u0027s allocation ratio"},{"line_number":67,"context_line":"* Modify the ``nova.objects.Aggregate`` code to write allocation ratios when"},{"line_number":68,"context_line":"  nova host aggregates are modified and there exists an allocation ratio host"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa0c359_b897cd90","line":65,"range":{"start_line":65,"start_character":2,"end_line":65,"end_character":7},"updated":"2018-02-19 13:41:35.000000000","message":"sees","commit_id":"fea0a2984961b36d3dcd22081f73ece57249ca56"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9aab82cbe4fc07c97168ef6298827d11dbbad6ee","unresolved":false,"context_lines":[{"line_number":64,"context_line":"  for its resources if sees a not ``None`` value for the CONF option **and** it"},{"line_number":65,"context_line":"  seems that the placement API already has set something for the corresponding"},{"line_number":66,"context_line":"  inventory record\u0027s allocation ratio"},{"line_number":67,"context_line":"* Modify the ``nova.objects.Aggregate`` code to write allocation ratios when"},{"line_number":68,"context_line":"  nova host aggregates are modified and there exists an allocation ratio host"},{"line_number":69,"context_line":"  aggregate metadata item"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa0c359_e62084b3","line":67,"range":{"start_line":67,"start_character":45,"end_line":67,"end_character":53},"updated":"2018-02-16 10:45:30.000000000","message":"to write where ? to the Placement API ?","commit_id":"fea0a2984961b36d3dcd22081f73ece57249ca56"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"586f297339c42927ebb81b9478315968ac6e957c","unresolved":false,"context_lines":[{"line_number":64,"context_line":"  for its resources if sees a not ``None`` value for the CONF option **and** it"},{"line_number":65,"context_line":"  seems that the placement API already has set something for the corresponding"},{"line_number":66,"context_line":"  inventory record\u0027s allocation ratio"},{"line_number":67,"context_line":"* Modify the ``nova.objects.Aggregate`` code to write allocation ratios when"},{"line_number":68,"context_line":"  nova host aggregates are modified and there exists an allocation ratio host"},{"line_number":69,"context_line":"  aggregate metadata item"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa0c359_f8f23506","line":67,"range":{"start_line":67,"start_character":45,"end_line":67,"end_character":53},"in_reply_to":"3fa0c359_e62084b3","updated":"2018-02-19 13:41:35.000000000","message":"Done","commit_id":"fea0a2984961b36d3dcd22081f73ece57249ca56"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"e1aec8f79d8b41e6fdafea1a69bad019cac7ca97","unresolved":false,"context_lines":[{"line_number":64,"context_line":"  for its resources if sees a not ``None`` value for the CONF option **and** it"},{"line_number":65,"context_line":"  seems that the placement API already has set something for the corresponding"},{"line_number":66,"context_line":"  inventory record\u0027s allocation ratio"},{"line_number":67,"context_line":"* Modify the ``nova.objects.Aggregate`` code to write allocation ratios when"},{"line_number":68,"context_line":"  nova host aggregates are modified and there exists an allocation ratio host"},{"line_number":69,"context_line":"  aggregate metadata item"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa0c359_de442477","line":67,"range":{"start_line":67,"start_character":45,"end_line":67,"end_character":53},"in_reply_to":"3fa0c359_e62084b3","updated":"2018-02-16 18:34:43.000000000","message":"Yes.","commit_id":"fea0a2984961b36d3dcd22081f73ece57249ca56"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"6fb9aa2b5d8f2f9c788eaf6dfe51db14f7d1b78f","unresolved":false,"context_lines":[{"line_number":66,"context_line":"  inventory record\u0027s allocation ratio"},{"line_number":67,"context_line":"* Modify the ``nova.objects.Aggregate`` code to write allocation ratios when"},{"line_number":68,"context_line":"  nova host aggregates are modified and there exists an allocation ratio host"},{"line_number":69,"context_line":"  aggregate metadata item"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Alternatives"},{"line_number":72,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa0c359_960e9530","line":69,"updated":"2018-02-15 22:47:47.000000000","message":"I\u0027m not sure I\u0027m completely grokking this, is the proposal that the correct way to manage allocation_ratioS is by aggregate and aggregate metadata? That\u0027s what \"deprecate CONF options\" sounds like. But I suspect I\u0027m missing a piece.\n\nConsider a newly deployed compute node, not in any aggregates, with a fresh and new default config file. It creates a new provider and inventory.\n\nIs the result of the second point in the list here that:\n\n* if config is \u0027None\u0027\n* and the  current inventory not set (can this be simplified to \"we\u0027re in the process of creating the resource provider anew\"?)\n* set inventory allocation ratios to the 16, 1.5, 1.0 things we get today\n\n* if config is set\n* use what config says\n\n* if host is in aggregate with metadata set for ratios\n* set the ratios, whatever without regard for config or any existing ratios\n\nIs that right?","commit_id":"fea0a2984961b36d3dcd22081f73ece57249ca56"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"2e2dfe5031af61706a7064a39e53c8f09acbaa0a","unresolved":false,"context_lines":[{"line_number":66,"context_line":"  inventory record\u0027s allocation ratio"},{"line_number":67,"context_line":"* Modify the ``nova.objects.Aggregate`` code to write allocation ratios when"},{"line_number":68,"context_line":"  nova host aggregates are modified and there exists an allocation ratio host"},{"line_number":69,"context_line":"  aggregate metadata item"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Alternatives"},{"line_number":72,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa0c359_dadbbb7a","line":69,"in_reply_to":"3fa0c359_5408f426","updated":"2018-02-18 17:41:41.000000000","message":"\u003e * If config says ratio is None, then we assume no overcommit (0.0)\n \u003e for all resource types\n\n1.0, yeah?\n\n \u003e I just hate having multiple ways of specifying this, which is why I\n \u003e suggested maybe we deprecate the less useful (albeit simpler) one.\n\nI can see the appeal of wanting just one way, but there are probably a fair few people who would argue that per-compute-config is the more \"natural\" (whatever that means) way.\n\nWhichever, I think we have to continue to allow config for all-in-one situations where host aggregates are going to happen. I\u0027m aware of more than a few companies that are excited by the idea of super-hyper-converged hardened all-in-one edge cloud devices.","commit_id":"fea0a2984961b36d3dcd22081f73ece57249ca56"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"e1aec8f79d8b41e6fdafea1a69bad019cac7ca97","unresolved":false,"context_lines":[{"line_number":66,"context_line":"  inventory record\u0027s allocation ratio"},{"line_number":67,"context_line":"* Modify the ``nova.objects.Aggregate`` code to write allocation ratios when"},{"line_number":68,"context_line":"  nova host aggregates are modified and there exists an allocation ratio host"},{"line_number":69,"context_line":"  aggregate metadata item"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Alternatives"},{"line_number":72,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa0c359_5408f426","line":69,"in_reply_to":"3fa0c359_960e9530","updated":"2018-02-16 18:34:43.000000000","message":"I think the procedure is:\n\n* We go to create our provider, if we see it exists already, then:\n    * If config says ratio is None, we don\u0027t update what is there\n    * If config says ratio is non-None, then we update it to the conf value\n* If the provider does not exist:\n    * If config says ratio is None, then we assume no overcommit (0.0) for all resource types\n    * If config says ratio is non-None, then we update it to the conf value\n\nThat way, we don\u0027t overcommit if we\u0027re potentially getting ready to be added to an aggregate which will have a value set. In either case if we have a config value, then we use that regardless.\n\nI just hate having multiple ways of specifying this, which is why I suggested maybe we deprecate the less useful (albeit simpler) one.","commit_id":"fea0a2984961b36d3dcd22081f73ece57249ca56"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"2c8f02bb444c873228ed94fe45e19bf21b4d7f71","unresolved":false,"context_lines":[{"line_number":66,"context_line":"  inventory record\u0027s allocation ratio"},{"line_number":67,"context_line":"* Modify the ``nova.objects.Aggregate`` code to write allocation ratios when"},{"line_number":68,"context_line":"  nova host aggregates are modified and there exists an allocation ratio host"},{"line_number":69,"context_line":"  aggregate metadata item"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Alternatives"},{"line_number":72,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa0c359_175a514f","line":69,"in_reply_to":"3fa0c359_dadbbb7a","updated":"2018-02-19 12:54:02.000000000","message":"\u003e Whichever, I think we have to continue to allow config for\n \u003e all-in-one situations where host aggregates are going to happen.\n\nsigh. Are _not_ going to happen","commit_id":"fea0a2984961b36d3dcd22081f73ece57249ca56"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"7a176bfb90499307c5dae1a1a6857bd650cf75c9","unresolved":false,"context_lines":[{"line_number":174,"context_line":"Dependencies"},{"line_number":175,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"The `placement-mirror-host-aggregates` blueprint will need to be completed"},{"line_number":178,"context_line":"before this one, since currently nova host aggregates aren\u0027t placement-aware."},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa0c359_8a3af031","line":177,"range":{"start_line":177,"start_character":4,"end_line":177,"end_character":38},"updated":"2018-02-15 19:55:35.000000000","message":"Link.\n\nBut this is a soft dependency, since the mirroring could theoretically be done manually.","commit_id":"fea0a2984961b36d3dcd22081f73ece57249ca56"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"586f297339c42927ebb81b9478315968ac6e957c","unresolved":false,"context_lines":[{"line_number":174,"context_line":"Dependencies"},{"line_number":175,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"The `placement-mirror-host-aggregates` blueprint will need to be completed"},{"line_number":178,"context_line":"before this one, since currently nova host aggregates aren\u0027t placement-aware."},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa0c359_38609da5","line":177,"range":{"start_line":177,"start_character":4,"end_line":177,"end_character":38},"in_reply_to":"3fa0c359_8a3af031","updated":"2018-02-19 13:41:35.000000000","message":"Done","commit_id":"fea0a2984961b36d3dcd22081f73ece57249ca56"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"163b69cd9f91e64e298dbb00f00567810e14706b","unresolved":false,"context_lines":[{"line_number":32,"context_line":"resource would affect the calculation of whether a new instance would be able"},{"line_number":33,"context_line":"to fit on the compute host."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"One we moved to Ocata, however, the nova scheduler first consults the placement"},{"line_number":36,"context_line":"service to determine which compute nodes have capacity to house a requested"},{"line_number":37,"context_line":"amount of resources for the new instance. This means that unless a compute node"},{"line_number":38,"context_line":"has a matching or greater allocation ratio than the host aggregate, then the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_435ed479","line":35,"range":{"start_line":35,"start_character":0,"end_line":35,"end_character":3},"updated":"2018-10-09 21:48:30.000000000","message":"Once","commit_id":"ea2b4b8e106d84c5a768245a946c8595486040dc"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"ee4b2946dbfb206d0623b68c5ff37b3e76800acf","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"This proposed change has three primary components:"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* Deprecating the CONF options around allocation ratios and setting the default"},{"line_number":62,"context_line":"  value for those allocation ratio CONF options to ``None``"},{"line_number":63,"context_line":"* Modify the ``nova-compute`` code to only override the allocation ratios"},{"line_number":64,"context_line":"  for its resources if sees a not ``None`` value for the CONF option **and** it"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa0c359_1c9c4368","line":61,"range":{"start_line":61,"start_character":2,"end_line":61,"end_character":55},"updated":"2018-02-23 14:52:47.000000000","message":"I\u0027m still not sold we should deprecate those options, or operators would need to use aggregates just for modifying default ratios, which looks a wrong thing to me.\n\nOf course, I understand why *some* operators want to use the controlplane API to set the ratios, but please consider that others prefer to use configuration managements for just passing specific ratios per host.\n\nHaving those 2 possibilities doesn\u0027t look like a problem to me, because if operators don\u0027t want to set ratios per compute and rather use aggregates, then the default value would be None (because I\u0027m okay with setting the default to None)","commit_id":"ea2b4b8e106d84c5a768245a946c8595486040dc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"163b69cd9f91e64e298dbb00f00567810e14706b","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"This proposed change has three primary components:"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* Deprecating the CONF options around allocation ratios and setting the default"},{"line_number":62,"context_line":"  value for those allocation ratio CONF options to ``None``"},{"line_number":63,"context_line":"* Modify the ``nova-compute`` code to only override the allocation ratios"},{"line_number":64,"context_line":"  for its resources if sees a not ``None`` value for the CONF option **and** it"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_838e2ccf","line":61,"range":{"start_line":61,"start_character":2,"end_line":61,"end_character":55},"in_reply_to":"3f79a3b5_16735bb6","updated":"2018-10-09 21:48:30.000000000","message":"Sylvain\u0027s concern should be addressed by https://review.openstack.org/#/c/552105/ now with the new initial_*_allocation_ratios.","commit_id":"ea2b4b8e106d84c5a768245a946c8595486040dc"},{"author":{"_account_id":12813,"name":"Rong Han","email":"han.rong3@zte.com.cn","username":"hanrong-zte"},"change_message_id":"a25b29792f663220909fc941f7bd0a6724ac603b","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"This proposed change has three primary components:"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* Deprecating the CONF options around allocation ratios and setting the default"},{"line_number":62,"context_line":"  value for those allocation ratio CONF options to ``None``"},{"line_number":63,"context_line":"* Modify the ``nova-compute`` code to only override the allocation ratios"},{"line_number":64,"context_line":"  for its resources if sees a not ``None`` value for the CONF option **and** it"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bf659307_a580a2c0","line":61,"range":{"start_line":61,"start_character":2,"end_line":61,"end_character":55},"in_reply_to":"3fa0c359_1c9c4368","updated":"2018-04-13 09:29:18.000000000","message":"+1","commit_id":"ea2b4b8e106d84c5a768245a946c8595486040dc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6bd88196afa70ec4aede77d897704dde45e1b323","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"This proposed change has three primary components:"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* Deprecating the CONF options around allocation ratios and setting the default"},{"line_number":62,"context_line":"  value for those allocation ratio CONF options to ``None``"},{"line_number":63,"context_line":"* Modify the ``nova-compute`` code to only override the allocation ratios"},{"line_number":64,"context_line":"  for its resources if sees a not ``None`` value for the CONF option **and** it"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_16735bb6","line":61,"range":{"start_line":61,"start_character":2,"end_line":61,"end_character":55},"in_reply_to":"3fa0c359_1c9c4368","updated":"2018-09-12 17:13:26.000000000","message":"\u003e operators would need to use aggregates just for modifying default ratios\n\nThis is the iweb/internap (mgagne) case I believe?\n\n\u003e Of course, I understand why *some* operators want to use the controlplane API to set the ratios, but please consider that others prefer to use configuration managements for just passing specific ratios per host.\n\nYes CERN uses config management for all of this from my understanding.","commit_id":"ea2b4b8e106d84c5a768245a946c8595486040dc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"163b69cd9f91e64e298dbb00f00567810e14706b","unresolved":false,"context_lines":[{"line_number":61,"context_line":"* Deprecating the CONF options around allocation ratios and setting the default"},{"line_number":62,"context_line":"  value for those allocation ratio CONF options to ``None``"},{"line_number":63,"context_line":"* Modify the ``nova-compute`` code to only override the allocation ratios"},{"line_number":64,"context_line":"  for its resources if sees a not ``None`` value for the CONF option **and** it"},{"line_number":65,"context_line":"  seem that the placement API already has set something for the corresponding"},{"line_number":66,"context_line":"  inventory record\u0027s allocation ratio"},{"line_number":67,"context_line":"* Modify the ``nova.objects.Aggregate`` code to write allocation ratios to the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_a32568c1","line":64,"range":{"start_line":64,"start_character":20,"end_line":64,"end_character":27},"updated":"2018-10-09 21:48:30.000000000","message":"if it sees","commit_id":"ea2b4b8e106d84c5a768245a946c8595486040dc"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"efd02981a0dd5c3551854a5ccf3f8d56adc6d4f5","unresolved":false,"context_lines":[{"line_number":62,"context_line":"  value for those allocation ratio CONF options to ``None``"},{"line_number":63,"context_line":"* Modify the ``nova-compute`` code to only override the allocation ratios"},{"line_number":64,"context_line":"  for its resources if sees a not ``None`` value for the CONF option **and** it"},{"line_number":65,"context_line":"  seem that the placement API already has set something for the corresponding"},{"line_number":66,"context_line":"  inventory record\u0027s allocation ratio"},{"line_number":67,"context_line":"* Modify the ``nova.objects.Aggregate`` code to write allocation ratios to the"},{"line_number":68,"context_line":"  Placement API when nova host aggregates are modified and there exists an"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa0c359_87229700","line":65,"range":{"start_line":65,"start_character":2,"end_line":65,"end_character":6},"updated":"2018-02-20 13:16:57.000000000","message":"sees","commit_id":"ea2b4b8e106d84c5a768245a946c8595486040dc"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"b62809ca02e043f5c127ecc25010da6dba309cf4","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* Deprecating the CONF options around allocation ratios and setting the default"},{"line_number":62,"context_line":"  value for those allocation ratio CONF options to ``None``"},{"line_number":63,"context_line":"* Modify the ``nova-compute`` code to only override the allocation ratios"},{"line_number":64,"context_line":"  for its resources if sees a not ``None`` value for the CONF option **and** it"},{"line_number":65,"context_line":"  seem that the placement API already has set something for the corresponding"},{"line_number":66,"context_line":"  inventory record\u0027s allocation ratio"},{"line_number":67,"context_line":"* Modify the ``nova.objects.Aggregate`` code to write allocation ratios to the"},{"line_number":68,"context_line":"  Placement API when nova host aggregates are modified and there exists an"},{"line_number":69,"context_line":"  allocation ratio host aggregate metadata item"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df7087c5_347c6db4","line":66,"range":{"start_line":63,"start_character":2,"end_line":66,"end_character":37},"updated":"2018-03-19 19:27:43.000000000","message":"Sorry, this sounds backwards to me.  I read it as:\n\nCompute should override allocation ratio if\n\n- CONF option is not None; AND\n- inventory allocation ratio in placement is SET.\n\nShould that be UNSET?","commit_id":"ea2b4b8e106d84c5a768245a946c8595486040dc"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"ee4b2946dbfb206d0623b68c5ff37b3e76800acf","unresolved":false,"context_lines":[{"line_number":64,"context_line":"  for its resources if sees a not ``None`` value for the CONF option **and** it"},{"line_number":65,"context_line":"  seem that the placement API already has set something for the corresponding"},{"line_number":66,"context_line":"  inventory record\u0027s allocation ratio"},{"line_number":67,"context_line":"* Modify the ``nova.objects.Aggregate`` code to write allocation ratios to the"},{"line_number":68,"context_line":"  Placement API when nova host aggregates are modified and there exists an"},{"line_number":69,"context_line":"  allocation ratio host aggregate metadata item"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa0c359_dc2c9b03","line":67,"range":{"start_line":67,"start_character":13,"end_line":67,"end_character":40},"updated":"2018-02-23 14:52:47.000000000","message":"well, my original proposal that I said in PS1 was thinking about modifying the compute API here https://github.com/openstack/nova/blob/b5bd19c608584423a1ccc48bde7ad71cc5b44c40/nova/compute/api.py#L5031\n\nWhy do you think we should call Placement API in the object directly given we only set the ratios per the compute API ?\nMaybe in case someone would write something like :\n\n agg \u003d objects.Aggregate.get_by_id(\u0027foo\u0027)\n agg.update_metadata({\u0027cpu_allocation_ratio\u0027: \u00271.0\u0027})\n\nsomewhere off the compute API ?\n\nIf so, looks weird to me because we wouldn\u0027t pass a notification and then I\u0027d -1 the change.","commit_id":"ea2b4b8e106d84c5a768245a946c8595486040dc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"163b69cd9f91e64e298dbb00f00567810e14706b","unresolved":false,"context_lines":[{"line_number":64,"context_line":"  for its resources if sees a not ``None`` value for the CONF option **and** it"},{"line_number":65,"context_line":"  seem that the placement API already has set something for the corresponding"},{"line_number":66,"context_line":"  inventory record\u0027s allocation ratio"},{"line_number":67,"context_line":"* Modify the ``nova.objects.Aggregate`` code to write allocation ratios to the"},{"line_number":68,"context_line":"  Placement API when nova host aggregates are modified and there exists an"},{"line_number":69,"context_line":"  allocation ratio host aggregate metadata item"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_4624a2b2","line":67,"range":{"start_line":67,"start_character":13,"end_line":67,"end_character":40},"in_reply_to":"3fa0c359_dc2c9b03","updated":"2018-10-09 21:48:30.000000000","message":"Isn\u0027t this superseded now by https://review.openstack.org/#/c/552105/ and discussion from the Stein PTG where we said either you control allocation ratios on a compute node resource provider via the config (CERN) or the placement API (mgagne)? I guess the thing that\u0027s missing from that spec is taking aggregate allocation ratios into account. So this spec is proposing that if you want to control allocation ratios in aggregate, the compute API will proxy that information to placement and set it for the related resource class inventory for each provider in that aggregate?","commit_id":"ea2b4b8e106d84c5a768245a946c8595486040dc"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"158b4104cb7cd3d2f492a60a3bfefe4bbb3465a0","unresolved":false,"context_lines":[{"line_number":64,"context_line":"  for its resources if sees a not ``None`` value for the CONF option **and** it"},{"line_number":65,"context_line":"  seem that the placement API already has set something for the corresponding"},{"line_number":66,"context_line":"  inventory record\u0027s allocation ratio"},{"line_number":67,"context_line":"* Modify the ``nova.objects.Aggregate`` code to write allocation ratios to the"},{"line_number":68,"context_line":"  Placement API when nova host aggregates are modified and there exists an"},{"line_number":69,"context_line":"  allocation ratio host aggregate metadata item"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Alternatives"},{"line_number":72,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_a415199e","line":69,"range":{"start_line":67,"start_character":2,"end_line":69,"end_character":47},"updated":"2018-08-13 19:42:54.000000000","message":"What happens if you have a host in multiple aggregates and you set different ratios in different aggregates?","commit_id":"ea2b4b8e106d84c5a768245a946c8595486040dc"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"4e7a954f03dec231a55bb33b90db19187c9ce8a2","unresolved":false,"context_lines":[{"line_number":64,"context_line":"  for its resources if sees a not ``None`` value for the CONF option **and** it"},{"line_number":65,"context_line":"  seem that the placement API already has set something for the corresponding"},{"line_number":66,"context_line":"  inventory record\u0027s allocation ratio"},{"line_number":67,"context_line":"* Modify the ``nova.objects.Aggregate`` code to write allocation ratios to the"},{"line_number":68,"context_line":"  Placement API when nova host aggregates are modified and there exists an"},{"line_number":69,"context_line":"  allocation ratio host aggregate metadata item"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Alternatives"},{"line_number":72,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_a917f4ed","line":69,"range":{"start_line":67,"start_character":2,"end_line":69,"end_character":47},"in_reply_to":"3f79a3b5_a415199e","updated":"2018-09-09 14:01:59.000000000","message":"I talk about this specific problem on line 77 below.","commit_id":"ea2b4b8e106d84c5a768245a946c8595486040dc"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"588394061837c14d8bbf9cf3495e73daaa684c81","unresolved":false,"context_lines":[{"line_number":81,"context_line":"problem that placement currently does not support the same RBAC mechanisms as"},{"line_number":82,"context_line":"the Compute API."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"I think long term, a solution that allows administrators to set allocation"},{"line_number":85,"context_line":"ratios and traits for all providers in an aggregate at the same time would be a"},{"line_number":86,"context_line":"better choice that would push configuration to be data-driven (as opposed to"},{"line_number":87,"context_line":"configuration-file-driven). However, until placement supports RBAC (so"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df7087c5_ca1906d7","line":84,"range":{"start_line":84,"start_character":8,"end_line":84,"end_character":17},"updated":"2018-03-16 06:53:24.000000000","message":"I thought in long term, the nova host aggregate will be deprecated.","commit_id":"ea2b4b8e106d84c5a768245a946c8595486040dc"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6bc471bdca06a59415dea183791cc861ce30fe6a","unresolved":false,"context_lines":[{"line_number":81,"context_line":"problem that placement currently does not support the same RBAC mechanisms as"},{"line_number":82,"context_line":"the Compute API."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"I think long term, a solution that allows administrators to set allocation"},{"line_number":85,"context_line":"ratios and traits for all providers in an aggregate at the same time would be a"},{"line_number":86,"context_line":"better choice that would push configuration to be data-driven (as opposed to"},{"line_number":87,"context_line":"configuration-file-driven). However, until placement supports RBAC (so"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bf659307_f9d55ee6","line":84,"range":{"start_line":84,"start_character":8,"end_line":84,"end_character":17},"in_reply_to":"bf659307_91144350","updated":"2018-03-27 16:56:10.000000000","message":"No, because the placement aggregate doesn\u0027t have a name or metadata like nova needs. Now, nova could move to not keeping track of its own host-to-aggregate mapping at some point, but we\u0027ll still need some of our own metadata and other pieces.","commit_id":"ea2b4b8e106d84c5a768245a946c8595486040dc"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"a2d050b3276ccf8431b613792ccfb23aa3cb9d26","unresolved":false,"context_lines":[{"line_number":81,"context_line":"problem that placement currently does not support the same RBAC mechanisms as"},{"line_number":82,"context_line":"the Compute API."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"I think long term, a solution that allows administrators to set allocation"},{"line_number":85,"context_line":"ratios and traits for all providers in an aggregate at the same time would be a"},{"line_number":86,"context_line":"better choice that would push configuration to be data-driven (as opposed to"},{"line_number":87,"context_line":"configuration-file-driven). However, until placement supports RBAC (so"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bf659307_91144350","line":84,"range":{"start_line":84,"start_character":8,"end_line":84,"end_character":17},"in_reply_to":"bf659307_dd0894da","updated":"2018-03-27 11:59:53.000000000","message":"I thought the placement aggregate can implement the features which host aggregate provide.\n\nBut I realized I\u0027m the only one think about that also :)","commit_id":"ea2b4b8e106d84c5a768245a946c8595486040dc"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"7c4d193170f2e303a834c81c038321d82f96a4ca","unresolved":false,"context_lines":[{"line_number":81,"context_line":"problem that placement currently does not support the same RBAC mechanisms as"},{"line_number":82,"context_line":"the Compute API."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"I think long term, a solution that allows administrators to set allocation"},{"line_number":85,"context_line":"ratios and traits for all providers in an aggregate at the same time would be a"},{"line_number":86,"context_line":"better choice that would push configuration to be data-driven (as opposed to"},{"line_number":87,"context_line":"configuration-file-driven). However, until placement supports RBAC (so"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bf659307_dd0894da","line":84,"range":{"start_line":84,"start_character":8,"end_line":84,"end_character":17},"in_reply_to":"df7087c5_ca1906d7","updated":"2018-03-27 09:15:18.000000000","message":"Wait, what ?","commit_id":"ea2b4b8e106d84c5a768245a946c8595486040dc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"163b69cd9f91e64e298dbb00f00567810e14706b","unresolved":false,"context_lines":[{"line_number":84,"context_line":"I think long term, a solution that allows administrators to set allocation"},{"line_number":85,"context_line":"ratios and traits for all providers in an aggregate at the same time would be a"},{"line_number":86,"context_line":"better choice that would push configuration to be data-driven (as opposed to"},{"line_number":87,"context_line":"configuration-file-driven). However, until placement supports RBAC (so"},{"line_number":88,"context_line":"operators can segregate access to administrative actions like this), this isn\u0027t"},{"line_number":89,"context_line":"feasible."},{"line_number":90,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_e68e0e79","line":87,"range":{"start_line":87,"start_character":28,"end_line":87,"end_character":66},"updated":"2018-10-09 21:48:30.000000000","message":"Placement does support RBAC since Rocky...","commit_id":"ea2b4b8e106d84c5a768245a946c8595486040dc"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"588394061837c14d8bbf9cf3495e73daaa684c81","unresolved":false,"context_lines":[{"line_number":85,"context_line":"ratios and traits for all providers in an aggregate at the same time would be a"},{"line_number":86,"context_line":"better choice that would push configuration to be data-driven (as opposed to"},{"line_number":87,"context_line":"configuration-file-driven). However, until placement supports RBAC (so"},{"line_number":88,"context_line":"operators can segregate access to administrative actions like this), this isn\u0027t"},{"line_number":89,"context_line":"feasible."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":5,"id":"df7087c5_0a429eab","line":88,"range":{"start_line":88,"start_character":1,"end_line":88,"end_character":66},"updated":"2018-03-16 06:53:24.000000000","message":"Does that mean that the Operator wants a different role to change those configs? I don\u0027t quite understand this.\n\nAnd is this a key reason we are going to sync aggregate between nova and placement?","commit_id":"ea2b4b8e106d84c5a768245a946c8595486040dc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"163b69cd9f91e64e298dbb00f00567810e14706b","unresolved":false,"context_lines":[{"line_number":85,"context_line":"ratios and traits for all providers in an aggregate at the same time would be a"},{"line_number":86,"context_line":"better choice that would push configuration to be data-driven (as opposed to"},{"line_number":87,"context_line":"configuration-file-driven). However, until placement supports RBAC (so"},{"line_number":88,"context_line":"operators can segregate access to administrative actions like this), this isn\u0027t"},{"line_number":89,"context_line":"feasible."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_46cee2b7","line":88,"range":{"start_line":88,"start_character":1,"end_line":88,"end_character":66},"in_reply_to":"df7087c5_0a429eab","updated":"2018-10-09 21:48:30.000000000","message":"\u003e Does that mean that the Operator wants a different role to change those configs? I don\u0027t quite understand this.\n\nI think this is related to the internap/iweb/mgagne use case where they allow users with certain roles to modify host aggregate metadata to set allocation ratios, and those users might not be the traditional main admin user that has control over the actual infrastructure resources. So RBAC is important for that case for granularity.","commit_id":"ea2b4b8e106d84c5a768245a946c8595486040dc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"163b69cd9f91e64e298dbb00f00567810e14706b","unresolved":false,"context_lines":[{"line_number":117,"context_line":"Performance Impact"},{"line_number":118,"context_line":"------------------"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"There would be a new call from the ``nova-compute`` workers to the ``nova-api``"},{"line_number":121,"context_line":"(or maybe cell conductors?) in the ``update_available_resource`` periodic task"},{"line_number":122,"context_line":"interval to look up allocation ratios of any associated host aggregates. There"},{"line_number":123,"context_line":"is already quite a bit of back and forth between the ``nova-compute`` worker"},{"line_number":124,"context_line":"and both the placement service and cell database (via the cell conductor)"},{"line_number":125,"context_line":"during each periodic interval, however, so this additional call shouldn\u0027t be"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_463342c5","line":122,"range":{"start_line":120,"start_character":0,"end_line":122,"end_character":72},"updated":"2018-10-09 21:48:30.000000000","message":"Is this still part of the plan? I thought we had nack\u0027ed the idea of this up-call being introduced?","commit_id":"ea2b4b8e106d84c5a768245a946c8595486040dc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"163b69cd9f91e64e298dbb00f00567810e14706b","unresolved":false,"context_lines":[{"line_number":144,"context_line":"This spec is about mitigating upgrade impacts for those deployers who choose to"},{"line_number":145,"context_line":"use nova host aggregates for capacity planning. With proper documentation on"},{"line_number":146,"context_line":"this changed behaviour, we should be able to allow upgrade from pre-Ocata to"},{"line_number":147,"context_line":"Ocata and beyond, though the patch series implementing this spec will need to"},{"line_number":148,"context_line":"be backported to the Ocata code."},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"Implementation"},{"line_number":151,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_265966fc","line":148,"range":{"start_line":147,"start_character":18,"end_line":148,"end_character":32},"updated":"2018-10-09 21:48:30.000000000","message":"Hmm....not sure about that if we\u0027re introducing new API behavior to sync aggregate metadata for allocation ratios to placement.","commit_id":"ea2b4b8e106d84c5a768245a946c8595486040dc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"163b69cd9f91e64e298dbb00f00567810e14706b","unresolved":false,"context_lines":[{"line_number":159,"context_line":"Work Items"},{"line_number":160,"context_line":"----------"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"* Deprecate the various allocation ratio CONF options and set the new default"},{"line_number":163,"context_line":"  to ``None`` to act as our sentry for non-overridden values"},{"line_number":164,"context_line":"* Modify ``nova.objects.Aggregate.create|save`` to look for any allocation"},{"line_number":165,"context_line":"  ratio metadata item. If one exists AND there are members of the host"},{"line_number":166,"context_line":"  aggregate, then set the appropriate allocation ratio for those aggregate"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_86695a8d","line":163,"range":{"start_line":162,"start_character":2,"end_line":163,"end_character":60},"updated":"2018-10-09 21:48:30.000000000","message":"This changes based on https://review.openstack.org/#/c/552105/.","commit_id":"ea2b4b8e106d84c5a768245a946c8595486040dc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"163b69cd9f91e64e298dbb00f00567810e14706b","unresolved":false,"context_lines":[{"line_number":163,"context_line":"  to ``None`` to act as our sentry for non-overridden values"},{"line_number":164,"context_line":"* Modify ``nova.objects.Aggregate.create|save`` to look for any allocation"},{"line_number":165,"context_line":"  ratio metadata item. If one exists AND there are members of the host"},{"line_number":166,"context_line":"  aggregate, then set the appropriate allocation ratio for those aggregate"},{"line_number":167,"context_line":"  members and corresponding resource classes"},{"line_number":168,"context_line":"* Modify ``nova.objects.Aggregate.add_host|remove_host`` to do the same kind of"},{"line_number":169,"context_line":"  calculation"},{"line_number":170,"context_line":"* Modify the resource tracker on the ``nova-compute`` to only set the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_a66496b4","line":167,"range":{"start_line":166,"start_character":12,"end_line":167,"end_character":44},"updated":"2018-10-09 21:48:30.000000000","message":"set in Placement?","commit_id":"ea2b4b8e106d84c5a768245a946c8595486040dc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"163b69cd9f91e64e298dbb00f00567810e14706b","unresolved":false,"context_lines":[{"line_number":167,"context_line":"  members and corresponding resource classes"},{"line_number":168,"context_line":"* Modify ``nova.objects.Aggregate.add_host|remove_host`` to do the same kind of"},{"line_number":169,"context_line":"  calculation"},{"line_number":170,"context_line":"* Modify the resource tracker on the ``nova-compute`` to only set the"},{"line_number":171,"context_line":"  allocation ratio for resource classes when it finds a nova.conf CONF option"},{"line_number":172,"context_line":"  override"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"Dependencies"},{"line_number":175,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_460102b5","line":172,"range":{"start_line":170,"start_character":2,"end_line":172,"end_character":10},"updated":"2018-10-09 21:48:30.000000000","message":"I think this is part of https://review.openstack.org/#/c/552105/ right?","commit_id":"ea2b4b8e106d84c5a768245a946c8595486040dc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"163b69cd9f91e64e298dbb00f00567810e14706b","unresolved":false,"context_lines":[{"line_number":178,"context_line":"before this one, since currently nova host aggregates aren\u0027t placement-aware."},{"line_number":179,"context_line":""},{"line_number":180,"context_line":".. _placement-mirror-host-aggregates: https://blueprints.launchpad.net/nova/+spec/placement-mirror-host-aggregates"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"Testing"},{"line_number":183,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":184,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_260e46e4","line":181,"updated":"2018-10-09 21:48:30.000000000","message":"Isn\u0027t https://review.openstack.org/#/c/552105/ also a dependency?","commit_id":"ea2b4b8e106d84c5a768245a946c8595486040dc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"163b69cd9f91e64e298dbb00f00567810e14706b","unresolved":false,"context_lines":[{"line_number":190,"context_line":"metadata item to some value."},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"And then run the ``update_available_resource`` periodic task on the"},{"line_number":193,"context_line":"``nova-compute`` and ensure that the allocation ratios for the ``nova-compute``"},{"line_number":194,"context_line":"is set to the value of the aggregate."},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_462a622f","line":193,"range":{"start_line":193,"start_character":63,"end_line":193,"end_character":79},"updated":"2018-10-09 21:48:30.000000000","message":"The service? Or the ComputeNode object representing that service/node? I think this overlaps with https://review.openstack.org/#/c/552105/ again because in that spec we said we wouldn\u0027t touch the allocation ratios unless they were specifically overwritten in config, and the new initial_*_allocation_ratio options would be used to set the initial values on the compute node object when it\u0027s created for the first time.","commit_id":"ea2b4b8e106d84c5a768245a946c8595486040dc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"163b69cd9f91e64e298dbb00f00567810e14706b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"3f79a3b5_26272666","line":210,"updated":"2018-10-09 21:48:30.000000000","message":"Missing the History section.","commit_id":"ea2b4b8e106d84c5a768245a946c8595486040dc"}]}
