heat_template_version: pike description: > OpenStack Neutron OVS DPDK configured with Puppet for Compute Role 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 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 HostCpusList: default: "0" description: List of cores to be used for host process type: string constraints: - allowed_pattern: "[0-9,-]+" NeutronDpdkCoreList: default: "" description: List of cores to be used for DPDK Poll Mode Driver type: string constraints: - allowed_pattern: "[0-9,-]*" NeutronDpdkMemoryChannels: default: "" description: Number of memory channels to be used for DPDK type: string constraints: - allowed_pattern: "[0-9]*" NeutronDpdkSocketMemory: default: "" description: Memory allocated for each socket type: string NeutronDpdkDriverType: default: "vfio-pci" description: DPDK Driver type type: string # below parameters has to be set in neutron agent only for compute nodes. # as of now there is no other usecase for these parameters except dpdk. # should be moved to compute only ovs agent in case of any other usecases. NeutronDatapathType: default: "" description: Datapath type for ovs bridges type: string NeutronVhostuserSocketDir: default: "" description: The vhost-user socket directory for OVS type: string resources: NeutronOvsAgent: type: ./neutron-ovs-agent.yaml properties: ServiceNetMap: {get_param: ServiceNetMap} DefaultPasswords: {get_param: DefaultPasswords} EndpointMap: {get_param: EndpointMap} RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} OpenVswitchUpgrade: type: ./openvswitch-upgrade.yaml # Merging role-specific parameters (RoleParameters) with the default parameters. # RoleParameters will have the precedence over the default parameters. RoleParametersValue: type: OS::Heat::Value properties: type: json value: map_replace: - map_replace: - neutron::agents::ml2::ovs::datapath_type: NeutronDatapathType neutron::agents::ml2::ovs::vhostuser_socket_dir: NeutronVhostuserSocketDir vswitch::dpdk::driver_type: NeutronDpdkDriverType vswitch::dpdk::host_core_list: HostCpusList vswitch::dpdk::pmd_core_list: NeutronDpdkCoreList vswitch::dpdk::memory_channels: NeutronDpdkMemoryChannels vswitch::dpdk::socket_mem: NeutronDpdkSocketMemory - values: {get_param: [RoleParameters]} - values: NeutronDatapathType: {get_param: NeutronDatapathType} NeutronVhostuserSocketDir: {get_param: NeutronVhostuserSocketDir} NeutronDpdkDriverType: {get_param: NeutronDpdkDriverType} HostCpusList: {get_param: HostCpusList} NeutronDpdkCoreList: {get_param: NeutronDpdkCoreList} NeutronDpdkMemoryChannels: {get_param: NeutronDpdkMemoryChannels} NeutronDpdkSocketMemory: {get_param: NeutronDpdkSocketMemory} outputs: role_data: description: Role data for the Neutron OVS DPDK Agent service. value: service_name: neutron_ovs_dpdk_agent config_settings: map_merge: - map_replace: - get_attr: [NeutronOvsAgent, role_data, config_settings] - keys: tripleo.neutron_ovs_agent.firewall_rules: tripleo.neutron_ovs_dpdk_agent.firewall_rules - neutron::agents::ml2::ovs::enable_dpdk: true - get_attr: [RoleParametersValue, value] step_config: {get_attr: [NeutronOvsAgent, role_data, step_config]} upgrade_tasks: get_attr: [OpenVswitchUpgrade, role_data, upgrade_tasks]