Add an ability pass interface info via metadata

The patch adds an ability to pass interface information including
pci_info, MAC and IP addresses via metadata in wait condition
response.

Related-PRODX: PRODX-9016
Change-Id: I984ecd8630706179ec6fae6dcf1867f4def708a8
diff --git a/de/heat-templates/env/compute.yaml b/de/heat-templates/env/compute.yaml
index 1e1e6f6..167ba3b 100644
--- a/de/heat-templates/env/compute.yaml
+++ b/de/heat-templates/env/compute.yaml
@@ -6,6 +6,7 @@
   "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
   "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
   "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
+  "MCP2::NetworkTun": ../fragments/NetworkTun.yaml
 
 parameters:
   image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/converged.yaml b/de/heat-templates/env/converged.yaml
index f2e1d84..83c4852 100644
--- a/de/heat-templates/env/converged.yaml
+++ b/de/heat-templates/env/converged.yaml
@@ -6,6 +6,7 @@
   "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
   "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
   "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
+  "MCP2::NetworkTun": ../fragments/NetworkTun.yaml
 
 parameters:
   image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr1-wrkr3-cmp0-gtw0-lma3.yaml b/de/heat-templates/env/mstr1-wrkr3-cmp0-gtw0-lma3.yaml
index ca4d469..a1dfadc 100644
--- a/de/heat-templates/env/mstr1-wrkr3-cmp0-gtw0-lma3.yaml
+++ b/de/heat-templates/env/mstr1-wrkr3-cmp0-gtw0-lma3.yaml
@@ -6,6 +6,7 @@
   "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
   "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
   "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
+  "MCP2::NetworkTun": ../fragments/NetworkTun.yaml
 
 parameters:
   image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr1-wrkr3-cmp0-gtw0-vbmc2.yaml b/de/heat-templates/env/mstr1-wrkr3-cmp0-gtw0-vbmc2.yaml
index 611ff73..fed3a20 100644
--- a/de/heat-templates/env/mstr1-wrkr3-cmp0-gtw0-vbmc2.yaml
+++ b/de/heat-templates/env/mstr1-wrkr3-cmp0-gtw0-vbmc2.yaml
@@ -6,6 +6,7 @@
   "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
   "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
   "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
+  "MCP2::NetworkTun": ../fragments/NetworkTun.yaml
 
 parameters:
   image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr1-wrkr3-cmp0-gtw0.yaml b/de/heat-templates/env/mstr1-wrkr3-cmp0-gtw0.yaml
index cbba63f..4a13e15 100644
--- a/de/heat-templates/env/mstr1-wrkr3-cmp0-gtw0.yaml
+++ b/de/heat-templates/env/mstr1-wrkr3-cmp0-gtw0.yaml
@@ -6,6 +6,7 @@
   "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
   "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
   "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
+  "MCP2::NetworkTun": ../fragments/NetworkTun.yaml
 
 parameters:
   image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr1-wrkr3-cmp2-acmp2-ntw3.yaml b/de/heat-templates/env/mstr1-wrkr3-cmp2-acmp2-ntw3.yaml
index 6110c1a..fa93c73 100644
--- a/de/heat-templates/env/mstr1-wrkr3-cmp2-acmp2-ntw3.yaml
+++ b/de/heat-templates/env/mstr1-wrkr3-cmp2-acmp2-ntw3.yaml
@@ -3,7 +3,7 @@
   "MCP2::NetworkAccStorage": ../fragments/NetworkAccVMStorage.yaml
   "MCP2::NetworkPrvFl": ../fragments/NetworkPrvFlVSRX.yaml
   "MCP2::NetworkIronicFlat": ../fragments/NetworkIronicFlat.yaml
-  "MCP2::NetworkTFData": ../fragments/NetworkTFData.yaml
+  "MCP2::NetworkTun": ../fragments/NetworkTun.yaml
   "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
   "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
   "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
diff --git a/de/heat-templates/env/mstr1-wrkr3-cmp2-gtw0-lma3.yaml b/de/heat-templates/env/mstr1-wrkr3-cmp2-gtw0-lma3.yaml
index 2882d01..8f56f0a 100644
--- a/de/heat-templates/env/mstr1-wrkr3-cmp2-gtw0-lma3.yaml
+++ b/de/heat-templates/env/mstr1-wrkr3-cmp2-gtw0-lma3.yaml
@@ -6,6 +6,7 @@
   "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
   "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
   "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
+  "MCP2::NetworkTun": ../fragments/NetworkTun.yaml
 
 parameters:
   image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr1-wrkr3-cmp2-gtw0-vbmc2.yaml b/de/heat-templates/env/mstr1-wrkr3-cmp2-gtw0-vbmc2.yaml
