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/cicd/control/init.yml b/classes/cluster/drivetrain-ha-oss/cicd/control/init.yml
new file mode 100644
index 0000000..f369d5e
--- /dev/null
+++ b/classes/cluster/drivetrain-ha-oss/cicd/control/init.yml
@@ -0,0 +1,100 @@
+classes:
+  - system.linux.system.repo.docker
+  - system.linux.system.repo.glusterfs
+  # GlusterFS
+  - system.glusterfs.server.cluster
+  - system.glusterfs.server.volume.aptly
+  - system.glusterfs.server.volume.gerrit
+  - system.glusterfs.server.volume.jenkins
+  - system.glusterfs.server.volume.mysql
+  - system.glusterfs.server.volume.openldap
+  - system.glusterfs.server.volume.registry
+
+  - system.glusterfs.client.cluster
+  - system.glusterfs.client.volume.aptly
+  - system.glusterfs.client.volume.gerrit
+  - system.glusterfs.client.volume.jenkins
+  - system.glusterfs.client.volume.mysql
+  - system.glusterfs.client.volume.openldap
+  - system.glusterfs.client.volume.registry
+  # Aptly
+  # We need aptly-publisher.yml on each node for our Jenkins slaves in docker
+  - system.aptly.client.publisher
+
+  # Keepalived
+  - system.keepalived.cluster.instance.cicd_control_vip
+
+  # HAProxy
+  - system.salt.minion.cert.proxy
+  - system.haproxy.proxy.single
+  - system.haproxy.proxy.listen.cicd.aptly
+  - system.haproxy.proxy.listen.cicd.gerrit
+  - system.haproxy.proxy.listen.cicd.jenkins
+  - system.haproxy.proxy.listen.docker.registry
+  - system.haproxy.proxy.listen.docker.visualizer
+  - system.haproxy.proxy.listen.mysql
+  - system.haproxy.proxy.listen.openldap
+  - system.haproxy.proxy.listen.phpldapadmin
+  - system.haproxy.proxy.listen.stats
+
+  - cluster.drivetrain-ha-oss.cicd
+parameters:
+  _param:
+    cluster_name: drivetrain-ha-oss
+    cluster_node01_name: cid01
+    cluster_node01_address: ${_param:control_node01_address}
+    cluster_node02_name: cid02
+    cluster_node02_address: ${_param:control_node02_address}
+    cluster_node03_name: cid03
+    cluster_node03_address: ${_param:control_node03_address}
+
+    keepalived_vip_virtual_router_id: 180
+    keepalived_vip_priority: 103
+    keepalived_vip_password: password
+    keepalived_vip_interface: ens4
+
+    cluster_vip_address: ${_param:control_vip_address}
+    cluster_public_host: ${_param:control_public_host}
+    glusterfs_service_host: ${_param:control_vip_address}
+
+    admin_email: root@localhost
+
+    # Haproxy SSL configuration
+    cluster_ssl_certificate:
+      enabled: true
+      pem_file: /etc/haproxy/ssl/${_param:cluster_public_host}-all.pem
+    haproxy_bind_address: ${_param:cluster_vip_address}
+    haproxy_mysql_source_port: 13306
+
+    docker_registry_http_secret: aikemee4AhK0Eechai2eh6aa3eeWiet9
+
+    # CI/CD service databases
+    mysql_admin_password: password
+    mysql_gerrit_password: password
+
+  salt:
+    minion:
+      cert:
+        proxy:
+          alternative_names: "DNS:${_param:cluster_public_host}, DNS:*.${_param:cluster_public_host}, IP:${_param:control_vip_address}, IP:${_param:single_address}"
+          key_file: /etc/haproxy/ssl/${_param:cluster_public_host}.key
+          cert_file: /etc/haproxy/ssl/${_param:cluster_public_host}.crt
+          all_file: /etc/haproxy/ssl/${_param:cluster_public_host}-all.pem
+          ca_file: /etc/haproxy/ssl/${_param:salt_minion_ca_authority}-ca.crt
+          user: root
+          group: haproxy
+          mode: 640
+  haproxy:
+    proxy:
+      enabled: true
+  linux:
+    network:
+      resolv:
+        dns:
+        - 172.18.176.4
+        - 172.18.176.5
+        - 8.8.8.8
+    system:
+      package:
+        ca-certificates-java:
+          version: latest