Skip to content

Openstack Conceptual Mapping

Dan Maas edited this page May 23, 2016 · 3 revisions

Maintainer: <*@target.com>

Openstack - Clouddriver Concepts

Clouddriver has a set of interfaces. The idea is to map Openstack concepts onto this model to get maximum support when plugging into the rest of Spinnaker. The following table covers this. To consume the table, remember that Openstack Stacks map 1-to-1 with Spinnaker server groups.

Table 1. Clouddriver/Openstack relationships
Spinnaker object Details Openstack object

Account

contains:

  • Openstack account details (username, password, url, etc)

Openstack account

Project

contains:

  • 0..N Applications

A logical grouping for categorization and dashboard purposes.

Application

contains:

  • 0..N Cluster

  • 1..N Account

A logical grouping of tiers that together form an application. For example you could create an application with a Openstack cluster, an AWS cluster, and a GCE cluster. Each cluster is comprised of server groups. NOTE: There is nothing Openstack specific about an application.

Cluster

contains:

  • 0..N ServerGroup

  • 1 Account

A cluster is an aggregation of server groups grouped together by account. For example, you could create a cluster with a Redis server group, a JVM server group, and a Cassandra server group. NOTE: There is nothing Openstack specific about a cluster.

ServerGroup

contains:

  • 1..N Instance

  • 0..N LoadBalancer

  • 1..N SecurityGroup

  • 1 Region

  • 1..N Network

  • 1 Flavor

  • 1 Account

The basic unit of work. This is created via a Heat Orchestration Template (HOT) that creates an Openstack stack based on the aforementioned template.

TODO: Add more description about HOT and stacks here.

LoadBalancer

contains:

  • Openstack load balancer pool definition

Used to create, update, list, and delete load balancers. Note: this will target software load balancers such as haproxy.

SecurityGroup

can be associated with:

  • 0..N ServerGroup

Represents and Openstack security group.

Instance

is associated with:

  • 1 ServerGroup

  • 0..1 zone???

TODO: can server groups have their instances associated to zones?

Number of scaled instances of an app, whether blue/green/none type. These are created automatically when a server group is created.

Region

contains:

  • Region name

The region in which the instances of this server group are known to exist. Use the keystone api to select possible regions. In V3 you can list regions, in V2 you cannot.