The OpenStack Blog

Author Archive

OpenStack Technical Committee Update (July 1)

The last TC update discussed the DefCore effort being led by the OpenStack Foundation Board. The DefCore subcommittee had made some requests for input from the TC. This week we held a special meeting entirely focused on clarifying some points around DefCore and providing some responses to the questions given to us.

It’s also worth noting that prior to the meeting, Jonathan Bryce posted a very comprehensive review of the existing framework that governs OpenStack trademark usage. This thread is absolutely worth reading for a good understanding of this topic.

Scope of DefCore

The first point on the agenda was to clarify the scope of DefCore. Specifically, we wanted to clarify which uses of the trademark this effort was applicable to. There were some important points of clarification reached during the meeting on this topic. DefCore is only about the commercial uses of the trademark. Currently, this only includes the “Powered by OpenStack” trademark license program. We also understand that the board has left open the option of an “OpenStack Compatible” trademark program in the future that may have a different set of requirements than what we are discussing right now.

Jonathan clarified this very well during the meeting (at 20:25:56):

The license agreement in question is called OpenStack Powered and is intended for use with products and services that are built using OpenStack software. for instance a public cloud “FooTron Compute Powered By OpenStack”, an appliance “FooTron Appliance Powered by OpenStack”, a distribution “FooTron OpenStack”. All of those different products would be held to the same standard. in other words, they would all be required to expose the same capabilities (testable over the APIs) and include the same actual community-developed software bits (designated sections).

DefCore Capabilities

The DefCore subcommittee has been working to define a set of capabilities with associated tests that would be used as a part of the process to determine if a given OpenStack product or service was allowed to use the OpenStack mark under the “Powered by OpenStack” trademark program. They have been using a scoring system to determine which capabilities should be required. Part of the input into this scoring is “technical direction”. They do not want to include a required capability that the technical community does not view as something we want to keep around long term. The TC was asked to provide input on some capabilities where the future was unclear. We have been working on clarifying all of these points in two reviews to the OpenStack technical governance repository. We are close to reaching a final conclusion on these points.

DefCore capabilities are currently defined in a JSON file as a mapping to a set of tests. One recommendation that the TC provided was that a 1 or 2 sentence description for each capability would help provide easier understanding of the intended coverage of a capability. Otherwise, interested parties must go read each test to understand exactly what it’s attempting to verify. While this would be helpful, we all agreed that this does not actually block progress. It would just make things easier.

The final point discussed in this section of the meeting was the intersection of capabilities and designated sections of code. Generally you have to implement designated section code and deliver core capabilities, but it was clarified that designated sections of code would only be required if there is a corresponding capability that is deemed required. If a project has no required capabilities, then the use or distribution of that project is not required.

Designated Sections

This was the most controversial part of the meeting. The DefCore committee had requested that the TC provide a proposed set of designated sections of code. This input would then be used as the basis for what code is required under the “Powered by OpenStack” trademark license program. After much discussion, the TC was able to reach consensus on this topic and a response was provided in this meeting.

One of the primary responsibilities of the TC is to define the OpenStack integrated release which is released every 6 months. This is the set of things that we vouch for. We have a defined process with a set of requirements projects must satisfy to apply for incubation and potentially eventually graduate to be a part of this integrated release. Defining a subset of the integrated release would make the TC appear to endorse or encourage replacing part of their work with proprietary alternatives. The TC is an elected representation of the contributors to the project and as such it does not feel it should declare a subset of the integrated release less important than the rest.

We do value that the Apache license provides the option of replacing part of the code with alternative solutions, and we respect that it’s the board prerogatives to determine trademark use policy. So we would like to clearly recognize that it’s the board’s right to define the subset of the integrated release required by commercial trademark license agreements (such as the “OpenStack Powered” trademark program), and therefore they should have final say on “designated sections”. A process to achieve that was suggested by Mark McLoughlin on the Defcore list, where the Board would propose designated sections and ask the wider community for comments on it, then make the final calls based on that feedback.

