实现 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
依赖项¶
无