Add ironic-contrail model

This patch adds os_ha_contrail_ironic model to develop/test
ironic + contrail integration.

Change-Id: I272205d5054fd4431da17807c52bfd3c7c231561
Related-Prod: PROD-14290
diff --git a/classes/cluster/os-ha-contrail-ironic/opencontrail/control.yml b/classes/cluster/os-ha-contrail-ironic/opencontrail/control.yml
new file mode 100644
index 0000000..8c9ec86
--- /dev/null
+++ b/classes/cluster/os-ha-contrail-ironic/opencontrail/control.yml
@@ -0,0 +1,66 @@
+classes:
+- system.linux.system.lowmem
+- system.linux.system.repo.cassandra
+- system.linux.system.repo.mcp.contrail
+- system.linux.system.repo.mcp.openstack
+- system.linux.system.repo.mcp.extra
+- system.linux.system.repo.saltstack.trusty
+- system.opencontrail.client.resource.edge_router
+- system.opencontrail.control.cluster
+- system.opencontrail.client.cluster
+- system.opencontrail.client.resource.control_node
+- system.opencontrail.client.resource.config_node
+- system.opencontrail.client.resource.database_node
+- system.opencontrail.client.resource.analytics_node
+- system.haproxy.proxy.listen.opencontrail.analytics
+- cluster.os-ha-contrail-ironic
+parameters:
+  _param:
+    openstack_version: mitaka
+    keepalived_vip_interface: eth1
+    cluster_vip_address: ${_param:opencontrail_control_address}
+    cluster_local_address: ${_param:single_address}
+    cluster_node01_hostname: ntw01
+    cluster_node01_address: ${_param:opencontrail_control_node01_address}
+    cluster_node02_hostname: ntw02
+    cluster_node02_address: ${_param:opencontrail_control_node02_address}
+    cluster_node03_hostname: ntw03
+    cluster_node03_address: ${_param:opencontrail_control_node03_address}
+    opencontrail_router01_hostname: vsrx01.${_param:cluster_domain}
+    opencontrail_router01_address: 172.16.10.131
+  linux:
+    network:
+      interface:
+        eth1:
+          enabled: true
+          type: eth
+          proto: static
+          address: ${_param:single_address}
+          netmask: 255.255.255.0
+  keepalived:
+    cluster:
+      instance:
+        VIP:
+          virtual_router_id: 144
+  opencontrail:
+    web:
+      database:
+        port: 9042
+      network:
+        host: ${_param:openstack_control_address}
+      identity:
+        host: ${_param:openstack_control_address}
+    common:
+      network:
+        host: ${_param:openstack_control_address}
+      identity:
+        host: ${_param:openstack_control_address}
+    config:
+      network:
+        host: ${_param:openstack_control_address}
+      identity:
+        host: ${_param:openstack_control_address}
+      message_queue:
+        engine: rabbitmq
+        host: ${_param:openstack_control_address}
+        port: 5672
diff --git a/classes/cluster/os-ha-contrail-ironic/opencontrail/init.yml b/classes/cluster/os-ha-contrail-ironic/opencontrail/init.yml
new file mode 100644
index 0000000..7e1e78c
--- /dev/null
+++ b/classes/cluster/os-ha-contrail-ironic/opencontrail/init.yml
@@ -0,0 +1,37 @@
+parameters:
+  _param:
+    opencontrail_analytics_address: ${_param:openstack_control_address}
+    opencontrail_analytics_node01_address: ${_param:openstack_control_node01_address}
+    opencontrail_analytics_node02_address: ${_param:openstack_control_node02_address}
+    opencontrail_analytics_node03_address: ${_param:openstack_control_node03_address}
+
+    opencontrail_control_address: 172.16.10.252
+    opencontrail_control_node01_hostname: ntw01
+    opencontrail_control_node02_hostname: ntw02
+    opencontrail_control_node03_hostname: ntw03
+    opencontrail_control_node01_address: 172.16.10.111
+    opencontrail_control_node02_address: 172.16.10.112
+    opencontrail_control_node03_address: 172.16.10.113
+  linux:
+    network:
+      host:
+        ntw:
+          address: ${_param:opencontrail_control_address}
+          names:
+          - ntw
+          - ntw.${_param:cluster_domain}
+        ntw01:
+          address: ${_param:opencontrail_control_node01_address}
+          names:
+          - ${_param:opencontrail_control_node01_hostname}
+          - ${_param:opencontrail_control_node01_hostname}.${_param:cluster_domain}
+        ntw02:
+          address: ${_param:opencontrail_control_node02_address}
+          names:
+          - ${_param:opencontrail_control_node02_hostname}
+          - ${_param:opencontrail_control_node02_hostname}.${_param:cluster_domain}
+        ntw03:
+          address: ${_param:opencontrail_control_node03_address}
+          names:
+          - ${_param:opencontrail_control_node03_hostname}
+          - ${_param:opencontrail_control_node03_hostname}.${_param:cluster_domain}
diff --git a/classes/cluster/os-ha-contrail-ironic/opencontrail/tsn.yml b/classes/cluster/os-ha-contrail-ironic/opencontrail/tsn.yml
new file mode 100644
index 0000000..98924b8
--- /dev/null
+++ b/classes/cluster/os-ha-contrail-ironic/opencontrail/tsn.yml
@@ -0,0 +1,63 @@
+classes:
+- system.linux.system.repo.mcp.openstack
+- system.linux.system.repo.mcp.extra
+- system.linux.system.repo.saltstack.xenial
+- system.linux.system.repo.mcp.contrail
+- system.opencontrail.compute.cluster
+- system.opencontrail.client.cluster
+- system.opencontrail.client.resource.virtual_router
+- service.opencontrail.compute.cluster
+#- system.keystone.client.core
+#- system.neutron.client.service.ironic_provision
+- cluster.os-ha-contrail-ironic
+parameters:
+  _param:
+    deploy_interface: ens3
+    primary_interface: ens4
+    linux_system_codename: xenial
+    interface_mtu: 1450
+    cluster_vip_address: ${_param:openstack_control_address}
+    linux_system_codename: xenial
+    opencontrail_compute_address: ${_param:single_address}
+    opencontrail_compute_gateway: 172.16.10.1
+    opencontrail_compute_iface: ens4
+    contrail_client_virtual_router_type: tor-service-node
+  opencontrail:
+    compute:
+      enabled: true
+      tor:
+        enabled: true
+        bind:
+          port: 8086
+        agent:
+          tor01:
+            id: 0
+            port: 6632 # here we use ptcp and this is default ovsdb port on the switch
+            host: 172.16.10.95 # ip address of bmt node
+            address: ${_param:single_address}
+  linux:
+    network:
+      concat_iface_files:
+      - src: '/etc/network/interfaces.d/50-cloud-init.cfg'
+        dst: '/etc/network/interfaces'
+      bridge: openvswitch
+      interface:
+        dhcp_int:
+          enabled: true
+          name: ${_param:deploy_interface}
+          proto: dhcp
+          type: eth
+          mtu: ${_param:interface_mtu}
+        primary_interface:
+          enabled: true
+          name: ${_param:primary_interface}
+          proto: manual
+          type: eth
+        vhost0:
+          enabled: true
+          type: eth
+          mtu: 1500
+          address: ${_param:single_address}
+          netmask: '255.255.255.0'
+          pre_up_cmds:
+          - /usr/lib/contrail/if-vhost0