Alleviate startup disk contention issues

Add tuneable parameters in the heat template to
try to alleviate startup disk contention issues.

Also turn off use of RAM disk by default, reduce
size of Rancher VM, and use the RAM saved for an
extra k8s compute VM.

Change-Id: Ic638f33479338ebb9339b249ced9d6fa684935fa
Issue-ID: INT-586
Signed-off-by: Gary Wu <gary.i.wu@huawei.com>
diff --git a/deployment/heat/onap-oom/env/tlab/onap-oom.env b/deployment/heat/onap-oom/env/tlab/onap-oom.env
index e5b6d62..d41d462 100644
--- a/deployment/heat/onap-oom/env/tlab/onap-oom.env
+++ b/deployment/heat/onap-oom/env/tlab/onap-oom.env
@@ -5,8 +5,8 @@
   apt_proxy: 192.168.31.204:8000
   docker_proxy: 192.168.31.204:5000
 
-  rancher_vm_flavor: m5.xlarge
-  k8s_vm_flavor: m4.xlarge
+  rancher_vm_flavor: m1.xlarge
+  k8s_vm_flavor: m1.xlarge
   etcd_vm_flavor: m1.large
   orch_vm_flavor: m1.xlarge
 
@@ -32,7 +32,7 @@
       openStackPrivateSubnetId: "__oam_subnet_id__"
       openStackPrivateNetCidr: "__oam_network_cidr__"
       openStackOamNetworkCidrPrefix: "10.0"
-      dcaeCollectorIp: "__k8s_1_vm_ip__"
+      dcaeCollectorIp: "__k8s_01_vm_ip__"
       vnfPubKey: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDKXDgoo3+WOqcUG8/5uUbk81+yczgwC4Y8ywTmuQqbNxlY1oQ0YxdMUqUnhitSXs5S/yRuAVOYHwGg2mCs20oAINrP+mxBI544AMIb9itPjCtgqtE2EWo6MmnFGbHB4Sx3XioE7F4VPsh7japsIwzOjbrQe+Mua1TGQ5d4nfEOQaaglXLLPFfuc7WbhbJbK6Q7rHqZfRcOwAMXgDoBqlyqKeiKwnumddo2RyNT8ljYmvB6buz7KnMinzo7qB0uktVT05FH9Rg0CTWH5norlG5qXgP2aukL0gk1ph8iAt7uYLf1ktp+LJI2gaF6L0/qli9EmVCSLr1uJ38Q8CBflhkh"
       demoArtifactsVersion: "1.3.0-SNAPSHOT"
       scriptVersion: "1.3.0-SNAPSHOT"
diff --git a/deployment/heat/onap-oom/env/windriver/onap-oom-light.env b/deployment/heat/onap-oom/env/windriver/onap-oom-light.env
index c512c51..4ded3df 100644
--- a/deployment/heat/onap-oom/env/windriver/onap-oom-light.env
+++ b/deployment/heat/onap-oom/env/windriver/onap-oom-light.env
@@ -28,7 +28,7 @@
       openStackPrivateSubnetId: "__oam_subnet_id__"
       openStackPrivateNetCidr: "__oam_network_cidr__"
       openStackOamNetworkCidrPrefix: "10.0"
-      dcaeCollectorIp: "__k8s_1_vm_ip__"
+      dcaeCollectorIp: "__k8s_01_vm_ip__"
       vnfPubKey: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDKXDgoo3+WOqcUG8/5uUbk81+yczgwC4Y8ywTmuQqbNxlY1oQ0YxdMUqUnhitSXs5S/yRuAVOYHwGg2mCs20oAINrP+mxBI544AMIb9itPjCtgqtE2EWo6MmnFGbHB4Sx3XioE7F4VPsh7japsIwzOjbrQe+Mua1TGQ5d4nfEOQaaglXLLPFfuc7WbhbJbK6Q7rHqZfRcOwAMXgDoBqlyqKeiKwnumddo2RyNT8ljYmvB6buz7KnMinzo7qB0uktVT05FH9Rg0CTWH5norlG5qXgP2aukL0gk1ph8iAt7uYLf1ktp+LJI2gaF6L0/qli9EmVCSLr1uJ38Q8CBflhkh"
       demoArtifactsVersion: "1.2.2"
       scriptVersion: "1.2.1"
