← Back to team overview

openstack team mailing list archive

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