heat_template_version: 2016-04-08

description: >
  OpenStack Neutron DHCP agent configured with Puppet

parameters:
  EndpointMap:
    default: {}
    description: Mapping of service endpoint -> protocol. Typically set
                 via parameter_defaults in the resource registry.
    type: json
  NeutronEnableIsolatedMetadata:
    default: 'False'
    description: If True, DHCP provide metadata route to VM.
    type: string

resources:

  NeutronBase:
    type: ./neutron-base.yaml

outputs:
  role_data:
    description: Role data for the Neutron DHCP agent service.
    value:
      service_name: neutron_dhcp
      config_settings:
        map_merge:
          - get_attr: [NeutronBase, role_data, config_settings]
          - neutron::agents::dhcp::enable_isolated_metadata: {get_param: NeutronEnableIsolatedMetadata}
            tripleo.neutron_dhcp.firewall_rules:
              '115 neutron dhcp input':
                proto: 'udp'
                dport: 67
              '116 neutron dhcp output':
                proto: 'udp'
                chain: 'OUTPUT'
                dport: 68
      step_config: |
        include tripleo::profile::base::neutron::dhcp