---
# Enable the creation of Neutron networks for isolated OvercloudV
# traffic and configure each role to assign ports (related
# to that role) on these networks.
# Many networks are disabled by default because they are not used
# in a typical configuration. Override via parameter_defaults.
resource_registry:
  OS::TripleO::Network::External: |-
     /usr/share/openstack-tripleo-heat-templates/network/external.yaml
  OS::TripleO::Network::InternalApi: OS::Heat::None
  OS::TripleO::Network::StorageMgmt: OS::Heat::None
  OS::TripleO::Network::Storage: OS::Heat::None
  OS::TripleO::Network::Tenant: OS::Heat::None
  # Management network is optional and disabled by default
  # OS::TripleO::Network::Management:
  #     /usr/share/openstack-tripleo-heat-templates/network/noop.yaml

  # Port assignments for the VIPs
  OS::TripleO::Network::Ports::ExternalVipPort: |-
      /usr/share/openstack-tripleo-heat-templates/network/ports/external.yaml
  OS::TripleO::Network::Ports::InternalApiVipPort: |-
      /usr/share/openstack-tripleo-heat-templates/network/ports/noop.yaml
  OS::TripleO::Network::Ports::StorageVipPort: |-
      /usr/share/openstack-tripleo-heat-templates/network/ports/noop.yaml
  OS::TripleO::Network::Ports::StorageMgmtVipPort: |-
      /usr/share/openstack-tripleo-heat-templates/network/ports/noop.yaml
  OS::TripleO::Network::Ports::RedisVipPort: |-
      /usr/share/openstack-tripleo-heat-templates/network/ports/ctlplane_vip.yaml

  # Port assignments for the controller role
  OS::TripleO::Controller::Ports::ExternalPort: |-
      /usr/share/openstack-tripleo-heat-templates/network/ports/external.yaml
  OS::TripleO::Controller::Ports::InternalApiPort: |-
      /usr/share/openstack-tripleo-heat-templates/network/ports/noop.yaml
  OS::TripleO::Controller::Ports::StoragePort: |-
      /usr/share/openstack-tripleo-heat-templates/network/ports/noop.yaml
  OS::TripleO::Controller::Ports::StorageMgmtPort: |-
      /usr/share/openstack-tripleo-heat-templates/network/ports/noop.yaml
  OS::TripleO::Controller::Ports::TenantPort: |-
      /usr/share/openstack-tripleo-heat-templates/network/ports/noop.yaml
  # OS::TripleO::Controller::Ports::ManagementPort:
  #     /usr/share/openstack-tripleo-heat-templates/network/ports/noop.yaml

  # Port assignments for the compute role
  OS::TripleO::Compute::Ports::InternalApiPort: |-
      /usr/share/openstack-tripleo-heat-templates/network/ports/noop.yaml
  OS::TripleO::Compute::Ports::StorageMgmtPort: |-
      /usr/share/openstack-tripleo-heat-templates/network/ports/noop.yaml
  OS::TripleO::Compute::Ports::StoragePort: |-
      /usr/share/openstack-tripleo-heat-templates/network/ports/noop.yaml
  OS::TripleO::Compute::Ports::TenantPort: |-
      /usr/share/openstack-tripleo-heat-templates/network/ports/noop.yaml
  OS::TripleO::Compute::Ports::ExternalPort: |-
      /usr/share/openstack-tripleo-heat-templates/network/ports/external.yaml
  # OS::TripleO::Compute::Ports::ManagementPort:
  #     /usr/share/openstack-tripleo-heat-templates/network/ports/noop.yaml

  # NIC assignments
  OS::TripleO::Compute::Net::SoftwareConfig: nics/compute.yaml
  OS::TripleO::Controller::Net::SoftwareConfig: nics/controller.yaml

  # Services
  OS::TripleO::Services::SwiftStorage: OS::Heat::None
  OS::TripleO::Services::SwiftRingBuilder: OS::Heat::None
  OS::TripleO::Services::SwiftProxy: OS::Heat::None

  # Extra Config
  OS::TripleO::ComputeExtraConfigPre: OS::Heat::None
  OS::TripleO::ControllerExtraConfigPre: OS::Heat::None

parameter_defaults:
  NeutronExternalNetworkBridge: 'br-ex'

  ServiceNetMap:
    NeutronTenantNetwork: tenant
    CeilometerApiNetwork: internal_api
    AodhApiNetwork: internal_api
    OpendaylightApiNetwork: internal_api
    MongoDbNetwork: internal_api
    CinderApiNetwork: internal_api
    CinderIscsiNetwork: storage
    GlanceApiNetwork: internal_api
    GlanceRegistryNetwork: internal_api
    KeystoneAdminApiNetwork: ctlplane
    KeystonePublicApiNetwork: internal_api
    NeutronApiNetwork: internal_api
    HeatApiNetwork: internal_api
    NovaApiNetwork: internal_api
    NovaMetadataNetwork: internal_api
    NovaVncProxyNetwork: internal_api
    SwiftMgmtNetwork: storage
    SwiftProxyNetwork: storage
    TackerApiNetwork: internal_api
    CongressApiNetwork: internal_api
    HorizonNetwork: internal_api
    MemcachedNetwork: internal_api
    RabbitMqNetwork: internal_api
    RedisNetwork: internal_api
    MysqlNetwork: internal_api
    CephClusterNetwork: storage
    CephPublicNetwork: storage
    # Define which network will be used for hostname resolution
    ControllerHostnameResolveNetwork: internal_api
    ComputeHostnameResolveNetwork: internal_api
    BlockStorageHostnameResolveNetwork: internal_api
    ObjectStorageHostnameResolveNetwork: internal_api
    CephStorageHostnameResolveNetwork: storage