Fixes from slovak telekom
diff --git a/README.rst b/README.rst
index 94e97dc..99e9d5b 100644
--- a/README.rst
+++ b/README.rst
@@ -9,3 +9,16 @@
 Network configuration
 =====================
 
+Enable SR-IOV support
+---------------------
+
+Include class at `cluster.<name>.openstack.compute`
+
+- system.nova.compute.sriov
+
+and parameters:
+
+- sriov_nic01: Name of the interface
+- sriov_nic01_numvfs: Number of Virtual Functions
+- sriov_nic01_physical_network: Default "physnet1", label for physical network interface belongs to.
+- sriov_unsafe_interrupts: Default False, needs to be set True if your hw platform does not support interrupt remapping
diff --git a/aodh/server/cluster.yml b/aodh/server/cluster.yml
index 2be4db6..7d11cd4 100644
--- a/aodh/server/cluster.yml
+++ b/aodh/server/cluster.yml
@@ -2,3 +2,39 @@
 - service.aodh.server.cluster
 - system.haproxy.proxy.listen.openstack.aodh
 - service.keepalived.cluster.single
+parameters:
+  aodh:
+    server:
+      enabled: true
+      version: ${_param:aodh_version}
+      cluster: true
+      ttl: 86400
+      debug: false
+      verbose: true
+      database:
+        engine: "mysql+pymysql"
+        host: ${_param:openstack_database_address}
+        port: 3306
+        name: aodh
+        user: aodh
+        password: ${_param:mysql_aodh_password}
+      bind:
+        host: ${_param:cluster_local_address}
+        port: 8042
+      identity:
+        engine: keystone
+        host: ${_param:keystone_service_host}
+        port: 35357
+        tenant: service
+        user: aodh
+        password: ${_param:keystone_aodh_password}
+      message_queue:
+        engine: rabbitmq
+        port: 5672
+        user: openstack
+        password: ${_param:rabbitmq_openstack_password}
+        virtual_host: '/openstack'
+        members:
+          - host: ${_param:openstack_message_queue_node01_address}
+          - host: ${_param:openstack_message_queue_node02_address}
+          - host: ${_param:openstack_message_queue_node03_address}
\ No newline at end of file
diff --git a/apache/server/single.yml b/apache/server/single.yml
new file mode 100644
index 0000000..06c8c4c
--- /dev/null
+++ b/apache/server/single.yml
@@ -0,0 +1,2 @@
+classes:
+- service.apache.server.single
diff --git a/ceilometer/client/init.yml b/ceilometer/client/init.yml
index 3534de7..5a0aaa0 100644
--- a/ceilometer/client/init.yml
+++ b/ceilometer/client/init.yml
@@ -2,4 +2,5 @@
 - system.ceilometer.client.cinder_control
 - system.ceilometer.client.keystone
 - system.ceilometer.client.glance
-- system.ceilometer.client.heat
\ No newline at end of file
+- system.ceilometer.client.heat
+- system.ceilometer.client.nova_control
\ No newline at end of file
diff --git a/ceilometer/client/nova_compute.yml b/ceilometer/client/nova_compute.yml
new file mode 100644
index 0000000..57e900a
--- /dev/null
+++ b/ceilometer/client/nova_compute.yml
@@ -0,0 +1,7 @@
+parameters:
+  nova:
+    compute:
+      notification:
+        driver: messagingv2
+        notify_on:
+          state_change: vm_and_task_state
\ No newline at end of file
diff --git a/ceilometer/client/nova_control.yml b/ceilometer/client/nova_control.yml
new file mode 100644
index 0000000..252c67e
--- /dev/null
+++ b/ceilometer/client/nova_control.yml
@@ -0,0 +1,5 @@
+parameters:
+  nova:
+    controller:
+      notification:
+        driver: messagingv2
diff --git a/ceilometer/server/cluster.yml b/ceilometer/server/cluster.yml
index e0ae0e2..005379d 100644
--- a/ceilometer/server/cluster.yml
+++ b/ceilometer/server/cluster.yml
@@ -1,7 +1,7 @@
 classes:
 - service.ceilometer.server.cluster
 - system.haproxy.proxy.listen.openstack.ceilometer
-- service.keepalived.cluster.single
+- system.keepalived.cluster.instance.openstack_telemetry_vip
 - service.haproxy.proxy.single
 parameters:
   ceilometer:
@@ -31,4 +31,4 @@
         password: ${_param:rabbitmq_openstack_password}
         virtual_host: '/openstack'
         # Workaround for https://bugs.launchpad.net/ceilometer/+bug/1337715
-        rpc_thread_pool_size: 5
\ No newline at end of file
+        rpc_thread_pool_size: 5
diff --git a/ceph/client/single.yml b/ceph/client/single.yml
new file mode 100644
index 0000000..b01458f
--- /dev/null
+++ b/ceph/client/single.yml
@@ -0,0 +1,29 @@
+classes:
+- service.ceph.client.single
+parameters:
+  _param:
+    ceph_auth_client_required: cephx
+  ceph:
+    client:
+      config:
+        global:
+          fsid: ${_param:ceph_fsid}
+          mon_initial_members: ${_param:ceph_mon_initial_members}
+          mon_host: ${_param:ceph_mon_host}
+          auth_client_required: ${_param:ceph_auth_client_required}
+          public_network: ${_param:ceph_public_network}
+          cluster_network: ${_param:ceph_cluster_network}
+          osd_fs_mount_options_xfs: rw,noatime
+          osd_fs_type: xfs
+        osd:
+          filestore_xattr_use_omap: True
+          osd_journal_size: 7500
+        mon:
+          mon_debug_dump_transactions: False
+      # keyring:
+      #   object:
+      #     key: 
+      #   cinder:
+      #     key: 
+      #   nova:
+      #     key: 
\ No newline at end of file
diff --git a/ceph/radosgw/single.yml b/ceph/radosgw/single.yml
new file mode 100644
index 0000000..31bdc7d
--- /dev/null
+++ b/ceph/radosgw/single.yml
@@ -0,0 +1,20 @@
+parameters:
+  _param:
+    radosgw_keyring_path: /etc/ceph/ceph.client.radosgw.keyring
+  ceph:
+    radosgw:
+      enabled: true
+    client:
+      config:
+        client.radosgw.gateway:
+          rgw_keystone_accepted_roles: "_member_, Member, admin, swiftoperator"
+          keyring: /etc/ceph/ceph.client.radosgw.keyring
+          rgw_socket_path: /tmp/radosgw.sock
+          rgw_keystone_revocation_interval: 60
+          rgw_keystone_url: ${_param:keystone_service_host}:5000
+          rgw_keystone_admin_token: ${_param:keystone_service_token}
+          host: ${linux:system:name}
+          rgw_dns_name : ${_param:cluster_domain}
+          rgw_print_continue: True
+          rgw_content_length_compat: true
+          user: www-data
diff --git a/cinder/control/backend/ceph.yml b/cinder/control/backend/ceph.yml
new file mode 100644
index 0000000..1026f68
--- /dev/null
+++ b/cinder/control/backend/ceph.yml
@@ -0,0 +1,13 @@
+parameters:
+  cinder:
+    controller:
+      default_volume_type: standard-iops
+      backend:
+        ceph:
+          type_name: standard-iops
+          backend: ceph
+          pool: ${_param:cinder_storage_pool}
+          engine: ceph
+          user: ${_param:cinder_storage_user}
+          secret_uuid: ${_param:cinder_storage_secret_uuid}
+          client_cinder_key: ${_param:cinder_storage_client_key}
diff --git a/cinder/control/backend/lvm.yml b/cinder/control/backend/lvm.yml
new file mode 100644
index 0000000..976a80e
--- /dev/null
+++ b/cinder/control/backend/lvm.yml
@@ -0,0 +1,9 @@
+parameters:
+  cinder:
+    controller:
+      default_volume_type: lvm-driver
+      backend:
+        lvm-driver:
+          engine: lvm
+          type_name: lvm-driver
+          volume_group: cinder-volume
diff --git a/cinder/control/notification/cadf.yml b/cinder/control/notification/cadf.yml
new file mode 100644
index 0000000..813dade
--- /dev/null
+++ b/cinder/control/notification/cadf.yml
@@ -0,0 +1,5 @@
+parameters:
+  cinder:
+    controller:
+      audit:
+        enabled: true
diff --git a/cinder/volume/backend/ceph.yml b/cinder/volume/backend/ceph.yml
new file mode 100644
index 0000000..6560add
--- /dev/null
+++ b/cinder/volume/backend/ceph.yml
@@ -0,0 +1,17 @@
+parameters:
+  cinder:
+    volume:
+      message_queue: 
+        ha_queues: true
+      enabled: true
+      notification: true
+      default_volume_type: standard-iops
+      backend:
+        ceph:
+          type_name: standard-iops
+          backend: ceph
+          pool: ${_param:cinder_storage_pool}
+          engine: ceph
+          user: ${_param:cinder_storage_user}
+          secret_uuid: ${_param:cinder_storage_secret_uuid}
+          client_cinder_key: ${_param:cinder_storage_client_key}
diff --git a/cinder/volume/backend/lvm.yml b/cinder/volume/backend/lvm.yml
new file mode 100644
index 0000000..768fb6b
--- /dev/null
+++ b/cinder/volume/backend/lvm.yml
@@ -0,0 +1,18 @@
+parameters:
+  _param:
+    cinder_lvm_devices: [ "/dev/loop0" ]
+  linux:
+    storage:
+      lvm:
+        cinder-vg:
+          enabled: true
+          name: cinder-volume
+          devices: ${_param:cinder_lvm_devices}
+  cinder:
+    volume:
+      default_volume_type: lvm-driver
+      backend:
+        lvm-driver:
+          engine: lvm
+          type_name: lvm-driver
+          volume_group: cinder-volume
diff --git a/freeipa/server/cluster.yml b/freeipa/server/cluster.yml
new file mode 100644
index 0000000..70f13b9
--- /dev/null
+++ b/freeipa/server/cluster.yml
@@ -0,0 +1,20 @@
+classes:
+  - service.freeipa.server
+parameters:
+  freeipa:
+    server:
+      realm: ${_param:freeipa_realm} 
+      domain: ${_param:cluster_domain}
+      servers:
+        - ${_param:infra_freeipa_node01_hostname}.${_param:cluster_domain}
+        - ${_param:infra_freeipa_node02_hostname}.${_param:cluster_domain}
+        - ${_param:infra_freeipa_node03_hostname}.${_param:cluster_domain}
+      admin:
+        password: ${_param:freeipa_admin_password}
+      ldap:
+        password: ${_param:freeipa_ldap_password}
+      dns:
+        zone:
+          # Main zones
+          mb-staging.vw.vwg: ${_param:freeipa_dns_zone}
+
diff --git a/glance/control/notification/cadf.yml b/glance/control/notification/cadf.yml
new file mode 100644
index 0000000..0f2fbae
--- /dev/null
+++ b/glance/control/notification/cadf.yml
@@ -0,0 +1,5 @@
+parameters:
+  glance:
+    server:
+      audit:
+        enabled: true
diff --git a/glance/control/storage/ceph.yml b/glance/control/storage/ceph.yml
new file mode 100644
index 0000000..ef3c033
--- /dev/null
+++ b/glance/control/storage/ceph.yml
@@ -0,0 +1,8 @@
+parameters:
+  glance:
+    server:
+      storage:
+        engine: rbd
+        user: ${_param:glance_storage_user}
+        pool: ${_param:glance_storage_pool}
+        chunk_size: 8
\ No newline at end of file
diff --git a/haproxy/proxy/listen/kubernetes/apiserver.yml b/haproxy/proxy/listen/kubernetes/apiserver.yml
index a365c51..a45a71a 100644
--- a/haproxy/proxy/listen/kubernetes/apiserver.yml
+++ b/haproxy/proxy/listen/kubernetes/apiserver.yml
@@ -2,39 +2,23 @@
   haproxy:
     proxy:
       listen:
-        k8s_cluster:
+        k8s_secure:
           type: kubernetes
+          options:
+            - ssl-hello-chk
           binds:
           - address: ${_param:cluster_vip_address}
-            port: 8080
+            port: 443
           servers:
           - name: ${_param:cluster_node01_hostname}
             host: ${_param:cluster_node01_address}
-            port: 8080
+            port: 443
             params: check
           - name: ${_param:cluster_node02_hostname}
             host: ${_param:cluster_node02_address}
-            port: 8080
+            port: 443
             params: check
           - name: ${_param:cluster_node03_hostname}
             host: ${_param:cluster_node03_address}
-            port: 8080
-            params: check
-        k8s_cluster_localhost:
-          type: kubernetes
-          binds:
-          - address: localhost
-            port: 8080
-          servers:
-          - name: ${_param:cluster_node01_hostname}
-            host: ${_param:cluster_node01_address}
-            port: 8080
-            params: check
-          - name: ${_param:cluster_node02_hostname}
-            host: ${_param:cluster_node02_address}
-            port: 8080
-            params: check
-          - name: ${_param:cluster_node03_hostname}
-            host: ${_param:cluster_node03_address}
-            port: 8080
+            port: 443
             params: check
\ No newline at end of file
diff --git a/haproxy/proxy/listen/kubernetes/apiserver_insecure.yml b/haproxy/proxy/listen/kubernetes/apiserver_insecure.yml
new file mode 100644
index 0000000..a365c51
--- /dev/null
+++ b/haproxy/proxy/listen/kubernetes/apiserver_insecure.yml
@@ -0,0 +1,40 @@
+parameters:
+  haproxy:
+    proxy:
+      listen:
+        k8s_cluster:
+          type: kubernetes
+          binds:
+          - address: ${_param:cluster_vip_address}
+            port: 8080
+          servers:
+          - name: ${_param:cluster_node01_hostname}
+            host: ${_param:cluster_node01_address}
+            port: 8080
+            params: check
+          - name: ${_param:cluster_node02_hostname}
+            host: ${_param:cluster_node02_address}
+            port: 8080
+            params: check
+          - name: ${_param:cluster_node03_hostname}
+            host: ${_param:cluster_node03_address}
+            port: 8080
+            params: check
+        k8s_cluster_localhost:
+          type: kubernetes
+          binds:
+          - address: localhost
+            port: 8080
+          servers:
+          - name: ${_param:cluster_node01_hostname}
+            host: ${_param:cluster_node01_address}
+            port: 8080
+            params: check
+          - name: ${_param:cluster_node02_hostname}
+            host: ${_param:cluster_node02_address}
+            port: 8080
+            params: check
+          - name: ${_param:cluster_node03_hostname}
+            host: ${_param:cluster_node03_address}
+            port: 8080
+            params: check
\ No newline at end of file
diff --git a/haproxy/proxy/listen/opencontrail/analytics.yml b/haproxy/proxy/listen/opencontrail/analytics.yml
index 6ed6841..fd20277 100644
--- a/haproxy/proxy/listen/opencontrail/analytics.yml
+++ b/haproxy/proxy/listen/opencontrail/analytics.yml
@@ -24,6 +24,7 @@
         contrail_config_stats:
           type: contrail-config
           service_name: contrail
+          check: false
           format: listen
           binds:
           - address: '*'
@@ -33,6 +34,7 @@
         contrail_openstack_stats:
           type: contrail-config
           service_name: contrail
+          check: false
           format: listen
           binds:
           - address: '*'
@@ -42,6 +44,7 @@
         contrail_collector_stats:
           type: contrail-config
           service_name: contrail
+          check: false
           format: listen
           binds:
           - address: '*'
diff --git a/haproxy/proxy/listen/openstack/ceilometer.yml b/haproxy/proxy/listen/openstack/ceilometer.yml
index 766a985..68eef43 100644
--- a/haproxy/proxy/listen/openstack/ceilometer.yml
+++ b/haproxy/proxy/listen/openstack/ceilometer.yml
@@ -1,3 +1,4 @@
+parameters:
   haproxy:
     proxy:
       listen:
