实现 Senlin 资源

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

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

问题描述

Senlin 是一种通用的集群服务,目前 Heat 不支持。将向 Heat 添加资源以支持

  • 集群 - 集群可以管理一组节点。

  • 配置 - Senlin 通过称为配置的概念来支持对象的创建、删除和更新。每个配置本质上都是一个驱动程序,用于与某些服务进行对象操作的通信。

  • 节点 - 节点是属于最多一个集群的对象。

  • 策略 - 策略是一组规则,可以在对集群执行操作时进行检查和/或强制执行。

  • 接收器 - 接收器是在 senlin 引擎上创建的抽象资源,可用于将引擎连接到某些外部事件/警报源。

提议的变更

将向 heat 添加 Senlin 客户端插件和 Senlin 资源。

1. 集群

描述:Senlin 中的集群资源可以创建和管理相同性质的对象,例如 Nova 服务器、Heat 堆栈、Cinder 卷等。这些对象的集合称为集群。

命名空间:OS::Senlin::Cluster

必需属性:

profile

Senlin 配置的名称或 ID。字符串值。将对其应用自定义约束 ‘senlin.profile’。允许更新。

可选属性:

name

Senlin 集群的名称。字符串值。允许更新。

min_size

集群中的最小资源数。整数值。允许更新。

max_size

集群中的最大资源数。整数值。允许更新。

desired_capacity

集群中所需的初始资源数。整数值。允许更新。

metadata

为集群定义的元数据键值。Map 值。允许更新。

timeout

等待集群操作的秒数。整数值。允许更新。

2. 配置

描述:Senlin 中的配置资源是描述如何在集群中创建节点的模板。

命名空间:OS::Senlin::Profile

必需属性:

type

Senlin 配置的类型。字符串值。自定义约束 ‘senlin.profile_type’。

可选属性:

name

Senlin 配置的名称。字符串值。允许更新。

metadata

为配置定义的元数据键值。Map 值。允许更新。

properties

Senlin 配置的属性。Map 值。

3. 策略

描述:策略是一组规则,可以在对集群执行操作时进行检查和/或强制执行。策略资源可以附加到多个集群。

命名空间:OS::Senlin::Policy

必需属性:

type

senlin 策略的类型。字符串值。自定义约束 ‘senlin.policy_type’。

可选属性:

name

Senlin 策略的名称。字符串值。允许更新。

description

Senlin 策略的描述。字符串值。

properties

Senlin 策略的属性。Map 值。

bindings

此策略附加到的集群。列表值,[{cluster: String, enabled: Boolean}] 允许更新。

4. 节点

描述:节点是属于最多一个集群的对象,可以基于配置创建。

命名空间:OS::Senlin::Node

必需属性:

profile

此节点的 senlin 配置的名称或 ID。字符串值。使用 ‘senlin.profile’ 约束。允许更新。

可选属性:

cluster

此节点将附加到的 senlin 集群的名称或 ID。字符串值。使用 ‘senlin.cluster’ 约束。

metadata

此节点的元数据。Map 值。允许更新。

name

此节点的名称。字符串值。允许更新。

5. 接收器

描述:接收器是在 senlin 引擎上创建的抽象资源,可用于将引擎连接到某些外部事件/警报源。

命名空间:OS::Senlin::Receiver

必需属性:

cluster

要附加到的 senlin 集群的名称或 ID。字符串值。使用 ‘senlin.cluster’ 约束。

操作

接收到信号时要执行的操作。字符串值。允许的值为 [CLUSTER_SCALE_OUT, CLUSTER_SCALE_IN]

可选属性:

type

接收器的类型。字符串值。默认值为 ‘webhook’。允许的值为 [‘webhook’]。

name

此接收器的名称。字符串值。

params

接收到信号时传递给操作的参数。Map 值。

属性:

actor

actor 中将包含一个 trust id。Map 值。

channel

channel 中将包含一个 ‘alarm_url’。Map 值。

备选方案

实现

负责人

主要负责人

Ethan Lynn <xjunlin@cn.ibm.com>

里程碑

完成目标里程碑

Mikata-3

工作项

  • 为 Heat 添加 Senlin 客户端插件

  • 添加 OS::Senlin::Cluster 资源

  • 添加 OS::Senlin::Profile 资源

  • 添加 OS::Senlin::Policy 资源

  • 添加 OS::Senlin::Node 资源

  • 添加 OS::Senlin::Receiver 资源

  • 将示例模板添加到 heat-templates

依赖项