Jump to: navigation, search


Revision as of 21:59, 21 April 2014 by Travis Tripp (talk | contribs) (How you use it)

Introduction and Project Goals

The high level goal of Graffiti is for OpenStack users to be able to declare the capabilities and service level objectives they require in a more portable way than they do today. The system will then guide the selection of lower level cloud resources that match the desired capabilities.

Various OpenStack services provide techniques to abstract low level resource selection to one level higher, such as flavors, volume types, or artifact types. These resource abstractions often allow "metadata" in terms of key-value pair properties to further specialize and describe instances of each resource type. However, collaborating on those properties is largely a disconnected and difficult process. This often involves searching outdated wikis and opening the source code. It becomes more difficult as a cloud's scale grows. In addition, many times the properties can apply to resources from several different services.

At its most basic concept Graffiti is a project to enable better metadata collaboration across services and projects. Graffiti intends to provide a common methodology to describe resource capabilities in the cloud which we believe can then be leveraged by other projects such as Horizon, Nova, Heat, scheduling, reservation, and policy enforcement to enable better cross service collaboration and consistency.

How you use it

  1. Load your metadata definitions (called property types or capability types) into the Graffiti central dictionary or configure Graffiti to include existing definitions provided by the various services
  2. "Tag" the resources in the cloud with your properties and capabilities
  3. Let users find the resources with your desired properties and capabilities

Frequently Asked Questions

Please see our Graffiti/FAQ for answers to common questions.

How it works

Graffiti provides cross service "metadata tagging" and search aggregation for cloud resources. In Graffiti, metadata definitions may be simple property types or may be structured into simple hierarchy of objects that we call capabilities.

Graffiti provides cross service and cross environment:

  • metadata definition aggregation and administration
  • resource "tagging" aggregation
  • resource metadata search aggregation


The full architecture may be found on the Architecture page.


The Graffiti project currently has the following aspects:

  • Immediate improvements in Horizon with no required changes to existing services. This has some inherent limitations.
  • A central collaboration service without the limitations of a Horizon only solution
    • With the intent of also enhancing existing services as needed through a variety of blueprints

We are working on a proof of concept with Horizon that crosses Nova, Glance, and Cinder. We are using the POC to help us better understand technical issues and will use that to start working on existing projects and to implement our project.

We will be at the summit with a demo of the POC (in whatever state it is) and have a scheduled design session where we'd love to discuss with the community where Graffiti can best fit in to the ecosystem and how it may relate to other projects and use cases.


We will be showing a proof of concept demo in Horizon that crosses Nova, Glance, and Cinder at Horizon. We will upload screen casts soon of the progress.

Get Involved

Graffiti is new project that HP and Intel have started working on and we invite your participation. We encourage participation where Graffiti can best fit in to the ecosystem and how it may relate to other projects and use cases.

Graffiti is just getting underway and we are working on a POC. The POC is being done under open development.


The developers use IRC in #graffiti on Freenode for development discussion.