index 7f13bd8..49d3bc2 100644
--- a/de/heat-templates/env/mstr1-wrkr3-cmp2-gtw0-vbmc2.yaml
+++ b/de/heat-templates/env/mstr1-wrkr3-cmp2-gtw0-vbmc2.yaml
@@ -6,6 +6,7 @@
   "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
   "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
   "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
+  "MCP2::NetworkTun": ../fragments/NetworkTun.yaml
 
 parameters:
   image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr1-wrkr3-cmp2-gtw0.yaml b/de/heat-templates/env/mstr1-wrkr3-cmp2-gtw0.yaml
index fe54eef..b305948 100644
--- a/de/heat-templates/env/mstr1-wrkr3-cmp2-gtw0.yaml
+++ b/de/heat-templates/env/mstr1-wrkr3-cmp2-gtw0.yaml
@@ -6,6 +6,7 @@
   "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
   "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
   "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
+  "MCP2::NetworkTun": ../fragments/NetworkTun.yaml
 
 parameters:
   image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr1-wrkr3-cmp2-ntw3-lma3.yaml b/de/heat-templates/env/mstr1-wrkr3-cmp2-ntw3-lma3.yaml
index 7bfb0b9..ed3003d 100644
--- a/de/heat-templates/env/mstr1-wrkr3-cmp2-ntw3-lma3.yaml
+++ b/de/heat-templates/env/mstr1-wrkr3-cmp2-ntw3-lma3.yaml
@@ -3,7 +3,7 @@
   "MCP2::NetworkAccStorage": ../fragments/NetworkAccVMStorage.yaml
   "MCP2::NetworkPrvFl": ../fragments/NetworkPrvFlVSRX.yaml
   "MCP2::NetworkIronicFlat": ../fragments/NetworkIronicFlat.yaml
-  "MCP2::NetworkTFData": ../fragments/NetworkTFData.yaml
+  "MCP2::NetworkTun": ../fragments/NetworkTun.yaml
   "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
   "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
   "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
diff --git a/de/heat-templates/env/mstr1-wrkr3-cmp2-ntw3.yaml b/de/heat-templates/env/mstr1-wrkr3-cmp2-ntw3.yaml
index 6c04f55..78c7ecb 100644
--- a/de/heat-templates/env/mstr1-wrkr3-cmp2-ntw3.yaml
+++ b/de/heat-templates/env/mstr1-wrkr3-cmp2-ntw3.yaml
@@ -3,7 +3,7 @@
   "MCP2::NetworkAccStorage": ../fragments/NetworkAccVMStorage.yaml
   "MCP2::NetworkPrvFl": ../fragments/NetworkPrvFlVSRX.yaml
   "MCP2::NetworkIronicFlat": ../fragments/NetworkIronicFlat.yaml
-  "MCP2::NetworkTFData": ../fragments/NetworkTFData.yaml
+  "MCP2::NetworkTun": ../fragments/NetworkTun.yaml
   "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
   "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
   "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
diff --git a/de/heat-templates/env/mstr1-wrkr3-cmp3-gtw0.yaml b/de/heat-templates/env/mstr1-wrkr3-cmp3-gtw0.yaml
index c61b80e..82940f6 100644
--- a/de/heat-templates/env/mstr1-wrkr3-cmp3-gtw0.yaml
+++ b/de/heat-templates/env/mstr1-wrkr3-cmp3-gtw0.yaml
@@ -6,6 +6,7 @@
   "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
   "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
   "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
+  "MCP2::NetworkTun": ../fragments/NetworkTun.yaml
 
 parameters:
   image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr1-wrkr3-cmp3-ntw3.yaml b/de/heat-templates/env/mstr1-wrkr3-cmp3-ntw3.yaml
index 3b41842..15fb566 100644
--- a/de/heat-templates/env/mstr1-wrkr3-cmp3-ntw3.yaml
+++ b/de/heat-templates/env/mstr1-wrkr3-cmp3-ntw3.yaml
@@ -3,7 +3,7 @@
   "MCP2::NetworkAccStorage": ../fragments/NetworkAccVMStorage.yaml
   "MCP2::NetworkPrvFl": ../fragments/NetworkPrvFlVSRX.yaml
   "MCP2::NetworkIronicFlat": ../fragments/NetworkIronicFlat.yaml
-  "MCP2::NetworkTFData": ../fragments/NetworkTFData.yaml
+  "MCP2::NetworkTun": ../fragments/NetworkTun.yaml
   "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
   "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
   "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
diff --git a/de/heat-templates/env/mstr1-wrkr5-cmp0-gtw0-vbmc5.yaml b/de/heat-templates/env/mstr1-wrkr5-cmp0-gtw0-vbmc5.yaml
index c53f8be..b618639 100644
--- a/de/heat-templates/env/mstr1-wrkr5-cmp0-gtw0-vbmc5.yaml
+++ b/de/heat-templates/env/mstr1-wrkr5-cmp0-gtw0-vbmc5.yaml
@@ -6,6 +6,7 @@
   "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
   "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
   "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
