initial commit
diff --git a/system/nova/compute/cluster.yml b/system/nova/compute/cluster.yml
new file mode 100644
index 0000000..a08d1af
--- /dev/null
+++ b/system/nova/compute/cluster.yml
@@ -0,0 +1,53 @@
+classes:
+- service.nova.compute.kvm
+parameters:
+  _param:
+    nova_compute_virtualization: kvm
+  nova:
+    compute:
+      version: ${_param:nova_version}
+      enabled: true
+      virtualization: ${_param:nova_compute_virtualization}
+      heal_instance_info_cache_interval: 60
+      vncproxy_url: http://${_param:cluster_vip_address}:6080
+      bind:
+        vnc_address: ${_param:cluster_local_address}
+        vnc_port: 6080
+        vnc_name: 0.0.0.0
+      database:
+        engine: mysql
+        host: ${_param:openstack_database_address}
+        port: 3306
+        name: nova
+        user: nova
+        password: ${_param:mysql_nova_password}
+      identity:
+        engine: keystone
+        region: ${_param:openstack_region}
+        host: ${_param:cluster_vip_address}
+        port: 35357
+        user: nova
+        password: ${_param:keystone_nova_password}
+        tenant: service
+      message_queue:
+        engine: rabbitmq
+        port: 5672
+        user: openstack
+        password: ${_param:rabbitmq_openstack_password}
+        virtual_host: '/openstack'
+        members:
+          - host: ${_param:openstack_message_queue_node01_address}
+          - host: ${_param:openstack_message_queue_node02_address}
+          - host: ${_param:openstack_message_queue_node03_address}
+      image:
+        engine: glance
+        host: ${_param:cluster_vip_address}
+        port: 9292
+      network:
+        engine: neutron
+        region: ${_param:openstack_region}
+        host: ${_param:opencontrail_control_address}
+        port: 9696
+        user: neutron
+        tenant: service
+        password: ${_param:keystone_neutron_password}
diff --git a/system/nova/compute/single.yml b/system/nova/compute/single.yml
new file mode 100644
index 0000000..5fa45e4
--- /dev/null
+++ b/system/nova/compute/single.yml
@@ -0,0 +1,51 @@
+applications:
+- nova
+classes:
+- service.nova.compute.kvm
+parameters:
+  nova:
+    compute:
+      version: ${_param:nova_version}
+      disable_flow_collection: true
+      enabled: true
+      virtualization: kvm
+      vncproxy_url: http://${_param:control_address}:6080
+      bind:
+        vnc_address: ${_param:control_address}
+        vnc_port: 6080
+        vnc_name: 0.0.0.0
+      database:
+        engine: mysql
+        host: ${_param:control_address}
+        port: 3306
+        name: nova
+        user: nova
+        password: ${_param:mysql_nova_password}
+      identity:
+        engine: keystone
+        host: ${_param:control_address}
+        port: 35357
+        user: nova
+        password: ${_param:keystone_nova_password}
+        tenant: service
+      message_queue:
+        engine: rabbitmq
+        host: ${_param:control_address}
+        port: 5672
+        user: openstack
+        password: ${_param:rabbitmq_openstack_password}
+        virtual_host: '/openstack'
+      image:
+        engine: glance
+        host: ${_param:control_address}
+        port: 9292
+      network:
+        engine: neutron
+        host: ${_param:control_address}
+        port: 9696
+      cache:
+        engine: memcached
+        members:
+        - host: 127.0.0.1
+          port: 11211
+
diff --git a/system/nova/control/cluster.yml b/system/nova/control/cluster.yml
new file mode 100644
index 0000000..6805c67
--- /dev/null
+++ b/system/nova/control/cluster.yml
@@ -0,0 +1,67 @@
+classes:
+- service.haproxy.proxy.single
+- service.nova.control.cluster
+- service.keepalived.cluster.single
+- system.haproxy.proxy.listen.openstack.nova
+parameters:
+  nova:
+    controller:
+      enabled: true
+      version: ${_param:nova_version}
+      vncproxy_url: http://${_param:cluster_vip_address}:6080
+      security_group: false
+      dhcp_domain: novalocal
+      scheduler_default_filters: "DifferentHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter"
+      cpu_allocation_ratio: 16.0
+      ram_allocation_ratio: 1.5
+      disk_allocation_ratio: 1.0
+      workers: 8
+      logging:
+      - engine: syslog
+        facility: local0
+        heka:
+          enabled: true
+      bind:
+        private_address: ${_param:cluster_local_address}
+        public_address: ${_param:cluster_vip_address}
+        public_name: ${_param:cluster_vip_address}
+        novncproxy_port: 6080
+      database:
+        engine: mysql
+        host: ${_param:openstack_database_address}
+        port: 3306
+        name: nova
+        user: nova
+        password: ${_param:mysql_nova_password}
+      identity:
+        engine: keystone
+        region: ${_param:openstack_region}
+        host: ${_param:cluster_vip_address}
+        port: 35357
+        user: nova
+        password: ${_param:keystone_nova_password}
+        tenant: service
+      message_queue:
+        engine: rabbitmq
+        port: 5672
+        user: openstack
+        password: ${_param:rabbitmq_openstack_password}
+        virtual_host: '/openstack'
+        members:
+          - host: ${_param:openstack_message_queue_node01_address}
+          - host: ${_param:openstack_message_queue_node02_address}
+          - host: ${_param:openstack_message_queue_node03_address}
+      glance:
+        host: ${_param:cluster_vip_address}
+        port: 9292
+      network:
+        engine: neutron
+        region: ${_param:openstack_region}
+        host: ${_param:opencontrail_control_address}
+        user: neutron
+        password: ${_param:keystone_neutron_password}
+        port: 9696
+        mtu: 1500
+        tenant: service
+      metadata:
+        password: metadataPass
\ No newline at end of file
diff --git a/system/nova/control/single.yml b/system/nova/control/single.yml
new file mode 100644
index 0000000..00182a3
--- /dev/null
+++ b/system/nova/control/single.yml
@@ -0,0 +1,7 @@
+classes:
+- service.nova.control.single
+parameters:
+  nova:
+    controller:
+      database:
+        host: ${_param:single_address}