[tc] [ironic] Promoting ironic to a top-level opendev project?

Julia Kreger juliaashleykreger at gmail.com
Wed Apr 1 17:27:47 UTC 2020

tl;dr <3 - more words below.

On Wed, Apr 1, 2020 at 10:05 AM Dmitry Tantsur <dtantsur at redhat.com> wrote:
> Hi everyone!
> This topic should not come as a huge surprise for many, since it has been raised numerous times in the past years. I have a feeling that the end of Ussuri, now that we’ve re-acquired our PTL and are on the verge of selecting new TC members, may be a good time to propose it for a formal discussion.
> TL;DR I’m proposing to make Ironic a top-level project under opendev.org and the OpenStack Foundation, following the same model as Zuul. I don’t propose severing current relationships with other OpenStack projects, nor making substantial changes in how the project is operated.

Thank you for bringing this up Dmitry. I know the cores have discussed
this a couple times over the past two years in various settings and
forums, and I think you make a solid case.

> (And no, it’s not an April 1st joke)
> Background
> =========
> Ironic was born as a Nova plugin, but has grown way beyond this single case since then. The first commit in Bifrost dates to February 2015. During these 5 years (hey, we forgot to celebrate!) it has developed into a commonly used data center management tool - and still based on standalone Ironic! The Metal3 project uses standalone Ironic as its hardware management backend. We haven’t been “just” a component of OpenStack for a while now, I think it’s time to officially recognize it.


> And before you ask: in no case do I suggest scaling down our invaluable integration with Nova. We’re observing a solid growth of deployments using Ironic as an addition to their OpenStack clouds, and this proposal doesn’t try to devalue this use case. The intention is to accept publicly and officially that it’s not the only or the main use case, but one of the main use cases. I don’t think it comes as a surprise to the Nova team.
> Okay, so why?
> ===========
> The first and the main reason is the ambiguity in our positioning. We do see prospective operators and users confused by the perception that Ironic is a part of OpenStack, especially when it comes to the standalone use case. “But what if I don’t need OpenStack” is a question that I hear in most of these conversations. Changing from “a part of OpenStack” to “a FOSS tool that can integrate with OpenStack” is critical for our project to keep growing into new fields. To me personally it feels in line with how OpenDev itself is reaching into new areas beyond just the traditional IaaS. The next OpenDev even will apparently have a bare metal management track, so why not a top-level project for it?

I can second this perception issue that we encounter a lot. People
assume because we're part of the community that everything else is
required when it is not. This is possibly the #1 barrier to accepting
Ironic or even parts of ironic's ecosystem to help solve problems.

> Another reason is release cadence. We have repeatedly expressed the desire to release Ironic and its sub-projects more often than we do now. Granted, *technically* we can release often even now. We can even abandon the current release model and switch to “independent”, but it doesn’t entirely solve the issue at hand. First, we don’t want to lose the notion of stable branches. One way or another, we need to support consumers with bug fix releases. Second, to become truly “independent” we’ll need to remove any tight coupling with any projects that do integrated releases. Which is, essentially, what I’m proposing here.

I agree, and I suspect this is going to be perceived as the most
"scary" part of this. Ideally we want and need consumers like Metal3
to be able to pickup latest releases and latest stable branches, and
we want to be able to fix major issues in past branches. While I know
I've obtained agreement that we should have more ad-hoc freedom from
the TC, at least verbally, it only takes a single -1 to prevent the
ironic project from doing what is right for its consumers.

> Finally, I believe that our independence (can I call it “Irexit” please?) has already happened in reality, we just shy away from recognizing it. Look:
> 1. All integration points with other OpenStack projects are optional.
> 2. We can work fully standalone and even provide a project for that.
> 3. Many new features (RAID, BIOS to name a few) are exposed to standalone users much earlier than to those going through Nova.
> 4. We even have our own mini-scheduler (although its intention is not and has not been to replace the Placement service).
> 5. We make releases more often than the “core” OpenStack projects (but see above).

This is possibly the best point I've heard on this case to date. Your
right, it basically has already happened and I think the resistance to
change that is only human causes us to be shy about it.

> What we will do
> ============
> This proposal involves in the short term:
> * Creating a new git namespace: opendev.org/ironic
> * Creating a new website (name TBD, bare metal puns are welcome).
>    * If we can have https://docs.opendev.org/ironic/, it may be just fine though.
> * Keeping the same governance model, only adjusted to the necessary extent.

I don't think we would need anything super expansive. In a sense,
we're a bit of a rag-tag fugitive fleet, so we need to accept that as
part of any model _AND_ recognize that most of us have numerous
responsibilities, so things take time and don't necessarily ever fit
to a perfect time table.

> * Keeping the same policies (reviews, CI, stable).
> * Defining a new release cadence and stable branch support schedule.

I suspect this means we should also consider our own mailing list at
some point, and maybe renaming the IRC channel?

> In the long term we will consider (not necessary do):
> * Reshaping our CI to rely less on devstack and grenade (only use them for jobs involving OpenStack).
> * Reducing or removing reliance on oslo libraries.
> * Stopping using rabbitmq for messaging (we’ve already made it optional).
> * Integrating with non-OpenStack services (kubernetes?) and providing lighter alternatives (think, built-in authentication).


> What we will NOT do
> ================
> At least this proposal does NOT involve:
> * Stopping maintaining the Ironic virt driver in Nova.
>    * Stopping running voting CI jobs with OpenStack services.
> * Dropping optional integration with OpenStack services.
> * Leaving OpenDev completely.
> What do you think?
> ===============
> Please let us know what you think about this proposal. Any hints on how to proceed with it, in case we reach a consensus, are also welcome.
> Cheers,
> Dmitry

I completely agree with this, and while I've wondered about this for
some time, I think now is the right time to proceed. Again, thank you
Dmitry for bringing this up!

More information about the openstack-discuss mailing list