新的 Neutron 配额资源类型¶
https://blueprints.launchpad.net/heat/+spec/neutron-quota-resource
管理员希望能够在 HOT 模板中指定项目的 Neutron 配额。此蓝图建议为 Neutron 配额创建一个新的 Heat 资源类型。
问题描述¶
目前,管理员可以使用类似于以下模板的模板,通过 heat 创建一个新的 keystone 项目
resources:
test_role:
type: OS::Keystone::Role
properties:
name: test_role
test_project:
type: OS::Keystone::Project
properties:
name: test_project
enabled: True
test_user:
type: OS::Keystone::User
properties:
name: test_user
domain: default
default_project: {get_resource: test_project}
roles:
- role: {get_resource: test_role}
domain: default
- role: {get_resource: test_role}
project: {get_resource: test_project}
然而,为了指定与项目关联的 Neutron 配额,管理员需要在编排完成后执行类似如下操作:
$ os quota set --floating-ips 5 --networks 5 --subnets 5 <project>
用例¶
对于 Openstack 管理员来说,理想的情况是能够使用定义项目、项目成员以及分配配额的模板来整体管理项目。
提议的变更¶
此蓝图建议向 Heat 添加新的资源类型 OS::Neutron::Quota,以解决上述问题。一个示例 OS::Neutron::Quota 模板
resources:
neutron_quota:
type: OS::Neutron::Quota
properties:
project: {get_param: project}
floating_ips: 5
health_monitors: 5
members: 5
networks: 5
pools: 5
ports: 5
rbac_policies: 5
routers: 5
security_groups: 5
security_group_rules: 5
subnetpools: 5
subnets: 5
vips: 5
outputs:
neutron_quota_id:
value: {get_resource: neutron_quota}
属性:
- project
必需: True
类型: 字符串
描述: OpenStack keystone 项目
约束条件:必须是有效的 Keystone 项目
- floating_ips
类型: 整数
描述:浮动 IP 的配额
约束条件:最小值是 -1
- health_monitors
类型: 整数
描述:健康监控的配额
约束条件:最小值是 -1
- members
类型: 整数
描述:成员的配额
约束条件:最小值是 -1
- networks
类型: 整数
描述:网络的配额
约束条件:最小值是 -1
- pools
类型: 整数
描述:池的配额
约束条件:最小值是 -1
- ports
类型: 整数
描述:端口的配额
约束条件:最小值是 -1
- rbac_policies
类型: 整数
描述:RBAC 策略的配额
约束条件:最小值是 -1
- routers
类型: 整数
描述:路由器的配额
约束条件:最小值是 -1
- security_groups
类型: 整数
描述:安全组的配额
约束条件:最小值是 -1
- security_group_rules
类型: 整数
描述:安全组规则的配额
约束条件:最小值是 -1
- subnetpools
类型: 整数
描述:子网池的配额
约束条件:最小值是 -1
- subnets
类型: 整数
描述:子网的配额
约束条件:最小值是 -1
- vips
类型: 整数
描述:VIP 的配额
约束条件:最小值是 -1
将为该资源添加默认策略规则,限制其仅供管理员使用。
"resource_types:OS::Neutron::Quota": "rule:project_admin"
此配额资源将处理创建、更新和删除。对于处理创建和更新,资源将调用 Neutron 客户端的 quota-set 更新方法,因为没有配额创建调用。对于处理删除,资源将调用 Neutron 客户端的 quota delete 方法。这将把配额重置为默认值。请注意,创建多个资源并删除一个将重置配额,即使其他资源仍然存在。
备选方案¶
管理员或操作员可以在项目编排完成后手动更改项目的默认配额。
OS::Keystone::Project 可以包含一个可选的 Quota 属性。但是,添加似乎超出了 Keystone 的范围,因为 Keystone 没有配额的概念。
实现¶
负责人¶
主要负责人
Yosef Hoffman - yohoffman
其他指派人
Julian Sy - syjulian
Andy Hsiang - yh418t
里程碑¶
- 完成目标里程碑
ocata-1
工作项¶
实现新的资源类型 OS::Neutron::Quota
实现适当的单元和功能测试
依赖项¶
无