+  "MCP2::NetworkTun": ../fragments/NetworkTun.yaml
 
 parameters:
   image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr1-wrkr5-cmp0-gtw0.yaml b/de/heat-templates/env/mstr1-wrkr5-cmp0-gtw0.yaml
index 3508a7b..b745bae 100644
--- a/de/heat-templates/env/mstr1-wrkr5-cmp0-gtw0.yaml
+++ b/de/heat-templates/env/mstr1-wrkr5-cmp0-gtw0.yaml
@@ -6,6 +6,7 @@
   "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
   "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
   "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
+  "MCP2::NetworkTun": ../fragments/NetworkTun.yaml
 
 parameters:
   image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr1-wrkr5-cmp2-gtw0-vbmc3.yaml b/de/heat-templates/env/mstr1-wrkr5-cmp2-gtw0-vbmc3.yaml
index 8fa7035..05b3cd9 100644
--- a/de/heat-templates/env/mstr1-wrkr5-cmp2-gtw0-vbmc3.yaml
+++ b/de/heat-templates/env/mstr1-wrkr5-cmp2-gtw0-vbmc3.yaml
@@ -6,6 +6,7 @@
   "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
   "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
   "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
+  "MCP2::NetworkTun": ../fragments/NetworkTun.yaml
 
 parameters:
   image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr1-wrkr5-cmp2-gtw0-vbmc5.yaml b/de/heat-templates/env/mstr1-wrkr5-cmp2-gtw0-vbmc5.yaml
index dfe85cf..773e304 100644
--- a/de/heat-templates/env/mstr1-wrkr5-cmp2-gtw0-vbmc5.yaml
+++ b/de/heat-templates/env/mstr1-wrkr5-cmp2-gtw0-vbmc5.yaml
@@ -6,6 +6,7 @@
   "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
   "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
   "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
+  "MCP2::NetworkTun": ../fragments/NetworkTun.yaml
 
 parameters:
   image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr1-wrkr5-cmp2-gtw0.yaml b/de/heat-templates/env/mstr1-wrkr5-cmp2-gtw0.yaml
index 2ef1c9e..da4c9a6 100644
--- a/de/heat-templates/env/mstr1-wrkr5-cmp2-gtw0.yaml
+++ b/de/heat-templates/env/mstr1-wrkr5-cmp2-gtw0.yaml
@@ -6,6 +6,7 @@
   "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
   "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
   "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
+  "MCP2::NetworkTun": ../fragments/NetworkTun.yaml
 
 parameters:
   image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr1-wrkr5-cmp3-acmp2-gtw0.yaml b/de/heat-templates/env/mstr1-wrkr5-cmp3-acmp2-gtw0.yaml
index f68eb32..5a2f2fc 100644
--- a/de/heat-templates/env/mstr1-wrkr5-cmp3-acmp2-gtw0.yaml
+++ b/de/heat-templates/env/mstr1-wrkr5-cmp3-acmp2-gtw0.yaml
@@ -6,6 +6,7 @@
   "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
   "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
   "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
+  "MCP2::NetworkTun": ../fragments/NetworkTun.yaml
 
 parameters:
   image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr1-wrkr5-cmp3-gtw0.yaml b/de/heat-templates/env/mstr1-wrkr5-cmp3-gtw0.yaml
index 1f3c7c9..266fa33 100644
--- a/de/heat-templates/env/mstr1-wrkr5-cmp3-gtw0.yaml
+++ b/de/heat-templates/env/mstr1-wrkr5-cmp3-gtw0.yaml
@@ -6,6 +6,7 @@
   "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
   "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
   "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
+  "MCP2::NetworkTun": ../fragments/NetworkTun.yaml
 
 parameters:
   image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr3-wrkr3-cmp0-gtw0-lma3.yaml b/de/heat-templates/env/mstr3-wrkr3-cmp0-gtw0-lma3.yaml
index 56be0a0..52f390f 100644
--- a/de/heat-templates/env/mstr3-wrkr3-cmp0-gtw0-lma3.yaml
+++ b/de/heat-templates/env/mstr3-wrkr3-cmp0-gtw0-lma3.yaml
@@ -6,6 +6,7 @@
   "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
   "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
   "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
+  "MCP2::NetworkTun": ../fragments/NetworkTun.yaml
 
 parameters:
   image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr3-wrkr3-cmp0-gtw0.yaml b/de/heat-templates/env/mstr3-wrkr3-cmp0-gtw0.yaml
