Add k8s-ha-contrail-40 virtual lab

Change-Id: I6f0f3eb35b35a11fd95c4f5a5ca0ba915907b6a3
diff --git a/classes/cluster/k8s-ha-contrail-40/opencontrail/compute.yml b/classes/cluster/k8s-ha-contrail-40/opencontrail/compute.yml
new file mode 100644
index 0000000..447ac9c
--- /dev/null
+++ b/classes/cluster/k8s-ha-contrail-40/opencontrail/compute.yml
@@ -0,0 +1,45 @@
+classes:
+- system.linux.system.repo.mcp.contrail
+- system.opencontrail.compute.cluster
+- system.opencontrail.client.cluster
+- system.opencontrail.client.resource.virtual_router
+- system.opencontrail.client.resource.k8s_api
+- system.opencontrail.compute.cluster4_0
+- cluster.k8s-ha-contrail-40.infra
+- cluster.k8s-ha-contrail-40.opencontrail
+
+parameters:
+  _param:
+    opencontrail_compute_address: ${_param:single_address}
+    opencontrail_compute_iface: ens4
+    opencontrail_compute_gateway: 172.16.10.1
+    opencontrail_compute_dns: 8.8.8.8
+  opencontrail:
+    common:
+      identity:
+        engine: k8s
+        host: none
+        token: none
+        password: none
+      network:
+        engine: k8s
+        host: none
+    client:
+      api:
+        host: ${_param:opencontrail_control_address}
+        port: 9100
+      identity:
+        engine: k8s
+        host: none
+        token: none
+        password: none
+        
+  kubernetes:
+    pool:
+      network:
+        hash: 2276df10feae8f09fb50dce3a96fff6c
+  linux:
+    network:
+      concat_iface_files:
+      - src: '/etc/network/interfaces.d/50-cloud-init.cfg'
+        dst: '/etc/network/interfaces'
\ No newline at end of file
diff --git a/classes/cluster/k8s-ha-contrail-40/opencontrail/control.yml b/classes/cluster/k8s-ha-contrail-40/opencontrail/control.yml
new file mode 100644
index 0000000..c76cc57
--- /dev/null
+++ b/classes/cluster/k8s-ha-contrail-40/opencontrail/control.yml
@@ -0,0 +1,75 @@
+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.xenial
+- system.opencontrail.client.resource.edge_router
+- system.opencontrail.control.cluster4_0
+- 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.opencontrail.client.resource.global_vrouter_config
+- system.haproxy.proxy.listen.opencontrail.analytics
+- cluster.k8s-ha-contrail-40.infra
+- cluster.k8s-ha-contrail-40.opencontrail
+
+parameters:
+  _param:
+    cluster_local_address: ${_param:single_address}
+    cluster_node01_hostname: ${_param:opencontrail_control_node01_hostname}
+    cluster_node01_address: ${_param:opencontrail_control_node01_address}
+    cluster_node02_hostname: ${_param:opencontrail_control_node02_hostname}
+    cluster_node02_address: ${_param:opencontrail_control_node02_address}
+    cluster_node03_hostname: ${_param:opencontrail_control_node03_hostname}
+    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: dhcp
+
+  opencontrail:
+    compute:
+      enabled: false
+    common:
+      identity:
+        host: none
+        engine: k8s
+      network:
+        engine: k8s
+      contrainer_folders:
+      - /var/lib/config_zookeeper_data
+      - /var/lib/analyticsdb-zookeeper-data
+      - /var/lib/configdb
+      - /var/lib/analyticsdb/
+      - /usr/share/kafka/logs
+    config:
+      network:
+        engine: k8s
+      identity:
+        engine: k8s
+        region: none
+        host: none
+      multi_tenancy: false
+      message_queue:
+        host: ${_param:opencontrail_control_address}
+    web:
+      http: 
+        port: 8095
+      https: 
+        port: 8143
+      network:
+        engine: k8s
+      identity:
+        engine: k8s
+        host: none
+      bind:
+        address: ${_param:single_address}
\ No newline at end of file
diff --git a/classes/cluster/k8s-ha-contrail-40/opencontrail/init.yml b/classes/cluster/k8s-ha-contrail-40/opencontrail/init.yml
new file mode 100644
index 0000000..0e57868
--- /dev/null
+++ b/classes/cluster/k8s-ha-contrail-40/opencontrail/init.yml
@@ -0,0 +1,27 @@
+parameters:
+  _param:
+    opencontrail_version: 4.0
+    linux_repo_contrail_component: oc40
+    opencontrail_control_node01_hostname: ctl01
+    opencontrail_control_node02_hostname: ctl02
+    opencontrail_control_node03_hostname: ctl03
+
+    opencontrail_control_address: 172.16.10.252
+    opencontrail_control_node01_address: 172.16.10.101
+    opencontrail_control_node02_address: 172.16.10.102
+    opencontrail_control_node03_address: 172.16.10.103
+    opencontrail_control_interface_name: ens4
+    opencontrail_analytics_address: ${_param:opencontrail_control_address}
+    opencontrail_analytics_node01_address: ${_param:opencontrail_control_node01_address}
+    opencontrail_analytics_node02_address: ${_param:opencontrail_control_node02_address}
+    opencontrail_analytics_node03_address: ${_param:opencontrail_control_node03_address}
+    opencontrail_message_queue_node01_address: ${_param:opencontrail_control_node01_address}
+    opencontrail_message_queue_node02_address: ${_param:opencontrail_control_node02_address}
+    opencontrail_message_queue_node03_address: ${_param:opencontrail_control_node03_address}
+
+    keystone_admin_password: none
+    opencontrail_stats_password: password
+    keystone_service_token: none
+    openstack_version: none
+    openstack_control_address: none
+    keystone_admin_password: none