网络服务功能链的资源插件

https://blueprints.launchpad.net/heat/+spec/sfc-heat

添加用于网络服务功能链的资源插件。

问题描述

OpenStack neutron 支持服务功能链 (sfc) 作为官方子项目,更多详细信息请参见 https://docs.openstack.org/developer/networking-sfc/ 。 Heat 目前没有提供用于网络服务功能链的资源插件,本蓝图旨在提供所需的插件。

提议的更改是通过组合服务功能 VM 的 neutron 端口的顺序来引入服务功能链,并根据所需的的服务处理将分类的用户流量引导到链中。

提议的变更

在 resources/openstack/neutron/ 下添加以下资源插件,并添加 port_pair、port_pair_group、flow_classifier neutron 约束用于资源验证。

  • OS::Neutron::PortPair

    • name
      • 类型:字符串

      • update_allowed: true

    • description
      • 类型:字符串

      • required: false

      • update_allowed: true

    • ingress
      • 类型:字符串

      • required: true

      • constraints: 自定义约束 ‘neutron.port’

    • egress
      • 类型:字符串

      • required: true

      • constraints: 自定义约束 ‘neutron.port’

    • service_function_parameters
      • type: map

      • required: false

      • default: {‘correlation’: None}

  • OS::Neutron::PortPairGroup

    • name
      • 类型:字符串

      • update_allowed: true

    • description
      • 类型:字符串

      • required: false

      • update_allowed: true

    • port_pairs
      • type: list

      • default: []

      • required: true

      • update_allowed: true

      • constraints: 自定义约束 ‘neutron.port_pair’

  • OS::Neutron::PortChain

    • name
      • 类型:字符串

      • update_allowed: true

    • description
      • 类型:字符串

      • required: false

      • update_allowed: true

    • port_pair_groups
      • type: list

      • default: []

      • required: true

      • constraints: 自定义约束 ‘neutron.port_pair_group’

    • flow_classifiers
      • type: list

      • default: []

      • required: false

      • update_allowed: true

      • constraints: 自定义约束 ‘neutron.flow_classifier’

    • chain_parameters
      • type: map

      • required: false

      • default: {correlation: mpls}

  • OS::Neutron::FlowClassifier

    • name
      • 类型:字符串

      • update_allowed: true

    • description
      • 类型:字符串

      • required: false

      • update_allowed: true

    • protocol
      • 类型:字符串

      • required: false

      • allowed_values: [tcp, udp, icmp, any]

    • ethertype
      • 类型:字符串

      • required: false

      • allowed_values: [IPv4, IPv6]

      • default : Ipv4

    • source_ip_prefix
      • 类型:字符串

      • required: false

      • default: [correlation=mpls]

      • constraints: 自定义约束 ‘net_cidr’

    • destination_ip_prefix
      • 类型:字符串

      • required: false

      • default: [correlation=mpls]

      • constraints: 自定义约束 ‘net_cidr’

    • source_port_range_min
      • 类型:字符串

      • required: false

      • constraints.Range: (1, 65535)

    • source_port_range_max
      • 类型:字符串

      • required: false

      • constraints.Range: (1, 65535)

    • destination_port_range_min
      • 类型:字符串

      • required: false

      • constraints.Range: (1, 65535)

    • destination_port_range_max
      • 类型:字符串

      • required: false

      • constraints.Range: (1, 65535)

    • logical_source_port
      • 类型:字符串

      • required: true

      • constraints: 自定义约束 ‘neutron.port’

    • logical_destination_port
      • 类型:字符串

      • required: false

      • constraints: 自定义约束 ‘neutron.port’

    • l7_parameters
      • type: map

      • required: false

备选方案

实现

负责人

主要负责人

Mohankumar (nmohankumar1011@gmail.com)

里程碑

newton-1

工作项

  • 添加相关资源

  • 添加所需的自定义约束

  • 添加相关测试

  • 在 heat-templates 中添加示例模板

依赖项