Summary

Create a standard way of defining administrative vms / containers. These are vms that can plug into a project network (or management network) but are managed by the provider instead of the end user.

Release Note

The proposed blueprint will extend current external APIs by adding additional optional category parameter to instance-related APIs. Users should be able to continue using current version and will not notice any difference in behavior. This set of changes will also require database schema update and migration.

Rationale

Currently we have one type of administrative VM that is handled through custom code paths (pipelib.py) . VMs of this nature are very useful for providing various cloud services such as load balancing, queuing systems, databases, load balancers, network bridging components, etc. We need a consistent way to define these administrative vms, as well as apis for controlling them. This common definition should support both containers and traditional vms, perhaps even colocated on the same infrastructure.

Some types of administrative VMs might be managed by the provider, while others might be indirectly managed by the user through special interfaces/UI. One of examples of such instances is Virtual Storage Arrays/Controllers created by users, but users have no direct access to them (only to GUI, etc.)

User stories

Assumptions

Design

Taking into account that admin VMs are compute instances with special parameters, it is proposed to extend current APIs and add a new instance category parameter that will distinguish between types of instances.

In general, handling of instance categories will be similar to instance_types / flavors.

Supported operations with instance categories:

Each category will have:

Regular EC2 APIs might be used for spawning/terminating/rebooting/describing some types of administrative instances, while other types might be controlled by calling compute_apis directly.

Default behavior of these APIs will not be changed if category was not specified:

Having categories in a separate table will give us an opportunity in the future to establish relations between instance flavors and categories and register flavors for each category of instances. It will also allow us to store default values for different categories and simplify filtering of instances (check instance category id instead of parsing meta-data)

Filtering of images:

Filtering of volumes:

Implementation

UI Changes

Code Changes

Networking

TBD after multi-NIC

Authentication

TBD

Migration

Test/Demo Plan

This need not be added or completed until the specification is nearing beta.

Unresolved issues

This should highlight any issues that should be addressed in further specifications, and not problems with the specification itself; since any specification with problems cannot be approved.

BoF agenda and discussion

Use this section to take notes during the BoF; if you keep it in the approved spec, use it for summarising what was discussed and note any options that were rejected.


CategorySpec

Wiki: AdministrativeVMs (last edited 2011-06-08 22:48:05 by VladimirPopovski)