heat_template_version: rocky description: > Configuration of Neutron Availability Zones in the overcloud parameters: ServiceData: default: {} description: Dictionary packing service data type: json 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 RoleName: default: '' description: Role name on which the service is applied type: string RoleParameters: default: {} description: Parameters specific to the role type: json EndpointMap: default: {} description: Mapping of service endpoint -> protocol. Typically set via parameter_defaults in the resource registry. type: json AdminPassword: description: The password for the keystone admin account, used for monitoring, querying neutron etc. type: string hidden: true NeutronDefaultAvailabilityZones: description: Comma-separated list of default network availability zones to be used by Neutron if its resource is created without availability zone hints. If not set, the default will be equal to the stack/plan name. default: '' type: string NeutronL3AgentAvailabilityZone: description: Availability zone for Neutron L3 agent. If not set, the default will be equal to the stack/plan name default: '' type: string NeutronDhcpAgentAvailabilityZone: description: Availability zone for Neutron DHCP agent. If not set, the default will be equal to the stack/plan name default: '' type: string NeutronNetworkSchedulerDriver: description: The network schedule driver to use for avialability zones. default: neutron.scheduler.dhcp_agent_scheduler.AZAwareWeightScheduler type: string NeutronRouterSchedulerDriver: description: The router schedule driver to use for avialability zones. default: neutron.scheduler.l3_agent_scheduler.AZLeastRoutersScheduler type: string NeutronDhcpLoadType: description: Additional to the availability zones aware network scheduler. default: networks type: string RootStackName: description: The name of the stack/plan. type: string resources: NeutronAvailabilityZones: type: OS::Heat::Value properties: value: if: - equals: - {get_param: NeutronDefaultAvailabilityZones} - "" - {get_param: RootStackName} - {get_param: NeutronDefaultAvailabilityZones} NeutronL3AgentAvailabilityZoneReal: type: OS::Heat::Value properties: value: if: - equals: - {get_param: NeutronL3AgentAvailabilityZone} - "" - {get_param: RootStackName} - {get_param: NeutronL3AgentAvailabilityZone} NeutronDhcpAgentAvailabilityZoneReal: type: OS::Heat::Value properties: value: if: - equals: - {get_param: NeutronDhcpAgentAvailabilityZone} - "" - {get_param: RootStackName} - {get_param: NeutronDhcpAgentAvailabilityZone} outputs: role_data: description: Role data for the Neutron Availability Zone configuration value service: service_name: neutron_az_config config_settings: neutron::server::dhcp_load_type: {get_param: NeutronDhcpLoadType} neutron::server::network_scheduler_driver: {get_param: NeutronNetworkSchedulerDriver} neutron::server::router_scheduler_driver: {get_param: NeutronRouterSchedulerDriver} neutron::server::default_availability_zones: {str_split: [',', {get_attr: [NeutronAvailabilityZones, value]}]} neutron::agents::l3::availability_zone: {get_attr: [NeutronL3AgentAvailabilityZoneReal, value]} neutron::agents::dhcp::availability_zone: {get_attr: [NeutronDhcpAgentAvailabilityZoneReal, value]}