Jump to: navigation, search

Heat/PolicyExtension

< Heat
Revision as of 03:46, 27 September 2013 by Mike Spreitzer (talk | contribs) (A proposed extension to heat templates for expressing policies relevant to infrastructure scheduling)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Policy Extension to Heat Templates

This page describes a proposed extension to Heat templates allowing expression of various sorts of policies relevant to infrastructure. First is a description of the information model, which focuses on what is being said without getting into details of concrete syntax. Next are some use cases. Next is a proposal for concrete syntax. Lastly there are some examples using the concrete syntax.

Information Model

This extension introduces three concepts in templates: groups, policies, and relationships.

This extension also introduces a meta-model for the datacenters in which templates will be instantiated. A datacenter is modeled as a tree whose leaves are the physical resources that can host the virtual resources prescribed by templates. Each vertex in the tree is labeled with a level, drawn from a vocabulary established by the datacenter or some more central authority. Open question: who defines this vocabulary? The levels stand in a partial order, we say some levels are more fine grained or more coarse grained than other levels. The usage of levels in the tree must be consistent with this partial order. Thus, the root might be labeled with level=room while a leaf might be labeled with level=PM. The ordering is only partial because some levels might be incommensurate. For example, level=PM can host VMs while level=StorageBox can host Cinder volumes.

Groups are used to group resources together for concise application of policies and relationships. The resources of the template are partitioned among some groups, and those groups are members of other groups, and so on. All in all, there is a tree of groups and the leaf groups contain resources.

A policy is something that, in its essence, is about the relationship between two resources.

Use Cases

Concrete Syntax

Concrete Examples