index 719cb12..e2bc5de 100644
--- a/de/heat-templates/env/mstr3-wrkr3-cmp0-gtw0.yaml
+++ b/de/heat-templates/env/mstr3-wrkr3-cmp0-gtw0.yaml
@@ -3,6 +3,7 @@
   "MCP2::NetworkPrvFl": ../fragments/NetworkPrvFl.yaml
   "MCP2::NetworkIronicFlat": ../fragments/NetworkIronicFlat.yaml
   "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
+  "MCP2::NetworkTun": ../fragments/NetworkTun.yaml
 
 parameters:
   image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw0-lma3-osd3.yaml b/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw0-lma3-osd3.yaml
index bcb0c0d..11c337f 100644
--- a/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw0-lma3-osd3.yaml
+++ b/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw0-lma3-osd3.yaml
@@ -6,6 +6,7 @@
   "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
   "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
   "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
+  "MCP2::NetworkTun": ../fragments/NetworkTun.yaml
 
 parameters:
   image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw0-lma3.yaml b/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw0-lma3.yaml
index 8fa0f9e..56b548a 100644
--- a/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw0-lma3.yaml
+++ b/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw0-lma3.yaml
@@ -6,6 +6,7 @@
   "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
   "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
   "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
+  "MCP2::NetworkTun": ../fragments/NetworkTun.yaml
 
 parameters:
   image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw0.yaml b/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw0.yaml
index d799e5d..8101c57 100644
--- a/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw0.yaml
+++ b/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw0.yaml
@@ -6,6 +6,7 @@
   "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
   "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
   "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
+  "MCP2::NetworkTun": ../fragments/NetworkTun.yaml
 
 parameters:
   image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw2.yaml b/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw2.yaml
index c0cc0b5..028e920 100644
--- a/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw2.yaml
+++ b/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw2.yaml
@@ -6,6 +6,7 @@
   "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
   "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
   "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
+  "MCP2::NetworkTun": ../fragments/NetworkTun.yaml
 
 parameters:
   image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw3-lma3-osd3.yaml b/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw3-lma3-osd3.yaml
index 13a7e6f..fb1755c 100644
--- a/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw3-lma3-osd3.yaml
+++ b/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw3-lma3-osd3.yaml
@@ -6,6 +6,7 @@
   "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
   "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
   "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
+  "MCP2::NetworkTun": ../fragments/NetworkTun.yaml
 
 parameters:
   image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw3-lma3.yaml b/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw3-lma3.yaml
index b608764..0171737 100644
--- a/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw3-lma3.yaml
+++ b/de/heat-templates/env/mstr3-wrkr3-cmp2-gtw3-lma3.yaml
@@ -6,6 +6,7 @@
   "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
   "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
   "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
+  "MCP2::NetworkTun": ../fragments/NetworkTun.yaml
 
 parameters:
   image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/mstr3-wrkr3-cmp2-ntw3-lma0-osd3.yaml b/de/heat-templates/env/mstr3-wrkr3-cmp2-ntw3-lma0-osd3.yaml
index 77988a7..b3ad83e 100644
--- a/de/heat-templates/env/mstr3-wrkr3-cmp2-ntw3-lma0-osd3.yaml
+++ b/de/heat-templates/env/mstr3-wrkr3-cmp2-ntw3-lma0-osd3.yaml
@@ -3,7 +3,7 @@
   "MCP2::NetworkAccStorage": ../fragments/NetworkAccVMStorage.yaml
   "MCP2::NetworkPrvFl": ../fragments/NetworkPrvFlVSRX.yaml
   "MCP2::NetworkIronicFlat": ../fragments/NetworkIronicFlat.yaml
-  "MCP2::NetworkTFData": ../fragments/NetworkTFData.yaml
+  "MCP2::NetworkTun": ../fragments/NetworkTun.yaml
   "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
   "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
   "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
diff --git a/de/heat-templates/env/mstr3-wrkr3-cmp2-ntw3-lma3-osd3.yaml b/de/heat-templates/env/mstr3-wrkr3-cmp2-ntw3-lma3-osd3.yaml
index 4c17b19..aa5c753 100644
--- a/de/heat-templates/env/mstr3-wrkr3-cmp2-ntw3-lma3-osd3.yaml
+++ b/de/heat-templates/env/mstr3-wrkr3-cmp2-ntw3-lma3-osd3.yaml
@@ -3,7 +3,7 @@
   "MCP2::NetworkAccStorage": ../fragments/NetworkAccVMStorage.yaml
   "MCP2::NetworkPrvFl": ../fragments/NetworkPrvFlVSRX.yaml
   "MCP2::NetworkIronicFlat": ../fragments/NetworkIronicFlat.yaml
-  "MCP2::NetworkTFData": ../fragments/NetworkTFData.yaml
+  "MCP2::NetworkTun": ../fragments/NetworkTun.yaml
   "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
   "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
   "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
