heat_template_version: 2016-04-08

description: >
  If the deployer doesn't have a DNS server for the overcloud nodes. This will
  populate the node-names and IPs for the VIPs of the overcloud.

parameters:
  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
  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 VIP hosts role
    value:
      service_name: vip_hosts
      config_settings:
        tripleo::vip_hosts::hosts_spec:
          external:
            name: "%{hiera('cloud_name_external')}"
            ip: "%{hiera('public_virtual_ip')}"
            ensure: present
            comment: FQDN of the external VIP
          internal_api:
            name: "%{hiera('cloud_name_internal_api')}"
            ip: "%{hiera('internal_api_virtual_ip')}"
            ensure: present
            comment: FQDN of the internal api VIP
          storage:
            name: "%{hiera('cloud_name_storage')}"
            ip: "%{hiera('storage_virtual_ip')}"
            ensure: present
            comment: FQDN of the storage VIP
          storage_mgmt:
            name: "%{hiera('cloud_name_storage_mgmt')}"
            ip: "%{hiera('storage_mgmt_virtual_ip')}"
            ensure: present
            comment: FQDN of the storage mgmt VIP
          ctlplane:
            name: "%{hiera('cloud_name_ctlplane')}"
            ip: "%{hiera('controller_virtual_ip')}"
            ensure: present
            comment: FQDN of the ctlplane VIP
      step_config: |
        include ::tripleo::vip_hosts
