heat_template_version: rocky

description: >
  Containerized L2GW Service Plugin

parameters:
  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
  ContainerNeutronConfigImage:
    description: The container image to use for the neutron config_volume
    type: string
  L2gwServiceDefaultInterfaceName:
    default: 'FortyGigE1/0/1'
    description: default interface name of the L2 gateway
    type: string
  L2gwServiceDefaultDeviceName:
    default: 'Switch1'
    description: default device name of the L2 gateway
    type: string
  L2gwServiceQuotaL2Gateway:
    default: 5
    description: quota of the L2 gateway
    type: number
  L2gwServicePeriodicMonitoringInterval:
    default: 5
    description: The periodic interval at which the plugin
    type: number
  L2gwServiceProvider:
    default: ["L2GW:l2gw:networking_l2gw.services.l2gateway.service_drivers.L2gwDriver:default"]
    description: Backend to use as a service provider for L2 Gateway
    type: comma_delimited_list

resources:

  ContainersCommon:
    type: ../containers-common.yaml

outputs:
  role_data:
    description: Role data for the L2 Gateway role.
    value:
      service_name: neutron_l2gw_api
      config_settings:
        neutron::services::l2gw::default_interface_name: {get_param: L2gwServiceDefaultInterfaceName}
        neutron::services::l2gw::default_device_name: {get_param: L2gwServiceDefaultDeviceName}
        neutron::services::l2gw::quota_l2_gateway: {get_param: L2gwServiceQuotaL2Gateway}
        neutron::services::l2gw::periodic_monitoring_interval: {get_param: L2gwServicePeriodicMonitoringInterval}
        neutron::services::l2gw::service_providers: {get_param: L2gwServiceProvider}
      # BEGIN DOCKER SETTING
      puppet_config:
        config_volume: 'neutron'
        puppet_tags: neutron_l2gw_service_config
        step_config: |
          include tripleo::profile::base::neutron::l2gw
        config_image: {get_param: ContainerNeutronConfigImage}
      kolla_config: {}
      docker_config: {}