diff --git a/de/heat-templates/env/mstr3-wrkr6-cmp3-osd3.yaml b/de/heat-templates/env/mstr3-wrkr6-cmp3-osd3.yaml
index 0a40fa7..932d096 100644
--- a/de/heat-templates/env/mstr3-wrkr6-cmp3-osd3.yaml
+++ b/de/heat-templates/env/mstr3-wrkr6-cmp3-osd3.yaml
@@ -6,6 +6,7 @@
   "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
   "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
   "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
+  "MCP2::NetworkTun": ../fragments/NetworkTun.yaml
 
 parameters:
   image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/env/telco.yaml b/de/heat-templates/env/telco.yaml
index 51042fb..33a85c2 100644
--- a/de/heat-templates/env/telco.yaml
+++ b/de/heat-templates/env/telco.yaml
@@ -6,6 +6,7 @@
   "MCP2::SrvInstances": ../fragments/SrvInstancesVM.yaml
   "MCP2::SrvInstancesCeph": ../fragments/SrvInstancesVMCeph.yaml
   "MCP2::SrvInstancesCephOSD": ../fragments/SrvInstancesVMCephOSD.yaml
+  "MCP2::NetworkTun": ../fragments/NetworkTun.yaml
 
 parameters:
   image: bionic-server-cloudimg-amd64-20190612
diff --git a/de/heat-templates/fragments/NetworkPrvFl.yaml b/de/heat-templates/fragments/NetworkPrvFl.yaml
index 26bb882..f122682 100644
--- a/de/heat-templates/fragments/NetworkPrvFl.yaml
+++ b/de/heat-templates/fragments/NetworkPrvFl.yaml
@@ -18,7 +18,7 @@
     default: ''
   data_network_vsrx_ip:
     type: string
-  tf_data_network:
+  tun_network:
     type: string
 
 resources:
diff --git a/de/heat-templates/fragments/NetworkPrvFlVSRX.yaml b/de/heat-templates/fragments/NetworkPrvFlVSRX.yaml
index 00d7bcf..847a256 100644
--- a/de/heat-templates/fragments/NetworkPrvFlVSRX.yaml
+++ b/de/heat-templates/fragments/NetworkPrvFlVSRX.yaml
@@ -15,7 +15,7 @@
     type: string
   data_network_vsrx_ip:
     type: string
-  tf_data_network:
+  tun_network:
     type: string
 
 resources:
@@ -49,10 +49,10 @@
       fixed_ips:
         - ip_address: { get_param: private_floating_network_gateway}
 
-  tf_data_server_port:
+  tun_server_port:
     type: OS::Neutron::Port
     properties:
-      network_id: { get_param: tf_data_network }
+      network_id: { get_param: tun_network }
       port_security_enabled: false
       fixed_ips:
       - ip_address: { get_param: data_network_vsrx_ip}
@@ -67,7 +67,7 @@
       networks:
         - port: { get_resource: accessible_server_port }
         - port: { get_resource: private_floating_server_port }
-        - port: { get_resource: tf_data_server_port }
+        - port: { get_resource: tun_server_port }
 
 outputs:
   private_floating_network_id:
diff --git a/de/heat-templates/fragments/NetworkTFData.yaml b/de/heat-templates/fragments/NetworkTFData.yaml
deleted file mode 100644
index a98b510..0000000
--- a/de/heat-templates/fragments/NetworkTFData.yaml
+++ /dev/null
@@ -1,30 +0,0 @@
-heat_template_version: queens
-
-parameters:
-  tf_data_network_cidr:
-    type: string
-  tf_data_network_pool_start:
-    type: string
-  tf_data_network_pool_end:
-    type: string
-
-resources:
-
-  network:
-    type: OS::Neutron::Net
-  subnet:
-    type: OS::Neutron::Subnet
-    properties:
-      network: { get_resource: network }
-      enable_dhcp: false
-      cidr: { get_param: tf_data_network_cidr }
-      gateway_ip: ~
-      allocation_pools:
-        - start: { get_param: tf_data_network_pool_start }
-          end: { get_param: tf_data_network_pool_end }
-
-outputs:
-  tf_data_network_id:
-    value: { get_resource: network }
-  tf_data_subnet_id:
-    value: { get_resource: subnet }
diff --git a/de/heat-templates/fragments/NetworkTun.yaml b/de/heat-templates/fragments/NetworkTun.yaml
new file mode 100644
index 0000000..0b122ac
--- /dev/null
+++ b/de/heat-templates/fragments/NetworkTun.yaml
@@ -0,0 +1,30 @@
+heat_template_version: queens
+
+parameters:
+  tun_network_cidr:
+    type: string
+  tun_network_pool_start:
+    type: string
+  tun_network_pool_end:
+    type: string
+
+resources:
+
+  network:
+    type: OS::Neutron::Net
+  subnet:
+    type: OS::Neutron::Subnet
+    properties:
+      network: { get_resource: network }
+      enable_dhcp: false
+      cidr: { get_param: tun_network_cidr }
+      gateway_ip: ~
+      allocation_pools:
+        - start: { get_param: tun_network_pool_start }
+          end: { get_param: tun_network_pool_end }
+
+outputs:
+  tun_network_id:
+    value: { get_resource: network }
+  tun_subnet_id:
+    value: { get_resource: subnet }
diff --git a/de/heat-templates/fragments/SrvInstancesBMCephOSD.yaml b/de/heat-templates/fragments/SrvInstancesBMCephOSD.yaml
index 162da83..8ed2d5a 100644
--- a/de/heat-templates/fragments/SrvInstancesBMCephOSD.yaml
+++ b/de/heat-templates/fragments/SrvInstancesBMCephOSD.yaml
@@ -58,9 +58,9 @@
     type: boolean
   tungstenfabric_enabled:
     type: boolean
