heat_template_version: pike

description: >
  OpenStack Neutron Midonet plugin and services

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
  NeutronPassword:
    description: The password for the neutron service and db account, used by neutron agents.
    type: string
    hidden: true
  AdminPassword:
    description: The password for the keystone admin account, used for monitoring, querying neutron etc.
    type: string
    hidden: true
  AdminToken:
    description: The keystone auth secret and db password.
    type: string
    hidden: true
  EnableZookeeperOnController:
    label: Enable Zookeeper On Controller
    description: 'Whether enable Zookeeper cluster on Controller'
    type: boolean
    default: false
  EnableCassandraOnController:
    label: Enable Cassandra On Controller
    description: 'Whether enable Cassandra cluster on Controller'
    type: boolean
    default: false
  MonitoringSubscriptionNeutronMidonet:
    default: 'overcloud-neutron-midonet'
    type: string

outputs:
  role_data:
    description: Role data for the Neutron Midonet plugin and services
    value:
      service_name: neutron_midonet
      monitoring_subscription: {get_param: MonitoringSubscriptionNeutronMidonet}
      config_settings:
        tripleo::profile::base::neutron::midonet::admin_password: {get_param: AdminPassword}
        tripleo::profile::base::neutron::midonet::keystone_admin_token: {get_param: AdminToken}
        tripleo::profile::base::neutron::midonet::neutron_auth_password: {get_param: NeutronPassword}
        tripleo::profile::base::neutron::midonet::zk_on_controller: {get_param: EnableZookeeperOnController}
        tripleo::profile::base::neutron::midonet::neutron_auth_tenant: 'service'
        enable_cassandra_on_controller: {get_param: EnableCassandraOnController}
        neutron::service_plugins: []
      step_config: |
        include tripleo::profile::base::neutron::plugins::midonet