diff --git a/haproxy/proxy/listen/stacklight/influxdb.yml b/haproxy/proxy/listen/stacklight/influxdb.yml
new file mode 100644
index 0000000..02e25d7
--- /dev/null
+++ b/haproxy/proxy/listen/stacklight/influxdb.yml
@@ -0,0 +1,28 @@
+parameters:
+  _param:
+    cluster_influxdb_port: ${_param:influxdb_port}
+  haproxy:
+    proxy:
+      listen:
+        influxdb:
+          mode: http
+          options:
+            - "httpchk GET /ping"
+            - httplog
+            - dontlog-normal
+          binds:
+            - address: ${_param:cluster_vip_address}
+              port: ${_param:cluster_influxdb_port}
+          servers:
+            - name: ${_param:cluster_node01_hostname}
+              host: ${_param:cluster_node01_address}
+              port: 8086
+              params: 'check'
+            - name: ${_param:cluster_node02_hostname}
+              host: ${_param:cluster_node02_address}
+              port: 8086
+              params: 'backup check'
+            - name: ${_param:cluster_node03_hostname}
+              host: ${_param:cluster_node03_address}
+              port: 8086
+              params: 'backup check'
diff --git a/haproxy/proxy/listen/stacklight/redis.yml b/haproxy/proxy/listen/stacklight/redis.yml
new file mode 100644
index 0000000..bd36cb4
--- /dev/null
+++ b/haproxy/proxy/listen/stacklight/redis.yml
@@ -0,0 +1,31 @@
+parameters:
+  haproxy:
+    proxy:
+      listen:
+        redis:
+          mode: tcp
+          check:
+            tcp:
+              options:
+                - send PING\r\n
+                - expect string +PONG
+                - send info\ replication\r\n
+                - expect string role:master
+                - send QUIT\r\n
+                - expect string +OK
+          binds:
+            - address: ${_param:cluster_vip_address}
+              port: ${_param:cluster_redis_port}
+          servers:
+            - name: ${_param:cluster_node01_hostname}
+              host: ${_param:cluster_node01_address}
+              port: 6379
+              params: 'check'
+            - name: ${_param:cluster_node02_hostname}
+              host: ${_param:cluster_node02_address}
+              port: 6379
+              params: 'check'
+            - name: ${_param:cluster_node03_hostname}
+              host: ${_param:cluster_node03_address}
+              port: 6379
+              params: 'check'
diff --git a/haproxy/proxy/listen/stacklight/sensu.yml b/haproxy/proxy/listen/stacklight/sensu.yml
new file mode 100644
index 0000000..33ab5bc
--- /dev/null
+++ b/haproxy/proxy/listen/stacklight/sensu.yml
@@ -0,0 +1,28 @@
+parameters:
+  haproxy:
+    proxy:
+      listen:
+        sensu:
+          mode: http
+          options:
+            - forwardfor
+            - httpchk
+            - httpclose
+            - httplog
+          balance: source
+          binds:
+            - address: ${_param:cluster_vip_address}
+              port: 4567
+          servers:
+            - name: ${_param:cluster_node01_hostname}
+              host: ${_param:cluster_node01_address}
+              port: 4567
+              params: check
+            - name: ${_param:cluster_node02_hostname}
+              host: ${_param:cluster_node02_address}
+              port: 4567
+              params: check
+            - name: ${_param:cluster_node03_hostname}
+              host: ${_param:cluster_node03_address}
+              port: 4567
+              params: check
diff --git a/haproxy/proxy/listen/stacklight/uchiwa.yml b/haproxy/proxy/listen/stacklight/uchiwa.yml
new file mode 100644
index 0000000..3bec0e8
--- /dev/null
+++ b/haproxy/proxy/listen/stacklight/uchiwa.yml
@@ -0,0 +1,29 @@
+parameters:
+  haproxy:
+    proxy:
+      listen:
+        uchiwa:
+          mode: http
+          options:
+            - forwardfor
+            - httpchk
+            - httpclose
+            - httplog
+          balance: source
+          binds:
+            - address: ${_param:cluster_vip_address}
+              port: 3001
+          servers:
+            - name: ${_param:cluster_node01_hostname}
+              host: ${_param:cluster_node01_address}
+              port: 3001
+              params: check
+            - name: ${_param:cluster_node02_hostname}
+              host: ${_param:cluster_node02_address}
+              port: 3001
+              params: check
+            - name: ${_param:cluster_node03_hostname}
+              host: ${_param:cluster_node03_address}
+              port: 3001
+              params: check
+
diff --git a/heat/server/notification/cadf.yml b/heat/server/notification/cadf.yml
new file mode 100644
index 0000000..352e936
--- /dev/null
+++ b/heat/server/notification/cadf.yml
@@ -0,0 +1,5 @@
+parameters:
+  heat:
+    server:
+      audit:
+        enabled: true
diff --git a/heka/aggregator/output/nagios.yml b/heka/aggregator/output/nagios.yml
new file mode 100644
index 0000000..cbf7654
--- /dev/null
+++ b/heka/aggregator/output/nagios.yml
@@ -0,0 +1,2 @@
+classes:
+- service.heka.aggregator.output.nagios
diff --git a/heka/aggregator/output/sensu.yml b/heka/aggregator/output/sensu.yml
new file mode 100644
index 0000000..58a14a5
--- /dev/null
+++ b/heka/aggregator/output/sensu.yml
@@ -0,0 +1,2 @@
+classes:
+- service.heka.aggregator.output.sensu
diff --git a/heka/ceilometer_collector/single.yml b/heka/ceilometer_collector/single.yml
index 0ad299d..a1fd11c 100644
--- a/heka/ceilometer_collector/single.yml
+++ b/heka/ceilometer_collector/single.yml
@@ -6,12 +6,13 @@
     ceilometer_collector:
       enabled: true
       influxdb_database: ceilometer
-      influxdb_host: ${_param:stacklight_monitor_node01_address}
+      influxdb_host: ${_param:stacklight_telemetry_address}
       influxdb_password: ${_param:ceilometer_influxdb_password}
       influxdb_port: 8086
       influxdb_username: ceilometer
-      resource_decoding: false
-      amqp_host: ${_param:cluster_vip_address}
+      elasticsearch_host: ${_param:stacklight_log_address}
+      resource_decoding: true
+      amqp_host: ${_param:openstack_message_queue_address}
       amqp_port: 5672
       amqp_user: openstack
       amqp_password: ${_param:rabbitmq_openstack_password}
diff --git a/horizon/server/plugin/jenkins.yml b/horizon/server/plugin/jenkins.yml
index 721c89b..04c4901 100644
--- a/horizon/server/plugin/jenkins.yml
+++ b/horizon/server/plugin/jenkins.yml
@@ -2,7 +2,6 @@
   _param:
     horizon_jenkins_url: http://localhost:8080/
     horizon_jenkins_user: admin
-    horizon_jenkins_password: cdsf432tgwetgsdgdsgdsa
   horizon:
     server:
       jenkins_api:
diff --git a/keepalived/cluster/instance/openstack_telemetry_vip.yml b/keepalived/cluster/instance/openstack_telemetry_vip.yml
new file mode 100644
index 0000000..91155e7
--- /dev/null
+++ b/keepalived/cluster/instance/openstack_telemetry_vip.yml
@@ -0,0 +1,19 @@
+applications:
+- keepalived
+classes:
+- service.keepalived.support
+parameters:
+  _param:
+    keepalived_openstack_telemetry_vip_address: ${_param:cluster_vip_address}
+    keepalived_openstack_telemetry_vip_password: password
+    keepalived_openstack_telemetry_vip_interface: eth1
+  keepalived:
+    cluster:
+      enabled: true
+      instance:
+        openstack_telemetry_vip:
+          address: ${_param:keepalived_openstack_telemetry_vip_address}
+          password: ${_param:keepalived_openstack_telemetry_vip_password}
+          interface: ${_param:keepalived_openstack_telemetry_vip_interface}
+          virtual_router_id: 230
+          priority: 101
diff --git a/keepalived/cluster/instance/openstack_web_public_vip.yml b/keepalived/cluster/instance/openstack_web_public_vip.yml
new file mode 100644
index 0000000..8279b65
--- /dev/null
+++ b/keepalived/cluster/instance/openstack_web_public_vip.yml
@@ -0,0 +1,19 @@
+applications:
+- keepalived
+classes:
+- service.keepalived.support
+parameters:
+  _param:
+    keepalived_openstack_web_public_vip_address: ${_param:cluster_vip_address}
+    keepalived_openstack_web_public_vip_password: password
+    keepalived_openstack_web_public_vip_interface: eth1
+  keepalived:
+    cluster:
+      enabled: true
+      instance:
+        openstack_web_public_vip:
+          address: ${_param:keepalived_openstack_web_public_vip_address}
+          password: ${_param:keepalived_openstack_web_public_vip_password}
+          interface: ${_param:keepalived_openstack_web_public_vip_interface}
+          virtual_router_id: 132
+          priority: ${_param:keepalived_vip_priority}
diff --git a/keepalived/cluster/instance/stacklight_log_vip.yml b/keepalived/cluster/instance/stacklight_log_vip.yml
new file mode 100644
index 0000000..caa6754
--- /dev/null
+++ b/keepalived/cluster/instance/stacklight_log_vip.yml
@@ -0,0 +1,15 @@
+applications:
+- keepalived
+classes:
+- service.keepalived.support
+parameters:
+  keepalived:
+    cluster:
+      enabled: true
+      instance:
+        stacklight_log_vip:
+          address: ${_param:keepalived_stacklight_log_vip_address}
+          password: ${_param:keepalived_stacklight_log_vip_password}
+          interface: ${_param:keepalived_stacklight_log_vip_interface}
+          virtual_router_id: 110
+          priority: 101
diff --git a/keepalived/cluster/instance/stacklight_telemetry_vip.yml b/keepalived/cluster/instance/stacklight_telemetry_vip.yml
new file mode 100644
index 0000000..e7d31a5
--- /dev/null
+++ b/keepalived/cluster/instance/stacklight_telemetry_vip.yml
@@ -0,0 +1,15 @@
+applications:
+- keepalived
+classes:
+- service.keepalived.support
+parameters:
+  keepalived:
+    cluster:
+      enabled: true
+      instance:
+        stacklight_telemetry_vip:
+          address: ${_param:keepalived_stacklight_telemetry_vip_address}
+          password: ${_param:keepalived_stacklight_telemetry_vip_password}
+          interface: ${_param:keepalived_stacklight_telemetry_vip_interface}
+          virtual_router_id: 120
+          priority: 101
diff --git a/keystone/client/service/aodh.yml b/keystone/client/service/aodh.yml
index c91a354..51de0ca 100644
--- a/keystone/client/service/aodh.yml
+++ b/keystone/client/service/aodh.yml
@@ -1,4 +1,6 @@
 parameters:
+  _param:
+    cluster_public_protocol: https
   keystone:
     client:
       server:
@@ -16,7 +18,8 @@
               description: OpenStack Alarming Service
               endpoints:
               - region: ${_param:openstack_region}
-                public_address: ${_param:aodh_service_host}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: ${_param:cluster_public_protocol}
                 public_port: 8042
                 public_path: '/'
                 internal_address: ${_param:aodh_service_host}
@@ -24,4 +27,4 @@
                 internal_path: '/'
                 admin_address: ${_param:aodh_service_host}
                 admin_port: 8042
-                admin_path: '/'
\ No newline at end of file
+                admin_path: '/'
diff --git a/keystone/client/service/billometer.yml b/keystone/client/service/billometer.yml
index 86a153f..3728aa5 100644
--- a/keystone/client/service/billometer.yml
+++ b/keystone/client/service/billometer.yml
@@ -1,4 +1,6 @@
 parameters:
+  _param:
+    cluster_public_protocol: https
   keystone:
     client:
       server:
@@ -16,7 +18,8 @@
               description: OpenStack Billing Service
               endpoints:
               - region: ${_param:openstack_region}
-                public_address: ${_param:billometer_service_host}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: ${_param:cluster_public_protocol}
                 public_port: 9753
                 public_path: '/v1'
                 internal_address: ${_param:billometer_service_host}
diff --git a/keystone/client/service/ceilometer.yml b/keystone/client/service/ceilometer.yml
index c40383a..4c59f80 100644
--- a/keystone/client/service/ceilometer.yml
+++ b/keystone/client/service/ceilometer.yml
@@ -1,4 +1,6 @@
 parameters:
+  _param:
+    cluster_public_protocol: https
   keystone:
     client:
       server:
@@ -16,7 +18,8 @@
               description: OpenStack Telemetry Service
               endpoints:
               - region: ${_param:openstack_region}
-                public_address: ${_param:ceilometer_service_host}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: ${_param:cluster_public_protocol}
                 public_port: 8777
                 public_path: '/'
                 internal_address: ${_param:ceilometer_service_host}
diff --git a/keystone/client/service/cinder.yml b/keystone/client/service/cinder.yml
index 329c7ac..335985f 100644
--- a/keystone/client/service/cinder.yml
+++ b/keystone/client/service/cinder.yml
@@ -1,4 +1,6 @@
 parameters:
+  _param:
+    cluster_public_protocol: https
   keystone:
     client:
       server:
@@ -16,7 +18,8 @@
               description: OpenStack Volume Service
               endpoints:
               - region: ${_param:openstack_region}
-                public_address: ${_param:cinder_service_host}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: ${_param:cluster_public_protocol}
                 public_port: 8776
                 public_path: '/v1/$(tenant_id)s'
                 internal_address: ${_param:cinder_service_host}
diff --git a/keystone/client/service/cinder2.yml b/keystone/client/service/cinder2.yml
index a24f06a..cc150ff 100644
--- a/keystone/client/service/cinder2.yml
+++ b/keystone/client/service/cinder2.yml
@@ -1,4 +1,6 @@
 parameters:
+  _param:
+    cluster_public_protocol: https
   keystone:
     client:
       server:
@@ -16,7 +18,8 @@
               description: OpenStack Volume Service v2
               endpoints:
               - region: ${_param:openstack_region}
-                public_address: ${_param:cinder_service_host}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: ${_param:cluster_public_protocol}
                 public_port: 8776
                 public_path: '/v2/$(tenant_id)s'
                 internal_address: ${_param:cinder_service_host}
diff --git a/keystone/client/service/designate.yml b/keystone/client/service/designate.yml
new file mode 100644
index 0000000..4d95b2e
--- /dev/null
+++ b/keystone/client/service/designate.yml
@@ -0,0 +1,30 @@
+parameters:
+  _param:
+    cluster_public_protocol: https
+  keystone:
+    client:
+      server:
+        identity:
+          project:
+            service:
+              user:
+                designate:
+                  is_admin: true
+                  password: ${_param:keystone_designate_password}
+                  email: ${_param:admin_email}
+    service:
+      designate:
+          type: dns
+          description: OpenStack DNS service
+          endpoints:
+            - region: ${_param:openstack_region}
+              public_address: ${_param:cluster_public_host}
+              public_protocol: ${_param:cluster_public_protocol}
+              public_port: 9001
+              public_path: '/'
+              internal_address: ${_param:designate_service_host}
+              internal_port: 9001
+              internal_path: '/'
+              admin_address: ${_param:designate_service_host}
+              admin_port: 9001
+              admin_path: '/'
diff --git a/keystone/client/service/glance.yml b/keystone/client/service/glance.yml
index 33d90c7..365917b 100644
--- a/keystone/client/service/glance.yml
+++ b/keystone/client/service/glance.yml
@@ -1,4 +1,6 @@
 parameters:
+  _param:
+    cluster_public_protocol: https
   keystone:
     client:
       server:
@@ -16,7 +18,8 @@
               description: OpenStack Image Service
               endpoints:
               - region: ${_param:openstack_region}
-                public_address: ${_param:glance_service_host}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: ${_param:cluster_public_protocol}
                 public_port: 9292
                 public_path: ''
                 internal_address: ${_param:glance_service_host}
diff --git a/keystone/client/service/heat-cfn.yml b/keystone/client/service/heat-cfn.yml
index 3bb5449..343ff46 100644
--- a/keystone/client/service/heat-cfn.yml
+++ b/keystone/client/service/heat-cfn.yml
@@ -1,4 +1,6 @@
 parameters:
+  _param:
+    cluster_public_protocol: https
   keystone:
     client:
       server:
@@ -9,7 +11,8 @@
               description: OpenStack CloudFormation Service
               endpoints:
               - region: ${_param:openstack_region}
-                public_address: ${_param:heat_service_host}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: ${_param:cluster_public_protocol}
                 public_port: 8000
                 public_path: '/v1'
                 internal_address: ${_param:heat_service_host}
diff --git a/keystone/client/service/heat.yml b/keystone/client/service/heat.yml
index 233cc75..692ceee 100644
--- a/keystone/client/service/heat.yml
+++ b/keystone/client/service/heat.yml
@@ -1,4 +1,6 @@
 parameters:
+  _param:
+    cluster_public_protocol: https
   keystone:
     client:
       server:
@@ -19,7 +21,8 @@
               description: OpenStack Orchestration Service
               endpoints:
               - region: ${_param:openstack_region}
-                public_address: ${_param:heat_service_host}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: ${_param:cluster_public_protocol}
                 public_port: 8004
                 public_path: '/v1/%(tenant_id)s'
                 internal_address: ${_param:heat_service_host}
diff --git a/keystone/client/service/keystone.yml b/keystone/client/service/keystone.yml
index 914777c..af3acfc 100644
--- a/keystone/client/service/keystone.yml
+++ b/keystone/client/service/keystone.yml
@@ -1,4 +1,6 @@
 parameters:
+  _param:
+    cluster_public_protocol: https
   keystone:
     client:
       server:
@@ -9,7 +11,8 @@
               description: OpenStack Identity Service
               endpoints:
               - region: ${_param:openstack_region}
-                public_address: ${_param:keystone_service_host}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: ${_param:cluster_public_protocol}
                 public_port: 5000
                 public_path: '/v2.0'
                 internal_address: ${_param:keystone_service_host}
diff --git a/keystone/client/service/keystone3.yml b/keystone/client/service/keystone3.yml
index 9aaedc2..9dd9eef 100644
--- a/keystone/client/service/keystone3.yml
+++ b/keystone/client/service/keystone3.yml
@@ -1,4 +1,6 @@
 parameters:
