Integrate vMX in tungstenfabric environment

Related-PROD: PRODX-20668
Change-Id: I202bf3a25cf7fd4b70b43ce6d0b3e1397872c9ed
diff --git a/de/heat-templates/fragments/vSRX.yaml b/de/heat-templates/fragments/vSRX.yaml
new file mode 100644
index 0000000..23d64b4
--- /dev/null
+++ b/de/heat-templates/fragments/vSRX.yaml
@@ -0,0 +1,77 @@
+heat_template_version: queens
+
+parameters:
+  private_floating_network_id:
+    type: string
+  private_floating_network_gateway:
+    type: string
+  accessible_network:
+    type: string
+  control_network_vsrx_ip:
+    type: string
+  data_network_vsrx_ip:
+    type: string
+  tun_network:
+    type: string
+  vsrx_image:
+    type: string
+    default: mos-vsrx-acc-fl-tun
+  vsrx_flavor:
+    type: string
+    default: oc_vsrx
+  availability_zone:
+    type: string
+    default: nova
+  public_net_id:
+    type: string
+
+resources:
+
+  accessible_server_port:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_param: accessible_network }
+      port_security_enabled: false
+      fixed_ips:
+       - ip_address: {get_param: control_network_vsrx_ip }
+
+  private_floating_server_port:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_param: private_floating_network_id }
+      port_security_enabled: false
+      fixed_ips:
+        - ip_address: { get_param: private_floating_network_gateway}
+
+  tun_server_port:
+    type: OS::Neutron::Port
+    properties:
+      network_id: { get_param: tun_network }
+      port_security_enabled: false
+      fixed_ips:
+      - ip_address: { get_param: data_network_vsrx_ip}
+
+  server_floating_ip:
+    type: OS::Neutron::FloatingIP
+    properties:
+      floating_network_id: { get_param: public_net_id }
+      port_id: { get_resource: accessible_server_port }
+
+  vsrx_instance:
+    type: OS::Nova::Server
+    properties:
+      name: { list_join: ['-', [get_param: "OS::stack_name", 'vsrx01']] }
+      availability_zone: { get_param: availability_zone }
+      image: { get_param: vsrx_image }
+      flavor: { get_param: vsrx_flavor }
+      networks:
+        - port: { get_resource: accessible_server_port }
+        - port: { get_resource: private_floating_server_port }
+        - port: { get_resource: tun_server_port }
+
+outputs:
+  server_public_ip:
+    description: Floating IP address of server in public network
+    value: { get_attr: [ server_floating_ip, floating_ip_address ] }
+  vsrx_show:
+    value: { get_attr: [ vsrx_instance, show ] }