outputs:
  PublicIP:
    description: Address for registering endpoints in the cloud.
    value: {get_attr: [undercloud_VLANPort, fixed_ips, 0, ip_address]}
resources:
  # Override the main template which can also supply a static route.
  undercloud_99VLANPort:
    type: OS::Heat::StructuredDeployment
    properties:
      config: {get_resource: undercloudVLANPortConfig}
      server: {get_resource: undercloud}
      signal_transport: NO_SIGNAL
  undercloudVLANPortConfig:
    type: OS::Heat::StructuredConfig
    properties:
      config:
        neutron:
          ovs:
            public_interface_tag_ip:
              Fn::Join:
              - '/'
              - - {get_attr: [undercloud_VLANPort, fixed_ips, 0, ip_address]}
                - '24'
                # This should also be pulled out of the subnet. May need a
                # neutron fix too - XXX make into a parameter and feed it
                # in via _undercloud.sh for now.
            # Tell the instance to apply the default route.
            # Reinstate when https://bugs.launchpad.net/heat/+bug/1336656 is
            # sorted
            # public_interface_route:
            #   get_attr: [undercloud_VLANPort, fixed_ips, 0, subnet, gateway_ip]
  undercloud_VLANPort:
    type: OS::Neutron::Port
    properties:
      name: undercloud_vlan
      network: public
      replacement_policy: AUTO