heat_template_version: rocky

description: >
  Bagpipe Driver configured with Puppet

parameters:
  BagpipeMyAs:
    default:
    description: Private Autonomous System number
    type: number
  BagpipeApiPort:
    default: 8084
    description: BGP component API port
    type: number
  BagpipeDataplaneDriverIpVpn:
    default: 'ovs'
    description: IP VPN dataplane drvier class
    type: string
  BagpipeEnableRtc:
    default: true
    description: Enable Route Target Constraint
    type: boolean
  BagpipeOvsBridge:
    default: 'br-mpls'
    description: OVS bridge to use
    type: string
  BagpipePeers:
    default: ''
    description: List of peers' IPs to establish BGP connections
    type: comma_delimited_list
  ServiceData:
    default: {}
    description: Dictionary packing service data
    type: json
  ServiceNetMap:
    default: {}
    description: Mapping of service_name -> network name. Typically set
                 via parameter_defaults in the resource registry.  This
                 mapping overrides those in ServiceNetMapDefaults.
    type: json
  DefaultPasswords:
    default: {}
    type: json
  RoleName:
    default: ''
    description: Role name on which the service is applied
    type: string
  RoleParameters:
    default: {}
    description: Parameters specific to the role
    type: json
  EndpointMap:
    default: {}
    description: Mapping of service endpoint -> protocol. Typically set
                 via parameter_defaults in the resource registry.
    type: json

outputs:
  role_data:
    description: Role data for the Bagpipe role.
    value:
      service_name: neutron_bgpvpn_bagpipe
      config_settings:
        neutron::agents::bagpipe::my_as: {get_param: BagpipeMyAs}
        neutron::agents::bagpipe::api_port: {get_param: BagpipeApiPort}
        neutron::agents::bagpipe::dataplane_driver_ipvpn: {get_param: BagpipeDataplaneDriverIpVpn}
        neutron::agents::bagpipe::enable_rtc: {get_param: BagpipeEnableRtc}
        neutron::agents::bagpipe::ovs_bridge: {get_param: BagpipeOvsBridge}
        neutron::agents::bagpipe::peers: {get_param: BagpipePeers}
      step_config: |
              include ::tripleo::profile::base::neutron::agents::bagpipe