diff --git a/deployment/heat/onap-oom/env/windriver/onap-oom.env b/deployment/heat/onap-oom/env/windriver/onap-oom.env
index 2ddda32..5ffbd8c 100644
--- a/deployment/heat/onap-oom/env/windriver/onap-oom.env
+++ b/deployment/heat/onap-oom/env/windriver/onap-oom.env
@@ -5,7 +5,7 @@
   apt_proxy: 10.12.5.2:8000
   docker_proxy: 10.12.5.2:5000
 
-  rancher_vm_flavor: m2.xlarge
+  rancher_vm_flavor: m1.xlarge
   k8s_vm_flavor: m1.xlarge
   etcd_vm_flavor: m1.large
   orch_vm_flavor: m1.xlarge
@@ -33,7 +33,7 @@
       openStackPrivateNetCidr: "__oam_network_cidr__"
       openStackSecurityGroup: "__sec_group__"
       openStackOamNetworkCidrPrefix: "10.0"
-      dcaeCollectorIp: "__k8s_1_vm_ip__"
+      dcaeCollectorIp: "__k8s_01_vm_ip__"
       vnfPubKey: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDKXDgoo3+WOqcUG8/5uUbk81+yczgwC4Y8ywTmuQqbNxlY1oQ0YxdMUqUnhitSXs5S/yRuAVOYHwGg2mCs20oAINrP+mxBI544AMIb9itPjCtgqtE2EWo6MmnFGbHB4Sx3XioE7F4VPsh7japsIwzOjbrQe+Mua1TGQ5d4nfEOQaaglXLLPFfuc7WbhbJbK6Q7rHqZfRcOwAMXgDoBqlyqKeiKwnumddo2RyNT8ljYmvB6buz7KnMinzo7qB0uktVT05FH9Rg0CTWH5norlG5qXgP2aukL0gk1ph8iAt7uYLf1ktp+LJI2gaF6L0/qli9EmVCSLr1uJ38Q8CBflhkh"
       demoArtifactsVersion: "1.3.0-SNAPSHOT"
       scriptVersion: "1.3.0-SNAPSHOT"
diff --git a/deployment/heat/onap-oom/k8s_vm_entrypoint.sh b/deployment/heat/onap-oom/k8s_vm_entrypoint.sh
index e93622c..62340c1 100644
--- a/deployment/heat/onap-oom/k8s_vm_entrypoint.sh
+++ b/deployment/heat/onap-oom/k8s_vm_entrypoint.sh
@@ -34,6 +34,9 @@
 EOF
 fi
 
+# tune ext4 for performance
+sed -i 's/defaults/defaults,noatime,commit=60,barrier=0/' /etc/fstab
+
 mkdir -p /dockerdata-nfs
 echo "__rancher_private_ip_addr__:/dockerdata-nfs /dockerdata-nfs nfs noauto,noatime,fg,retry=1,x-systemd.automount,_netdev,soft,nolock,intr,tcp,actimeo=1800 0 0" | tee -a /etc/fstab
 
diff --git a/deployment/heat/onap-oom/onap-oom.yaml b/deployment/heat/onap-oom/onap-oom.yaml
index dc06512..9300322 100644
--- a/deployment/heat/onap-oom/onap-oom.yaml
+++ b/deployment/heat/onap-oom/onap-oom.yaml
@@ -87,6 +87,15 @@
     type: string
     default: "2.9.1"
 
+  helm_deploy_delay:
+    type: string
+    default: "2m"
+
+  use_ramdisk:
+    type: string
+    description: Set to "true" if you want to use a RAM disk for /dockerdata-nfs/.
+    default: "false"
+
 resources:
   random-str:
     type: OS::Heat::RandomString
@@ -202,37 +211,41 @@
             __rancher_agent_version__: { get_param: rancher_agent_version }
             __kubectl_version__: { get_param: kubectl_version }
             __helm_version__: { get_param: helm_version }
+            __helm_deploy_delay__: { get_param: helm_deploy_delay }
+            __use_ramdisk__: { get_param: use_ramdisk }
             __public_net_id__: { get_param: public_net_id }
             __oam_network_cidr__: { get_param: oam_network_cidr }
             __oam_network_id__: { get_resource: oam_network }
             __oam_subnet_id__: { get_resource: oam_subnet }
             __sec_group__: { get_resource: onap_sg }
