redhat-performance / quads

:calendar: The infrastructure deployment time machine
https://quads.dev
GNU General Public License v3.0
87 stars 36 forks source link

Extend QUADS to manage sharing of reserved instances (VM or Bare Metal) in the Public Cloud #354

Open ashishkamra opened 3 years ago

ashishkamra commented 3 years ago

Is your feature request related to a problem? Please describe. A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

We can reserve instances, VM or Bare Metal, in the cloud to get discounts. However, there is no way to manage allocation of those reserved instances like QUADS manages sharing of Bare Metal machines within an on-prem environment.

We often run out of capacity in our internal shared lab environments which leads to long waiting times for allocation requests.

Describe the solution you'd like A clear and concise description of what you want to happen.

Extend QUADS to include managing allocation of reserved instances using cloud specific APIs. Essentially, if internal labs are running full or do not have resources that are being requested, QUADS should be able to allocate them from the pool of reserved instances in the public cloud.

Describe alternatives you've considered A clear and concise description of any alternative solutions or features you've considered.

None

Additional context Add any other context or screenshots about the feature request here.

sadsfae commented 3 years ago

Thanks for filing this. Most of the heavy lifting here will need to be on the Foreman side using compute resource plugins:

https://theforeman.org/manuals/2.3/index.html#5.2ComputeResources

This is because QUADS needs to be handed hosts (from somewhere) to manage and there's some really good integration already for most public cloud providers at the Foreman level, allowing us theoritically to manage them with QUADS like they were normal hosts.

We'd want to experiment with this once we upgrade/migrate our Foreman server to new hardware and versions which should occur in the next few months. Great suggestion @ashishkamra

ashishkamra commented 3 years ago

Hello, Checking in see if this is being prioritized as we start using more Bare metal instances (reserved for months and years) in the IBM cloud.

sadsfae commented 3 years ago

Hey @ashishkamra here's where we are with this right now, having discussed this at some level of implementation depth but also just recently receiving IBM Cloud credentials so we can start poking at things.

I would classify this at pending proof of concept / early architecture phase but it's been discussed and will be something we'll keep on the radar.

More Details

We have both an ideal longer-term, cross-departmental development goal and a short-term proof-of-concept integration plan discussed thus far:

Ideal Long-Term / Product Enhancement Integration

Potentially Shorter Term / Integration without Foreman Development

For awareness: @grafuls @kambiz-aghaiepour @abondvt89 @briordan1 @radez

sadsfae commented 3 years ago

Related work-in-progress patchset for the Potentially Shorter Term / Integration without Foreman Development approach mentioned above.

https://review.gerrithub.io/c/redhat-performance/quads/+/522359

sadsfae commented 3 years ago

Related RFE for upstream Foreman and IBM cloud compute resource plugin: https://projects.theforeman.org/issues/33489

sadsfae commented 3 months ago

Putting this back on the radar since QUADS 2.0 has been released, this will fit nicely into our providers framework which lets us seamlessly extend QUADS-managed resource into the public cloud. We'll need to purchase an SRX Juniper tier device that supports native multi-vendor VPC but we can tackle that internally, I've already started discussions to include this for a future capital purchase. cc: @natashba