+  _param:
+    cluster_public_protocol: https
   keystone:
     client:
       server:
@@ -9,7 +11,8 @@
               description: OpenStack Identity Service v3
               endpoints:
               - region: ${_param:openstack_region}
-                public_address: ${_param:keystone_service_host}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: ${_param:cluster_public_protocol}
                 public_port: 5000
                 public_path: '/v3'
                 internal_address: ${_param:keystone_service_host}
diff --git a/keystone/client/service/murano.yml b/keystone/client/service/murano.yml
new file mode 100644
index 0000000..4cb6211
--- /dev/null
+++ b/keystone/client/service/murano.yml
@@ -0,0 +1,30 @@
+parameters:
+  _param:
+    cluster_public_protocol: https
+  keystone:
+    client:
+      server:
+        identity:
+          project:
+            service:
+              user:
+                murano:
+                  is_admin: true
+                  password: ${_param:keystone_murano_password}
+                  email: ${_param:admin_email}
+      service:
+        murano:
+          type: application-catalog
+          description: Application Catalog for OpenStack
+          endpoints:
+            - region: ${_param:openstack_region}
+              public_address: ${_param:cluster_public_host}
+              public_protocol: ${_param:cluster_public_protocol}
+              public_port: 8082
+              public_path: ''
+              internal_address: ${_param:murano_service_host}
+              internal_port: 8082
+              internal_path: ''
+              admin_address: ${_param:murano_service_host}
+              admin_port: 8082
+              admin_path: ''
diff --git a/keystone/client/service/neutron.yml b/keystone/client/service/neutron.yml
index 48ca372..e108f68 100644
--- a/keystone/client/service/neutron.yml
+++ b/keystone/client/service/neutron.yml
@@ -1,4 +1,6 @@
 parameters:
+  _param:
+    neutron_public_protocol: https
   keystone:
     client:
       server:
@@ -16,7 +18,8 @@
               description: OpenStack Networking Service
               endpoints:
               - region: ${_param:openstack_region}
-                public_address: ${_param:neutron_service_host}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: ${_param:neutron_public_protocol}
                 public_port: 9696
                 public_path: '/'
                 internal_address: ${_param:neutron_service_host}
diff --git a/keystone/client/service/nova-ec2.yml b/keystone/client/service/nova-ec2.yml
index b729061..586701c 100644
--- a/keystone/client/service/nova-ec2.yml
+++ b/keystone/client/service/nova-ec2.yml
@@ -1,4 +1,6 @@
 parameters:
+  _param:
+    cluster_public_protocol: https
   keystone:
     client:
       server:
@@ -9,7 +11,8 @@
               description: OpenStack EC2 Service
               endpoints:
               - region: ${_param:openstack_region}
-                public_address: ${_param:nova_service_host}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: ${_param:cluster_public_protocol}
                 public_port: 8773
                 public_path: '/services/Cloud'
                 internal_address: ${_param:nova_service_host}
diff --git a/keystone/client/service/nova.yml b/keystone/client/service/nova.yml
index 1497d69..ed703d0 100644
--- a/keystone/client/service/nova.yml
+++ b/keystone/client/service/nova.yml
@@ -1,4 +1,6 @@
 parameters:
+  _param:
+    cluster_public_protocol: https
   keystone:
     client:
       server:
@@ -16,7 +18,8 @@
               description: OpenStack Compute Service
               endpoints:
               - region: ${_param:openstack_region}
-                public_address: ${_param:nova_service_host}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: ${_param:cluster_public_protocol}
                 public_port: 8774
                 public_path: '/v2/$(tenant_id)s'
                 internal_address: ${_param:nova_service_host}
diff --git a/keystone/client/service/nova21.yml b/keystone/client/service/nova21.yml
index e09a9df..48767de 100644
--- a/keystone/client/service/nova21.yml
+++ b/keystone/client/service/nova21.yml
@@ -1,4 +1,6 @@
 parameters:
+  _param:
+    cluster_public_protocol: https
   keystone:
     client:
       server:
@@ -16,7 +18,8 @@
               description: OpenStack Compute Service
               endpoints:
               - region: ${_param:openstack_region}
-                public_address: ${_param:nova_service_host}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: ${_param:cluster_public_protocol}
                 public_port: 8774
                 public_path: '/v2/$(tenant_id)s'
                 internal_address: ${_param:nova_service_host}
@@ -30,7 +33,8 @@
               description: OpenStack Compute Service v2.1
               endpoints:
               - region: ${_param:openstack_region}
-                public_address: ${_param:nova_service_host}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: ${_param:cluster_public_protocol}
                 public_port: 8774
                 public_path: '/v2.1'
                 internal_address: ${_param:nova_service_host}
diff --git a/keystone/client/service/radosgw-s3.yml b/keystone/client/service/radosgw-s3.yml
new file mode 100644
index 0000000..9b434af
--- /dev/null
+++ b/keystone/client/service/radosgw-s3.yml
@@ -0,0 +1,30 @@
+parameters:
+  _param:
+    cluster_public_protocol: https
+  keystone:
+    client:
+      server:
+        identity:
+          project:
+            service:
+              user:
+                swift:
+                  is_admin: true
+                  password: ${_param:keystone_swift_password}
+                  email: ${_param:admin_email}
+      service:
+        radosgw-s3:
+          type: s3
+          description: S3 Service (radosgw)
+          endpoints:
+            - region: ${_param:openstack_region}
+              public_address: ${_param:cluster_public_host}
+              public_protocol: ${_param:cluster_public_protocol}
+              public_port: 8081
+              public_path: '/' # /$(tenant_id)s
+              internal_address: ${_param:radosgw_service_host}
+              internal_port: 8081
+              internal_path: '/'
+              admin_address: ${_param:radosgw_service_host}
+              admin_port: 8081
+              admin_path: '/'
diff --git a/keystone/client/service/radosgw-swift.yml b/keystone/client/service/radosgw-swift.yml
new file mode 100644
index 0000000..82d311f
--- /dev/null
+++ b/keystone/client/service/radosgw-swift.yml
@@ -0,0 +1,30 @@
+parameters:
+  _param:
+    cluster_public_protocol: https
+  keystone:
+    client:
+      server:
+        identity:
+          project:
+            service:
+              user:
+                swift:
+                  is_admin: true
+                  password: ${_param:keystone_swift_password}
+                  email: ${_param:admin_email}
+      service:
+        radosgw-swift:
+          type: object-store
+          description: Swift Service (radosgw)
+          endpoints:
+            - region: ${_param:openstack_region}
+              public_address: ${_param:cluster_public_host}
+              public_protocol: ${_param:cluster_public_protocol}
+              public_port: 8081
+              public_path: '/swift/v1' # /$(tenant_id)s
+              internal_address: ${_param:radosgw_service_host}
+              internal_port: 8081
+              internal_path: '/swift/v1'
+              admin_address: ${_param:radosgw_service_host}
+              admin_port: 8081
+              admin_path: '/swift/v1'
diff --git a/keystone/client/service/sahara.yml b/keystone/client/service/sahara.yml
new file mode 100644
index 0000000..0dbb136
--- /dev/null
+++ b/keystone/client/service/sahara.yml
@@ -0,0 +1,30 @@
+parameters:
+  _param:
+    cluster_public_protocol: https
+  keystone:
+    client:
+      server:
+        identity:
+          project:
+            service:
+              user:
+                sahara:
+                  is_admin: true
+                  password: ${_param:keystone_sahara_password}
+                  email: ${_param:admin_email}
+      service:
+        swift:
+          type: data-processing
+          description: Sahara Data Processing
+          endpoints:
+            - region: ${_param:openstack_region}
+              public_address: ${_param:cluster_public_host}
+              public_protocol: ${_param:cluster_public_protocol}
+              public_port: 8386
+              public_path: '/v1.1/%(tenant_id)s'
+              internal_address: ${_param:sahara_service_host}
+              internal_port: 8386
+              internal_path: '/v1.1/%(tenant_id)s'
+              admin_address: ${_param:sahara_service_host}
+              admin_port: 8386
+              admin_path: '/v1.1/%(tenant_id)s'
diff --git a/keystone/client/service/swift-s3.yml b/keystone/client/service/swift-s3.yml
new file mode 100644
index 0000000..6850dbd
--- /dev/null
+++ b/keystone/client/service/swift-s3.yml
@@ -0,0 +1,31 @@
+parameters:
+  _param:
+    cluster_public_protocol: https
+  keystone:
+    client:
+      server:
+        identity:
+          project:
+            service:
+              user:
+                swift:
+                  is_admin: true
+                  password: ${_param:keystone_swift_password}
+                  email: ${_param:admin_email}
+      service:
+        swift-s3:
+          type: object-store
+          description: S3 Service (swift)
+          region: ${_param:keystone_region}
+          endpoints:
+            - region: ${_param:openstack_region}
+              public_address: ${_param:cluster_public_host}
+              public_protocol: ${_param:cluster_public_protocol}
+              public_port: 8080
+              public_path: '/v1/AUTH_%(tenant_id)s'
+              internal_address: ${_param:swift_service_host}
+              internal_port: 8080
+              internal_path: '/v1/AUTH_%(tenant_id)s'
+              admin_address: ${_param:swift_service_host}
+              admin_port: 8080
+              admin_path: '/'
diff --git a/keystone/client/service/swift.yml b/keystone/client/service/swift.yml
new file mode 100644
index 0000000..94636a4
--- /dev/null
+++ b/keystone/client/service/swift.yml
@@ -0,0 +1,30 @@
+parameters:
+  _param:
+    cluster_public_protocol: https
+  keystone:
+    client:
+      server:
+        identity:
+          project:
+            service:
+              user:
+                swift:
+                  is_admin: true
+                  password: ${_param:keystone_swift_password}
+                  email: ${_param:admin_email}
+      service:
+        swift:
+          type: object-store
+          description: Swift Service
+          endpoints:
+            - region: ${_param:openstack_region}
+              public_address: ${_param:cluster_public_host}
+              public_protocol: ${_param:cluster_public_protocol}
+              public_port: 8080
+              public_path: '/v1/AUTH_%(tenant_id)s'
+              internal_address: ${_param:swift_service_host}
+              internal_port: 8080
+              internal_path: '/v1/AUTH_%(tenant_id)s'
+              admin_address: ${_param:swift_service_host}
+              admin_port: 8080
+              admin_path: '/'
diff --git a/keystone/server/notification/cadf.yml b/keystone/server/notification/cadf.yml
new file mode 100644
index 0000000..dffb278
--- /dev/null
+++ b/keystone/server/notification/cadf.yml
@@ -0,0 +1,4 @@
+parameters:
+  keystone:
+    server:
+      notification_format: cadf
diff --git a/keystone/server/wsgi.yml b/keystone/server/wsgi.yml
new file mode 100644
index 0000000..2c8a19d
--- /dev/null
+++ b/keystone/server/wsgi.yml
@@ -0,0 +1,19 @@
+classes:
+- system.apache.server.single
+parameters:
+  keystone:
+    server:
+      service_name: apache2
+  apache:
+    server:
+      enabled: true
+      default_mpm: event
+      site:
+        keystone:
+          enabled: true
+          type: keystone
+          name: wsgi
+          host:
+            name: ${linux:network:fqdn}
+      modules:
+        - wsgi
diff --git a/linux/storage/loopback.yml b/linux/storage/loopback.yml
new file mode 100644
index 0000000..adbbe65
--- /dev/null
+++ b/linux/storage/loopback.yml
@@ -0,0 +1,8 @@
+parameters:
+  linux:
+    storage:
+      enabled: true
+      loopback:
+        loop0:
+          file: "/srv/disk0"
+          size: ${_param:loopback_device_size}G
diff --git a/linux/system/repo/mos92.yml b/linux/system/repo/mos92.yml
new file mode 100644
index 0000000..d19edc2
--- /dev/null
+++ b/linux/system/repo/mos92.yml
@@ -0,0 +1,20 @@
+parameters:
+  linux:
+    system:
+      repo:
+        mirantis_openstack:
+          source: "deb http://mirror.fuel-infra.org/mos-repos/ubuntu/9.2/ mos9.0 main restricted"
+          architectures: amd64
+          key_url: "http://mirror.fuel-infra.org/mos-repos/ubuntu/9.2/archive-mos9.0.key"
+        mirantis_openstack_hotfix:
+          source: "deb http://mirror.fuel-infra.org/mos-repos/ubuntu/9.2/ mos9.0-hotfix main restricted"
+          architectures: amd64
+          key_url: "http://mirror.fuel-infra.org/mos-repos/ubuntu/9.2/archive-mos9.0.key"
+        mirantis_openstack_security:
+          source: "deb http://mirror.fuel-infra.org/mos-repos/ubuntu/9.2/ mos9.0-security main restricted"
+          architectures: amd64
+          key_url: "http://mirror.fuel-infra.org/mos-repos/ubuntu/9.2/archive-mos9.0.key"
+        mirantis_openstack_updates:
+          source: "deb http://mirror.fuel-infra.org/mos-repos/ubuntu/9.2/ mos9.0-updates main restricted"
+          architectures: amd64
+          key_url: "http://mirror.fuel-infra.org/mos-repos/ubuntu/9.2/archive-mos9.0.key"
diff --git a/neutron/control/notification/cadf.yml b/neutron/control/notification/cadf.yml
new file mode 100644
index 0000000..f00f96f
--- /dev/null
+++ b/neutron/control/notification/cadf.yml
@@ -0,0 +1,5 @@
+parameters:
+  neutron:
+    server:
+      audit:
+        enabled: true
diff --git a/nginx/server/proxy/ceph_radosgw.yml b/nginx/server/proxy/ceph_radosgw.yml
new file mode 100644
index 0000000..fe90201
--- /dev/null
+++ b/nginx/server/proxy/ceph_radosgw.yml
@@ -0,0 +1,15 @@
+parameters:
+  _param:
+    nginx_proxy_radosgw_host: ${_param:cluster_public_host}
+  nginx:
+    server:
+      enabled: true
+      site:
+        ceph_radosgw:
+          enabled: true
+          type: ceph
+          name: ceph_radosgw
+          host:
+            name: ${_param:nginx_proxy_radosgw_host}
+            port: 8080
+          ssl: ${_param:nginx_proxy_ssl}
\ No newline at end of file
diff --git a/nginx/server/proxy/openstack/aodh.yml b/nginx/server/proxy/openstack/aodh.yml
new file mode 100644
index 0000000..bfdb4d6
--- /dev/null
+++ b/nginx/server/proxy/openstack/aodh.yml
@@ -0,0 +1,20 @@
+parameters:
+  _param:
+    nginx_proxy_openstack_api_host: ${_param:cluster_public_host}
+  nginx:
+    server:
+      enabled: true
+      site:
+        nginx_proxy_openstack_api_aodh:
+          enabled: true
+          type: nginx_proxy
+          name: openstack_api_aodh
+          check: false
+          proxy:
+            host: ${_param:aodh_service_host}
+            port: 8042
+            protocol: http
+          host:
+            name: ${_param:nginx_proxy_openstack_api_host}
+            port: 8042
+          ssl: ${_param:nginx_proxy_ssl}
diff --git a/nginx/server/proxy/openstack/ceilometer.yml b/nginx/server/proxy/openstack/ceilometer.yml
new file mode 100644
index 0000000..57315fe
--- /dev/null
+++ b/nginx/server/proxy/openstack/ceilometer.yml
@@ -0,0 +1,20 @@
+parameters:
+  _param:
+    nginx_proxy_openstack_api_host: ${_param:cluster_public_host}
+  nginx:
+    server:
+      enabled: true
+      site:
+        nginx_proxy_openstack_api_ceilometer:
+          enabled: true
+          type: nginx_proxy
+          name: openstack_api_ceilometer
+          check: false
+          proxy:
+            host: ${_param:ceilometer_service_host}
+            port: 8777
+            protocol: http
+          host:
+            name: ${_param:nginx_proxy_openstack_api_host}
+            port: 8777
+          ssl: ${_param:nginx_proxy_ssl}
diff --git a/nginx/server/proxy/openstack_api.yml b/nginx/server/proxy/openstack_api.yml
index 34898ba..5c4a1fa 100644
--- a/nginx/server/proxy/openstack_api.yml
+++ b/nginx/server/proxy/openstack_api.yml
@@ -1,7 +1,6 @@
 parameters:
   _param:
     nginx_proxy_openstack_api_host: ${_param:cluster_public_host}
-    nginx_proxy_openstack_api_proxy_host: ${_param:cluster_vip_address}
   nginx:
     server:
       enabled: true
@@ -10,125 +9,117 @@
           enabled: true
           type: nginx_proxy
           name: openstack_api_keystone
+          check: false
           proxy:
-            host: ${_param:nginx_proxy_openstack_api_proxy_host}
+            host: ${_param:keystone_service_host}
             port: 5000
             protocol: http
-            filter:
-              search: ${_param:nginx_proxy_openstack_api_proxy_host}
-              replace: '$server_addr'
           host:
             name: ${_param:nginx_proxy_openstack_api_host}
             port: 5000