-            __k8s_1_vm_ip__: { get_attr: [k8s_1_floating_ip, floating_ip_address] }
+            __k8s_01_vm_ip__: { get_attr: [k8s_01_floating_ip, floating_ip_address] }
             __k8s_vm_ips__: [
-              get_attr: [k8s_1_floating_ip, floating_ip_address],
-              get_attr: [k8s_2_floating_ip, floating_ip_address],
-              get_attr: [k8s_3_floating_ip, floating_ip_address],
-              get_attr: [k8s_4_floating_ip, floating_ip_address],
-              get_attr: [k8s_5_floating_ip, floating_ip_address],
-              get_attr: [k8s_6_floating_ip, floating_ip_address],
-              get_attr: [k8s_7_floating_ip, floating_ip_address],
-              get_attr: [k8s_8_floating_ip, floating_ip_address],
-              get_attr: [k8s_9_floating_ip, floating_ip_address],
+              get_attr: [k8s_01_floating_ip, floating_ip_address],
+              get_attr: [k8s_02_floating_ip, floating_ip_address],
+              get_attr: [k8s_03_floating_ip, floating_ip_address],
+              get_attr: [k8s_04_floating_ip, floating_ip_address],
+              get_attr: [k8s_05_floating_ip, floating_ip_address],
+              get_attr: [k8s_06_floating_ip, floating_ip_address],
+              get_attr: [k8s_07_floating_ip, floating_ip_address],
+              get_attr: [k8s_08_floating_ip, floating_ip_address],
+              get_attr: [k8s_09_floating_ip, floating_ip_address],
               get_attr: [k8s_10_floating_ip, floating_ip_address],
+              get_attr: [k8s_11_floating_ip, floating_ip_address],
             ]
             __k8s_private_ips__: [
-              get_attr: [k8s_1_floating_ip, fixed_ip_address],
-              get_attr: [k8s_2_floating_ip, fixed_ip_address],
-              get_attr: [k8s_3_floating_ip, fixed_ip_address],
-              get_attr: [k8s_4_floating_ip, fixed_ip_address],
-              get_attr: [k8s_5_floating_ip, fixed_ip_address],
-              get_attr: [k8s_6_floating_ip, fixed_ip_address],
-              get_attr: [k8s_7_floating_ip, fixed_ip_address],
-              get_attr: [k8s_8_floating_ip, fixed_ip_address],
-              get_attr: [k8s_9_floating_ip, fixed_ip_address],
+              get_attr: [k8s_01_floating_ip, fixed_ip_address],
+              get_attr: [k8s_02_floating_ip, fixed_ip_address],
+              get_attr: [k8s_03_floating_ip, fixed_ip_address],
+              get_attr: [k8s_04_floating_ip, fixed_ip_address],
+              get_attr: [k8s_05_floating_ip, fixed_ip_address],
+              get_attr: [k8s_06_floating_ip, fixed_ip_address],
+              get_attr: [k8s_07_floating_ip, fixed_ip_address],
+              get_attr: [k8s_08_floating_ip, fixed_ip_address],
+              get_attr: [k8s_09_floating_ip, fixed_ip_address],
               get_attr: [k8s_10_floating_ip, fixed_ip_address],
+              get_attr: [k8s_11_floating_ip, fixed_ip_address],
             ]
-  k8s_1_private_port:
+  k8s_01_private_port:
     type: OS::Neutron::Port
     properties:
       network: { get_resource: oam_network }
@@ -240,22 +253,22 @@
       security_groups:
       - { get_resource: onap_sg }
 
-  k8s_1_floating_ip:
+  k8s_01_floating_ip:
     type: OS::Neutron::FloatingIP
     properties:
       floating_network_id: { get_param: public_net_id }
-      port_id: { get_resource: k8s_1_private_port }
+      port_id: { get_resource: k8s_01_private_port }
 
-  k8s_1_vm:
+  k8s_01_vm:
     type: OS::Nova::Server
     properties:
       name:
-        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '1' ] ]
+        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '01' ] ]
       image: { get_param: ubuntu_1604_image }
       flavor: { get_param: k8s_vm_flavor }
       key_name: { get_param: key_name }
       networks:
-      - port: { get_resource: k8s_1_private_port }
+      - port: { get_resource: k8s_01_private_port }
       user_data_format: RAW
       user_data:
         str_replace:
@@ -269,7 +282,7 @@
           template:
             get_file: k8s_vm_entrypoint.sh
 
-  k8s_2_private_port:
+  k8s_02_private_port:
     type: OS::Neutron::Port
     properties:
       network: { get_resource: oam_network }
@@ -277,22 +290,22 @@
       security_groups:
       - { get_resource: onap_sg }
 
-  k8s_2_floating_ip:
+  k8s_02_floating_ip:
     type: OS::Neutron::FloatingIP
     properties:
       floating_network_id: { get_param: public_net_id }
