Platform9 Systems opens its startup playbook, highlighting ecosystem challenges and tips for fellow startups including how they differentiate their product from competitors with simplicity, choice and interoperability.

Community feedback

OpenStack is always interested in feedback and community contributions, if you would like to see a new section in the OpenStack Weekly Community Newsletter or have ideas on how to present content please get in touch: [email protected].

Sean notes a new job on all Nova changes that is processing commit messages [5].

UpgradeImpact got dropped for having an upgrade comment in Reno.

Instead of DocImpact, SecurityImpact in commit messages, new special sections using Reno will be created that trigger creating bugs and sending out emails like today. The hope is for better quality in these notifications.

Joline Buscemi won the third edition of the community T-shirt design contest, held annually by the OpenStack Foundation.

Community feedback

OpenStack is always interested in feedback and community contributions, if you would like to see a new section in the OpenStack Weekly Community Newsletter or have ideas on how to present content please get in touch: [email protected].

Community feedback

OpenStack is always interested in feedback and community contributions, if you would like to see a new section in the OpenStack Weekly Community Newsletter or have ideas on how to present content please get in touch: [email protected].

Josh Harlow writes, different projects use file locks to ensure that no application on the same machine can manipulate a given resource.

Stale lock file bug happens [8] and there is no easy way to determine when a lock file can be deleted manually.

Proposed creative solutions [9][10].

Josh proposes having offset locks. Create a single file X size to store locks, instead of having a bunch of files representing locks.

Clint says this just makes the directory of lock files look clean, but still leaves each offset stale and has to cleaned anyway.

Idea: having a cron job which deletes lock files within a set reasonable time.

Ben Nemec feels this is largely cosmetic complaints about not cleaning up old files. The amount of trouble we’ve had with interprocess locking in the past, he has never felt that a cosmetic issue was sufficient reason to relook at the issue.

Clint feels what’s missing is metadata for cleaning up stale locks. That can be done with:

fcntl locks – You have the kernel telling you for sure if the locking process is still alive when you want to clean up and take the lock.

Creation locks – You need to write that information into the locks, and remove it, and then have a way to make sure the process is alive and know it has the lock, which isn’t simple.

Prepare a patch to the deliverable file in openstack/releases repository recording the existing beta tag for your release. Include in the commit message that you are recording an existing milestone tag.

Prepare a patch to the project repository removing the version line from setup.cfg. This patch should depend on the release patch with the topic “remove-version-from-setup”.

Add a comment to the milestone tag request linking to the review from step 2.

If you’re not able to provide technical guidance on certain specs for your project, it’s up to you to get the right people involved.

Assuming you get someone else involved, it’s up to you to make sure they keep up with communication.

Communicate back to your project’s meeting on certain cross-project specs when necessary. This is also good for the previous bullet point of sourcing who would have technical knowledge for certain specs.

The OpenStack Project Infrastructure Team has added OpenStack Compute instances from OVH to the project’s continuous integration system.

There are a lot of ways to participate in an Open Source community like the OpenStack project and OVH is doing so in a way that best matches their strengths: contributing cloud resources to the project to drive our test and automation systems — resources which are critical to ongoing development.

OpenStack runs up to 30,000 automated jobs each day to test proposed changes and build documentation and software artifacts. The system responsible for this is itself a large multi-cloud application. It utilizes OpenStack Compute instances from Rackspace, HP Cloud, and now OVH to provide this service to developers. Each of those instances runs a single job and is then deleted in order to ensure the next job starts with a clean slate. This puts an extraordinarily high demand on our providers.

We are very excited by the addition of OVH, not only because it will help us scale to meet the needs of a growing project, but also because it demonstrates one of OpenStack’s key features: cross-cloud compatibility. When a developer uploads a proposed change to an OpenStack project, available instances from any of our contributing cloud providers will be used interchangeably to test it.

We are able to do this with the help of a number of OpenStack projects. First, we create a base image to use on all of our providers using Diskimage-builder. This ensures that all of our tests operate in an identical environment. Our test resource manager, Nodepool, uses the shade library to upload each of these images to our providers using the OpenStack Image service. Each of our providers is configured slightly differently, but shade handles the details so that Nodepool can focus on the business logic. Nodepool then identifies demand from our automation system, Zuul, to create OpenStack Compute instances as needed.

The Infrastructure Team thanks OVH for their contribution as well as our existing cloud providers, and we are excited about sharing our experience using this very demanding OpenStack application with all of them.

During these last weeks, the TC also had other project reviews requests that were put on hold for later once those projects and/or teams are more mature and ready to join the Big Tent.

Reports from TC Working Groups

Project Team Guide

The Project Team Guide team held a session back in Tokyo to discuss the next steps for this project. As a result of that session, more content will be created (or moved from the wiki): add community best practices, detail the benefits and trade-offs of the various release models, introduce deliverables and tags (as maintained in the governance repo’s projects.yaml), detail what common infrastructure projects can build on, and so on.

Communications Group

The communications working group (the one that brings these blog posts to you) will continue to operate under the same model. Announcements, summaries and communications will be sent out as they have been during the last cycle. Remember that feedback is always welcome and the group is looking for ways to improve. Talk back to us, we’re listening!

Project Tags

These are the latest new project tags created by the Technical Committee.

team:single-vendor: A new tag was added to communicate when a project team is currently driven by a single organization. We had some discussion about using the term “vendor” or “organization” but this intent is to show the opposite of a diversity in the team’s makeup.

assert:supports-upgrade: A new tag has been added to communicate when a project supports upgrades. Teams should apply this tag to their project if they assert they intend to support ongoing upgrades.

assert:supports-rolling-upgrade: A new tag has been added to communicate when a project supports rolling upgrades. Team should apply this tag to their project if they assert that operators can expect to perform rolling upgrades of their project, where the service can remain running while the upgrade is performed.

Morgan Fainberg writes most projects have a distrusting policy that prevents the following scenario:

Employee from Company A writes code

Other Employee from Company A reviews code

Third Employee from Company A reviews and approves code.

Proposal for a trusting model:

Code reviews still need 2x Core Reviewers (no change)

Code can be developed by a member of the same company as both core reviewers (and approvers).

If the trust that is being given via this new policy is violated, the code can [if needed], be reverted (we are using git here) and the actors in question can lose core status (PTL discretion) and the policy can be changed back to the “distrustful” model described above.

Dolph Mathews provides scenarios where the “distrusting” model either did or would have helped:

Employee is reprimanded by management for not positively reviewing & approving a coworkers patch.

A team of employees is pressured to land a feature with as fast as possible. Minimal community involvement means a faster path to “merged,” right?

A large group of reviewers from the author’s organization repeatedly throwing *many* careless +1s at a single patch. (These happened to not be cores, but it’s a related organizational behavior taken to an extreme.)