Merge "docker bootstrap service commands"
[apex-tripleo-heat-templates.git] / puppet / services / neutron-ovs-dpdk-agent.yaml
1 heat_template_version: pike
2
3 description: >
4   OpenStack Neutron OVS DPDK configured with Puppet for Compute Role
5
6 parameters:
7   ServiceNetMap:
8     default: {}
9     description: Mapping of service_name -> network name. Typically set
10                  via parameter_defaults in the resource registry.  This
11                  mapping overrides those in ServiceNetMapDefaults.
12     type: json
13   DefaultPasswords:
14     default: {}
15     type: json
16   RoleName:
17     default: ''
18     description: Role name on which the service is applied
19     type: string
20   RoleParameters:
21     default: {}
22     description: Parameters specific to the role
23     type: json
24   EndpointMap:
25     default: {}
26     description: Mapping of service endpoint -> protocol. Typically set
27                  via parameter_defaults in the resource registry.
28     type: json
29   HostCpusList:
30     default: "'0'"
31     description: List of cores to be used for host process
32     type: string
33     constraints:
34       - allowed_pattern: "'[0-9,-]+'"
35   NeutronDpdkCoreList:
36     default: "''"
37     description: List of cores to be used for DPDK Poll Mode Driver
38     type: string
39     constraints:
40       - allowed_pattern: "'[0-9,-]*'"
41   NeutronDpdkMemoryChannels:
42     default: ""
43     description: Number of memory channels to be used for DPDK
44     type: string
45     constraints:
46       - allowed_pattern: "[0-9]*"
47   NeutronDpdkSocketMemory:
48     default: ""
49     description: Memory allocated for each socket
50     type: string
51   NeutronDpdkDriverType:
52     default: "vfio-pci"
53     description: DPDK Driver type
54     type: string
55   # below parameters has to be set in neutron agent only for compute nodes.
56   # as of now there is no other usecase for these parameters except dpdk.
57   # should be moved to compute only ovs agent in case of any other usecases.
58   NeutronDatapathType:
59     default: ""
60     description: Datapath type for ovs bridges
61     type: string
62   NeutronVhostuserSocketDir:
63     default: ""
64     description: The vhost-user socket directory for OVS
65     type: string
66
67 resources:
68
69   NeutronOvsAgent:
70     type: ./neutron-ovs-agent.yaml
71     properties:
72       ServiceNetMap: {get_param: ServiceNetMap}
73       DefaultPasswords: {get_param: DefaultPasswords}
74       EndpointMap: {get_param: EndpointMap}
75       RoleName: {get_param: RoleName}
76       RoleParameters: {get_param: RoleParameters}
77
78   OpenVswitchUpgrade:
79     type: ./openvswitch-upgrade.yaml
80
81   # Merging role-specific parameters (RoleParameters) with the default parameters.
82   # RoleParameters will have the precedence over the default parameters.
83   RoleParametersValue:
84     type: OS::Heat::Value
85     properties:
86       type: json
87       value:
88         map_replace:
89           - map_replace:
90             - neutron::agents::ml2::ovs::datapath_type: NeutronDatapathType
91               neutron::agents::ml2::ovs::vhostuser_socket_dir: NeutronVhostuserSocketDir
92               vswitch::dpdk::driver_type: NeutronDpdkDriverType
93               vswitch::dpdk::host_core_list: HostCpusList
94               vswitch::dpdk::pmd_core_list: NeutronDpdkCoreList
95               vswitch::dpdk::memory_channels: NeutronDpdkMemoryChannels
96               vswitch::dpdk::socket_mem: NeutronDpdkSocketMemory
97             - values: {get_param: [RoleParameters]}
98           - values:
99               NeutronDatapathType: {get_param: NeutronDatapathType}
100               NeutronVhostuserSocketDir: {get_param: NeutronVhostuserSocketDir}
101               NeutronDpdkDriverType: {get_param: NeutronDpdkDriverType}
102               HostCpusList: {get_param: HostCpusList}
103               NeutronDpdkCoreList: {get_param: NeutronDpdkCoreList}
104               NeutronDpdkMemoryChannels: {get_param: NeutronDpdkMemoryChannels}
105               NeutronDpdkSocketMemory: {get_param: NeutronDpdkSocketMemory}
106
107 outputs:
108   role_data:
109     description: Role data for the Neutron OVS DPDK Agent service.
110     value:
111       service_name: neutron_ovs_dpdk_agent
112       config_settings:
113         map_merge:
114           - map_replace:
115             - get_attr: [NeutronOvsAgent, role_data, config_settings]
116             - keys:
117                 tripleo.neutron_ovs_agent.firewall_rules: tripleo.neutron_ovs_dpdk_agent.firewall_rules
118           - neutron::agents::ml2::ovs::enable_dpdk: true
119           - get_attr: [RoleParametersValue, value]
120       step_config: {get_attr: [NeutronOvsAgent, role_data, step_config]}
121       upgrade_tasks:
122         get_attr: [OpenVswitchUpgrade, role_data, upgrade_tasks]