Support neutron QoS in heat¶
https://blueprints.launchpad.net/heat/+spec/support-neutron-qos
Provides support for neutron QoS feature.
Problem description¶
https://blueprints.launchpad.net/neutron/+spec/quantum-qos-api
After the above blueprint, neutron supports an api extension for QoS, and now provides support for attaching/detaching QoS policy to port and network resources(with create and update). There are two data models QoSPolicy and QoSRule, with a relationship: QoSRule(s)->QoSPolicy -> Port/Network. For now, neutron has implemented one rule type, QoSBandwidthLimitRule that provides bandwidth limit on the instance egress traffic.
Administrator of a cloud may want to offer different service levels based on the available network resources with heat, so this blueprint will provide support for neutron resource QoS in heat, based on above neutron resources for QoS.
Proposed change¶
Add following Resources under resources/openstack/neutron/
OS::Neutron::QoSPolicy
Properties:
- name:
type: String
required: True
description: The name of QoS policy
update_allowed: True
- description:
type: String
required: False
description: The description of QoS policy
update_allowed: True
- shared:
type: Boolean
required: False
description: Whether this QoS policy be shared to other tenants
update_allowed: True
default: False
- tenant_id:
type: String
required: False
description: The owner tenant ID of this QoS policy
update_allowed: False
Attributes:
- rules:
type: List
description: A list of all rules for the QoS policy
OS::Neutron::QoSBandwidthLimitRule
Properties:
- policy:
type: String
required: True
description: ID or name of the QoS policy
update_allowed: False
constraints: Custom Constrain ‘neutron.qos_policy’
- max-kbps:
type: Integer
required: True
description: Max bandwidth in kbps
update_allowed: True
constraints: Range(min=0)
- max-burst-kbps:
type: Integer
required: False
description: Max burst bandwidth in kbps
update_allowed: True
default: 0
constraints: Range(min=0)
2. Add ‘qos_policy’ property for OS::Neutron::Port and OS::Neutron::Network resources:
- qos_policy:
type: String
required: False
description: The name or ID of QoS policy to attach
update_allowed: True
constraints: Custom Constrain ‘neutron.qos_policy’
Alternatives¶
None
Implementation¶
Assignee(s)¶
- Primary assignee:
Milestones¶
- Target Milestone for completion:
mitaka-2
Work Items¶
Add resources related
Add property for port and network resources
Add related tests
Add sample templates in heat-templates project
Dependencies¶
None