OpenStack Technical Committee Update

The OpenStack Technical Committee (TC) meets weekly. During the meeting on 2014-06-03, one of the topics we discussed was the relatively low turnout for the TC election as compared to the PTL elections. The most productive thing to come out of that discussion was that we needed to do a better job of communicating what the TC is working on and why it is important. As a result, we will be posting regular updates about the TC to the OpenStack blog. This first post will likely be a bit longer as it’s important to set up some of the context for the things we are currently discussing.

How the TC was formed is described in the history of OpenStack open source project governance  by the current chair of the TC, Thierry Carrez.


Open governance is an important value held by OpenStack and the TC wants to be as open as possible. In addition to these regular updates, you can find the details of everything we do in a few other places. The archives of the openstack-tc mailing list are open. Our weekly IRC meetings are public and logged.

All project governance work is managed in a git repository and changes are reviewed in gerrit in the same way that we review code. Everyone that is interested is invited to comment on proposed governance changes. You can find a list of changes under review here. You can find a list of previously approved changes and the discussions that happened on their reviews here.

Project Incubation and Graduation Requirements

One of the responsibilities of the TC is to manage the set of projects that are included in the OpenStack integrated release. New projects may apply to be incubated. Incubated projects will later be reviewed for graduation from incubation. A graduated project is a part of the integrated release.

As OpenStack has grown, it became clear that we needed to be much more clear around our expectations of projects for incubation and graduation. Over the last year we worked to formalize these expectations in a document in the governance repository. We approved the first version of this document on December 2, 2013. We have been updating it ever since as more issues need to be clarified. You can find the latest version of that document in the Governance git repository.

Toward the end of the Icehouse development cycle, we started a process of going through all projects already in the integrated release and evaluating them against this criteria. For any project that has gaps against these expectations, we require that the PTL present a plan for addressing these gaps during the Juno cycle.


The latest project review was for Glance, during the TC meeting on 2014-06-10. The only gap found for Glance was around tempest test coverage. Specifically, Tempest does not cover uploading a real binary image to Glance. The Glance PTL will now come up with a plan to address this gap and the TC will review progress against this plan throughout the Juno cycle.

We actually spent quite a bit of this meeting talking about Glance. The most controversial topic is around the proposal to increase its scope. Glance is currently focused on disk images. There is a proposal against the governance repository to expand its scope to cover a more general definition of artifacts. The particular use cases that inspired this direction for Glance is the desire to store things like Heat or Murano templates. In the end, there seems to be broad support for the general direction proposed. We still have some work to do to get the wording of the mission statement in a form that everyone is comfortable with.

Finally, the Glance project brought an important cross-project API consistency question to the TC. Specifically, they have an alternative method for how they would like to expose actions through their API which is different from how Nova does it currently, for example. There was support for the specific proposal. However, it raises the larger question about how we go about best working toward cross project API consistency. We would love to have someone lead an effort to create a cross-project API style guide for OpenStack, but it’s unclear who will do it and exactly who would review and approve the content. I expect this to be an ongoing discussion.

You can find the full mailing list thread that spawned this API discussion in the archives starting in May and continuing in June.


Another project that has received a lot of attention recently is Designate, which provides DNS as a Service for OpenStack. This is a sorely needed feature for OpenStack deployments so I’m very happy to see the progress made in this area.

The project recently applied for incubation. This is actually the second time that Designate has applied for incubation. The first time was one year ago, in June of 2013. After the first application, the TC concluded that it was a bit too early to incubate the project. There were various concerns, but the primary one was the level of involvement in the project, in terms of individuals and separate companies.

Designate has matured a good bit over the last year and I’m proud to announce that the application has been approved. Designate is now an incubated project!

The earliest Designate will be included in the integrated release would be the K release. Given that we’re already well into the Juno cycle, the L release seems more realistic. This is a topic that the TC would revisit at the end of the Juno development cycle.

Future Updates

We want to make these updates from the TC as useful as possible. If you have any comments or suggestions, please let us know!

Back to top