-
Notifications
You must be signed in to change notification settings - Fork 6
Updates for flavor reservation/virtualization #123
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: chameleoncloud/2023.1
Are you sure you want to change the base?
Conversation
2012cce to
7d33582
Compare
msherman64
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm concerned about adding DB migrations without a major release.
It could lead to broken deployments if operators change container versions back and forth while still being in 2023.1.
Because of that, my preference may be to keep this branch (2023.1-kvm) separate until we bump to 2024.1, when operators will get an upgrade anyway, and shouldn't expect to roll back.
codyhammock
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No notes, LGTM 👍🏻
Also adds docs so a user can find this behaviour easily. Closes-Bug: #2071832 Change-Id: Iea3c4164f3e893c355ec21653f2e8f0e848941f0
Change-Id: Ib71c15ec989a86265b826ece00ad32f95e3292bb
For flavor-based reservation, we want to store all the resource class inventory information from placement, along with all the trait information for each host. Change-Id: I154ee17190e1b2da77601699f03000cb670057af
Look up and store placement details when we add a compute host. This assumes nothing changes. If it does you need to remove and add hosts again to synchronise placement data. Change-Id: I1fa9b40823bac94550a0fc1b83a9f6818936cea4
This method is needed to query more details about each host when building up possible flavor allocations. Change-Id: Ifde07da9513089bde2e9353452e97c0648a756c6
This adds the flavor.instance plugin, where users request a reservation
similar to:
openstack reservation lease create test --reservation \
resource_type=flavor:instance,amount=2,\
flavor_id='e26a4241-b83d-4516-8e0e-8ce2665d1966'
This uses lots of ideas from the existing instance reservation plugin,
and where possible leans on some of the existing logic, currently only
filter_hosts_by_reservation.
The plugin is not currently usable. There are follow-on patches that
implement reserve_resource and then finally update_reservation.
Change-Id: I7507e87908e16b313fd624810d6f43cb73dddafe
This implements everything except update_reservation, so you can create, use and delete flavor-based reservations. We are able to re-use the on_start and on_end implementation from the instance plugin, along with its cleanup_resources implementation. However, the flavors created for each reservation are different, because we copy the details from the source flavor, then add the Blazar-specific resource requests on top. This allows users to make use of pinned CPUs, huge pages, and simple PCI device requests and vGPUs. We do not support all flavor options, and these flavors will be rejected. Change-Id: I5b2c9fded67ae7c593ea50ebef0f42b6c5856324
Change-Id: Ia3470b5423a9757a8c43d2cbc2e90ffaca0e983b
Change-Id: I98accb0f8caa652c6091f361c9eb7ff8279453da
Instance reservations can be created with the affinity parameter set to True (affinity), False (anti-affinity) or null (no affinity requested). Change Icf26d1b7dffe64f82d7084dcebb5df1c7c9f106d updated the database schema with Alembic but missed updating the SQLAlchemy model. Change-Id: Ic754692722a784b1cb47ffeebce58136a528ad14
- Fix migration branches - Add migration to allow affinity to be nullable - Fix on_* events in flavor plugin - Replace usage of context with lease (not sure context seems broken) - Add before_end event to flavor reservations - Fix db session code for Antelope - Fix config assumptions
This is a customization in our fork, and so needed fixing. Email relay is configured under the host plugin still based on our email script. See ChameleonCloud/kolla-containers@ee83055:
If a host allocation is tied to an instance reservation, we need to include "usage" information to indicate how much of the host is allocated. Otherwise, we have no idea what proportion of the host is reserved.
Change-Id: I190dca0ba944d8131ad3f0aedbe5e43eac147192
…rvation" This reverts commit 84fccdf. Change-Id: Icb6dee82b955694e1e58e83e02cc0ebc2776acd0
Change-Id: I5f681331088b3f0d61f2eddf6431a488c7cb850e
Before before_end was set in allocation_candidates. This method operates on a copy of the reservation, so the side effect of setting before_end doesn't do anything. Instead we set it in reserve_resource, which is actually creating the DB entry. Change-Id: I73a48e7170cafaea4402c79a6ebf0627a7b55d8f
This reverts commit ba1f398. Change-Id: I99578e4c0a326a3dc409c3a99f5ae046938cdd8f
Change-Id: I58652b6ba2e99bc06057ad0d78f8c1cd7705befa
* Add support for flavor traits Change-Id: Id030e84e00ee734e0656f95c8d8a0c52d534f258 * Add key checking in trait check Change-Id: Ic038fd61724f2f5cf6d0f749d1b7ed057eae8106
Previously checking traits was using get_trait_resource_providers() makes n*m placement requests, where n is number of traits, and m is number of hosts, sequentially. We parallelized n without doing the same for m. This new implementation makes m requests, in parallel. Change-Id: I5905d97d85955113d07b418cbe65fbafe132cd4b
Previously, traits could not be included with a flavor reservation. This commit implements checking flavor traits when querying available hosts. This check is done via the placement API, in parallel where possible. As a result, `_query_available_hosts` is slower when `resource_traits` is non-empty. Co-Authored-By: Michael Sherman <[email protected]> Change-Id: I5905d97d85955113d07b418cbe65fbafe132cd4b Signed-off-by: Mark Powers <[email protected]>
Change-Id: I68acbd60edb2207f1bda0b117452de6eaee1ac76
Change-Id: I5ac92ecfb912925094818ec90b99e39b2f582ab1
We added more DB calls for instance reservations in the host plugin, and so we need the tests to account for this. The logs throw a very confusing error when the DB is not properly mocked in these methods about the DB file. Change-Id: I8cf0e014b6ade6a9a2870eed85370d18f99a37f7
77b5803 to
f461953
Compare
Change-Id: I9257b03d6f338457e15e6ffb4997043b8a709bd3
Uh oh!
There was an error while loading. Please reload this page.