openstack team mailing list archive
-
openstack team
-
Mailing list archive
-
Message #02033
Design Summit Decisions
Hey Everyone,
I thought it would be nice to give everyone an update of the decisions made during the Design Summit. There are a lot of follow-on actions. I'll be spending the next week trying to get everything missing into blueprints and targeted to milestones, so that there is a cohesive view of the features being worked on for the Diablo release. There are still a number of tasks for Nova that need to be done but have no one assigned. I will list them below, but I will also be sending out specific emails to get volunteers for individual topics.
The information below is based on notes that I took during the various meetings. I attempted to collect as many of the action items related to Nova as possible. Unfortunately, I wasn't in all of the sessions, and I'm sure I missed a few things. If others have additions/changes, please feel free to contribute them.
I will also be sending out a list of milestones and dates so everyone can attempt to coordinate their development cycles with the official Nova milestones.
Vish
Diablo Design Summit Notes and Actions (* represents blueprints that need to be made)
Six-Month Release Cycle
OpenStack will move to a six month release cycle
Releases will adopt the NVIE model -- Separate QA branch with bugfixes only merged in
Project PTLs responsible for creating and assigning a QA team to manage the QA branch for release
Milestones
Between the six-month releases, individual projects can manage their own cadence for releases
Unless a project has a good reason to change, it should adopt the default of one month milestones
Milestones are not supported releases, but should expose stable new functionality
Milestones will be used to target features and help ease the project-management burden
Shared Code and New Projects
Volume and Network code will initially not be separated into separate projects
DB and API for volume and network should be separated within NOVA (*)
Clear high-level apis will be defined for these components so other projects can replace them
Shared code will be moved into a subfolder in nova for a possible move into nova-common (*)
Where applicable, libraries should be created for shared functionality (allows for external reuse)
init/daemonization code from swift / glance will be moved into a library and used by all services
We will investigate a way to standardize on logging as well (*)
API Definition Process
We will strive to minimize duplicate APIs (glance and servers /image for example)
API changes should be proposed along with features and considered during feature development
Minor API features could change in milestones but the versioned api will be changed for releases
The PPB needs to be notified for API version changes
Openstack V1.1
Improve the JSON/XML conversion code (Team Titan is proposing something for this)
AffinityID is going to stay as an extension for now
Focus on finishing the few remaining parts of the 1.1 spec
Testing
Goal 95% unit test coverage by Diablo
Implement Tarmac rule for not lowering unittest percentage
Policy not to accept merge proposals without feature testing
Policy to require failing test for bug fixes
Documentation and examples for unit testing (email requesting help forthcoming) (*)
Automated Testing (*)
Monty will be leading this effort
Unite the various smoketesting / functional testing frameworks
Goal to have simple version of jenkins integration in two weeks
More robust automation and branch testing by Milestone 1
Move to Git
Project management tools will stay at launchpad
Code and merge proposals to be moved completely by Milestone 2 (*)
Bugs will stay at lauchpad for now, but we will investigate using issues in the future
Utility VMs
This is dependent on multinic and host/guest communication
Common method for Provider controlled VMs needs to be defined
Block Storage as a Service (LunR)
Nova needs to add full REST api to volume code (*)
Nova should use rest APIs for communicating with volumes (*)
This will allow other services like LunR to be plugged in easily
Host/Guest Communication
Move metadata server from api to compute (*)
Prototype a unique nic for backchannel communication (*)
High Availability
NTT has instructions for failover using HA-Linux for nova-network
Create recovery strategy for error cases (*)
Improve RPC
Send complete data in messages instead of using DB
Add timeouts to rpc.call to support handling errors (*)
Network as a Service
Leaving security groups in nova for the moment
We will investigate whether to pull out nova code or supply an extra manager for new functionality (*)
network-service created on launchpad to hold new projects
Resource UUIDs
We will convert all of the resources to use UUIDs instead of integer ids (*)
We will supply a mapping layer for ec2 compatibility that will map ec2 ids to UUIDS (*)
Code Quality
No clear decision on object model vs. dictionary
Justin provided prototype of full-featured object approach
A proposal is to to use existing code with better tests (*) Termie
Another proposal is for lightweight objects (*) Vish
Auth Service
Will be developed in quick iterations
Nova will start with two simple shims (auto-create users and projects) and (ec2 to auth token) (*)
Shims will be removed as auth gains the necessary features
Concerns about AuthZ and zones will be pushed until after the basic integration is done
Follow ups