Add Neutron FWaaS support

The Firewall-as-a-Service (FWaaS) plug-in applies firewalls to OpenStack
objects such as projects, routers, router ports, as well as to VM ports
and SFC ports in FWaaS V2.

This change adds system level metadata required to enable FWaaS in
Neutron. As the fwaas meta has to be passed for both server, gateway
and compute states, it is placed on the one level with their meta to
avoid duplication.

Added a release note.

PROD-13639

Change-Id: I4427a60e72dd044a73fb14cd51d992ed1464c050
diff --git a/.releasenotes/notes/add-fwaas-d4dea7f376eb3f83.yaml b/.releasenotes/notes/add-fwaas-d4dea7f376eb3f83.yaml
new file mode 100644
index 0000000..69c6ad2
--- /dev/null
+++ b/.releasenotes/notes/add-fwaas-d4dea7f376eb3f83.yaml
@@ -0,0 +1,19 @@
+---
+features:
+  - |
+    Add system level metadata class required to enable FWaaS in Neutron.
+
+    The Firewall-as-a-Service (FWaaS) plug-in applies firewalls to OpenStack
+    objects such as projects, routers, router ports, as well as to VM ports
+    and SFC ports in FWaaS V2.
+
+    To enable FWaaS add the ``system.neutron.fwaas`` class to nodes with
+    control, gateway and, if the Neutron DVR feature is enabled, compute roles.
+
+    By default the FWaaS V1 is installed. To install FWaaS V2 redefine the
+    ``fwaas_version`` parameter on the cluster level:
+
+    .. code-block:: yaml
+
+       fwaas_version: v2
+
diff --git a/neutron/fwaas.yml b/neutron/fwaas.yml
new file mode 100644
index 0000000..79c6439
--- /dev/null
+++ b/neutron/fwaas.yml
@@ -0,0 +1,8 @@
+classes:
+- service.neutron.fwaas
+parameters:
+  _param:
+    fwaas_version: v1
+  neutron:
+    fwaas:
+      api_version: ${_param:fwaas_version}