-      port_id: { get_resource: k8s_2_private_port }
+      port_id: { get_resource: k8s_02_private_port }
 
-  k8s_2_vm:
+  k8s_02_vm:
     type: OS::Nova::Server
     properties:
       name:
-        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '2' ] ]
+        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '02' ] ]
       image: { get_param: ubuntu_1604_image }
       flavor: { get_param: k8s_vm_flavor }
       key_name: { get_param: key_name }
       networks:
-      - port: { get_resource: k8s_2_private_port }
+      - port: { get_resource: k8s_02_private_port }
       user_data_format: RAW
       user_data:
         str_replace:
@@ -306,7 +319,7 @@
           template:
             get_file: k8s_vm_entrypoint.sh
 
-  k8s_3_private_port:
+  k8s_03_private_port:
     type: OS::Neutron::Port
     properties:
       network: { get_resource: oam_network }
@@ -314,22 +327,22 @@
       security_groups:
       - { get_resource: onap_sg }
 
-  k8s_3_floating_ip:
+  k8s_03_floating_ip:
     type: OS::Neutron::FloatingIP
     properties:
       floating_network_id: { get_param: public_net_id }
-      port_id: { get_resource: k8s_3_private_port }
+      port_id: { get_resource: k8s_03_private_port }
 
-  k8s_3_vm:
+  k8s_03_vm:
     type: OS::Nova::Server
     properties:
       name:
-        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '3' ] ]
+        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '03' ] ]
       image: { get_param: ubuntu_1604_image }
       flavor: { get_param: k8s_vm_flavor }
       key_name: { get_param: key_name }
       networks:
-      - port: { get_resource: k8s_3_private_port }
+      - port: { get_resource: k8s_03_private_port }
       user_data_format: RAW
       user_data:
         str_replace:
@@ -343,7 +356,7 @@
           template:
             get_file: k8s_vm_entrypoint.sh
 
-  k8s_4_private_port:
+  k8s_04_private_port:
     type: OS::Neutron::Port
     properties:
       network: { get_resource: oam_network }
@@ -351,22 +364,22 @@
       security_groups:
       - { get_resource: onap_sg }
 
-  k8s_4_floating_ip:
+  k8s_04_floating_ip:
     type: OS::Neutron::FloatingIP
     properties:
       floating_network_id: { get_param: public_net_id }
-      port_id: { get_resource: k8s_4_private_port }
+      port_id: { get_resource: k8s_04_private_port }
 
-  k8s_4_vm:
+  k8s_04_vm:
     type: OS::Nova::Server
     properties:
       name:
-        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '4' ] ]
+        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '04' ] ]
       image: { get_param: ubuntu_1604_image }
       flavor: { get_param: k8s_vm_flavor }
       key_name: { get_param: key_name }
       networks:
-      - port: { get_resource: k8s_4_private_port }
+      - port: { get_resource: k8s_04_private_port }
       user_data_format: RAW
       user_data:
         str_replace:
@@ -380,7 +393,7 @@
           template:
             get_file: k8s_vm_entrypoint.sh
 
-  k8s_5_private_port:
+  k8s_05_private_port:
     type: OS::Neutron::Port
     properties:
       network: { get_resource: oam_network }
@@ -388,22 +401,22 @@
       security_groups:
       - { get_resource: onap_sg }
 
-  k8s_5_floating_ip:
+  k8s_05_floating_ip:
     type: OS::Neutron::FloatingIP
     properties:
       floating_network_id: { get_param: public_net_id }
-      port_id: { get_resource: k8s_5_private_port }
+      port_id: { get_resource: k8s_05_private_port }
 
-  k8s_5_vm:
+  k8s_05_vm:
     type: OS::Nova::Server
     properties:
       name:
-        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '5' ] ]
+        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '05' ] ]
       image: { get_param: ubuntu_1604_image }
       flavor: { get_param: k8s_vm_flavor }
       key_name: { get_param: key_name }
       networks:
-      - port: { get_resource: k8s_5_private_port }
+      - port: { get_resource: k8s_05_private_port }
       user_data_format: RAW
       user_data:
         str_replace:
@@ -417,7 +430,7 @@
           template:
             get_file: k8s_vm_entrypoint.sh
 
-  k8s_6_private_port:
+  k8s_06_private_port:
     type: OS::Neutron::Port
     properties:
       network: { get_resource: oam_network }
@@ -425,22 +438,22 @@
       security_groups:
       - { get_resource: onap_sg }
 