+          ssl: ${_param:nginx_proxy_ssl}
         nginx_proxy_openstack_api_keystone_private:
           enabled: true
           type: nginx_proxy
           name: openstack_api_keystone_private
+          check: false
           proxy:
-            host: ${_param:nginx_proxy_openstack_api_proxy_host}
+            host: ${_param:keystone_service_host}
             port: 35357
             protocol: http
-            filter:
-              search: ${_param:nginx_proxy_openstack_api_proxy_host}
-              replace: '$server_addr'
           host:
             name: ${_param:nginx_proxy_openstack_api_host}
             port: 35357
+          ssl: ${_param:nginx_proxy_ssl}
         nginx_proxy_openstack_api_nova:
           enabled: true
           type: nginx_proxy
           name: openstack_api_nova
+          check: false
           proxy:
-            host: ${_param:nginx_proxy_openstack_api_proxy_host}
+            host: ${_param:nova_service_host}
             port: 8774
             protocol: http
-            filter:
-              search: ${_param:nginx_proxy_openstack_api_proxy_host}
-              replace: '$server_addr'
           host:
             name: ${_param:nginx_proxy_openstack_api_host}
             port: 8774
+          ssl: ${_param:nginx_proxy_ssl}
         nginx_proxy_openstack_api_cinder:
           enabled: true
           type: nginx_proxy
           name: openstack_api_cinder
+          check: false
           proxy:
-            host: ${_param:nginx_proxy_openstack_api_proxy_host}
+            host: ${_param:cinder_service_host}
             port: 8776
             protocol: http
-            filter:
-              search: ${_param:nginx_proxy_openstack_api_proxy_host}
-              replace: '$server_addr'
           host:
             name: ${_param:nginx_proxy_openstack_api_host}
             port: 8776
+          ssl: ${_param:nginx_proxy_ssl}
         nginx_proxy_openstack_api_glance:
           enabled: true
           type: nginx_proxy
           name: openstack_api_glance
+          check: false
+          underscores_in_headers: true
           proxy:
-            host: ${_param:nginx_proxy_openstack_api_proxy_host}
+            host: ${_param:glance_service_host}
             port: 9292
             protocol: http
-            filter:
-              search: ${_param:nginx_proxy_openstack_api_proxy_host}
-              replace: '$server_addr'
+            size: 30000m
           host:
             name: ${_param:nginx_proxy_openstack_api_host}
             port: 9292
+          ssl: ${_param:nginx_proxy_ssl}
         nginx_proxy_openstack_api_neutron:
           enabled: true
           type: nginx_proxy
           name: openstack_api_neutron
+          check: false
           proxy:
-            host: ${_param:nginx_proxy_openstack_api_proxy_host}
+            host: ${_param:neutron_service_host}
             port: 9696
             protocol: http
-            filter:
-              search: ${_param:nginx_proxy_openstack_api_proxy_host}
-              replace: '$server_addr'
           host:
             name: ${_param:nginx_proxy_openstack_api_host}
             port: 9696
+          ssl: ${_param:nginx_proxy_ssl}
         nginx_proxy_openstack_api_heat_cfn:
           enabled: true
           type: nginx_proxy
           name: openstack_api_heat_cfn
           proxy:
-            host: ${_param:nginx_proxy_openstack_api_proxy_host}
+            host: ${_param:heat_service_host}
             port: 8000
             protocol: http
-            filter:
-              search: ${_param:nginx_proxy_openstack_api_proxy_host}
-              replace: '$server_addr'
           host:
             name: ${_param:nginx_proxy_openstack_api_host}
             port: 8000
+          ssl: ${_param:nginx_proxy_ssl}
         nginx_proxy_openstack_api_heat:
           enabled: true
           type: nginx_proxy
           name: openstack_api_heat
+          check: false
           proxy:
-            host: ${_param:nginx_proxy_openstack_api_proxy_host}
+            host: ${_param:heat_service_host}
             port: 8004
             protocol: http
-            filter:
-              search: ${_param:nginx_proxy_openstack_api_proxy_host}
-              replace: '$server_addr'
           host:
             name: ${_param:nginx_proxy_openstack_api_host}
             port: 8004
+          ssl: ${_param:nginx_proxy_ssl}
         nginx_proxy_openstack_api_nova_ec2:
           enabled: true
           type: nginx_proxy
           name: openstack_api_nova_ec2
+          check: false
           proxy:
-            host: ${_param:nginx_proxy_openstack_api_proxy_host}
+            host: ${_param:nova_service_host}
             port: 8773
             protocol: http
-            filter:
-              search: ${_param:nginx_proxy_openstack_api_proxy_host}
-              replace: '$server_addr'
           host:
             name: ${_param:nginx_proxy_openstack_api_host}
             port: 8773
+          ssl: ${_param:nginx_proxy_ssl}
diff --git a/nginx/server/proxy/openstack_vnc.yml b/nginx/server/proxy/openstack_vnc.yml
index f53e40e..526f0db 100644
--- a/nginx/server/proxy/openstack_vnc.yml
+++ b/nginx/server/proxy/openstack_vnc.yml
@@ -7,6 +7,7 @@
           enabled: true
           type: nginx_proxy
           name: novnc
+          check: false
           proxy:
             host: ${_param:openstack_control_address}
             port: 6080
@@ -15,3 +16,4 @@
           host:
             name: ${_param:cluster_public_host}
             port: 6080
+          ssl: ${_param:nginx_proxy_ssl}
diff --git a/nginx/server/proxy/openstack_web.yml b/nginx/server/proxy/openstack_web.yml
index 0165ff2..ad5ffea 100644
--- a/nginx/server/proxy/openstack_web.yml
+++ b/nginx/server/proxy/openstack_web.yml
@@ -2,7 +2,9 @@
   _param:
     nginx_proxy_openstack_web_host: ${_param:cluster_public_host}
     nginx_proxy_openstack_web_proxy_host: ${_param:cluster_vip_address}
-    nginx_proxy_openstack_web_buffer_size: 
+    nginx_proxy_openstack_web_buffer_size:
+      number: 4
+      size: 256
   nginx:
     server:
       enabled: true
@@ -12,11 +14,16 @@
           type: nginx_proxy
           name: openstack_web
           proxy:
-            size: 5000m
-            host: prx
+            host: localhost
+            # TODO: port must be configurable, as some deployments might have HAproxy over prx nodes
             port: 8078
+            size: 10000m
+            timeout: 43200
             protocol: http
             websocket: true
+            request_buffer: false
+            buffer:
+              ${_param:nginx_proxy_openstack_web_buffer_size}
           host:
             name: ${_param:nginx_proxy_openstack_web_host}
             port: 443
diff --git a/nginx/server/proxy/stacklight/uchiwa.yml b/nginx/server/proxy/stacklight/uchiwa.yml
new file mode 100644
index 0000000..38016c9
--- /dev/null
+++ b/nginx/server/proxy/stacklight/uchiwa.yml
@@ -0,0 +1,18 @@
+parameters:
+  nginx:
+    server:
+      enabled: true
+      site:
+        nginx_proxy_uchiwa:
+          enabled: true
+          type: nginx_proxy
+          name: uchiwa
+          proxy:
+            host: ${_param:stacklight_monitor_address}
+            port: 3001
+            protocol: http
+          host:
+            name: ${_param:cluster_public_host}
+            port: 3001
+            protocol: https
+          ssl: ${_param:nginx_proxy_ssl}
diff --git a/nova/compute/cluster.yml b/nova/compute/cluster.yml
index b27ac38..7cb866b 100644
--- a/nova/compute/cluster.yml
+++ b/nova/compute/cluster.yml
@@ -4,6 +4,7 @@
   _param:
     nova_vncproxy_url: http://${_param:cluster_vip_address}:6080
     nova_compute_virtualization: kvm
+    nova_compute_avail_zone:
     nova_compute_ssh_public: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCltIn93BcTMzNK/n2eBze6PyTkmIgdDkeXNR9X4DqE48Va80ojv2pq8xuaBxiNITJzyl+4p4UvTTXo+HmuX8qbHvqgMGXvuPUCpndEfb2r67f6vpMqPwMgBrUg2ZKgN4OsSDHU+H0dia0cEaTjz5pvbUy9lIsSyhrqOUVF9reJq+boAvVEedm8fUqiZuiejAw2D27+rRtdEPgsKMnh3626YEsr963q4rjU/JssV/iKMNu7mk2a+koOrJ+aHvcVU8zJjfA0YghoeVT/I3GLU/MB/4tD/RyR8GM+UYbI4sgAC7ZOCdQyHdJgnEzx3SJIwcS65U0T2XYvn2qXHXqJ9iGZ root@mirantis.com
     nova_compute_ssh_private: |
       -----BEGIN RSA PRIVATE KEY-----
@@ -43,6 +44,7 @@
       version: ${_param:nova_version}
       enabled: true
       virtualization: ${_param:nova_compute_virtualization}
+      availability_zone: ${_param:nova_compute_avail_zone}
       heal_instance_info_cache_interval: 60
       vncproxy_url: ${_param:nova_vncproxy_url}
       bind:
diff --git a/nova/compute/single.yml b/nova/compute/single.yml
index 4ac99b1..130f2e4 100644
--- a/nova/compute/single.yml
+++ b/nova/compute/single.yml
@@ -5,6 +5,7 @@
 parameters:
   _param:
     nova_compute_ssh_public: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCltIn93BcTMzNK/n2eBze6PyTkmIgdDkeXNR9X4DqE48Va80ojv2pq8xuaBxiNITJzyl+4p4UvTTXo+HmuX8qbHvqgMGXvuPUCpndEfb2r67f6vpMqPwMgBrUg2ZKgN4OsSDHU+H0dia0cEaTjz5pvbUy9lIsSyhrqOUVF9reJq+boAvVEedm8fUqiZuiejAw2D27+rRtdEPgsKMnh3626YEsr963q4rjU/JssV/iKMNu7mk2a+koOrJ+aHvcVU8zJjfA0YghoeVT/I3GLU/MB/4tD/RyR8GM+UYbI4sgAC7ZOCdQyHdJgnEzx3SJIwcS65U0T2XYvn2qXHXqJ9iGZ root@mirantis.com
+    nova_compute_avail_zone:
     nova_compute_ssh_private: |
       -----BEGIN RSA PRIVATE KEY-----
       MIIEpAIBAAKCAQEApbSJ/dwXEzMzSv59ngc3uj8k5JiIHQ5HlzUfV+A6hOPFWvNK
@@ -44,6 +45,7 @@
       disable_flow_collection: true
       enabled: true
       virtualization: kvm
+      availability_zone: ${_param:nova_compute_avail_zone}
       vncproxy_url: http://${_param:control_address}:6080
       bind:
         vnc_address: ${_param:control_address}
diff --git a/nova/compute/sriov.yml b/nova/compute/sriov.yml
new file mode 100644
index 0000000..b93363c
--- /dev/null
+++ b/nova/compute/sriov.yml
@@ -0,0 +1,21 @@
+parameters:
+  _param:
+    sriov_nic01_physical_network: physnet1
+    sriov_unsafe_interrupts: False
+  nova:
+    compute:
+      sriov:
+        sriov_nic01:
+          devname: ${_param:sriov_nic01_device_name}
+          physical_network: ${_param:sriov_nic01_physical_network}
+  linux:
+    system:
+      kernel:
+        sriov: True
+        unsafe_interrupts: ${_param:sriov_unsafe_interrupts}
+      rc:
+        local: |
+          #!/bin/sh -e
+          # Enabling ${_param:sriov_nic01_numvfs} VFs on ${_param:sriov_nic01_device_name} PF
+          echo ${_param:sriov_nic01_numvfs} > /sys/class/net/${_param:sriov_nic01_device_name}/device/sriov_numvfs; sleep 2; ip link set ${_param:sriov_nic01_device_name} up
+          exit 0
\ No newline at end of file
diff --git a/nova/compute/storage/ceph.yml b/nova/compute/storage/ceph.yml
new file mode 100644
index 0000000..c271952
--- /dev/null
+++ b/nova/compute/storage/ceph.yml
@@ -0,0 +1,10 @@
+parameters:
+  nova:
+    compute:
+      ceph:
+        enabled: true
+        ephemeral: yes
+        rbd_pool: ${_param:nova_storage_pool}
+        secret_uuid: ${_param:nova_storage_secret_uuid}
+        client_cinder_key: ${_param:nova_storage_secret_uuid}
+        rbd_user: ${_param:nova_storage_user}
\ No newline at end of file
diff --git a/nova/control/cluster.yml b/nova/control/cluster.yml
index ac08d43..a8d25b7 100644
--- a/nova/control/cluster.yml
+++ b/nova/control/cluster.yml
@@ -13,7 +13,7 @@
       vncproxy_url: ${_param:nova_vncproxy_url}
       security_group: false
       dhcp_domain: novalocal
-      scheduler_default_filters: "DifferentHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter"
+      scheduler_default_filters: "DifferentHostFilter,RetryFilter,AvailabilityZoneFilter,RamFilter,CoreFilter,DiskFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,PciPassthroughFilter,NUMATopologyFilter,AggregateInstanceExtraSpecsFilter"
       cpu_allocation_ratio: 16.0
       ram_allocation_ratio: 1.5
       disk_allocation_ratio: 1.0
