实现 Magnum 资源

https://blueprints.launchpad.net/heat/+spec/magnum-resources

此蓝图建议添加对 Magnum 资源的支持。

问题描述

Magnum 是一种容器管理服务,目前 Heat 不支持。将向 Heat 添加资源以支持

  • Baymodel,一个对象存储模板信息,描述 bay,用于一致地创建新的 bay。

  • Bay,一个节点对象的集合,用于调度工作。

  • Pod,一个在单个物理或虚拟机上运行的容器集合。

  • Service,一种抽象,定义了一组逻辑 Pod 以及访问它们的方式策略。

  • ReplicationController,一种用于管理 POD 组的抽象,以确保运行指定数量的 POD。

  • Node,一个裸机或虚拟机,用于执行工作

  • Container,一个 docker 容器

提议的变更

Magnum 资源未集成,因此将添加到 contrib 目录。

将添加 Magnum 客户端插件用于与 Magnum 通信,Magnum 有其自身的要求。将添加以下资源

添加 OS::Magnum::BayModel 资源

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

添加 OS::Magnum::Bay 资源

resources:
  bay:
    type: OS::Magnum::Bay
    properties:
      name: String
      baymodel: { get_resource: model }
      node_count: Int
      discovery_url: String
      bay_create_timeout: Int

添加 OS::Magnum::Pod 资源

resources:
  pod:
    type: OS::Magnum::Pod
    properties:
      bay: { get_resource: bay }
      manifest: SOFTWARE_CONFIG
      manifest_url: String

添加 OS::Magnum::Service 资源

resources:
  service:
    type: OS::Magnum::Service
    properties:
      bay: { get_resource: bay }
      manifest: SOFTWARE_CONFIG
      manifest_url: String

添加 OS::Magnum::ReplicationController 资源

resources:
  rc:
    type: OS::Magnum::ReplicationController
    properties:
      bay: { get_resource: bay }
      manifest: SOFTWARE_CONFIG
      manifest_url: String

添加 OS::Magnum::Node 资源

resources:
  rc:
    type: OS::Magnum::Node
    properties:
      name: String
      type: String
      image: String

添加 OS::Magnum::Container 资源

resources:
  rc:
    type: OS::Magnum::Node
    properties:
      name: String
      type: String
      command: String

备选方案

实现

负责人

主要负责人

<rpothier@cisco.com>

里程碑

完成目标里程碑

liberty-1

工作项

  • 添加 Heat 的 Magnum 客户端插件

  • 添加 Magnum BayModel 和 Bay 资源

  • 添加 Magnum Pod、Service 和 ReplicationController 资源

  • 添加 Magnum Node 和 Container 资源

依赖项