-  tf_data_network:
+  tun_network:
     type: string
-  tf_data_subnet_id:
+  tun_subnet_id:
     type: string
   functions_override:
     type: string
@@ -84,10 +84,6 @@
     description: The content of lab metadata.
     type: string
 
-conditions:
-  create_tf_data_network_res:
-    get_param: tungstenfabric_enabled
-
 resources:
 
   software_config:
@@ -190,14 +186,13 @@
       fixed_ips:
         - subnet: { get_param: ironic_baremetal_subnet_id }
 
-  tf_data_server_port:
+  tun_server_port:
     type: OS::Neutron::Port
-    condition: create_tf_data_network_res
     properties:
-      network_id: { get_param: tf_data_network }
+      network_id: { get_param: tun_network }
       port_security_enabled: false
       fixed_ips:
-      - subnet: { get_param: tf_data_subnet_id }
+      - subnet: { get_param: tun_subnet_id }
 
   wait_handle:
     type: OS::Heat::WaitConditionHandle
@@ -220,8 +215,7 @@
     value: { get_attr: [ironic_baremetal_server_port, fixed_ips, 0, ip_address] }
   server_tf_data_ip:
     description: IP address of server in tf data network
-    value: { get_attr: [tf_data_server_port, fixed_ips, 0, ip_address] }
-    condition: create_tf_data_network_res
+    value: { get_attr: [tun_server_port, fixed_ips, 0, ip_address] }
   server_public_ip:
     description: Floating IP address of server in public network
     value: { get_attr: [server, networks, { get_param: accessible_network}, 0]}
diff --git a/de/heat-templates/fragments/SrvInstancesVMCephOSD.yaml b/de/heat-templates/fragments/SrvInstancesVMCephOSD.yaml
index 1af557e..4e15338 100644
--- a/de/heat-templates/fragments/SrvInstancesVMCephOSD.yaml
+++ b/de/heat-templates/fragments/SrvInstancesVMCephOSD.yaml
@@ -58,9 +58,9 @@
     type: boolean
   tungstenfabric_enabled:
     type: boolean
-  tf_data_network:
+  tun_network:
     type: string
-  tf_data_subnet_id:
+  tun_subnet_id:
     type: string
   functions_override:
     type: string
@@ -98,10 +98,6 @@
     default: '0,0'
     type: string
 
-conditions:
-  create_tf_data_network_res:
-    get_param: tungstenfabric_enabled
-
 resources:
 
   software_config:
@@ -166,19 +162,12 @@
       key_name: { get_param: key_name }
       availability_zone: nova
       networks:
-        if:
-        - "create_tf_data_network_res"
-        - - port: { get_resource: accessible_server_port }
-          - port: { get_resource: private_floating_server_port }
-          - port: { get_resource: storage_frontend_server_port }
-          - port: { get_resource: storage_backend_server_port }
-          - port: { get_resource: ironic_baremetal_server_port }
-          - port: { get_resource: tf_data_server_port }
-        - - port: { get_resource: accessible_server_port }
-          - port: { get_resource: private_floating_server_port }
-          - port: { get_resource: storage_frontend_server_port }
-          - port: { get_resource: storage_backend_server_port }
-          - port: { get_resource: ironic_baremetal_server_port }
+        - port: { get_resource: accessible_server_port }
+        - port: { get_resource: private_floating_server_port }
+        - port: { get_resource: storage_frontend_server_port }
+        - port: { get_resource: storage_backend_server_port }
+        - port: { get_resource: ironic_baremetal_server_port }
+        - port: { get_resource: tun_server_port }
       user_data_format: SOFTWARE_CONFIG
       user_data: { get_resource:  install_config_agent}
       metadata: { get_param: metadata }
@@ -229,14 +218,13 @@
       fixed_ips:
         - subnet: { get_param: ironic_baremetal_subnet_id }
 
-  tf_data_server_port:
+  tun_server_port:
     type: OS::Neutron::Port
