# A Heat environment file that enables DVR in the overcloud.
# This works by configuring L3 and Metadata agents on the
# compute nodes.
resource_registry:
  OS::TripleO::Services::ComputeNeutronL3Agent: ../puppet/services/neutron-l3-compute-dvr.yaml
  OS::TripleO::Services::ComputeNeutronMetadataAgent: ../puppet/services/neutron-metadata.yaml

  # With DVR enabled, the Compute nodes also need the br-ex bridge to be
  # connected to a physical network.
  OS::TripleO::Compute::Net::SoftwareConfig: ../net-config-bridge.yaml

  # DVR requires a port on the external network for each compute node.
  # This will usually match the one currently in use for
  # OS::TripleO::Controller::Ports::ExternalPort.
  # Please review your network configuration before deploying to ensure that
  # this is appropriate.
  OS::TripleO::Compute::Ports::ExternalPort: ../network/ports/noop.yaml

parameter_defaults:

  # DVR requires that the L2 population feature is enabled
  NeutronMechanismDrivers: ['openvswitch', 'l2population']
  NeutronEnableL2Pop: 'True'

  # Setting NeutronEnableDVR enables distributed routing support in the
  # ML2 plugin and agents that support this feature
  NeutronEnableDVR: true

  # We also need to set the proper agent mode for the L3 agent.  This will only
  # affect the agent on the controller node.
  NeutronL3AgentMode: 'dvr_snat'

  # L3 HA isn't supported for DVR enabled routers. If upgrading from a system
  # where L3 HA is enabled and has neutron routers configured, it is
  # recommended setting this value to true until such time all routers can be
  # migrated to DVR routers. Once migration of the routers is complete,
  # NeutronL3HA can be returned to false. All new systems should be deployed
  # with NeutronL3HA set to false.
  NeutronL3HA: false