diff --git a/nova/control/notification/cadf.yml b/nova/control/notification/cadf.yml
new file mode 100644
index 0000000..2f2b1b1
--- /dev/null
+++ b/nova/control/notification/cadf.yml
@@ -0,0 +1,5 @@
+parameters:
+  nova:
+    controller:
+      audit:
+        enabled: true
diff --git a/openssh/server/team/ccp_team.yml b/openssh/server/team/ccp_team.yml
new file mode 100644
index 0000000..3355dc1
--- /dev/null
+++ b/openssh/server/team/ccp_team.yml
@@ -0,0 +1,93 @@
+parameters:
+  linux:
+    system:
+      user:
+        kproskurin:
+          enabled: true
+          name: kproskurin
+          sudo: true
+          full_name: Kirill Proskurin
+          home: /home/kproskurin
+          email: kproskurin@mirantis.com
+        sreshetnyak:
+          enabled: true
+          name: sreshetnyak
+          sudo: true
+          full_name: Sergey Reshetnyak
+          home: /home/sreshetnyak
+          email: sreshetnyak@mirantis.com
+        apavlov:
+          enabled: true
+          name: apavlov
+          sudo: true
+          full_name: Andrey Pavlov
+          home: /home/apavlov
+          email: apavlov@mirantis.com
+        sryabin:
+          enabled: true
+          name: sryabin
+          sudo: true
+          full_name: Sergey Ryabin
+          home: /home/sryabin
+          email: sryabin@mirantis.com
+        slukjanov:
+          enabled: true
+          name: slukjanov
+          sudo: true
+          full_name: Sergey Lukjanov
+          home: /home/slukjanov
+          email: slukjanov@mirantis.com
+        ytaraday:
+          enabled: true
+          name: ytaraday
+          sudo: true
+          full_name: Yuriy Taraday
+          home: /home/ytaraday
+          email: ytaraday@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        kproskurin:
+          enabled: true
+          public_keys:
+          - ${public_keys:kproskurin}
+          user: ${linux:system:user:kproskurin}
+        sreshetnyak:
+          enabled: true
+          public_keys:
+          - ${public_keys:sreshetnyak}
+          user: ${linux:system:user:sreshetnyak}
+        apavlov:
+          enabled: true
+          public_keys:
+          - ${public_keys:apavlov}
+          user: ${linux:system:user:apavlov}
+        sryabin:
+          enabled: true
+          public_keys:
+          - ${public_keys:sryabin}
+          user: ${linux:system:user:sryabin}
+        slukjanov:
+          enabled: true
+          public_keys:
+          - ${public_keys:slukjanov}
+          user: ${linux:system:user:slukjanov}
+        ytaraday:
+          enabled: true
+          public_keys:
+          - ${public_keys:ytaraday}
+          user: ${linux:system:user:ytaraday}
+  public_keys:
+    kproskurin:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBvuPnwVjS5AuxOp4Bd3zRFhE1IB7g5R8LMwfCpqokolV0pHw1QGbCFprBcahvR0daGla/lB0buUu1sCLmFm0QH/m3VD9PkY8VE/4XW58yCtA5/ANYqLchWaNxaaaQG8Sg3gxtcMwLUQ92HFejZT9c0jgQDRc8pTHHuPj/HuV1I2Cw2a/DHZtrMbMT27aAglrPFiMty+P1Gd5mdHAXK8sfK+LSZ9/PZ2IbW0fCGL3tE8rTwL7FG5rN7eeaX56lWwO3oQMu184Wi1vL/ukIt2sdRi6qvKAYfeELPzffo8GOhesQAq+BXzjpIo2HUT2gSkZid0YzX7lRLPWhAi1sdq3V oloremo@iHAL9000-2.local
+    sreshetnyak:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDbc8cUMy2Stjq4qS8TaVGvTIUGetpgTcLCiW3NnG5Yqe+s+nlQnIL3ezvgSKHin4/PYHl8vV9FnmLdPLk+4eefoek1px8soW/B+Ri0KN6aQUy1ztcecMxcxRH9g4VLZWTbazqGsADwRCQVPXmyIQVQN5wMKd0IzXUp5c03dWv/I1PE7QPdKySrdhjjyo+1Npx/tQjtJaSnGCaUJrXfHXBxiiENzmHuY+se14nWV9RyYN3zRWsa8Yt1n2hWNNiKNfT89h6yFwZAxdsS+jGhzbGTLcWyAqq3sfvvgm0yeL5FEm0AKaOMv7AuM5LqjPkQE4zzCGA0j19EQlAjsVcvKHGH sreshetniak@workstation
+    apavlov:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC13FvtJl6OdwdiaLFYfJO5WaA7YUMi2/DJJECWtrjJPObGPeAQ1Z8zxQWanwZVhDO7E5oR7n/LmuKHaJkRIFyQEZY3mHS3k4yybg0Vqu2FcGWQO4P3R16v6qDLvuvu9S4sUkYF3k8oYDzwN/Vc+o7a4AkL5U5rjB3vbLWVdGg8G61jFjdekXbJdFCb0liPpcQrUe1yZmjE2E4ERPOZLCVADPiVzXJhtbKigbn/nwdk4D0g+eq3NW0AwJfkyCu6mt1xXfk6gmhUrBPh1ostWv6mSpD9bXvxIKv/QnIM4SUJ/RhJH0uhWtpH4GeXvnPXHs0bxfyq1GtQt5bD3gqCHruz apavlov@Andreys-MacBook-Pro.local
+    sryabin:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC5KZguajyeerULef0PxEZGOvY2yzaFd+Ob9sdM1v57RZBOyu8EdfNwso1OuLRwrZP6o6V8OBJ95O1AKE0ay5PQzu3VlbZgQfVTazc7ngKOqvIZP7JYlxM58cHcU+Hu1fvtdDYbc0cOzIP1Cu+AA4ZRiqa9YxMbI8i8bKR+MdgX+yKErXiEeM6wMmg8MEyGFFLxNmeOY78pS4xxlFsyd78JkS+TCAStULIahffPDcJI02Kt1Af9lGRyM3fKoFlNx0/lsPncvTGz/trgjAae1Q6f1CrH2saXNtFSwi58Qs6sP4A9lxMTtkGhbUMhkInYg5w+9QnZcGYfBNqXvhA6qbrH
+    slukjanov:
+      key: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOV5dNsXJ6aJMml7JSd4cJ54qYhOya18QNEdb7NJ88yo
+    ytaraday:
+      key: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDtcRlAQg3baU14eBh8THRv+1T5sHCGAIeFaReEB/KRT
diff --git a/openssh/server/team/mcp_ci.yml b/openssh/server/team/mcp_ci.yml
new file mode 100644
index 0000000..837ee90
--- /dev/null
+++ b/openssh/server/team/mcp_ci.yml
@@ -0,0 +1,79 @@
+parameters:
+  linux:
+    system:
+      user:
+        rkamaldinov:
+          enabled: true
+          name: rkamaldinov
+          sudo: true
+          full_name: Ruslan Kamaldinov
+          home: /home/rkamaldinov
+          email: rkamaldinov@mirantis.com
+        iberezovskiy:
+          enabled: true
+          name: iberezovskiy
+          sudo: true
+          full_name: Ivan Berezovskiy
+          home: /home/iberezovskiy
+          email: iberezovskiy@mirantis.com
+        skolekonov:
+          enabled: true
+          name: skolekonov
+          sudo: true
+          full_name: Sergey Kolekonov
+          home: /home/skolekonov
+          email: skolekonov@mirantis.com
+        mmatuszkowiak:
+          enabled: true
+          name: mmatuszkowiak
+          sudo: true
+          full_name: Mateusz Matuszkowiak
+          home: /home/mmatuszkowiak
+          email: mmatuszkowiak@mirantis.com
+        akaszuba:
+          enabled: true
+          name: akaszuba
+          sudo: true
+          full_name: Artur Kaszuba
+          home: /home/akaszuba
+          email: akaszuba@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        rkamaldinov:
+          enabled: true
+          public_keys:
+          - ${public_keys:rkamaldinov}
+          user: ${linux:system:user:rkamaldinov}
+        iberezovskiy:
+          enabled: true
+          public_keys:
+          - ${public_keys:iberezovskiy}
+          user: ${linux:system:user:iberezovskiy}
+        skolekonov:
+          enabled: true
+          public_keys:
+          - ${public_keys:skolekonov}
+          user: ${linux:system:user:skolekonov}
+        mmatuszkowiak:
+          enabled: true
+          public_keys:
+          - ${public_keys:mmatuszkowiak}
+          user: ${linux:system:user:mmatuszkowiak}
+        akaszuba:
+          enabled: true
+          public_keys:
+          - ${public_keys:akaszuba}
+          user: ${linux:system:user:akaszuba}
+  public_keys:
+    rkamaldinov:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDCzeIFxatNuXWuaTomcGDTMlpqiF6KlK47BSO5yIpfWHTL7o0OFsQArB4UeZ9AC7JHQg1bpxzscJxz8Xj3tA1f8yOCrepR8LbWh7L6a1hMhSCJPK9QLUHPCLV4PW0ghq46Um8ekxMbEqGM/rrKP+GeYxNFUxJMHCkKbZAsV+BV8amuJHQkYt29GP/hgYyZEoWKErqoQ/uGQ0qWEMVQsnus6M3p3c/v1J4JtbbrmRBjyrPx/Tjinw6K2sgocgBZT7vVb4PYwbONi1IAclkPJIyrSNEavZ4MbK93ZXNQCV7rkUbKmHT71Qle34/ks9zyERJ3RgB+pWgQqCjtmJeV51V1 rkamaldinov@mirantis.com
+    iberezovskiy:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJT1d+2zKca28nFykpizh7z1yPLzK5fpMUH/zKaupINKqZxyMNbKiIQsYHSRXESRj6dpkCI2VQGO99fosPF7/XYCNVRcMLZ3lefi6aUaoBGhGTlj/Lbfwln9sN+o3m9oWgrwX/1+IkY9KlUPS4skVsiExHaGRLmCkMbF+dryB5oWKnOcf27z/fpXIFU06opYzxWZ1wR98vSlazqe+m1nDB4ZHYsvP2ztP2wn6+6xTeLj9tzWDRFmHluW7KJrN5PuX+KExPQx6IidDL92UX2E8ua5S+f6bGttT37wS0smKQTw3dnnM79sJnbd1hc4UtyDBQcFFqFq/L+ohpmM7EKY/f iberezovskiy@IvanBerezovskiy
+    skolekonov:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDmj9no4dGs67f3KPlson/IMWo4FVAiC83euE01MvwkMY0oWfkHgwPy600PYZANDbXg1Qmza7W56ePQosPBZYtdOmk/Dr0jrviGN2faSawpiFb2K+KHx+hi08gOYHWaooA/IoB7nXBdYjIdfoCrWVR23nB7gcPKRwB31/ozySb+Q5u3wnVdGf3CJGWtRsfzjAyGcwPj7+9K3RuuyzAnRL/oaf9tcBzCHo1jd1o+rqZBVkBazfZSYiO3Kv1/xyw5MREqsu12i8M/77Yiim2nhEre1nB3INj+TAvFYxTJs33SUxUjtcdCSdBQpHLTeODZR8Ra7MTfCoFCllKGx5IDO1Fd skolekonov@SK
+    mmatuszkowiak:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC63QhWE96IF/SRCFWyKJyzOyprc7WlD6RdCClw7BxKum7BDlXfV+fhQupWUdsPVnOaCMwndjG+ZrZXg5okGui4GuL7nucUFYfUhZh252IBM8TM7BkuVd7fmbZ6OD2/4uGTOJRBhO+Jrol9Z2450vaiGZwWrbvWHNPtI+bhx3/4WWxjgZ59NGll220c1cTjGQamvNgtWBWNnsEilmZxinl501EgvDPJ8uewCAS3YA3T9ut11RRJiWKfoMr4H9sFeUTiu1j6ByYlINXMJTNadPzEcV6EW06k1K9oNfJ42F6gYFfjBQK5db83iNTkyA/j4TjfqJ9tlg2cWTp+x2vy8YNV mmatuszkowiak@Mateuszs-MacBook-Pro-2.local
+    akaszuba:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDM8RI+GX+gh8KXQGIHlfePeplOk9aGSjbbDpb3KG2n3J4RftzNThtkaEKBCwKyOSuUh0qHW3pYu17M1eIXHI53PnEQLHE1VoJ2/GI7CHWOjBk0Hgf+/NFCKogetlMjXIrOPRYKtUDcS4ejgb8X+mGCUoJOBIM2qLPO5TLAYvkkEnWaeQQn7Nrn+t8f6hZmfJLBY36jUngXW13ucEj5BcoXpaMV5JPesw9Wg27mHfEPW1Rybizy0R0I3dC4B/1QygntlZW0OTivB35La99h/iHSVVhZQv9A/T+DeR5dMIpMPl+OPKGkZ1pE+4zFIbrGuEDUppxczxaDjJ+9dqzG3pn akaszuba@mirantis.com
diff --git a/openssh/server/team/mmo_de.yml b/openssh/server/team/mmo_de.yml
index 4352929..2e34f91 100644
--- a/openssh/server/team/mmo_de.yml
+++ b/openssh/server/team/mmo_de.yml
@@ -20,6 +20,30 @@
           sudo: true
           full_name: Mike Wilson
           home: /home/mwilson
+        korlowska:
+          enabled: true
+          name: korlowska
+          sudo: true
+          full_name: Katarzyna Orlowska
+          home: /home/korlowska
+        sflorczak:
+          enabled: true
+          name: sflorczak
+          sudo: true
+          full_name: Szymon Florczak
+          home: /home/sflorczak
+        miwinski:
+          enabled: true
+          name: miwinski
+          sudo: true
+          full_name: Marcin Iwinski
+          home: /home/miwinski
+        mrelewicz:
+          enabled: true
+          name: mrelewicz
+          sudo: true
+          full_name: Maciej Relewicz
+          home: /home/mrelewicz
   openssh:
     server:
       enabled: true
@@ -40,6 +64,26 @@
           - ${public_keys:mwilson}
           - ${public_keys:mwilson2}
           user: ${linux:system:user:mwilson}
+        korlowska:
+          enabled: true
+          public_keys:
+          - ${public_keys:korlowska}
+          user: ${linux:system:user:korlowska}
+        sflorczak:
+          enabled: true
+          public_keys:
+          - ${public_keys:sflorczak}
+          user: ${linux:system:user:sflorczak}
+        miwinski:
+          enabled: true
+          public_keys:
+          - ${public_keys:miwinski}
+          user: ${linux:system:user:miwinski}
+        mrelewicz:
+          enabled: true
+          public_keys:
+          - ${public_keys:mrelewicz}
+          user: ${linux:system:user:mrelewicz}
   public_keys:
     dszeluga:
       key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDEEFoCOaivah6AjFZmPIDlDlp8mUfsh9UFrjgLL8vqVYoyVnuZ5DQZTeZsCgFCPxodEsgHDkSEFwkB6hbyqEXszGIL8dWwSBR3QfNJD2cjZ8ZYqXsKN63RzHGAjTXMjlCB7TZtcui1SWpKjGd+x3gQ0KkHZI9V9WVYDcC75kyEAHZptM2N9jlwbhr9lXZ77gZacjaGoKN0Agb/ydd1TyhQ1F3g56pnvgZtkOe/bStwjpz2NS0FqiqAR3wOeZZUGsR3TCP70oYfaeJvpCDVRR/gVXqqvcBAiNYTGC/tMlKuECKPtOOAP8Oc+bt1eOrbiPVJ5NfoOIpmMCDUUSnFoNGN damjanek@cocaine.local
@@ -49,3 +93,11 @@
       key: ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA3ltgS2MbSWR6c/V60oEHtUnLQ3bm5sSqnjFEvL00Y/aVuNL6VCnPCrWXlYSbp6P70UYuD+ngD4x7aW8jg13ii9rw2RntlaPfmttIOb6REDFohOhC4T3BPdeCd5wVe9p/ioyiFCqNi6/m/RWL7Iv8IlR/2IetQHL14VWwTgGd62sqExdb6oZM3Yux/S4jSTcMYBzt49t+QKTLiYTvQJl7Tzv8RJNzAWMsgBwo9M1N73Zqa0hA46sGkbwmWXoBhnJwowGD38q54P+WaSrar/9FT7l+uCXMwbsyYDpoRJH8SQOOpKrymEeyKCjXQUVtLopmfZMZ6COBpLsTSq1BCytwQw== /home/mwilson/.ssh/id_rsa
     mwilson2:
       key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDV6H07IEV9merlHUFV8O/Y7sczYXNZjysTBg4TkUW3mWzvW0PJMKnP6Fc1XfFE53fR71N09gkmnVlEtbHa8PTXoS89JVuUHTnitAbDdINShm0pFNWsi/3f00nbfQ8hjaxEWeZ4VlwYzP4v5IPVtpDug+epK65clIG8Xfxlp+CcckyeDdBNSztHHDuQiholzmPicN6EFM6bVUqUZSGnmxiOCrYUOMXBbYChBc3otfeF6vO3WvnKF77nixgOGGmuS0+t96vPKLB3cl5GYpTFyOmrt3tu7JPlTsqwUa0yqDa3ny+5BToIpnROhAqTZV5fV3LHgtObcWYRGANdjVWyPiNOiywiDzsw7/xzuuqV2wLeLnFG1Z+G550F1Ed4lrsPYKc7+qxZYLquI0iJoIjg5WPzNw5QBLdb1srL9zo+0A91Asx8U95IjIMWumowWjDN3Mn0qJwxW5d8SUign3wksIu2FlkLCT4u95CEIebDVEhTQQR0AOP00/KLKtBDn9a5H0UnJZZSTG4+prU3CnqyXqyp6dano86fGEkkcP2PDi/SUwoxdBvMVbdZxYpPYm+8Oe0TjLWPlwu4kYCwVnl3EYgJZAHjT6wVHOjyXcJYezPvvXY8B/VR8UfupetHg5/mVjoQQy2+Nl34AaDN2TLQLXRuG+U+hZqV5Jzc3JO+KKfDUw== mwilson@mwilson-ThinkPad-W530