-    condition: create_tf_data_network_res
     properties:
-      network_id: { get_param: tf_data_network }
+      network_id: { get_param: tun_network }
       port_security_enabled: false
       fixed_ips:
-      - subnet: { get_param: tf_data_subnet_id }
+      - subnet: { get_param: tun_subnet_id }
 
   wait_handle:
     type: OS::Heat::WaitConditionHandle
@@ -258,8 +246,7 @@
     value: { get_attr: [ironic_baremetal_server_port, fixed_ips, 0, ip_address] }
   server_tf_data_ip:
     description: IP address of server in tf data network
-    value: { get_attr: [tf_data_server_port, fixed_ips, 0, ip_address] }
-    condition: create_tf_data_network_res
+    value: { get_attr: [tun_server_port, fixed_ips, 0, ip_address] }
   server_public_ip:
     description: Floating IP address of server in public network
     value: { get_attr: [ server_floating_ip, floating_ip_address ] }
diff --git a/de/heat-templates/scripts/instance_boot.sh b/de/heat-templates/scripts/instance_boot.sh
index e00e244..fe1c100 100644
--- a/de/heat-templates/scripts/instance_boot.sh
+++ b/de/heat-templates/scripts/instance_boot.sh
@@ -555,6 +555,25 @@
     fi
 }
 
+function collect_interfaces_metadata {
+    local if_metadata_file="/usr/share/metadata/interfaces.yaml"
+
+    pci_id=$(lspci | grep Ethernet | tail -1 | awk '{print "0000:"$1}')
+    if_name=$(ls -1 $(find /sys/bus/pci/devices/${pci_id}/ -name net))
+    mac=$(cat $(find /sys/bus/pci/devices/${pci_id}/ -name net)/${if_name}/address)
+    ip=$(ip addr show dev ${if_name} | grep -Po 'inet \K[\d.]+' | egrep -v "127.0.|172.17")
+
+    cat << EOF > ${if_metadata_file}
+${if_name}:
+  pci_id: ${pci_id}
+  ip_addr: ${ip}
+  mac: ${mac}
+EOF
+
+    HW_METADATA=$(echo ${HW_METADATA} | jq -cr ". += {\"interfaces\": {\"$(hostname)\": \"$(base64 -w 0 ${if_metadata_file})\"}}")
+
+}
+
 function nested_virt_config {
 
 cat << EOF > /etc/modprobe.d/qemu-system-x86.conf
@@ -642,6 +661,7 @@
         collect_ceph_metadata
         configure_contrack
         disable_iptables_for_bridges
+        collect_interfaces_metadata
         ;;
     worker)
         if [[ "${CONFIGURE_HUGE_PAGES}" == true ]]; then
@@ -667,6 +687,7 @@
         collect_ceph_metadata
         configure_contrack
         disable_iptables_for_bridges
+        collect_interfaces_metadata
         ;;
     spare)
         prepare_metadata_files
diff --git a/de/heat-templates/top.yaml b/de/heat-templates/top.yaml
index eb4ebf5..e6c70d3 100644
--- a/de/heat-templates/top.yaml
+++ b/de/heat-templates/top.yaml
@@ -150,16 +150,16 @@
   tungstenfabric_enabled:
     type: boolean
     default: false
-  tf_data_network_cidr:
+  tun_network_cidr:
     type: string
     default: '10.15.0.0/24'
-  tf_data_network_pool_start:
+  tun_network_pool_start:
     type: string
     default: '10.15.0.2'
-  tf_data_network_pool_end:
+  tun_network_pool_end:
     type: string
     default: '10.15.0.99'
-  tf_data_network_interface:
+  tun_network_interface:
     type: string
     default: 'ens8'
     description: 'The name of interface that should be used by vrouter in deployment with TF'
@@ -262,10 +262,6 @@
     default: '0,0'
     type: string
 
-conditions:
-  create_tf_data_network_res:
-    get_param: tungstenfabric_enabled
-
 resources:
   key_pair:
     type: OS::Nova::KeyPair
@@ -280,13 +276,12 @@
       public_net_id: { get_param: public_net_id }
       control_network_cidr: { get_param: control_network_cidr }
 
-  tf_data_network:
-    type: MCP2::NetworkTFData
-    condition: create_tf_data_network_res
+  tun_network:
+    type: MCP2::NetworkTun
     properties:
-      tf_data_network_cidr: { get_param: tf_data_network_cidr }
-      tf_data_network_pool_start: { get_param: tf_data_network_pool_start }
-      tf_data_network_pool_end: { get_param: tf_data_network_pool_end }
+      tun_network_cidr: { get_param: tun_network_cidr }
+      tun_network_pool_start: { get_param: tun_network_pool_start }
+      tun_network_pool_end: { get_param: tun_network_pool_end }
 
   private_floating_network:
     type: MCP2::NetworkPrvFl