-  k8s_6_floating_ip:
+  k8s_06_floating_ip:
     type: OS::Neutron::FloatingIP
     properties:
       floating_network_id: { get_param: public_net_id }
-      port_id: { get_resource: k8s_6_private_port }
+      port_id: { get_resource: k8s_06_private_port }
 
-  k8s_6_vm:
+  k8s_06_vm:
     type: OS::Nova::Server
     properties:
       name:
-        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '6' ] ]
+        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '06' ] ]
       image: { get_param: ubuntu_1604_image }
       flavor: { get_param: k8s_vm_flavor }
       key_name: { get_param: key_name }
       networks:
-      - port: { get_resource: k8s_6_private_port }
+      - port: { get_resource: k8s_06_private_port }
       user_data_format: RAW
       user_data:
         str_replace:
@@ -454,7 +467,7 @@
           template:
             get_file: k8s_vm_entrypoint.sh
 
-  k8s_7_private_port:
+  k8s_07_private_port:
     type: OS::Neutron::Port
     properties:
       network: { get_resource: oam_network }
@@ -462,22 +475,22 @@
       security_groups:
       - { get_resource: onap_sg }
 
-  k8s_7_floating_ip:
+  k8s_07_floating_ip:
     type: OS::Neutron::FloatingIP
     properties:
       floating_network_id: { get_param: public_net_id }
-      port_id: { get_resource: k8s_7_private_port }
+      port_id: { get_resource: k8s_07_private_port }
 
-  k8s_7_vm:
+  k8s_07_vm:
     type: OS::Nova::Server
     properties:
       name:
-        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '7' ] ]
+        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '07' ] ]
       image: { get_param: ubuntu_1604_image }
       flavor: { get_param: k8s_vm_flavor }
       key_name: { get_param: key_name }
       networks:
-      - port: { get_resource: k8s_7_private_port }
+      - port: { get_resource: k8s_07_private_port }
       user_data_format: RAW
       user_data:
         str_replace:
@@ -491,7 +504,7 @@
           template:
             get_file: k8s_vm_entrypoint.sh
 
-  k8s_8_private_port:
+  k8s_08_private_port:
     type: OS::Neutron::Port
     properties:
       network: { get_resource: oam_network }
@@ -499,22 +512,22 @@
       security_groups:
       - { get_resource: onap_sg }
 
-  k8s_8_floating_ip:
+  k8s_08_floating_ip:
     type: OS::Neutron::FloatingIP
     properties:
       floating_network_id: { get_param: public_net_id }
-      port_id: { get_resource: k8s_8_private_port }
+      port_id: { get_resource: k8s_08_private_port }
 
-  k8s_8_vm:
+  k8s_08_vm:
     type: OS::Nova::Server
     properties:
       name:
-        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '8' ] ]
+        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '08' ] ]
       image: { get_param: ubuntu_1604_image }
       flavor: { get_param: k8s_vm_flavor }
       key_name: { get_param: key_name }
       networks:
-      - port: { get_resource: k8s_8_private_port }
+      - port: { get_resource: k8s_08_private_port }
       user_data_format: RAW
       user_data:
         str_replace:
@@ -528,7 +541,7 @@
           template:
             get_file: k8s_vm_entrypoint.sh
 
-  k8s_9_private_port:
+  k8s_09_private_port:
     type: OS::Neutron::Port
     properties:
       network: { get_resource: oam_network }
@@ -536,22 +549,22 @@
       security_groups:
       - { get_resource: onap_sg }
 
-  k8s_9_floating_ip:
+  k8s_09_floating_ip:
     type: OS::Neutron::FloatingIP
     properties:
       floating_network_id: { get_param: public_net_id }
-      port_id: { get_resource: k8s_9_private_port }
+      port_id: { get_resource: k8s_09_private_port }
 
-  k8s_9_vm:
+  k8s_09_vm:
     type: OS::Nova::Server
     properties:
       name:
-        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '9' ] ]
+        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '09' ] ]
       image: { get_param: ubuntu_1604_image }
       flavor: { get_param: k8s_vm_flavor }
       key_name: { get_param: key_name }
       networks:
-      - port: { get_resource: k8s_9_private_port }
+      - port: { get_resource: k8s_09_private_port }
       user_data_format: RAW
       user_data:
         str_replace:
@@ -602,6 +615,43 @@
           template:
             get_file: k8s_vm_entrypoint.sh
 