+    korlowska:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqsNuEIZr8XobFca4uN3KDAQzyd//NaZQrEMfJZNm8Gj5ym4NWX8cUjf3TQvV6eMGsNe/mxwIxmpyIANQeWUUlnelXG4rRjkBt94J1bg1YeB6F76R6yPuMrP8x/4s5nTy1OVr7jo1xwwL9aHZZcxQFExMBRMM2HrZDJNoXSdwqi7vuW8uUkCSwd8lsZ4iftI4TIafehZTHWroPP3kVMI+JvbdKyAR8xT2DsPHCIb42lEfCPMEYopKRI///L3KkZkbaVdshz/4zCvx3fAyKCHLH44Qgjs3eoAuz1ZFjAec/j6jwNEWGIrlk0g5nIfEXHR5e6qZRwa+nW60xHpIwMfGWtHscyTXR95OVXlEMLqAmycSXVLwyu47attnE/CLLUH4am38ET6w8Oxkzis0gHs3NOEhoNAf2OVhV3gP3aPzoDBRGemNdYZgGNnq6VI9dNhItkxN1QIYKI1d1Dwt8sz1PJM0W9JJjZDNFZAh5Q5QAsg3nxNudk4bxyjCnYbYbRj/dbKOKLJTEsqelsvlKT/+picEwqB/xmcwalHoKtR9QsNw2XuENBQk3OCfAC4SOhm+U1zq7XHpoVxjjn/J4p5ChkH7bhNGNMAE9aefekXGWNjpQFRszd/0SlEkzhUDsUIGKFEP8wlsjb9eOzatYf65fRbE1/YGODuwubj7WrZxy3w== korlowska@mirantis.com
+    sflorczak:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDOdCr32ewiGJKLLwxf0Ic0naFV1j+ZflpfUVjuIPplrLeL5u8CNVlT5adPzgc48ijbee3qpzNvkOC7Ym295xQXUluo/cj2p5wVp70YnHrfhnLjGOCldm/K8B9bHmHbm1XW6hWUp7SWjMwhOdR217iveVLkuOy+hPdpXOC86hO93v7fY12UZDiqSRfrHpUqEaHHqlSyU2Eftn9GsR4UaotkeaQsiv8bi/k5nrwea/ccALZXnhrgTSTpXOVy3rfR5cCFQCA1PjMYvFEjhUofCHBSk+OA8xwOkpBOCfYrWRUmMT7MGEV5Jjm75QUrq1AuqRdFh8SM5lP39Tdwr8FMC+q5 flor3k@MacBook-Pro-Szymon.local
+    miwinski:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCydY97fXVWbcUiNaK5KnMHQpLT4acAVXykKqB5hAUPwKn4nFN3dFNw9dpToFpriqNpJTZrEdxVgL9obB4aouHpi+NVH6s8cMZ6ulNTiSTBM0Xkmu7jl66eMhfHNaFwgFC0vsGQ85oI813H7A601tCweKegMUW/mwOKbwHj1isEA+jbyrdRTC64icBa6zbW/G2uF0ajz9dCPe9L0rAbQFE51N1fxrnLeb6BI+5br0H6bRz1kGc5ZsNiUx3EEEOrMFbAbHQAxvD8Te/nUErdlHCiFufKlXLJSUNDPGFrW2mIfvfGlbyrLPgm24RKS6xfcD7BhJOmr54k7QbWChEp/SrX iwi@iwon
+    mrelewicz:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCsB8R/Sv7hI7kHnOa7slfRQUhx3uVo3lDT7SLZw6m5Xnc7JVmQBmsO3s0lLHWRcxBUNso8P5xd8XG30VaW2MPrHGEMy6TbwxJmoFb8+zZaETjcaXvXig2RAQe/I3GAplptCz76GFM9SQavXtqb4D7wPi/AGs7yTFBa1rlVPdmhnlQ2woZoF/Hb5vPpFbK8ucR79eopNyd+g9mhLALJGRIUkRh6q66LCUAbMHA/Lm01IV//mGFUS1Sh0lcM34LOl99SyRVKW7kbql4vWE/4ZSxX1GJC4WVxxBitdWAypGuq3PY8L/+JDjXK7hXSrYaVWygrrluQh+ZXY8S1zx1SoPEG8uzyqdei8VxDPJd+3Y+w3YvWiYI2QA7fdtf4AW57OjZJrCgC2SpUuO6TNGcQ3gxV2/IChHQMHUV6IYc+ENaKuFIXVfvFBa/VMVRoTFXKVdE1cycDR3mgygGxE9QWxLmsJf7ZaK6A0zQjxTQs0GJi6Id9dgjDsh90uPIaVJWGKZZqDH+/cbXqN1AOTK3ecVji2fOfL3JQfY4wTFt/WmGa2VrdTfv/d9bcvEvhHYaCUs3sWy3sobJXwYCiXwuZVTTLj4EvN6L+jt8I9nG/6OWILUPVjrx84ikZ3Ig1Tbts2giIuB8JpQRup1mrEtpxoeOga1ts5ZGF8XfIKOpqaBpTsw== mrelewicz@mirantis.com
diff --git a/openssh/server/team/oss_team.yaml b/openssh/server/team/oss_team.yaml
new file mode 100644
index 0000000..9d6dce9
--- /dev/null
+++ b/openssh/server/team/oss_team.yaml
@@ -0,0 +1,51 @@
+parameters:
+  linux:
+    system:
+      user:
+        ikharin:
+          enabled: true
+          name: ikharin
+          sudo: true
+          full_name: Ilya Kharin
+          home: /home/ikharin
+          email: ikharin@mirantis.com
+        vstoiko:
+          enabled: true
+          name: vstoiko
+          sudo: true
+          full_name: Volodymyr Stoiko
+          home: /home/vstoiko
+          email: vstoiko@mirantis.com
+        mivanov:
+          enabled: true
+          name: mivanov
+          sudo: true
+          full_name: Michael Ivanov
+          home: /home/mivanov
+          email: mivanov@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        ikharin:
+          enabled: true
+          public_keys:
+          - ${public_keys:ikharin}
+          user: ${linux:system:user:ikharin}
+        vstoiko:
+          enabled: true
+          public_keys:
+          - ${public_keys:vstoiko}
+          user: ${linux:system:user:vstoiko}
+        mivanov:
+          enabled: true
+          public_keys:
+          - ${public_keys:mivanov}
+          user: ${linux:system:user:mivanov}
+  public_keys:
+    ikharin:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA0NNCF9Orei3Ls5wa7xNH/2nl4eAUYY/vuAers7as8lQXjUXkurLQUG1YTQhuRiqyLrqLZjokq87l3LcpXsiBaqNybwlg4OAcf7p59FwDwdpCcAfoHeP03vt/FOYgozeExIRxVNHMdZjQJ4o5j75vnwTfGIubSF1eUOwtRVeezAREK1OPA2TRvlSOXCsAinNSZHBFTlYVYIXQEk/zuH7PdwlU2rkN69mNivh1tAUDlhrwZHrR9rcudafp5s3C5MKFtI3W4MhYIqv9ZViEhLwfEhNb0WXiUv+sdGTf8jTcXaYOlw6z9A76Ab/9bfPyOTmI7tli8Pz15+YPj1ymdlIZlQ==
+    vstoiko:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDF13qwUbb+lva8KCNE6IppajmGfF3MJIFhIPD7HYwzeIyI3INlc6nMMOk+r4a6IO3okVxgqRi27boebvUpazw0Jw4T4e1oLQpWCxvhTZkukFsrd9DJiCj07VXluua2ofaCRLCSHVLdjAH4WocmZeCXpZF1ldDeNBeuX0iYJiFBslrG/pmOuCm3IEL7GmoIJjF0Idtwo3tkWcvCUXKvBaVqCHS34Q/KJLAvZc95MLESs/kdnhfxhxbpWrRRFcZn/zIxuuptuTBzWOPd7CnsOLo5PCnuxIfDznDYYzQUJq6OmwMZipepTtymXUvFQiqq7xc/HmNR51vowqwoftgHNxYvoaQgXkneWFnq4Cl9WZaLVs90wNgQewPaKmhL8ia1S2C3Cub0ILsbU/091L7adBeZI87pkfx72HhFQRUOcVprgPAEKKTbEvUQKAQ4rZ6GOIU5Tz/fKf1sXLhiTEAgpGpaTyyTP04vpgP5iY4kcXQHpRsPxg1BQ+93S3KqF2XAdXvrA4eZfAHmGhsAOePdnJQZVf8c4exsgkIGEyM9Wgi2ZWlq7oY0tFJLf+Kq7y23QuC6isIqBBIDN/TtmHRpiWNY4zwmGhzSxBdA6zMVy9PblrU71w1xVBS4KKwUqbWbP06pA7V04sp8kGKz5OmN9Z+rdTQJ2v41SSU71kT6XSFFOQ==
+    mivanov:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLY+5Yc3MMOmxVGrBmvfMX9bwK98RdgW+9E/rj56rh1w5cuIy5qN0xsuU4634EcSLRUjGXBcutDXPEXV1s7BZfeZjXJri37RICLsKfvPZcyiEqtwTbGYkcDDOHH0nmZdfngi0r/qAc5o5k3KA7Eh4CJW+GgqPoShngCKo9YKqbWFUkrGpX7wIUMlqwyuVKsybxD6EU+CB3RAeASG4E0rRq7VYQaTj/+PQq8VrWGUs9QHW8wX+OakDDCI7Or4Ll5q/uPCopaU9r7yz+uEYA1L8P2wEJ4XG9V6dxUMvzrFLBE+wDrHHXcEZMWGbmrPHUy5Yt8UCFPgtYfOl2BvHHHUSp
diff --git a/openssh/server/team/services_qa.yml b/openssh/server/team/services_qa.yml
new file mode 100644
index 0000000..ca75b5a
--- /dev/null
+++ b/openssh/server/team/services_qa.yml
@@ -0,0 +1,35 @@
+parameters:
+  linux:
+    system:
+      user:
+        npliashechnikov:
+          enabled: true
+          name: npliashechnikov
+          sudo: true
+          full_name: Nikolay Pliashechnykov
+          home: /home/npliashechnikov
+        mchernik:
+          enabled: true
+          name: mchernik
+          sudo: true
+          full_name: Mikhail Chernik
+          home: /home/mchernik
+  openssh:
+    server:
+      enabled: true
+      user:
+        npliashechnikov:
+          enabled: true
+          public_keys:
+          - ${public_keys:npliashechnikov}
+          user: ${linux:system:user:npliashechnikov}
+        mchernik:
+          enabled: true
+          public_keys:
+          - ${public_keys:mchernik}
+          user: ${linux:system:user:mchernik}
+  public_keys:
+    npliashechnikov:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAxy9ZNE+36U1W3vPxzMx++AujS8Ay9ZgJrfaa6YsWl1FeN87VuGucslHjLqFfiIYJLQl3m7tSLiAujQ/izBKDbfA5hd5z7JaCRB1LE+CehmCL0UVwsHflAi0tPn1tDrTcVGf/BRH0FsoZJo+KpOwohYGN8BMOpUIAP2SkGrE7cGbPrd9NbRqPW80iyIzsNIqzVKTcsh0CcJcr05V5n3or0GvteDMxl+mjAi6hpfx06a/bEfPLV10Ftl4+nIkbXr0KWA68uy7XmTlH+qgVUCMGwRP4mFaU63+uX45WboLKQ0aacPX833qvZJTIPe2FhAygoVoBwgOKBzrbnicBa9U+AQ== dkth1p3@lxf01p581
+    mchernik:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCiYzcWNIP1K3DnSfztIZdMTl6zSr133eixsHDWWqI71Fj5UOny4kMH2P/qYk0WHhm7P9kwBNDgmJBY/eO5jb00D2w9BGHyvsOnkpAgzw5neL4ivRT7qLWkRdbcLo8AAFQN7VW+bgMb8gFfYWfttHyfkbJOQlU2xmi8fvhQ+2IM/12S0f0lP2uIYgVn8g9f+1OmtXKOWi/cKx0+6NYsuFjM2oVRlBhwlhPD2mI00rSL6zYjz/8GapPPkylQnds09NueNmrScjsPmJl6lPzU8maxHABZ/KctIZW/0ucMolv/3Ybm5FJIsj6YGUdz7AWzdE9o4tSfugFR3P7Ng/scxXpZ migel@mungo
diff --git a/openssh/server/team/stacklight.yml b/openssh/server/team/stacklight.yml
index 7dd7b62..90799da 100644
--- a/openssh/server/team/stacklight.yml
+++ b/openssh/server/team/stacklight.yml
@@ -9,13 +9,6 @@
           full_name: Ales Komarek
           home: /home/newt
           email: mail@newt.cz
-        elemoine:
-          enabled: true
-          name: elemoine
-          sudo: true
-          full_name: Eric Lemoine
-          home: /home/elemoine
-          email: elemoine@mirantis.com
         gthouvenin:
           enabled: true
           name: gthouvenin
@@ -44,6 +37,34 @@
           full_name: Patrick Petit 
           home: /home/ppetit
           email: ppetit@mirantis.com
+        obourdon:
+          enabled: true
+          name: obourdon
+          sudo: true
+          full_name: Olivier Bourdon
+          home: /home/obourdon
+          email: obourdon@mirantis.com
+        dkalashnik:
+          enabled: true
+          name: dkalashnik
+          sudo: true
+          full_name: Dmitry Kalashnik
+          home: /home/dkalashnik
+          email: dkalashnik@mirantis.com
+        rpromyshlennikov:
+          enabled: true
+          name: rpromyshlennikov
+          sudo: true
+          full_name: Rodion Promyshlennikov
+          home: /home/rpromyshlennikov
+          email: rpromyshlennikov@mirantis.com
+        vgusev:
+          enabled: true
+          name: vgusev
+          sudo: true
+          full_name: Vitaly Gusev
+          home: /home/vgusev
+          email: vgusev@mirantis.com
   openssh:
     client:
       enabled: true
@@ -55,11 +76,6 @@
           public_keys:
           - ${public_keys:newt}
           user: ${linux:system:user:newt}
-        elemoine:
-          enable: true
-          public_keys:
-          - ${public_keys:elemoine}
-          user: ${linux:system:user:elemoine}
         gthouvenin:
           enabled: true
           public_keys:
@@ -80,11 +96,29 @@
           public_keys:
           - ${public_keys:ppetit}
           user: ${linux:system:user:ppetit}
+        obourdon:
+          enable: true
+          public_keys:
+          - ${public_keys:obourdon}
+          user: ${linux:system:user:obourdon}
+        dkalashnik:
+          enable: true
+          public_keys:
+          - ${public_keys:dkalashnik}
+          user: ${linux:system:user:dkalashnik}
+        rpromyshlennikov:
+          enable: true
+          public_keys:
+          - ${public_keys:rpromyshlennikov}
+          user: ${linux:system:user:rpromyshlennikov}
+        vgusev:
+          enable: true
+          public_keys:
+          - ${public_keys:vgusev}
+          user: ${linux:system:user:vgusev}
   public_keys:
     newt:
       key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3odU+3V2uDA2ptAFL9hrJRPNEEdAyztWOZFQ5Oyd9oerTGOU3p4xmrgWWjfKFKbYGhiiIUcYAol5PkTfKukGEkkjCHYA1t023soCaaAj85wCZCnw2zQNAziwxTYmAzTqgxiSvtZNMMrtJvFHRIRDzJ3M1lV0prWNWkMM1/3FAd4W49y6VT3fkMCo8uqG7CfGdgR2DgBCxf9KaNPfW5eDEPOgmE5lK8tVSEI6T+Cg7hbcTf4lFYnlFBnlQgp/0JstsM4Vbwb4B34LOpOsf2S8rrWk2xQMjwaMHXkc2s/E8iW3F5nVFuyEXYISFQIiAHw8dzC6CHgLcyHUVWwznKawZ newt@newt-dev1
-    elemoine:
-      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGN7U3NfIU4uWbj8frsH2wz9FeXS/1XxmpQAS9eqgfMLy7ptOeFHFAIXHC0RSxbcZuQ/+C3IuNHCKBDxFx8ozBFACh6qwWQjfkOZjwYMdyOyz+hkNnTagxQmLOtbz0G5Dm01AfiNeNpiSeqlinMltC7M/Ge/xnPseQiJgVhe47Ybwh+jtJPfbJjO0tQYPC/cXJGEUJjrooEdtN8daDVBR+YVfgowXzC25LTSs5oUUtUUoRCVqF6CzzHgiGxlKCG7fZ9rc2raSldDcOZAR75NHdTOluMsXatm7UkRgZ3kcEEgjs7MaZFHb4z94pz0qGnwsA1WcErMFC7EbYpO8p3gLH elemoine@elemoine
     gthouvenin:
       key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/5rr0LPVsChG0hzpa39JNwX1JdDH/WJL1sFjAG05Y9XDRAri5CYRGWwDdxyN2MA2+ULVojzV5QeV541fnIU6gSpc6Yytm6Ug8DjQ3TwNUY+92GQv5tZj9i/yB8aGpujleVXMDPT5yPDwOnc/q4f/fQWgrXipatkj+lNqL5Z7Ifai0BgmZS1/31LGkGmC1rne6UwszPz6dkswfu6urfKNuQXilcXvYqORlV3U0XD2nLDjNivGVbIArkYGVsgLCGM57cCCF1g1q7QZCNFPzxr+uxMvY2fGgS9ysMkRTr29LtwKMOl8H3cof5alLCIWukpv5qs50NlVEkGu1zKsa9jUj guillaume@Lenovo-PC
     spasquier:
@@ -93,3 +127,11 @@
       key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDUfVxx6qi4fay4znw8M6yLJJcRr3pdvPPihTAszioFJP9V/GBbqfkofTfeKdpdvJ4j25p40boiDt43Ek7LfcRmKMP9+2SEfk9W7ec/umM8Mer+h4ocnShVQm69weELVUfr9q4G+qWf14ANc9D097bclqQ6FP/cjy8HodVPgQ+i1lpMjwP6xvAAERJJH353lCFsxkh2N8aOi9YcP9M2lQeKWM+eYFsdcmTFAPHbgPq0K4ma6/YXw5UibEBClYu1u4OJTFZSI3z8kERb2cU0aFGYAduiynDMBKM7y7YAoksgBOVprq0huEMFUqJ3vsrZbPn55GIpzmBga+EGnNbSCadt swann@scroiset
     ppetit:
       key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCUGCb+mGidT4FRa4rJxoYx39NX2vCjRw+CmCQJW/Uf6xc0NNp5WRWJ0hnyIMRVVfehvfjdXPo4bO4cXIwmo06C1Wx+DMyvjI9NvuHtt52p3QTsh+PYZe5t4hFuGh7veWQw3LuLtDLVlVS633FQMgT/BXDaBc65yfN9CuV6lHqZ6KPKoGAi3ADlcQFqhFttO+GsVkxd6uGtelnbYXsDMwylCIKop0C/obu6wG85d/8Q2/Zts5CvUcCiCNfZtl8otgNMrpfnuhC0xAsmgwDxqK2kshxUujclyFfO7ixl+E9Plc7kUJvodNbzOcAmY3YpuHVoJQkHx/Ou81/q+JOVtFxz ppetit@baobab 
+    obourdon:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDOd0PnoQhjjo/UrmCotaGZxXfpxLoMmuZ+XjKqAkEb9kE+aE0+k8t2EUs8PIctEgIcIC9vmovqOzIt5uNLV5MyN4R+pdIBKyWEQ5fQPaFhn/uZKf7AxLYhTVVW1wM+cDzrpWTyNQ0w59JBfNPZ/BDMtdpch9gTP24pwJ8yUDHHMSt1FnVqa7+Czw8jig4/oM05Mob5DQKlWOdtdUP3XYHSGJuHY4tHmc5sPvzIqs5r47uj5VD4gaCUqYeRS2C1YJcisN880qIqUHuCK0k9gQP+0DKJPVPmPPCuwebBzUUfjhKcbqiikKxPS0p4DWiprmeF8xjvmVWX+V8lP/v0hXiVgMc3wMoXJklH+XM7U5y5uzN8MF4YqAi4M/uSK5UF+TPn5dtu9s+joQmqt5XXaV4iFQe5kcdIYEMNJUGxiwMzByhvqWgC1reYSD8FquqLTH/5ITvFFmaTyQbBJMnXAE+QxdTXMfhTnfI/pbbhAUmfr5w8Z34lZG5UDnUy/rR+LlvJS76MqCr3nemZTHqhUYIrIJA8f9Xa8o9UJTy2QICdj2NidW1UzHCPybc/nH7qc6TjZJALLdhzK2QDbO6seJLOXuVHwSxjOx2Jdv5HImpFSeEfiGRQqc8bT+NGZI5V+cW+FuztU8i46VaSPXFM8t+57Ut/MdndAVYSPqgc7E3u3w== obourdon@mirantis.com
+    dkalashnik:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAyz5ovMK/rRxlhiy7x4dVwFkUqN/hhdVIpsQRQoGgTOjVhH6Y+eTE3si0RRq/HKZMwkcClJIqzMgjoajT5eQQphQrAAn2pwuCyZj0mXJJ1RSXQm+nSnhoqyB1r7Nl3keopgxrDlBLWyvyS3dJM9RJy4TimIwhuSA3qdhmfeqRm5M=
+    rpromyshlennikov:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC3dCFNCYVxHQQD+/X1JJ9auAzpj15AkEl6yO4lJ1XL43ljxJbzWXXl3RN9vAjiBE1tvxEfuPEIxF7kO2sc1xPKtkw40RIwXrDIGfjlVCaBLtnxCPnCQX349UMSJl/AXpkHqKGVeAW+AO4zbeI8XnS9aDNMuX6ncgrLRMxWCxETL3J/IIE1LZ5v0QvyQBHuJc5jbyODVb4onff296SbjzYm96elJZcRFo4FzFaIcKtis+Sm4+6OAGCNDIXxfB9e5TK579x+L+ci/W1k83Fcz6NpQU/OM1R1CZVMap/Xet424aRMFPmA8sTF4hdYvWd6adBihco2isaW51b1Gkc+K9N9wELiEBMpdKQtqkPOvm98UhoRk7Wp+8+zSamj1uEs/7m6VCGFebq8V3xqTexWH2dCUznxZ5+KS6WLBh+3f4P6wG8VuWfgFjIUf7jjYKjidBXfSXFDxRkhf/LV8V0jLv+Ma1mjKBUX+rk7IFxm0X/PkjqNhVFlg3rH4Wre0+9WdsTCyzWS0HEaTxIKdPtwwULLEiwClO1LLebdlVjx9yhen0czXxMAHONbZeTvxN8ULfei+b7c07oYm16T8T9JAdiWn5nGxiT8TAUrCPBJMpbE4xQJLztYhAbMpfhFSdkKfTotFxTK9AKpTg4TZFY0NYOktFtV2R9ZnzP7hHZDSIg2Bw== rpromyshlennikov@mirantis.com
+    vgusev:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCrCyaZjs8hiwx38LfpeQ2z9n9ptwQ7gFrhq2z5sK9q/LQMCubbnp5xhyF0SMY1jmQUewBOKXhnq3QSX+DmtNsnhitnZBw2BE5PBXllCBWMMiWULfAYvB0of728Q3EEjrtyfHkt7o2E+CvreVJcVI4kBwjKh5WpVBZ8mmkW/sexLGMuYu0bUWjCddu6ZlhUa+y14VZKOKp44auemza1VL/UzqOVZkBAfR2gPV2pBG3Im+SlnOlDRxKPEXQbsn3u/sNeZq0wSY++khY86AU7jAKfL2NiNsoA7CyB0jTEKwYO3vOWOhECifZuHwY/TNWyRFWM2ImW3mT9aO7nE4w4jXXJ vgusev@vgusev
diff --git a/openssh/server/team/tcpcloud.yml b/openssh/server/team/tcpcloud.yml
index 85b20f5..1d02e14 100644
--- a/openssh/server/team/tcpcloud.yml
+++ b/openssh/server/team/tcpcloud.yml
@@ -68,18 +68,25 @@
           sudo: true
           full_name: Ondrej Smola
           home: /home/osmola
-        jkonecny:
-          enabled: true
-          name: jkonecny
-          sudo: true
-          full_name: Jiri Konecny
-          home: /home/jkonecny
         pcizinsky:
           enabled: true
           name: pcizinsky
           sudo: true
           full_name: Pavel Cizinsky
           home: /home/pcizinsky
+        pjediny:
+          enabled: true
+          name: pjediny
+          sudo: true
+          full_name: Petr Jediny
+          home: /home/pjediny
+        jjosef:
+          enabled: true
+          name: jjosef
+          sudo: true
+          full_name: Jakub Josef
+          home: /home/jjosef
+          email: jakub.josef@gmail.com
         pmichalec:
           enabled: true
           name: pmichalec
@@ -152,6 +159,11 @@
           public_keys:
           - ${public_keys:filip}
           user: ${linux:system:user:filip}
+        jjosef:
+          enabled: true
+          public_keys:
+          - ${public_keys:jjosef}
+          user: ${linux:system:user:jjosef}
         vzach:
           enabled: true
           public_keys:
@@ -162,16 +174,16 @@
           public_keys:
           - ${public_keys:osmola}
           user: ${linux:system:user:osmola}
-        jkonecny:
-          enabled: true
-          public_keys:
-          - ${public_keys:jkonecny}
-          user: ${linux:system:user:jkonecny}
         pcizinsky:
           enabled: true
           public_keys:
           - ${public_keys:pcizinsky}
           user: ${linux:system:user:pcizinsky}
+        pjediny:
+          enabled: true
+          public_keys:
+          - ${public_keys:pjediny}
+          user: ${linux:system:user:pjediny}
         pmichalec:
           enabled: true
           public_keys:
@@ -213,10 +225,12 @@
       key: AAAAB3NzaC1yc2EAAAABJQAAAQEAn4MJUkXbiZPPEcdKijB4MqnjPGk80x5W+8XsMvZuUqElmuLgB30kdCnSCBgipYPor3m8wakdJTTwiY6P50yhtp/tD2b4t1TC1djPwiNS/6JwjZawj30bS5ZrVKeTHtOq6E0tf927svXgEE21/ADgWpMoDeQ/pKlbt0m/U8YGBCmJ7cBa8ggGHhvJIwCNhpELn02vKV8Qfx44rk+DoxLBwQUHQ8PsEwtoSCLMIulpLflptak1pgvN6ggA5p15i36OyJkobI1yR9YEgtb+8yQqofu2DZ+v+9Qhbb+C0446RnyGzfvk/DreCeI4rJh5/6QZjwv3XfYDER5LbNCnoOQAsQ== v.zach@tcpcloud.eu
     osmola:
       key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDGcF8AI/8hOeKlda4vniFVBbD3wOK4D2+/z+pB7kK0JyxfVC3XccYbpqQioWjt96JwDX8dSio07OUAFqOWQH2cTp6wjqNmpIaAODo44kQgKDXrjEq61fYW+L6JYZHxsFUPLvlNlwQwND2F5HU8oWbsneGu+Psb/COQebcGDdT1v/f2G9r5br2O43P/XPx8+YGKd+OiHPIN4Fk8fZzCGX7oJ7GGGr8YTL/Y8ULF3WiTXbQEWusU52Sf7/Is0A6BQOH+OuBGrVCT+j2XI9QBMyVSYtaKCnRDlEGessnGIGRGrNza/xYivWBw8IsVziDC8x7zZByAwmctWoWED6wWs4YU7SqoonEaYEog32J6Uw9tGtTgvkRC1mpMtgR2eenjNax8Fpoc6uTb/l0gevaRE6IqNMS0FBIIbkCYcoxfj7zIsYms/9IhsXGk1lW5ZrouCFICGEVa7zJ2F+3DvyQDCSuqsk/bfUQZEFw1FdAYIsZYQR+LIOSVQplapGVyqhlbkeUEVdILzgdMAfkPa80ZnGvTO729G/8uP78k1QhZUHAypkeWQ/aJfOKrxXyAxtMZiuyK31zf4OZdKSDS9bAWlmyKkohp7cEjLU0ex4AYDS231Y6JywL+RnucMJ4gFqSfSYfkM6+23gFbYfP7NcEKrkCaim/9RMU1RsunBk8As2K5gw== ondrej.smola@tcpcloud.eu
-    jkonecny:
-      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDIYO4/Nwrs5PJTPJabVOVWW47RvErdCG7U3Gabi8xffdA5uN1YTZbiqHt4SNPRmto60+YX35YjFH3giJotf+q5Ct5GN5m90VVRRtppAK+TAHtMgisIa6j5re6egHoi++9L1NwwTLDr/lzD4Gf7MBtU+q3scJJFmrTpLKUqC2ptL8wnCMlXbnjF1zfHqFbaMxXss7ZU/puHlY7Oc6pPzf+30XTQaq+0ZbshEJMDD0iGH3ijk7V2CCnpShZpQYF8FaLhSRkLzqn4xwrcK1dtENPL9qFBME+XYeC5vvBEMU7MBgs4jLX2KDyx/ZFbk+i79pd37hxNPs7Aj105ppVAaiqWsUgZxdfbC3GaW/U0jqJCDtlftnq1FLCRfO8O2sIJsfA78qWOP5ylD+dnGvYzcexQFpfgu49ZqoJYIt0EgSElH27MHF+hmwE6MHHKyBhELn3iN2uY6IWZTEVG7JROuDPOD6zAAaEw90M2xs1O4kUusArqNnL+AyYNlKGvkMy6ztf2a7+YH9u8zpZCMJUBq3gPTGnFGAeiynoaoSxeN83VYv64durJ439SmRZGMQMHJh3/H0TIAJPO4VwzPwhnn+fg/zaT93Ofg/BNZ4EG+panVCdtNa+sLvZTy01pfwtgX2bDrhpPTiotTea9/8PcEi+DM3CVeIOOZigOEFk+oAo5sw== jiri.konecny@tcpcloud.eu
     pcizinsky:
       key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCt9HA2bUwCVGGdUjyFzdPFp0j2z9XanLW9gHZ3BhB6Wc4ficU6zmbqYxrHUvdmUrRJbLMEAo9JDlzAIw4CPGhRkD3d7HfnmlEYcEeizLnnC+CmKo3+mrwkQIzWIz6PJOh1kvp5uaNp4ztjRGXXmPzcR0nk4jRD89gLHvH9EYStxZI6nsi3mmWR/LhgIhijb8p63duhE4HuK/RRRjeDQaUsbTG9TMEskY5ZI3p/QM55wlml9F8QJrtwxpaIPI5Fl8lflq+4YcoqgDIBFc6nwubIuiNY4gPJ8s1SQfsfxHSOJpFPZDwi76dxUpthtJrU46fqRvXPzTKoS29WZ5pSAY6p pavel.cizinsky@tcpcloud.eu
+    jjosef:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDkK55PVyvnhW2XiIyDUTWOaW1frsd7g9t8SLRmjtEjKqJOBaRk48bSUfcV2twGcSOq3E2dUikh3URobYIZ6WBEiWrl1e7MYCJJAE+8qzVoskk01mC6tp9HGbsSRKrZTgpjzReM+kN6jffi/P1rSqgeg4U0O99N2aWqdfc7UJPFM09z9nqfB1Gj4HUnBkC1X+di4U3S6W8q62JLgxuK2MAry3xSnPztFVH5OXXbBltdVIxshOHj9i8wyof9iFHGdjFNvB+c5I3RJ2HRmmmHm3zey9iHU7PNIppXKglUFZ0EKIB4LsDjL6xrEjo2A5tfCaVZLNJgP95tdbGEcYQuDv3N jakub.josef@gmail.com
+    pjediny:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAgEAgPX2oPwcmBMjf46UC+1vUBnKn9iBG88VD7lNiMN2UGBNihfCfSt4vOSNcVotyCSTrgm1dzHWN3nDt/fYiWvEimVE8VrawU9nJQ48o+M546SMCSYL9jqm+j+oSTd9CP7TeMgRw7hob+/vXREJVmol9cynsQei7HoFeo6iw7ZYMqgI1qOtHwN5Xep/7XZbQ0znweQY4hvywl47dK1GxnoQQUi1v30MzKRVIasf3cCMVr3qJ3ECxyQ2+Po/899jYLDdeJvJeG6dJQf1aDEDSHkoEjVup4jl5xu8y3jAYxOfKwMPe+Lb6lF3zRCB9QRZN71cxLVm+w7LfLtgLfsKv3xPeNpvvOvEQOdFg5jx9Z8w1KRkU2Zkc4fRTcWis89/9va3QL7W1pini3fM+WrpFatc02i7KjoJApeNQt0pwFl33DW+Zz8bQQZT7PT7LWNZjuvB4YmZYA6t9hj5rzUdUN2IyD2mNvPeNykdCLuFh7N7A67tpFSh48UHGld2ckdNmPQR8Ev50Fxu9jj13Cs4l3VMxzOF5I6VOS7g5vEKcCpIyDTtjSk4fGZhyeea5l8unCQzMw9UjkZjgy4nTZvxeqdRNnXSMrb0SzNuqbSM1J67GAUPxfxjb5HSmCYK/KSK3RXHrhwrW+t6B5x72KCCmYYJfUwofm6GIPEYGDxPL/VWGKM= pjediny key
     pmichalec:
       key: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGwsfObHWHqBv6UQBjvm0nkgnAGc5MZPuQXJ3ln4sM1P pmichalec@dontpanic
     jbroulik:
diff --git a/rabbitmq/server/vhost/monitoring.yml b/rabbitmq/server/vhost/monitoring.yml
index 1f5d61a..af272b9 100644
--- a/rabbitmq/server/vhost/monitoring.yml
+++ b/rabbitmq/server/vhost/monitoring.yml
@@ -5,4 +5,4 @@
         '/monitor':
           enabled: true
           user: monitor
-          password: ${_param:rabbitmq_graphite_password}
+          password: ${_param:rabbitmq_monitor_password}
diff --git a/reclass/storage/system/infra_proxy_cluster.yml b/reclass/storage/system/infra_proxy_cluster.yml
new file mode 100644
index 0000000..f7c7932
--- /dev/null
+++ b/reclass/storage/system/infra_proxy_cluster.yml
@@ -0,0 +1,29 @@
+parameters:
+  _param:
+    infra_proxy_node01_hostname: prx01
+    infra_proxy_node02_hostname: prx02
+  reclass:
+    storage:
+      node:
+        infra_proxy_node01:
+          name: ${_param:infra_proxy_node01_hostname}
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.openstack.proxy
+          - cluster.${_param:cluster_name}.stacklight.proxy
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:infra_proxy_node01_address}
+            keepalived_vip_priority: 102
+        infra_proxy_node02:
+          name: ${_param:infra_proxy_node02_hostname}
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.openstack.proxy
+          - cluster.${_param:cluster_name}.stacklight.proxy
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:infra_proxy_node02_address}
+            keepalived_vip_priority: 101
diff --git a/reclass/storage/system/infra_proxy_single.yml b/reclass/storage/system/infra_proxy_single.yml
new file mode 100644
index 0000000..a245e8c
--- /dev/null
+++ b/reclass/storage/system/infra_proxy_single.yml
@@ -0,0 +1,16 @@
+parameters:
+  _param:
+    openstack_proxy_node01_hostname: prx01
+  reclass:
+    storage:
+      node:
+        openstack_proxy_node01:
+          name: ${_param:openstack_proxy_node01_hostname}
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.openstack.proxy
+          - cluster.${_param:cluster_name}.stacklight.proxy
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: trusty
+            single_address: ${_param:openstack_proxy_node01_address}
diff --git a/reclass/storage/system/stacklight_monitor_cluster.yml b/reclass/storage/system/stacklight_monitor_cluster.yml
index 9df1a69..f95cf81 100644
--- a/reclass/storage/system/stacklight_monitor_cluster.yml
+++ b/reclass/storage/system/stacklight_monitor_cluster.yml
@@ -12,6 +12,8 @@
           classes:
           - cluster.${_param:cluster_name}.stacklight.monitor
           params:
+            redis_cluster_role: 'master'
+            rabbitmq_cluster_role: 'master'
             salt_master_host: ${_param:reclass_config_master}
             linux_system_codename: xenial
             single_address: ${_param:stacklight_monitor_node01_address}
@@ -22,6 +24,8 @@
           classes:
           - cluster.${_param:cluster_name}.stacklight.monitor
           params:
+            redis_cluster_role: 'slave'
+            rabbitmq_cluster_role: 'slave'
             salt_master_host: ${_param:reclass_config_master}
             linux_system_codename: xenial
             single_address: ${_param:stacklight_monitor_node02_address}
@@ -32,6 +36,8 @@
           classes:
           - cluster.${_param:cluster_name}.stacklight.monitor
           params:
+            redis_cluster_role: 'slave'
+            rabbitmq_cluster_role: 'slave'
             salt_master_host: ${_param:reclass_config_master}
             linux_system_codename: xenial
             single_address: ${_param:stacklight_monitor_node03_address}
diff --git a/reclass/storage/system/stacklight_server_cluster.yml b/reclass/storage/system/stacklight_server_cluster.yml
index 9d40ea9..e6bccec 100644
--- a/reclass/storage/system/stacklight_server_cluster.yml
+++ b/reclass/storage/system/stacklight_server_cluster.yml
@@ -11,12 +11,12 @@
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.stacklight.server
-          - system.influxdb.server.single
-          - system.influxdb.database.stacklight
           - system.elasticsearch.client.single
           - system.grafana.client.single
           - system.kibana.client.single
           params:
+            redis_cluster_role: 'master'
+            rabbitmq_cluster_role: 'master'
             salt_master_host: ${_param:reclass_config_master}
             linux_system_codename: xenial
             single_address: ${_param:stacklight_monitor_node01_address}
@@ -27,6 +27,8 @@
           classes:
           - cluster.${_param:cluster_name}.stacklight.server
           params:
+            redis_cluster_role: 'slave'
+            rabbitmq_cluster_role: 'slave'
             salt_master_host: ${_param:reclass_config_master}
             linux_system_codename: xenial
             single_address: ${_param:stacklight_monitor_node02_address}
@@ -37,6 +39,8 @@
           classes:
           - cluster.${_param:cluster_name}.stacklight.server
           params:
+            redis_cluster_role: 'slave'
+            rabbitmq_cluster_role: 'slave'
             salt_master_host: ${_param:reclass_config_master}
             linux_system_codename: xenial
             single_address: ${_param:stacklight_monitor_node03_address}
diff --git a/reclass/storage/system/stacklight_server_single.yml b/reclass/storage/system/stacklight_server_single.yml
index 6ef1050..2b397f6 100644
--- a/reclass/storage/system/stacklight_server_single.yml
+++ b/reclass/storage/system/stacklight_server_single.yml
@@ -11,8 +11,6 @@
           - cluster.${_param:cluster_name}.stacklight.server
           - system.elasticsearch.client.single
           - system.grafana.client.single
-          - system.influxdb.server.single
-          - system.influxdb.database.stacklight
           - system.kibana.client.single
           params:
             salt_master_host: ${_param:reclass_config_master}
diff --git a/salt/control/cluster/infra_proxy_cluster.yml b/salt/control/cluster/infra_proxy_cluster.yml
new file mode 100644
index 0000000..c82a947
--- /dev/null
+++ b/salt/control/cluster/infra_proxy_cluster.yml
@@ -0,0 +1,22 @@
+parameters:
+  salt:
+    control:
+      size:
+        infra.proxy:
+          cpu: 32
+          ram: 65536
+          disk_profile: small
+          net_profile: default
+      cluster:
+        internal:
+          domain: ${_param:cluster_domain}
+          engine: virt
+          node:
+            prx01:
+              provider: kvm01.${_param:cluster_domain}
+              image: ${_param:salt_control_trusty_image}
+              size: infra.proxy
+            prx02:
+              provider: kvm02.${_param:cluster_domain}
+              image: ${_param:salt_control_trusty_image}
+              size: infra.proxy
diff --git a/salt/control/cluster/infra_proxy_single.yml b/salt/control/cluster/infra_proxy_single.yml
new file mode 100644
index 0000000..0cfb741
--- /dev/null
+++ b/salt/control/cluster/infra_proxy_single.yml
@@ -0,0 +1,18 @@
+parameters:
+  salt:
+    control:
+      size:
+        infra.proxy:
+          cpu: 32
+          ram: 65536
+          disk_profile: small
+          net_profile: default
+      cluster:
+        internal:
+          domain: ${_param:cluster_domain}
+          engine: virt
+          node:
+            prx01:
+              provider: kvm01.${_param:cluster_domain}
+              image: ${_param:salt_control_trusty_image}
+              size: infra.proxy
diff --git a/salt/master/formula/git/ccp.yml b/salt/master/formula/git/ccp.yml
new file mode 100644
index 0000000..c8f1c65
--- /dev/null
+++ b/salt/master/formula/git/ccp.yml
@@ -0,0 +1,10 @@
+parameters:
+  salt:
+    master:
+      environment:
+        dev:
+          formula:
+            ccp:
+              source: git
+              address: '${_param:salt_master_environment_repository}/salt-formula-ccp.git'
+              revision: ${_param:salt_master_environment_revision}
diff --git a/salt/master/formula/git/kubernetes.yml b/salt/master/formula/git/kubernetes.yml
index c827caf..fe8ad5d 100644
--- a/salt/master/formula/git/kubernetes.yml
+++ b/salt/master/formula/git/kubernetes.yml
@@ -6,17 +6,17 @@
           formula:
             kubernetes:
               source: git
-              address: 'https://github.com/openstack/salt-formula-kubernetes.git'
+              address: '${_param:salt_master_environment_repository}/salt-formula-kubernetes.git'
               revision: ${_param:salt_master_environment_revision}
             etcd:
               source: git
-              address: 'https://github.com/tcpcloud/salt-formula-etcd.git'
+              address: '${_param:salt_master_environment_repository}/salt-formula-etcd.git'
               revision: ${_param:salt_master_environment_revision}
             bird:
               source: git
-              address: 'https://github.com/tcpcloud/salt-formula-bird.git'
+              address: '${_param:salt_master_environment_repository}/salt-formula-bird.git'
               revision: ${_param:salt_master_environment_revision}
             docker:
               source: git
-              address: 'https://github.com/tcpcloud/salt-formula-docker.git'
+              address: '${_param:salt_master_environment_repository}/salt-formula-docker.git'
               revision: ${_param:salt_master_environment_revision}
\ No newline at end of file
diff --git a/salt/master/formula/git/openstack.yml b/salt/master/formula/git/openstack.yml
index c6cf269..78b7d91 100644
--- a/salt/master/formula/git/openstack.yml
+++ b/salt/master/formula/git/openstack.yml
@@ -6,19 +6,23 @@
           formula:
             aodh:
               source: git
-              address: 'https://github.com/tcpcloud/salt-formula-aodh.git'
+              address: '${_param:salt_master_environment_repository}/salt-formula-aodh.git'
               revision: ${_param:salt_master_environment_revision}
             billometer:
               source: git
-              address: 'https://github.com/tcpcloud/salt-formula-billometer.git'
+              address: '${_param:salt_master_environment_repository}/salt-formula-billometer.git'
               revision: ${_param:salt_master_environment_revision}
             ceilometer:
               source: git
-              address: 'https://github.com/openstack/salt-formula-ceilometer.git'
+              address: '${_param:salt_master_environment_repository}/salt-formula-ceilometer.git'
+              revision: ${_param:salt_master_environment_revision}
+            ceph:
+              source: git
+              address: '${_param:salt_master_environment_repository}/salt-formula-ceph.git'
               revision: ${_param:salt_master_environment_revision}
             cinder:
               source: git
-              address: 'https://github.com/openstack/salt-formula-cinder.git'
+              address: '${_param:salt_master_environment_repository}/salt-formula-cinder.git'
               revision: ${_param:salt_master_environment_revision}
             galera:
               source: git
@@ -26,11 +30,11 @@
               revision: ${_param:salt_master_environment_revision}
             glance:
               source: git
-              address: 'https://github.com/openstack/salt-formula-glance.git'
+              address: '${_param:salt_master_environment_repository}/salt-formula-glance.git'
               revision: ${_param:salt_master_environment_revision}
             glusterfs:
               source: git
-              address: 'https://github.com/tcpcloud/salt-formula-glusterfs.git'
+              address: '${_param:salt_master_environment_repository}/salt-formula-glusterfs.git'
               revision: ${_param:salt_master_environment_revision}
             haproxy:
               source: git
@@ -38,11 +42,11 @@
               revision: ${_param:salt_master_environment_revision}
             heat:
               source: git
-              address: 'https://github.com/openstack/salt-formula-heat.git'
+              address: '${_param:salt_master_environment_repository}/salt-formula-heat.git'
               revision: ${_param:salt_master_environment_revision}
             horizon:
               source: git
-              address: 'https://github.com/openstack/salt-formula-horizon.git'
+              address: '${_param:salt_master_environment_repository}/salt-formula-horizon.git'
               revision: ${_param:salt_master_environment_revision}
             keepalived:
               source: git
@@ -50,7 +54,7 @@
               revision: ${_param:salt_master_environment_revision}
             keystone:
               source: git
-              address: 'https://github.com/openstack/salt-formula-keystone.git'
+              address: '${_param:salt_master_environment_repository}/salt-formula-keystone.git'
               revision: ${_param:salt_master_environment_revision}
             memcached:
               source: git
@@ -70,7 +74,7 @@
               revision: ${_param:salt_master_environment_revision}
             neutron:
               source: git
-              address: 'https://github.com/openstack/salt-formula-neutron.git'
+              address: '${_param:salt_master_environment_repository}/salt-formula-neutron.git'
               revision: ${_param:salt_master_environment_revision}
             nginx:
               source: git
@@ -78,11 +82,11 @@
               revision: ${_param:salt_master_environment_revision}
             nova:
               source: git
-              address: 'https://github.com/openstack/salt-formula-nova.git'
+              address: '${_param:salt_master_environment_repository}/salt-formula-nova.git'
               revision: ${_param:salt_master_environment_revision}
             opencontrail:
               source: git
-              address: 'https://github.com/openstack/salt-formula-opencontrail.git'
+              address: '${_param:salt_master_environment_repository}/salt-formula-opencontrail.git'
               revision: ${_param:salt_master_environment_revision}
             python:
               source: git
@@ -102,5 +106,5 @@
               revision: ${_param:salt_master_environment_revision}
             swift:
               source: git
-              address: 'https://github.com/openstack/salt-formula-swift.git'
+              address: '${_param:salt_master_environment_repository}/salt-formula-swift.git'
               revision: ${_param:salt_master_environment_revision}
diff --git a/salt/master/formula/pkg/ccp.yml b/salt/master/formula/pkg/ccp.yml
new file mode 100644
index 0000000..194beb8
--- /dev/null
+++ b/salt/master/formula/pkg/ccp.yml
@@ -0,0 +1,9 @@
+parameters:
+  salt:
+    master:
+      environment:
+        prd:
+          formula:
+            ccp:
+              source: pkg
+              name: salt-formula-ccp
diff --git a/salt/master/formula/pkg/foundation.yml b/salt/master/formula/pkg/foundation.yml
index 4b2b669..abcc1b0 100644
--- a/salt/master/formula/pkg/foundation.yml
+++ b/salt/master/formula/pkg/foundation.yml
@@ -16,3 +16,7 @@
             jenkins:
               source: pkg
               name: salt-formula-jenkins
+            freeipa:
+              source: pkg
+              name: salt-formula-freeipa
+
diff --git a/salt/master/formula/pkg/openstack.yml b/salt/master/formula/pkg/openstack.yml
index dd8841f..6d9bcab 100644
--- a/salt/master/formula/pkg/openstack.yml
+++ b/salt/master/formula/pkg/openstack.yml
@@ -13,6 +13,9 @@
             ceilometer:
               source: pkg
               name: salt-formula-ceilometer
+            ceph:
+              source: pkg
+              name: salt-formula-ceph
             cinder:
               source: pkg
               name: salt-formula-cinder
diff --git a/salt/master/git.yml b/salt/master/git.yml
index 7b57a26..d9bbd80 100644
--- a/salt/master/git.yml
+++ b/salt/master/git.yml
@@ -4,7 +4,8 @@
 - system.salt.master.formula.git.saltstack
 - system.salt.master.formula.git.stacklight
 - system.salt.master.formula.git.kubernetes
+- system.salt.master.formula.git.ccp
 parameters:
   _param:
-    salt_master_environment_repository: "https://github.com/tcpcloud"
+    salt_master_environment_repository: "https://github.com/salt-formulas"
     salt_master_environment_revision: master
diff --git a/salt/master/pkg.yml b/salt/master/pkg.yml
index baae04c..72325c9 100644
--- a/salt/master/pkg.yml
+++ b/salt/master/pkg.yml
@@ -4,4 +4,5 @@
 - system.salt.master.formula.pkg.saltstack
 - system.salt.master.formula.pkg.stacklight
 - system.salt.master.formula.pkg.kubernetes
+- system.salt.master.formula.pkg.ccp
 - system.linux.system.repo.tcp_salt
diff --git a/salt/minion/cert/k8s_client_certificate.yml b/salt/minion/cert/k8s_client.yml
similarity index 90%
rename from salt/minion/cert/k8s_client_certificate.yml
rename to salt/minion/cert/k8s_client.yml
index 37bf618..06d83c4 100644
--- a/salt/minion/cert/k8s_client_certificate.yml
+++ b/salt/minion/cert/k8s_client.yml
@@ -7,6 +7,7 @@
           authority: ${_param:salt_minion_ca_authority}
           key_file: /etc/kubernetes/ssl/kubelet-client.key
           cert_file: /etc/kubernetes/ssl/kubelet-client.crt
+          ca_file: /etc/kubernetes/ssl/ca-kubernetes.crt
           common_name: kubelet-client
           signing_policy: cert_client
           alternative_names: IP:${_param:cluster_vip_address},IP:${_param:cluster_node01_address},IP:${_param:cluster_node02_address},IP:${_param:cluster_node03_address},IP:${_param:kubernetes_internal_api_address}
\ No newline at end of file
diff --git a/salt/minion/cert/k8s_server.yml b/salt/minion/cert/k8s_server.yml
new file mode 100644
index 0000000..d9b1da6
--- /dev/null
+++ b/salt/minion/cert/k8s_server.yml
@@ -0,0 +1,13 @@
+parameters:
+  salt:
+    minion:
+      cert:
+        k8s_server:
+          host: ${_param:salt_minion_ca_host}
+          authority: ${_param:salt_minion_ca_authority}
+          common_name: kubernetes-server
+          key_file: /srv/salt/env/${_param:salt_master_base_environment}/_certs/kubernetes/kubernetes-server.key
+          cert_file: /srv/salt/env/${_param:salt_master_base_environment}/_certs/kubernetes/kubernetes-server.crt
+          all_file: /srv/salt/env/${_param:salt_master_base_environment}/_certs/kubernetes/kubernetes-server.pem
+          signing_policy: cert_server
+          alternative_names: IP:${_param:cluster_vip_address},IP:${_param:cluster_node01_address},IP:${_param:cluster_node02_address},IP:${_param:cluster_node03_address},IP:${_param:kubernetes_internal_api_address}
diff --git a/salt/minion/cert/k8s_server_certificate.yml b/salt/minion/cert/k8s_server_certificate.yml
deleted file mode 100644
index 835f043..0000000
--- a/salt/minion/cert/k8s_server_certificate.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-parameters:
-  salt:
-    minion:
-      cert:
-        k8s_server:
-          host: ${_param:salt_minion_ca_host}
-          authority: ${_param:salt_minion_ca_authority}
-          common_name: kubernetes-server
-          key_file: /etc/kubernetes/ssl/kubernetes-server.key
-          cert_file: /etc/kubernetes/ssl/kubernetes-server.crt
-          ca_file: /etc/kubernetes/ssl/ca-kubernetes.crt
-          signing_policy: cert_server
-          alternative_names: IP:${_param:cluster_vip_address},IP:${_param:cluster_node01_address},IP:${_param:cluster_node02_address},IP:${_param:cluster_node03_address},IP:${_param:kubernetes_internal_api_address}
\ No newline at end of file
diff --git a/sensu/client/stacklight.yml b/sensu/client/stacklight.yml
new file mode 100644
index 0000000..b41ee77
--- /dev/null
+++ b/sensu/client/stacklight.yml
@@ -0,0 +1,8 @@
+classes:
+- service.sensu.client
+parameters:
+  _param:
+    sensu_message_queue_host: ${_param:stacklight_monitor_address}
+  sensu:
+    client:
+      metric_handlers: []
diff --git a/sensu/server/cluster.yml b/sensu/server/cluster.yml
new file mode 100644
index 0000000..28eb78b
--- /dev/null
+++ b/sensu/server/cluster.yml
@@ -0,0 +1,31 @@
+classes:
+- service.git.client
+- service.redis.server.single
+- service.rabbitmq.server.cluster
+- system.rabbitmq.server.vhost.monitoring
+- service.sensu.server.single
+parameters:
+  _param:
+    rabbitmq_secret_key: secret
+    rabbitmq_admin_password: password
+    rabbitmq_cold_password: password
+    rabbitmq_monitor_password: password
+    sensu_message_queue_host: ${_param:cluster_vip_address}
+  rabbitmq:
+    cluster:
+      name: 'monitoring'
+  redis:
+    server:
+      version: 3.0
+      bind:
+        address: ${_param:single_address}
+    cluster:
+      enabled: True
+      mode: sentinel
+      role: ${_param:redis_cluster_role}
+      quorum: 2
+      master:
+        host: ${_param:cluster_node01_address}
+        port: 6379
+      sentinel:
+        address: ${_param:single_address}