oss single cluster model for v-lab

related us: https://mirantis.jira.com/browse/PROD-15544

Change-Id: I79ccbc1153091aa708fbdcf2a0e41f6aedc9b4bb
diff --git a/classes/cluster/drivetrain-ha-oss/infra/config.yml b/classes/cluster/drivetrain-ha-oss/infra/config.yml
new file mode 100644
index 0000000..c2eab20
--- /dev/null
+++ b/classes/cluster/drivetrain-ha-oss/infra/config.yml
@@ -0,0 +1,101 @@
+classes:
+  - system.linux.system.repo.mcp.salt
+  - system.salt.master.pkg
+  - system.salt.master.api
+  - system.salt.minion.ca.salt_master
+  - system.reclass.storage.salt
+  - system.sphinx.server.doc.reclass
+  - cluster.drivetrain-ha-oss
+parameters:
+  salt:
+    master:
+      reactor:
+        reclass/minion/classify:
+        - salt://reclass/reactor/node_register.sls
+      environment:
+        prd:
+          formula:
+            glusterfs:
+              source: pkg
+              name: salt-formula-glusterfs
+  linux:
+    network:
+      interface:
+        ens4:
+          enabled: true
+          type: eth
+          proto: static
+          address: ${_param:single_address}
+          netmask: 255.255.255.0
+  reclass:
+    storage:
+      class_mapping:
+        common_node:
+          expression: all
+          node_param:
+            single_address:
+              value_template: <<node_control_ip>>
+            linux_system_codename:
+              value_template: <<node_os>>
+            salt_master_host:
+              value_template: <<node_master_ip>>
+        infra_config:
+          expression: <<node_hostname>>__equals__cid01
+          cluster_param:
+            infra_config_address:
+              value_template: <<node_control_ip>>
+            infra_config_deploy_address:
+              value_template: <<node_deploy_ip>>
+            cluster_domain:
+              value_template: <<node_domain>>
+            cicd_control_node01_address:
+              value_template: <<node_control_ip>>
+        cicd_control_node02:
+          expression: <<node_hostname>>__equals__cid02
+          cluster_param:
+            cicd_control_node02_address:
+              value_template: <<node_control_ip>>
+        cicd_control_node03:
+          expression: <<node_hostname>>__equals__cid03
+          cluster_param:
+            cicd_control_node03_address:
+              value_template: <<node_control_ip>>
+      node:
+        cicd_control_node01:
+          name: ${_param:cicd_control_node01_hostname}
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.infra.config
+          - cluster.${_param:cluster_name}.cicd.control.leader
+          - cluster.${_param:cluster_name}.oss.client
+          - cluster.${_param:cluster_name}.oss.server
+          params:
+            salt_master_host: 127.0.0.1
+            linux_system_codename: xenial
+            single_address: ${_param:cicd_control_node01_address}
+            keepalived_vip_priority: 103
+        cicd_control_node02:
+          name: ${_param:cicd_control_node02_hostname}
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.cicd.control.manager
+          - cluster.${_param:cluster_name}.oss.server
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: xenial
+            single_address: ${_param:cicd_control_node02_address}
+            keepalived_vip_priority: 102
+            docker_swarm_role: worker
+        cicd_control_node03:
+          name: ${_param:cicd_control_node03_hostname}
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.cicd.control.manager
+          - cluster.${_param:cluster_name}.oss.server
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: xenial
+            single_address: ${_param:cicd_control_node03_address}
+            keepalived_vip_priority: 101
+            docker_swarm_role: worker
+
diff --git a/classes/cluster/drivetrain-ha-oss/infra/init.yml b/classes/cluster/drivetrain-ha-oss/infra/init.yml
new file mode 100644
index 0000000..f0bd1eb
--- /dev/null
+++ b/classes/cluster/drivetrain-ha-oss/infra/init.yml
@@ -0,0 +1,30 @@
+parameters:
+  _param:
+    cluster_domain: drivetrain-ha-oss.local
+    cluster_name: drivetrain-ha-oss
+    linux_system_codename: xenial
+    apt_mk_version: nightly
+    infra_config_hostname: cid01
+    infra_config_address: 172.16.10.100
+    infra_config_deploy_address: 192.168.10.90
+    salt_minion_ca_host: cid01.${_param:cluster_domain}
+    salt_minion_ca_authority: salt_master_ca
+    salt_api_password: hovno12345!
+    salt_api_password_hash: "$6$sGnRlxGf$al5jMCetLP.vfI/fTl3Z0N7Za1aeiexL487jAtyRABVfT3NlwZxQGVhO7S1N8OwS/34VHYwZQA8lkXwKMN/GS1"
+    salt_master_base_environment: prd
+    salt_master_host: ${_param:infra_config_deploy_address}
+    reclass_data_repository: "https://gerrit.mcp.mirantis.net/salt-models/mcp-virtual-lab"
+    reclass_data_revision: master
+    reclass_config_master: ${_param:infra_config_deploy_address}
+    single_address: ${_param:infra_config_address}
+  linux:
+    network:
+      host:
+        cfg01:
+          address: ${_param:infra_config_address}
+          names:
+          - ${_param:infra_config_hostname}
+          - ${_param:infra_config_hostname}.${_param:cluster_domain}
+    system:
+      name: ${_param:infra_config_hostname}
+      domain: ${_param:cluster_domain}