Implement Magnum resources¶
https://blueprints.launchpad.net/heat/+spec/magnum-resources
This Blueprint proposes to add support for Magnum resources.
Problem description¶
Magnum is a container management service that is currently not supported by Heat. Resources will be added to Heat to support:
Baymodel, An object stores template information about the bay which is used to create new bays consistently.
Bay, A collection of node objects where work is scheduled.
Pod, A collection of containers running on one physical or virtual machine.
Service, An abstraction which defines a logical set of pods and a policy by which to access them.
ReplicationController, An abstraction for managing a group of PODs to ensure a specified number of PODs are running.
Node, A baremetal or virtual machine where work executes
Container, A docker container
Proposed change¶
Magnum resources are not integrated, so they will be added to contrib directory.
Magnum client plugin will be added for communication with Magnum, which has his own requirements. Following resources will be added:
Add the OS::Magnum::BayModel resource
resources:
model:
type: OS::Magnum::BayModel
properties:
name: String
image: String
keypair: String
external_network: String
dns_nameserver: String
flavor: String
docker_volume_size: Int
network_driver: String
http_proxy: String
https_proxy: String
no_proxy: String
labels: String
insecure: Boolean
Add the OS::Magnum::Bay resource
resources:
bay:
type: OS::Magnum::Bay
properties:
name: String
baymodel: { get_resource: model }
node_count: Int
discovery_url: String
bay_create_timeout: Int
Add the OS::Magnum::Pod resource
resources:
pod:
type: OS::Magnum::Pod
properties:
bay: { get_resource: bay }
manifest: SOFTWARE_CONFIG
manifest_url: String
Add the OS::Magnum::Service resource
resources:
service:
type: OS::Magnum::Service
properties:
bay: { get_resource: bay }
manifest: SOFTWARE_CONFIG
manifest_url: String
Add the OS::Magnum::ReplicationController resource
resources:
rc:
type: OS::Magnum::ReplicationController
properties:
bay: { get_resource: bay }
manifest: SOFTWARE_CONFIG
manifest_url: String
Add the OS::Magnum::Node resource
resources:
rc:
type: OS::Magnum::Node
properties:
name: String
type: String
image: String
Add the OS::Magnum::Container resource
resources:
rc:
type: OS::Magnum::Node
properties:
name: String
type: String
command: String
Alternatives¶
None
Implementation¶
Assignee(s)¶
- Primary assignee:
Milestones¶
- Target Milestone for completion:
liberty-1
Work Items¶
Add Magnum client plugin for Heat
Add Magnum BayModel and Bay resources
Add Magnum Pod, Service and ReplicationController resources
Add Magnum Node and Container resources
Dependencies¶
None