Merge "Add heat_plugin for BGPVPN"
diff --git a/apache/server/proxy/openstack/cinder.yml b/apache/server/proxy/openstack/cinder.yml
new file mode 100644
index 0000000..8b3fb4f
--- /dev/null
+++ b/apache/server/proxy/openstack/cinder.yml
@@ -0,0 +1,24 @@
+parameters:
+  _param:
+    apache_proxy_ssl:
+      enabled: false
+    apache_proxy_openstack_api_host: ${_param:cluster_public_host}
+    apache_proxy_openstack_api_address: 0.0.0.0
+    apache_proxy_openstack_cinder_host: ${_param:cinder_service_host}
+  apache:
+    server:
+      site:
+        apache_proxy_openstack_api_cinder:
+          enabled: true
+          type: proxy
+          name: openstack_api_cinder
+          check: false
+          proxy:
+            host: ${_param:apache_proxy_openstack_cinder_host}
+            port: 8776
+            protocol: http
+          host:
+            name: ${_param:apache_proxy_openstack_api_host}
+            port: 8776
+            address: ${_param:apache_proxy_openstack_api_address}
+          ssl: ${_param:apache_proxy_ssl}
diff --git a/apache/server/proxy/openstack/designate.yml b/apache/server/proxy/openstack/designate.yml
new file mode 100644
index 0000000..b681cf7
--- /dev/null
+++ b/apache/server/proxy/openstack/designate.yml
@@ -0,0 +1,28 @@
+parameters:
+  _param:
+    apache_proxy_ssl:
+      enabled: false
+    apache_proxy_openstack_api_host: ${_param:cluster_public_host}
+    apache_proxy_openstack_api_address: 0.0.0.0
+    apache_proxy_openstack_designate_host: ${_param:designate_service_host}
+  apache:
+    server:
+      modules:
+       - proxy
+       - proxy_http
+       - headers
+      enabled: true
+      site:
+        apache_proxy_openstack_api_designate:
+          enabled: true
+          type: proxy
+          name: openstack_api_designate
+          proxy:
+            host: ${_param:apache_proxy_openstack_designate_host}
+            port: 9001
+            protocol: http
+          host:
+            name: ${_param:apache_proxy_openstack_api_host}
+            port: 9001
+            address: ${_param:apache_proxy_openstack_api_address}
+          ssl: ${_param:apache_proxy_ssl}
diff --git a/apache/server/proxy/openstack/glance.yml b/apache/server/proxy/openstack/glance.yml
new file mode 100644
index 0000000..91bedea
--- /dev/null
+++ b/apache/server/proxy/openstack/glance.yml
@@ -0,0 +1,24 @@
+parameters:
+  _param:
+    apache_proxy_ssl:
+      enabled: false
+    apache_proxy_openstack_api_host: ${_param:cluster_public_host}
+    apache_proxy_openstack_api_address: 0.0.0.0
+    apache_proxy_openstack_glance_host: ${_param:glance_service_host}
+  apache:
+    server:
+      enabled: true
+      site:
+        apache_proxy_openstack_api_glance:
+          enabled: true
+          type: proxy
+          name: openstack_api_glance
+          proxy:
+            host: ${_param:apache_proxy_openstack_glance_host}
+            port: 9292
+            protocol: http
+          host:
+            name: ${_param:apache_proxy_openstack_api_host}
+            port: 9292
+            address: ${_param:apache_proxy_openstack_api_address}
+          ssl: ${_param:apache_proxy_ssl}
diff --git a/apache/server/proxy/openstack/heat.yml b/apache/server/proxy/openstack/heat.yml
new file mode 100644
index 0000000..b844c45
--- /dev/null
+++ b/apache/server/proxy/openstack/heat.yml
@@ -0,0 +1,52 @@
+parameters:
+  _param:
+    apache_proxy_ssl:
+      enabled: false
+    apache_proxy_openstack_api_host: ${_param:cluster_public_host}
+    apache_proxy_openstack_api_address: 0.0.0.0
+    apache_proxy_openstack_heat_host: ${_param:heat_service_host}
+  apache:
+    server:
+      site:
+        apache_proxy_openstack_api_heat:
+          enabled: true
+          type: proxy
+          name: openstack_api_heat
+          check: false
+          proxy:
+            host: ${_param:apache_proxy_openstack_heat_host}
+            port: 8004
+            protocol: http
+          host:
+            name: ${_param:apache_proxy_openstack_api_host}
+            port: 8004
+            address: ${_param:apache_proxy_openstack_api_address}
+          ssl: ${_param:apache_proxy_ssl}
+        apache_proxy_openstack_api_heat_cfn:
+          enabled: true
+          type: proxy
+          name: openstack_api_heat_cfn
+          check: false
+          proxy:
+            host: ${_param:apache_proxy_openstack_heat_host}
+            port: 8000
+            protocol: http
+          host:
+            name: ${_param:apache_proxy_openstack_api_host}
+            port: 8000
+            address: ${_param:apache_proxy_openstack_api_address}
+          ssl: ${_param:apache_proxy_ssl}
+        apache_proxy_openstack_api_heat_cloudwatch:
+          enabled: true
+          type: proxy
+          name: openstack_api_heat_cloudwatch
+          check: false
+          proxy:
+            host: ${_param:apache_proxy_openstack_heat_host}
+            port: 8003
+            protocol: http
+          host:
+            name: ${_param:apache_proxy_openstack_api_host}
+            port: 8003
+            address: ${_param:apache_proxy_openstack_api_address}
+          ssl: ${_param:apache_proxy_ssl}
diff --git a/apache/server/proxy/openstack/neutron.yml b/apache/server/proxy/openstack/neutron.yml
new file mode 100644
index 0000000..dd18c40
--- /dev/null
+++ b/apache/server/proxy/openstack/neutron.yml
@@ -0,0 +1,24 @@
+parameters:
+  _param:
+    apache_proxy_ssl:
+      enabled: false
+    apache_proxy_openstack_api_host: ${_param:cluster_public_host}
+    apache_proxy_openstack_api_address: 0.0.0.0
+    apache_proxy_openstack_neutron_host: ${_param:neutron_service_host}
+  apache:
+    server:
+      site:
+        apache_proxy_openstack_api_neutron:
+          enabled: true
+          type: proxy
+          name: openstack_api_neutron
+          check: false
+          proxy:
+            host: ${_param:apache_proxy_openstack_neutron_host}
+            port: 9696
+            protocol: http
+          host:
+            name: ${_param:apache_proxy_openstack_api_host}
+            port: 9696
+            address: ${_param:apache_proxy_openstack_api_address}
+          ssl: ${_param:apache_proxy_ssl}
diff --git a/apache/server/proxy/openstack/nova.yml b/apache/server/proxy/openstack/nova.yml
new file mode 100644
index 0000000..66a0107
--- /dev/null
+++ b/apache/server/proxy/openstack/nova.yml
@@ -0,0 +1,24 @@
+parameters:
+  _param:
+    apache_proxy_ssl:
+      enabled: false
+    apache_proxy_openstack_api_host: ${_param:cluster_public_host}
+    apache_proxy_openstack_api_address: 0.0.0.0
+    apache_proxy_openstack_nova_host: ${_param:nova_service_host}
+  apache:
+    server:
+      site:
+        apache_proxy_openstack_api_nova:
+          enabled: true
+          type: proxy
+          name: openstack_api_nova
+          check: false
+          proxy:
+            host: ${_param:apache_proxy_openstack_nova_host}
+            port: 8774
+            protocol: http
+          host:
+            name: ${_param:apache_proxy_openstack_api_host}
+            port: 8774
+            address: ${_param:apache_proxy_openstack_api_address}
+          ssl: ${_param:apache_proxy_ssl}
diff --git a/apache/server/proxy/openstack/placement.yml b/apache/server/proxy/openstack/placement.yml
new file mode 100644
index 0000000..9e256b2
--- /dev/null
+++ b/apache/server/proxy/openstack/placement.yml
@@ -0,0 +1,25 @@
+parameters:
+  _param:
+    apache_proxy_ssl:
+      enabled: false
+    placement_service_host: ${_param:nova_service_host}
+    apache_proxy_openstack_api_host: ${_param:cluster_public_host}
+    apache_proxy_openstack_api_address: 0.0.0.0
+    apache_proxy_openstack_placement_host: ${_param:placement_service_host}
+  apache:
+    server:
+      site:
+        apache_proxy_openstack_api_placement:
+          enabled: true
+          type: proxy
+          name: openstack_api_placement
+          check: false
+          proxy:
+            host: ${_param:apache_proxy_openstack_placement_host}
+            port: 8778
+            protocol: http
+          host:
+            name: ${_param:apache_proxy_openstack_api_host}
+            port: 8778
+            address: ${_param:apache_proxy_openstack_api_address}
+          ssl: ${_param:apache_proxy_ssl}
diff --git a/neutron/control/opendaylight/cluster.yml b/neutron/control/opendaylight/cluster.yml
new file mode 100644
index 0000000..7a62e8b
--- /dev/null
+++ b/neutron/control/opendaylight/cluster.yml
@@ -0,0 +1,23 @@
+classes:
+- service.keepalived.cluster.single
+- service.haproxy.proxy.single
+- service.neutron.control.cluster
+- system.neutron.control.openvswitch.cluster
+parameters:
+  _param:
+    opendaylight_router: odl-router_v2
+    opendaylight_driver: opendaylight_v2
+  neutron:
+    server:
+      backend:
+        opendaylight: true
+        host: ${_param:opendaylight_service_host}
+        rest_api_port: 8282
+        user: admin
+        password: admin
+        ovsdb_connection: tcp:127.0.0.1:6639
+        router: ${_param:opendaylight_router}
+        enable_websocket: true
+        mechanism:
+          ovs:
+            driver: ${_param:opendaylight_driver}
diff --git a/neutron/control/opendaylight/single.yml b/neutron/control/opendaylight/single.yml
new file mode 100644
index 0000000..e0c3ea9
--- /dev/null
+++ b/neutron/control/opendaylight/single.yml
@@ -0,0 +1,21 @@
+classes:
+- service.neutron.control.single
+- system.neutron.control.openvswitch.single
+parameters:
+  _param:
+    opendaylight_router: odl-router_v2
+    opendaylight_driver: opendaylight_v2
+  neutron:
+    server:
+      backend:
+        opendaylight: true
+        host: ${_param:opendaylight_service_host}
+        rest_api_port: 8282
+        user: admin
+        password: admin
+        ovsdb_connection: tcp:127.0.0.1:6639
+        router: ${_param:opendaylight_router}
+        enable_websocket: true
+        mechanism:
+          ovs:
+            driver: ${_param:opendaylight_driver}
diff --git a/reclass/storage/system/opendaylight_control_single.yml b/reclass/storage/system/opendaylight_control_single.yml
new file mode 100644
index 0000000..ad809f5
--- /dev/null
+++ b/reclass/storage/system/opendaylight_control_single.yml
@@ -0,0 +1,13 @@
+parameters:
+  _param:
+    opendaylight_control_hostname: odl01
+  reclass:
+    storage:
+      node:
+        opendaylight_control_node01:
+          name: ${_param:opendaylight_control_hostname}
+          domain: ${_param:cluster_domain}
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: ${_param:linux_system_codename}
+            single_address: ${_param:opendaylight_service_host}