[Ironic] Teaching virtualbmc how to talk to Ironic?

Dan Sneddon dsneddon at redhat.com
Mon Oct 19 03:52:20 UTC 2020


Steve, Lars,

I just wanted to throw an idea out there:

Redfish requires user accounts. Is there a way to stretch this idea into a
more general Redfish proxy? Ironic would have to create a temporary user
account for Redfish in the BMC, and then provide the tenant an IP:port of a
TCP proxy for the tenant to connect to.

The TCP proxy would be deactivated when the node was deleted. When the node
was cleaned, the user account would be removed. When nodes were scheduled,
the Ironic-generated user accounts would be removed and recreated as needed
based on the scheduling request. Ironic settings could be provided to
control the access rights/group of the user accounts.

A variant of this would create and manage the user account, but not provide
a TCP proxy. Instead, perhaps the BMC location could be returned. This
would not meet the criteria of not providing direct access to the hardware.
We would have to remove accounts from the BMC when the node was deleted or
require cleaning, but it could still potentially be less secure.

A downside of the role-based user scheduling approach is that Ironic then
requires credentials for the BMC that include user account management,
which could run counter to security policy.

On Sun, Oct 18, 2020 at 6:08 PM Steve Baker <sbaker at redhat.com> wrote:

>
>
> On 17/10/20 7:29 am, Lars Kellogg-Stedman wrote:
>
> > In the work that we're doing with the Mass Open Cloud [1], we're
>
> > looking at using Ironic (and the multi-tenant support we contributed)
>
> > to manage access to a shared pool of hardware while still permitting
>
> > people to use their own provisioning tools.
>
> >
>
> > We don't want to expose the hardware BMC directly to consumers; we
>
> > want Ironic to act as the access control mechanism for all activities
>
> > involving the hardware.
>
> >
>
> > The missing part of this scenario is that at the moment this would
>
> > require provisioning tools to know how to talk to the Ironic API if
>
> > they want to perform BMC actions on the host, such as controlling
>
> > power.
>
> >
>
> > While talking with Mainn the other day, it occurred to me that maybe
>
> > we could teach virtualbmc [2] how to talk to Ironic, so that we could
>
> > provide a virtual IPMI interface to provisioning tools. There are some
>
> > obvious questions here around credentials (I think we'd probably
>
> > generate them randomly when assigning control of a piece of hardware
>
> > to someone, but that's more of an implementation detail).
>
> >
>
> > I wanted to sanity check this idea: does this seem reasonable? Are
>
> > there alternatives  you would suggest?
>
>
>
> As far as I'm aware, an IPMI host:port endpoint will manage exactly one
>
> baremetal host, with no obvious mechanism to specify which host to
>
> control when you have multiple hosts behind a single endpoint. These
>
> days with the rise of Redfish I think IPMI is considered a legacy
>
> interface now.
>
>
>
> I suspect a BMC interface is not the right abstraction for a
>
> multi-tenant baremetal API, that's why Ironic was started in the first
>
> place ;)
>
>
>
> If there are provisioning tools frequently used by the target audience
>
> of Mass Open Cloud which have poor Ironic API support then we'd like to
>
> know what those tools are so we can improve that support.
>
>
>
>
>
> > Thanks!
>
> >
>
> > [1] https://github.com/CCI-MOC/esi
>
> > [2] https://github.com/openstack/virtualbmc
>
> >
>
>
>
>
>
> --
Dan Sneddon         |  Senior Principal Software Engineer
dsneddon at redhat.com |  redhat.com/cloud
dsneddon:irc        |  @dxs:twitter
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-discuss/attachments/20201018/5e1cb942/attachment.html>


More information about the openstack-discuss mailing list