@@ -298,7 +293,7 @@
       control_network_vsrx_peering_ip: {get_param: control_network_vsrx_peering_ip}
       accessible_network: { get_attr: [accessible_network, public_network]}
       data_network_vsrx_ip: { get_param: data_network_vsrx_ip }
-      tf_data_network: {if: ["create_tf_data_network_res", { get_attr: [tf_data_network, tf_data_network_id] }, ""]}
+      tun_network: { get_attr: [tun_network, tun_network_id] }
 
   storage_network:
     type: MCP2::NetworkAccStorage
@@ -410,8 +405,8 @@
           ironic_baremetal_tunnel_cidr: { get_param: ironic_baremetal_tunnel_cidr }
           ironic_mt_enabled: { get_param: ironic_mt_enabled }
           tungstenfabric_enabled: { get_param: tungstenfabric_enabled }
-          tf_data_network: {if: ["create_tf_data_network_res", { get_attr: [tf_data_network, tf_data_network_id] }, ""]}
-          tf_data_subnet_id: {if: ["create_tf_data_network_res", { get_attr: [tf_data_network, tf_data_subnet_id] }, ""]}
+          tun_network: { get_attr: [tun_network, tun_network_id] }
+          tun_subnet_id: { get_attr: [tun_network, tun_subnet_id] }
           hardware_metadata: { get_param: hardware_metadata}
 
   cmps:
@@ -455,8 +450,8 @@
           ironic_baremetal_tunnel_cidr: { get_param: ironic_baremetal_tunnel_cidr }
           ironic_mt_enabled: { get_param: ironic_mt_enabled }
           tungstenfabric_enabled: { get_param: tungstenfabric_enabled }
-          tf_data_network: {if: ["create_tf_data_network_res", { get_attr: [tf_data_network, tf_data_network_id] }, ""]}
-          tf_data_subnet_id: {if: ["create_tf_data_network_res", { get_attr: [tf_data_network, tf_data_subnet_id] }, ""]}
+          tun_network: { get_attr: [tun_network, tun_network_id] }
+          tun_subnet_id: { get_attr: [tun_network, tun_subnet_id] }
           hardware_metadata: { get_param: hardware_metadata}
 
   acmps:
@@ -500,8 +495,8 @@
           ironic_baremetal_tunnel_cidr: { get_param: ironic_baremetal_tunnel_cidr }
           ironic_mt_enabled: { get_param: ironic_mt_enabled }
           tungstenfabric_enabled: { get_param: tungstenfabric_enabled }
-          tf_data_network: {if: ["create_tf_data_network_res", { get_attr: [tf_data_network, tf_data_network_id] }, ""]}
-          tf_data_subnet_id: {if: ["create_tf_data_network_res", { get_attr: [tf_data_network, tf_data_subnet_id] }, ""]}
+          tun_network: { get_attr: [tun_network, tun_network_id] }
+          tun_subnet_id: { get_attr: [tun_network, tun_subnet_id] }
           hardware_metadata: { get_param: hardware_metadata}
           huge_pages: { get_param: huge_pages }
 
@@ -622,8 +617,8 @@
           ironic_baremetal_tunnel_cidr: { get_param: ironic_baremetal_tunnel_cidr }
           ironic_mt_enabled: { get_param: ironic_mt_enabled }
           tungstenfabric_enabled: { get_param: tungstenfabric_enabled }
-          tf_data_network: {if: ["create_tf_data_network_res", { get_attr: [tf_data_network, tf_data_network_id] }, ""]}
-          tf_data_subnet_id: {if: ["create_tf_data_network_res", { get_attr: [tf_data_network, tf_data_subnet_id] }, ""]}
+          tun_network: { get_attr: [tun_network, tun_network_id] }
+          tun_subnet_id: { get_attr: [tun_network, tun_subnet_id] }
           hardware_metadata: { get_param: hardware_metadata}
 
   spares:  # spares for osds/cmps
@@ -667,8 +662,8 @@
           ironic_baremetal_tunnel_cidr: { get_param: ironic_baremetal_tunnel_cidr }
           ironic_mt_enabled: { get_param: ironic_mt_enabled }
           tungstenfabric_enabled: { get_param: tungstenfabric_enabled }
-          tf_data_network: {if: ["create_tf_data_network_res", { get_attr: [tf_data_network, tf_data_network_id] }, ""]}
-          tf_data_subnet_id: {if: ["create_tf_data_network_res", { get_attr: [tf_data_network, tf_data_subnet_id] }, ""]}
+          tun_network: { get_attr: [tun_network, tun_network_id] }
+          tun_subnet_id: { get_attr: [tun_network, tun_subnet_id] }
           hardware_metadata: { get_param: hardware_metadata}
 
   ntws: