Merge "Remove non-OpenLab environment files"
[integration.git] / deployment / heat / onap-oom / onap-oom.yaml
index a6a5cf0..61ed8a5 100644 (file)
@@ -1,10 +1,10 @@
+#
+# Generated by scripts/gen-onap-oom-yaml.sh; MANUAL CHANGES WILL BE LOST
+#
 heat_template_version: 2015-10-15
 description: ONAP on Kubernetes using OOM
 
 parameters:
-  lab_name:
-    type: string
-
   docker_proxy:
     type: string
 
@@ -15,93 +15,77 @@ parameters:
     type: string
     description: The ID of the Public network for floating IP address allocation
 
-  public_net_name:
-    type: string
-    description: The name of the Public network referred by public_net_id
-
   oam_network_cidr:
     type: string
     description: CIDR of the OAM ONAP network
 
-  keystone_url:
-    type: string
-    description: URL of OpenStack Keystone
-
-  openstack_tenant_id:
-    type: string
-    description: OpenStack tenant ID
-
-  openstack_tenant_name:
-    type: string
-    description: OpenStack tenant name (matching with the openstack_tenant_id)
-
-  openstack_username:
+  ubuntu_1604_image:
     type: string
-    description: OpenStack username
+    description: Name of the Ubuntu 16.04 image
 
-  openstack_api_key:
+  rancher_vm_flavor:
     type: string
-    description: OpenStack password or API Key
+    description: VM flavor for Rancher
 
-  ubuntu_1404_image:
+  k8s_vm_flavor:
     type: string
-    description: Name of the Ubuntu 14.04 image
+    description: VM flavor for k8s hosts
 
-  ubuntu_1604_image:
+  etcd_vm_flavor:
     type: string
-    description: Name of the Ubuntu 16.04 image
+    description: VM flavor for etcd hosts
 
-  centos_7_image:
+  orch_vm_flavor:
     type: string
-    description: the id/name of the CentOS 7 VM imange
+    description: VM flavor for orch hosts
 
-  rancher_vm_flavor:
+  integration_override_yaml:
     type: string
-    description: Name of the Ubuntu 14.04 image
+    description: Content for integration_override.yaml
 
-  k8s_vm_flavor:
+  integration_gerrit_branch:
     type: string
-    description: Name of the Ubuntu 14.04 image
+    default: "master"
 
-  dns_forwarder:
+  integration_gerrit_refspec:
     type: string
-    description: the forwarder address for setting up ONAP's private DNS server
+    default: "refs/heads/master"
 
-  external_dns:
+  oom_gerrit_branch:
     type: string
-    description: Public IP of the external DNS for ONAP network
+    default: "master"
 
-  dnsaas_proxy_enable:
+  oom_gerrit_refspec:
     type: string
-    description: whether to enable DNSaaS proxy via multicloud
+    default: "refs/heads/master"
 
-  dnsaas_region:
+  docker_manifest:
     type: string
-    description: the region of the cloud instance providing the Designate DNS as a Service
+    default: ""
 
-  dnsaas_proxied_keystone_url_path:
+  key_name:
     type: string
-    description: the proxy keystone URL path for DCAE to use (via MultiCloud)
+    default: "onap_key"
 
-  dnsaas_keystone_url:
+  docker_version:
     type: string
-    description: the keystone URL of the cloud instance providing the Designate DNS as a Service
+    default: "17.03.2"
 
-  dnsaas_username:
+  rancher_version:
     type: string
-    description: the username of the cloud instance providing the Designate DNS as a Service
+    default: "1.6.22"
 
-  dnsaas_password:
+  rancher_agent_version:
     type: string
-    description: the password of the cloud instance providing the Designate DNS as a Service
+    default: "1.2.11"
 
-  dnsaas_tenant_id:
+  kubectl_version:
     type: string
-    description: the ID of the tenant in the cloud instance providing the Designate DNS as a Service
+    default: "1.11.2"
 
-  dnsaas_tenant_name:
+  helm_version:
     type: string
-    description: the name of the tenant in the cloud instance providing the Designate DNS as a Service
+    default: "2.9.1"
 
 resources:
   random-str:
@@ -157,11 +141,13 @@ resources:
             rand: { get_resource: random-str }
       network_id: { get_resource: oam_network }
       cidr: { get_param: oam_network_cidr }
-      dns_nameservers: [ get_param: dns_forwarder ]
+      dns_nameservers: [ "8.8.8.8" ]
 
   router:
     type: OS::Neutron::Router
     properties:
+      name:
+        list_join: ['-', [{ get_param: 'OS::stack_name' }, 'router']]
       external_gateway_info:
         network: { get_param: public_net_id }
 
@@ -188,22 +174,104 @@ resources:
   rancher_vm:
     type: OS::Nova::Server
     properties:
-      name: rancher
+      name:
+        list_join: ['-', [{ get_param: 'OS::stack_name' }, 'rancher']]
       image: { get_param: ubuntu_1604_image }
       flavor: { get_param: rancher_vm_flavor }
-      key_name: onap_key
+      key_name: { get_param: key_name }
       networks:
       - port: { get_resource: rancher_private_port }
       user_data_format: RAW
+      user_data:
+        str_replace:
+          template:
+            get_file: rancher_vm_entrypoint.sh
+          params:
+            __docker_proxy__: { get_param: docker_proxy }
+            __apt_proxy__: { get_param: apt_proxy }
+            __rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
+            __rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
+            __integration_override_yaml__: { get_param: integration_override_yaml }
+            __integration_gerrit_branch__: { get_param: integration_gerrit_branch }
+            __integration_gerrit_refspec__: { get_param: integration_gerrit_refspec }
+            __oom_gerrit_branch__: { get_param: oom_gerrit_branch }
+            __oom_gerrit_refspec__: { get_param: oom_gerrit_refspec }
+            __docker_manifest__: { get_param: docker_manifest }
+            __docker_version__: { get_param: docker_version }
+            __rancher_version__: { get_param: rancher_version }
+            __rancher_agent_version__: { get_param: rancher_agent_version }
+            __kubectl_version__: { get_param: kubectl_version }
+            __helm_version__: { get_param: helm_version }
+            __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_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_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_10_floating_ip, fixed_ip_address],
+              get_attr: [k8s_11_floating_ip, fixed_ip_address],
+            ]
+  k8s_1_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_1_floating_ip:
+    type: OS::Neutron::FloatingIP
+    properties:
+      floating_network_id: { get_param: public_net_id }
+      port_id: { get_resource: k8s_1_private_port }
+
+  k8s_1_vm:
+    type: OS::Nova::Server
+    properties:
+      name:
+        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '1' ] ]
+      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 }
+      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: rancher_vm_entrypoint.sh
+            get_file: k8s_vm_entrypoint.sh
 
-  k8s_private_port:
+  k8s_2_private_port:
     type: OS::Neutron::Port
     properties:
       network: { get_resource: oam_network }
@@ -211,53 +279,550 @@ resources:
       security_groups:
       - { get_resource: onap_sg }
 
-  k8s_floating_ip:
+  k8s_2_floating_ip:
     type: OS::Neutron::FloatingIP
     properties:
       floating_network_id: { get_param: public_net_id }
-      port_id: { get_resource: k8s_private_port }
+      port_id: { get_resource: k8s_2_private_port }
 
-  k8s_vm:
+  k8s_2_vm:
     type: OS::Nova::Server
     properties:
-      name: k8s
+      name:
+        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '2' ] ]
       image: { get_param: ubuntu_1604_image }
       flavor: { get_param: k8s_vm_flavor }
-      key_name: onap_key
+      key_name: { get_param: key_name }
       networks:
-      - port: { get_resource: k8s_private_port }
+      - port: { get_resource: k8s_2_private_port }
       user_data_format: RAW
       user_data:
         str_replace:
           params:
-            __lab_name__: { get_param: lab_name }
             __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] }
-            __k8s_ip_addr__: { get_attr: [k8s_floating_ip, floating_ip_address] }
-            __openstack_tenant_id__: { get_param: openstack_tenant_id }
-            __openstack_tenant_name__: { get_param: openstack_tenant_name }
-            __openstack_username__: { get_param: openstack_username }
-            __openstack_api_key__: { get_param : openstack_api_key }
-            __public_net_id__: { get_param: public_net_id }
-            __public_net_name__: { get_param: public_net_name }
-            __oam_network_id__: { get_resource: oam_network }
-            __oam_subnet_id__: { get_resource: oam_subnet }
-            __oam_network_cidr__: { get_param: oam_network_cidr }
-            __ubuntu_1404_image__: { get_param: ubuntu_1404_image }
-            __ubuntu_1604_image__: { get_param: ubuntu_1604_image }
-            __centos_7_image__: { get_param: centos_7_image }
-            __keystone_url__: { get_param: keystone_url }
-            __dns_forwarder__: { get_param: dns_forwarder }
-            __external_dns__: { get_param: external_dns }
-            __dnsaas_proxy_enable__: { get_param: dnsaas_proxy_enable }
-            __dnsaas_proxied_keystone_url_path__: { get_param: dnsaas_proxied_keystone_url_path }
-            __dnsaas_keystone_url__: { get_param: dnsaas_keystone_url }
-            __dnsaas_region__: { get_param: dnsaas_region }
-            __dnsaas_tenant_id__: { get_param: dnsaas_tenant_id }
-            __dnsaas_tenant_name__: { get_param: dnsaas_tenant_name }
-            __dnsaas_username__: { get_param: dnsaas_username }
-            __dnsaas_password__: { get_param: dnsaas_password }
+            __rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
+            __host_label__: 'compute'
+          template:
+            get_file: k8s_vm_entrypoint.sh
+
+  k8s_3_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_3_floating_ip:
+    type: OS::Neutron::FloatingIP
+    properties:
+      floating_network_id: { get_param: public_net_id }
+      port_id: { get_resource: k8s_3_private_port }
+
+  k8s_3_vm:
+    type: OS::Nova::Server
+    properties:
+      name:
+        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '3' ] ]
+      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 }
+      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
+
+  k8s_4_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_4_floating_ip:
+    type: OS::Neutron::FloatingIP
+    properties:
+      floating_network_id: { get_param: public_net_id }
+      port_id: { get_resource: k8s_4_private_port }
+
+  k8s_4_vm:
+    type: OS::Nova::Server
+    properties:
+      name:
+        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '4' ] ]
+      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 }
+      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
+
+  k8s_5_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_5_floating_ip:
+    type: OS::Neutron::FloatingIP
+    properties:
+      floating_network_id: { get_param: public_net_id }
+      port_id: { get_resource: k8s_5_private_port }
+
+  k8s_5_vm:
+    type: OS::Nova::Server
+    properties:
+      name:
+        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '5' ] ]
+      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 }
+      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
+
+  k8s_6_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_6_floating_ip:
+    type: OS::Neutron::FloatingIP
+    properties:
+      floating_network_id: { get_param: public_net_id }
+      port_id: { get_resource: k8s_6_private_port }
+
+  k8s_6_vm:
+    type: OS::Nova::Server
+    properties:
+      name:
+        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '6' ] ]
+      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 }
+      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
+
+  k8s_7_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_7_floating_ip:
+    type: OS::Neutron::FloatingIP
+    properties:
+      floating_network_id: { get_param: public_net_id }
+      port_id: { get_resource: k8s_7_private_port }
+
+  k8s_7_vm:
+    type: OS::Nova::Server
+    properties:
+      name:
+        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '7' ] ]
+      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 }
+      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
+
+  k8s_8_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_8_floating_ip:
+    type: OS::Neutron::FloatingIP
+    properties:
+      floating_network_id: { get_param: public_net_id }
+      port_id: { get_resource: k8s_8_private_port }
+
+  k8s_8_vm:
+    type: OS::Nova::Server
+    properties:
+      name:
+        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '8' ] ]
+      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 }
+      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
+
+  k8s_9_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_9_floating_ip:
+    type: OS::Neutron::FloatingIP
+    properties:
+      floating_network_id: { get_param: public_net_id }
+      port_id: { get_resource: k8s_9_private_port }
+
+  k8s_9_vm:
+    type: OS::Nova::Server
+    properties:
+      name:
+        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '9' ] ]
+      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 }
+      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
+
+  k8s_10_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_10_floating_ip:
+    type: OS::Neutron::FloatingIP
+    properties:
+      floating_network_id: { get_param: public_net_id }
+      port_id: { get_resource: k8s_10_private_port }
+
+  k8s_10_vm:
+    type: OS::Nova::Server
+    properties:
+      name:
+        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '10' ] ]
+      image: { get_param: ubuntu_1604_image }
+      flavor: { get_param: k8s_vm_flavor }
+      key_name: { get_param: key_name }
+      networks:
+      - port: { get_resource: k8s_10_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
+
+  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:
+      network: { get_resource: oam_network }
+      fixed_ips: [{"subnet": { get_resource: oam_subnet }}]
+      security_groups:
+      - { get_resource: onap_sg }
+
+  etcd_1_floating_ip:
+    type: OS::Neutron::FloatingIP
+    properties:
+      floating_network_id: { get_param: public_net_id }
+      port_id: { get_resource: etcd_1_private_port }
+
+  etcd_1_vm:
+    type: OS::Nova::Server
+    properties:
+      name:
+        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'etcd', '1' ] ]
+      image: { get_param: ubuntu_1604_image }
+      flavor: { get_param: etcd_vm_flavor }
+      key_name: { get_param: key_name }
+      networks:
+      - port: { get_resource: etcd_1_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__: 'etcd'
+          template:
+            get_file: k8s_vm_entrypoint.sh
+
+  etcd_2_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 }
+
+  etcd_2_floating_ip:
+    type: OS::Neutron::FloatingIP
+    properties:
+      floating_network_id: { get_param: public_net_id }
+      port_id: { get_resource: etcd_2_private_port }
+
+  etcd_2_vm:
+    type: OS::Nova::Server
+    properties:
+      name:
+        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'etcd', '2' ] ]
+      image: { get_param: ubuntu_1604_image }
+      flavor: { get_param: etcd_vm_flavor }
+      key_name: { get_param: key_name }
+      networks:
+      - port: { get_resource: etcd_2_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__: 'etcd'
+          template:
+            get_file: k8s_vm_entrypoint.sh
+
+  etcd_3_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 }
+
+  etcd_3_floating_ip:
+    type: OS::Neutron::FloatingIP
+    properties:
+      floating_network_id: { get_param: public_net_id }
+      port_id: { get_resource: etcd_3_private_port }
+
+  etcd_3_vm:
+    type: OS::Nova::Server
+    properties:
+      name:
+        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'etcd', '3' ] ]
+      image: { get_param: ubuntu_1604_image }
+      flavor: { get_param: etcd_vm_flavor }
+      key_name: { get_param: key_name }
+      networks:
+      - port: { get_resource: etcd_3_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__: 'etcd'
+          template:
+            get_file: k8s_vm_entrypoint.sh
+
+  orch_1_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 }
+
+  orch_1_floating_ip:
+    type: OS::Neutron::FloatingIP
+    properties:
+      floating_network_id: { get_param: public_net_id }
+      port_id: { get_resource: orch_1_private_port }
+
+  orch_1_vm:
+    type: OS::Nova::Server
+    properties:
+      name:
+        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'orch', '1' ] ]
+      image: { get_param: ubuntu_1604_image }
+      flavor: { get_param: orch_vm_flavor }
+      key_name: { get_param: key_name }
+      networks:
+      - port: { get_resource: orch_1_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__: 'orchestration'
+          template:
+            get_file: k8s_vm_entrypoint.sh
+
+  orch_2_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 }
+
+  orch_2_floating_ip:
+    type: OS::Neutron::FloatingIP
+    properties:
+      floating_network_id: { get_param: public_net_id }
+      port_id: { get_resource: orch_2_private_port }
+
+  orch_2_vm:
+    type: OS::Nova::Server
+    properties:
+      name:
+        list_join: ['-', [ { get_param: 'OS::stack_name' }, 'orch', '2' ] ]
+      image: { get_param: ubuntu_1604_image }
+      flavor: { get_param: orch_vm_flavor }
+      key_name: { get_param: key_name }
+      networks:
+      - port: { get_resource: orch_2_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__: 'orchestration'
           template:
             get_file: k8s_vm_entrypoint.sh
 
@@ -266,6 +831,47 @@ outputs:
     description: The IP address of the rancher instance
     value: { get_attr: [rancher_floating_ip, floating_ip_address] }
 
-  k8s_vm_ip:
-    description: The IP address of the k8s instance
-    value: { get_attr: [k8s_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_2_vm_ip:
+    description: The IP address of the k8s_2 instance
+    value: { get_attr: [k8s_2_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_4_vm_ip:
+    description: The IP address of the k8s_4 instance
+    value: { get_attr: [k8s_4_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_6_vm_ip:
+    description: The IP address of the k8s_6 instance
+    value: { get_attr: [k8s_6_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_8_vm_ip:
+    description: The IP address of the k8s_8 instance
+    value: { get_attr: [k8s_8_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_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] }
+