Make NeutronEnableDVR parameter consistent
[apex-tripleo-heat-templates.git] / puppet / services / neutron-ovs-agent.yaml
1 heat_template_version: pike
2
3 description: >
4   OpenStack Neutron OVS agent configured with Puppet
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   NeutronEnableL2Pop:
30     type: string
31     description: >
32         Enable/disable the L2 population feature in the Neutron agents.
33     default: "False"
34   NeutronBridgeMappings:
35     description: >
36       The OVS logical->physical bridge mappings to use. See the Neutron
37       documentation for details. Defaults to mapping br-ex - the external
38       bridge on hosts - to a physical name 'datacentre' which can be used
39       to create provider networks (and we use this for the default floating
40       network) - if changing this either use different post-install network
41       scripts or be sure to keep 'datacentre' as a mapping network name.
42     type: comma_delimited_list
43     default: "datacentre:br-ex"
44   NeutronTunnelTypes:
45     default: 'vxlan'
46     description: |
47         The tunnel types for the Neutron tenant network.
48     type: comma_delimited_list
49   NeutronAgentExtensions:
50     default: "qos"
51     description: |
52         Comma-separated list of extensions enabled for the Neutron agents.
53     type: comma_delimited_list
54   NeutronEnableDVR:
55     default: False
56     description: Enable Neutron DVR.
57     type: boolean
58   NeutronEnableARPResponder:
59     default: false
60     description: |
61       Enable ARP responder feature in the OVS Agent.
62     type: boolean
63   MonitoringSubscriptionNeutronOvs:
64     default: 'overcloud-neutron-ovs-agent'
65     type: string
66   NeutronOVSFirewallDriver:
67     default: ''
68     description: |
69       Configure the classname of the firewall driver to use for implementing
70       security groups. Possible values depend on system configuration. Some
71       examples are: noop, openvswitch, iptables_hybrid. The default value of an
72       empty string will result in a default supported configuration.
73     type: string
74   NeutronOpenVswitchAgentLoggingSource:
75     type: json
76     default:
77       tag: openstack.neutron.agent.openvswitch
78       path: /var/log/neutron/openvswitch-agent.log
79
80 conditions:
81   no_firewall_driver: {equals : [{get_param: NeutronOVSFirewallDriver}, '']}
82
83 resources:
84
85   NeutronBase:
86     type: ./neutron-base.yaml
87     properties:
88       ServiceNetMap: {get_param: ServiceNetMap}
89       DefaultPasswords: {get_param: DefaultPasswords}
90       EndpointMap: {get_param: EndpointMap}
91       RoleName: {get_param: RoleName}
92       RoleParameters: {get_param: RoleParameters}
93
94   OpenVswitchUpgrade:
95     type: ./openvswitch-upgrade.yaml
96
97 outputs:
98   role_data:
99     description: Role data for the Neutron OVS agent service.
100     value:
101       service_name: neutron_ovs_agent
102       monitoring_subscription: {get_param: MonitoringSubscriptionNeutronOvs}
103       logging_source: {get_param: NeutronOpenVswitchAgentLoggingSource}
104       logging_groups:
105         - neutron
106       config_settings:
107         map_merge:
108           - get_attr: [NeutronBase, role_data, config_settings]
109           - neutron::agents::ml2::ovs::l2_population: {get_param: NeutronEnableL2Pop}
110             neutron::agents::ml2::ovs::enable_distributed_routing: {get_param: NeutronEnableDVR}
111             neutron::agents::ml2::ovs::arp_responder: {get_param: NeutronEnableARPResponder}
112             neutron::agents::ml2::ovs::bridge_mappings: {get_param: NeutronBridgeMappings}
113             neutron::agents::ml2::ovs::tunnel_types: {get_param: NeutronTunnelTypes}
114             neutron::agents::ml2::ovs::extensions: {get_param: NeutronAgentExtensions}
115             # NOTE: bind IP is found in Heat replacing the network name with the
116             # local node IP for the given network; replacement examples
117             # (eg. for internal_api):
118             # internal_api -> IP
119             # internal_api_uri -> [IP]
120             # internal_api_subnet - > IP/CIDR
121             neutron::agents::ml2::ovs::local_ip: {get_param: [ServiceNetMap, NeutronTenantNetwork]}
122             tripleo.neutron_ovs_agent.firewall_rules:
123               '118 neutron vxlan networks':
124                 proto: 'udp'
125                 dport: 4789
126               '136 neutron gre networks':
127                 proto: 'gre'
128           -
129             if:
130             - no_firewall_driver
131             - {}
132             - neutron::agents::ml2::ovs::firewall_driver: {get_param: NeutronOVSFirewallDriver}
133       step_config: |
134         include ::tripleo::profile::base::neutron::ovs
135       upgrade_tasks:
136         yaql:
137           expression: $.data.ovs_upgrade + $.data.neutron_ovs_upgrade
138           data:
139             ovs_upgrade:
140               get_attr: [OpenVswitchUpgrade, role_data, upgrade_tasks]
141             neutron_ovs_upgrade:
142               - name: Check if neutron_ovs_agent is deployed
143                 command: systemctl is-enabled neutron-openvswitch-agent
144                 tags: common
145                 ignore_errors: True
146                 register: neutron_ovs_agent_enabled
147               - name: "PreUpgrade step0,validation: Check service neutron-openvswitch-agent is running"
148                 shell: /usr/bin/systemctl show 'neutron-openvswitch-agent' --property ActiveState | grep '\bactive\b'
149                 when: neutron_ovs_agent_enabled.rc == 0
150                 tags: step0,validation
151               - name: Stop neutron_ovs_agent service
152                 tags: step1
153                 when: neutron_ovs_agent_enabled.rc == 0
154                 service: name=neutron-openvswitch-agent state=stopped