+  k8s_11_private_port:
+    type: OS::Neutron::Port
+    properties:
+      network: { get_resource: oam_network }
+      fixed_ips: [{"subnet": { get_resource: oam_subnet }}]
+      security_groups:
+      - { get_resource: onap_sg }
+
+  k8s_11_floating_ip:
+    type: OS::Neutron::FloatingIP
+    properties:
+      floating_network_id: { get_param: public_net_id }
+      port_id: { get_resource: k8s_11_private_port }
+
+  k8s_11_vm:
+    type: OS::Nova::Server
+    properties:
+      name:
+        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '11' ] ]
+      image: { get_param: ubuntu_1604_image }
+      flavor: { get_param: k8s_vm_flavor }
+      key_name: { get_param: key_name }
+      networks:
+      - port: { get_resource: k8s_11_private_port }
+      user_data_format: RAW
+      user_data:
+        str_replace:
+          params:
+            __docker_proxy__: { get_param: docker_proxy }
+            __apt_proxy__: { get_param: apt_proxy }
+            __docker_version__: { get_param: docker_version }
+            __rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
+            __rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
+            __host_label__: 'compute'
+          template:
+            get_file: k8s_vm_entrypoint.sh
+
   etcd_1_private_port:
     type: OS::Neutron::Port
     properties:
@@ -755,43 +805,47 @@
     description: The IP address of the rancher instance
     value: { get_attr: [rancher_floating_ip, floating_ip_address] }
 
-  k8s_1_vm_ip:
-    description: The IP address of the k8s_1 instance
-    value: { get_attr: [k8s_1_floating_ip, floating_ip_address] }
+  k8s_01_vm_ip:
+    description: The IP address of the k8s_01 instance
+    value: { get_attr: [k8s_01_floating_ip, floating_ip_address] }
 
-  k8s_2_vm_ip:
-    description: The IP address of the k8s_2 instance
-    value: { get_attr: [k8s_2_floating_ip, floating_ip_address] }
+  k8s_02_vm_ip:
+    description: The IP address of the k8s_02 instance
+    value: { get_attr: [k8s_02_floating_ip, floating_ip_address] }
 
-  k8s_3_vm_ip:
-    description: The IP address of the k8s_3 instance
-    value: { get_attr: [k8s_3_floating_ip, floating_ip_address] }
+  k8s_03_vm_ip:
+    description: The IP address of the k8s_03 instance
+    value: { get_attr: [k8s_03_floating_ip, floating_ip_address] }
 
-  k8s_4_vm_ip:
-    description: The IP address of the k8s_4 instance
-    value: { get_attr: [k8s_4_floating_ip, floating_ip_address] }
+  k8s_04_vm_ip:
+    description: The IP address of the k8s_04 instance
+    value: { get_attr: [k8s_04_floating_ip, floating_ip_address] }
 
-  k8s_5_vm_ip:
-    description: The IP address of the k8s_5 instance
-    value: { get_attr: [k8s_5_floating_ip, floating_ip_address] }
+  k8s_05_vm_ip:
+    description: The IP address of the k8s_05 instance
+    value: { get_attr: [k8s_05_floating_ip, floating_ip_address] }
 
-  k8s_6_vm_ip:
-    description: The IP address of the k8s_6 instance
-    value: { get_attr: [k8s_6_floating_ip, floating_ip_address] }
+  k8s_06_vm_ip:
+    description: The IP address of the k8s_06 instance
+    value: { get_attr: [k8s_06_floating_ip, floating_ip_address] }
 
-  k8s_7_vm_ip:
-    description: The IP address of the k8s_7 instance
-    value: { get_attr: [k8s_7_floating_ip, floating_ip_address] }
+  k8s_07_vm_ip:
+    description: The IP address of the k8s_07 instance
+    value: { get_attr: [k8s_07_floating_ip, floating_ip_address] }
 
-  k8s_8_vm_ip:
-    description: The IP address of the k8s_8 instance
-    value: { get_attr: [k8s_8_floating_ip, floating_ip_address] }
+  k8s_08_vm_ip:
+    description: The IP address of the k8s_08 instance
+    value: { get_attr: [k8s_08_floating_ip, floating_ip_address] }
 
-  k8s_9_vm_ip:
-    description: The IP address of the k8s_9 instance
-    value: { get_attr: [k8s_9_floating_ip, floating_ip_address] }
+  k8s_09_vm_ip:
+    description: The IP address of the k8s_09 instance
+    value: { get_attr: [k8s_09_floating_ip, floating_ip_address] }
 
   k8s_10_vm_ip:
     description: The IP address of the k8s_10 instance
     value: { get_attr: [k8s_10_floating_ip, floating_ip_address] }
 
+  k8s_11_vm_ip:
+    description: The IP address of the k8s_11 instance
+    value: { get_attr: [k8s_11_floating_ip, floating_ip_address] }
+
diff --git a/deployment/heat/onap-oom/parts/onap-oom-1.yaml b/deployment/heat/onap-oom/parts/onap-oom-1.yaml
index 3c34f75..a96c9a3 100644
--- a/deployment/heat/onap-oom/parts/onap-oom-1.yaml
+++ b/deployment/heat/onap-oom/parts/onap-oom-1.yaml
@@ -84,6 +84,15 @@
     type: string
     default: "2.9.1"
 
+  helm_deploy_delay:
+    type: string
+    default: "2m"
+
+  use_ramdisk:
+    type: string
+    description: Set to "true" if you want to use a RAM disk for /dockerdata-nfs/.
+    default: "false"
+
 resources:
   random-str:
     type: OS::Heat::RandomString
diff --git a/deployment/heat/onap-oom/rancher_vm_entrypoint.sh b/deployment/heat/onap-oom/rancher_vm_entrypoint.sh
index aadc816..aced5df 100644
--- a/deployment/heat/onap-oom/rancher_vm_entrypoint.sh
+++ b/deployment/heat/onap-oom/rancher_vm_entrypoint.sh
@@ -34,6 +34,7 @@
 echo "__rancher_agent_version__" > /opt/config/rancher_agent_version.txt
 echo "__kubectl_version__" > /opt/config/kubectl_version.txt
 echo "__helm_version__" > /opt/config/helm_version.txt
+echo "__helm_deploy_delay__" > /opt/config/helm_deploy_delay.txt
 
 cat <<EOF > /opt/config/integration-override.yaml
 __integration_override_yaml__
@@ -44,7 +45,7 @@
 sed -i 's/\_\_oam_subnet_id__/__oam_subnet_id__/g' /opt/config/integration-override.yaml
 sed -i 's/\_\_sec_group__/__sec_group__/g' /opt/config/integration-override.yaml
 sed -i 's/\_\_rancher_ip_addr__/__rancher_ip_addr__/g' /opt/config/integration-override.yaml
-sed -i 's/\_\_k8s_1_vm_ip__/__k8s_1_vm_ip__/g' /opt/config/integration-override.yaml
+sed -i 's/\_\_k8s_01_vm_ip__/__k8s_01_vm_ip__/g' /opt/config/integration-override.yaml
 sed -i 's/\_\_docker_proxy__/__docker_proxy__/g' /opt/config/integration-override.yaml
 cp /opt/config/integration-override.yaml /root
 cat /root/integration-override.yaml
@@ -74,11 +75,13 @@
     sleep 10
 done
 
-# use RAM disk for /dockerdata-nfs for testing
-echo "tmpfs /dockerdata-nfs tmpfs noatime,size=75% 1 2" >> /etc/fstab
-mkdir -pv /dockerdata-nfs
-mount /dockerdata-nfs
+mkdir -p /dockerdata-nfs
 
+# use RAM disk for /dockerdata-nfs for testing
+if [ "__use_ramdisk__" = "true" ]; then
+    echo "tmpfs /dockerdata-nfs tmpfs noatime,size=75% 1 2" >> /etc/fstab
+    mount /dockerdata-nfs
+fi
 # version control the persistence volume to see what's happening
 chmod 777 /dockerdata-nfs/
 chown nobody:nogroup /dockerdata-nfs/
@@ -272,6 +275,7 @@
 git fetch https://gerrit.onap.org/r/integration __integration_gerrit_refspec__
 git checkout FETCH_HEAD
 
+
 if [ ! -z "__docker_manifest__" ]; then
     cd version-manifest/src/main/scripts
     ./update-oom-image-versions.sh ../resources/__docker_manifest__ ~/oom/
@@ -292,12 +296,24 @@
 helm repo add local http://127.0.0.1:8879
 helm repo list
 make all
-rsync -avt ~/oom/kubernetes/helm/plugins ~/.helm/
 helm search -l | grep local
-helm deploy dev local/onap -f ~/oom/kubernetes/onap/resources/environments/public-cloud.yaml -f ~/integration-override.yaml --namespace $NAMESPACE
+
+# install helm deploy plugin
+rsync -avt ~/oom/kubernetes/helm/plugins ~/.helm/
+# temporary workaround to throttle the helm deploy to alleviate startup disk contention issues
+if [ ! -z "__helm_deploy_delay__" ]; then
+    sed -i "/\^enabled:/a\      echo sleep __helm_deploy_delay__\n      sleep __helm_deploy_delay__" ~/.helm/plugins/deploy/deploy.sh
+fi
+
+helm deploy dev local/onap -f ~/oom/kubernetes/onap/resources/environments/public-cloud.yaml -f ~/integration-override.yaml --namespace $NAMESPACE --verbose
+
+# re-install original helm deploy plugin
+rsync -avt ~/oom/kubernetes/helm/plugins ~/.helm/
+
 helm list
 
 
+
 # Check ONAP status:
 sleep 10
 kubectl get pods --all-namespaces
diff --git a/deployment/heat/onap-oom/scripts/deploy.sh b/deployment/heat/onap-oom/scripts/deploy.sh
index c3a73c7..4387bbe 100755
--- a/deployment/heat/onap-oom/scripts/deploy.sh
+++ b/deployment/heat/onap-oom/scripts/deploy.sh
@@ -137,7 +137,7 @@
     for i in $(seq 1 30); do
 	sleep 30
 	RANCHER_IP=$(openstack stack output show $stack_name rancher_vm_ip -c output_value -f value)
-        K8S_IP=$(openstack stack output show $stack_name k8s_1_vm_ip -c output_value -f value)
+        K8S_IP=$(openstack stack output show $stack_name k8s_01_vm_ip -c output_value -f value)
 	timeout 1 ping -c 1 "$RANCHER_IP" && break
     done
 
diff --git a/deployment/heat/onap-oom/scripts/gen-onap-oom-yaml.sh b/deployment/heat/onap-oom/scripts/gen-onap-oom-yaml.sh
index 5700111..1167496 100755
--- a/deployment/heat/onap-oom/scripts/gen-onap-oom-yaml.sh
+++ b/deployment/heat/onap-oom/scripts/gen-onap-oom-yaml.sh
@@ -61,16 +61,18 @@
             __rancher_agent_version__: { get_param: rancher_agent_version }
             __kubectl_version__: { get_param: kubectl_version }
             __helm_version__: { get_param: helm_version }
+            __helm_deploy_delay__: { get_param: helm_deploy_delay }
+            __use_ramdisk__: { get_param: use_ramdisk }
             __public_net_id__: { get_param: public_net_id }
             __oam_network_cidr__: { get_param: oam_network_cidr }
             __oam_network_id__: { get_resource: oam_network }
             __oam_subnet_id__: { get_resource: oam_subnet }
             __sec_group__: { get_resource: onap_sg }
-            __k8s_1_vm_ip__: { get_attr: [k8s_1_floating_ip, floating_ip_address] }
+            __k8s_01_vm_ip__: { get_attr: [k8s_01_floating_ip, floating_ip_address] }
             __k8s_vm_ips__: [
 EOF
 
-for VM_NUM in $(seq $NUM_K8S_VMS); do
+for VM_NUM in $(seq -f %02g $NUM_K8S_VMS); do
     K8S_VM_NAME=k8s_$VM_NUM
     cat <<EOF
               get_attr: [${K8S_VM_NAME}_floating_ip, floating_ip_address],
@@ -82,7 +84,7 @@
             __k8s_private_ips__: [
 EOF
 
-for VM_NUM in $(seq $NUM_K8S_VMS); do
+for VM_NUM in $(seq -f %02g $NUM_K8S_VMS); do
     K8S_VM_NAME=k8s_$VM_NUM
     cat <<EOF
               get_attr: [${K8S_VM_NAME}_floating_ip, fixed_ip_address],
@@ -93,7 +95,7 @@
             ]
 EOF
 
-for VM_NUM in $(seq $NUM_K8S_VMS); do
+for VM_NUM in $(seq -f %02g $NUM_K8S_VMS); do
     VM_TYPE=k8s HOST_LABEL=compute VM_NUM=$VM_NUM envsubst < $PARTS_DIR/onap-oom-2.yaml
 done
 
@@ -108,7 +110,7 @@
 
 cat $PARTS_DIR/onap-oom-3.yaml
 
-for VM_NUM in $(seq $NUM_K8S_VMS); do
+for VM_NUM in $(seq -f %02g $NUM_K8S_VMS); do
     K8S_VM_NAME=k8s_$VM_NUM
     cat <<EOF
   ${K8S_VM_NAME}_vm_ip: