Merge "Set Apache bind port to match haproxy listen in horizon.server.cluster"
diff --git a/ceph/client/container.yml b/ceph/client/container.yml
new file mode 100644
index 0000000..d200a1d
--- /dev/null
+++ b/ceph/client/container.yml
@@ -0,0 +1,5 @@
+classes:
+- service.ceph.client.container
+parameters:
+  _param:
+    ceph_client_prefix_dir: /srv/volumes/ceph
diff --git a/ceph/monitoring/cluster_stats.yml b/ceph/monitoring/cluster_stats.yml
new file mode 100644
index 0000000..8e2138c
--- /dev/null
+++ b/ceph/monitoring/cluster_stats.yml
@@ -0,0 +1,2 @@
+classes:
+- service.ceph.monitoring.cluster_stats
diff --git a/ceph/monitoring/node_stats.yml b/ceph/monitoring/node_stats.yml
new file mode 100644
index 0000000..7e00533
--- /dev/null
+++ b/ceph/monitoring/node_stats.yml
@@ -0,0 +1,2 @@
+classes:
+- service.ceph.monitoring.node_stats
diff --git a/devops_portal/service/janitor_monkey.yml b/devops_portal/service/janitor_monkey.yml
new file mode 100644
index 0000000..73f2e7c
--- /dev/null
+++ b/devops_portal/service/janitor_monkey.yml
@@ -0,0 +1,10 @@
+parameters:
+  devops_portal:
+    config:
+      service:
+        janitormonkey:
+          configure_proxy: true
+          endpoint:
+            address: ${_param:haproxy_janitor_monkey_bind_host}
+            port: ${_param:haproxy_janitor_monkey_bind_port}
+            https: ${_param:haproxy_janitor_monkey_ssl:enabled}
diff --git a/docker/swarm/stack/decapod.yml b/docker/swarm/stack/decapod.yml
new file mode 100644
index 0000000..bd86062
--- /dev/null
+++ b/docker/swarm/stack/decapod.yml
@@ -0,0 +1,65 @@
+parameters:
+  _param:
+    docker_decapod_fe_replicas: 3
+    decapod_version: latest
+    docker_image_admin: docker-prod-local.artifactory.mirantis.com/mirantis/ceph/decapod/admin:${_param:decapod_version}
+    docker_image_db: docker-prod-local.artifactory.mirantis.com/mirantis/ceph/decapod/db:${_param:decapod_version}
+    docker_image_api: docker-prod-local.artifactory.mirantis.com/mirantis/ceph/decapod/api:${_param:decapod_version}
+    docker_image_controller: docker-prod-local.artifactory.mirantis.com/mirantis/ceph/decapod/controller:latest
+    docker_image_frontend: docker-prod-local.artifactory.mirantis.com/mirantis/ceph/decapod/frontend:${_param:decapod_version}
+  docker:
+    client:
+      stack:
+        decapod:
+          service:
+            database:
+              deploy:
+                restart_policy:
+                  condition: any
+              image: ${_param:docker_image_db}
+              volumes:
+                - /srv/volumes/decapod/db:/data/db
+              ports:
+                - 37017:27017
+            api:
+              links:
+                - database
+              deploy:
+                restart_policy:
+                  condition: any
+              image: ${_param:docker_image_api}
+              volumes:
+                - /srv/volumes/decapod/config:/etc/decapod
+            controller:
+              links:
+                - database
+              deploy:
+                restart_policy:
+                  condition: any
+              image: ${_param:docker_image_controller}
+              volumes:
+                - /srv/volumes/decapod/key:/root/.ssh
+                - /srv/volumes/decapod/config:/etc/decapod
+            frontend:
+              links:
+                - api
+              ports:
+                - 19999:80
+                - 20000:443
+              deploy:
+                restart_policy:
+                  condition: any
+              image: ${_param:docker_image_frontend}
+            admin:
+              links:
+                - database
+              ports:
+                - 20001:8000
+                - 19998:8001
+              deploy:
+                restart_policy:
+                  condition: any
+              image: ${_param:docker_image_admin}
+              volumes:
+                - /srv/volumes/decapod/key:/root/.ssh
+                - /srv/volumes/decapod/config:/etc/decapod
diff --git a/docker/swarm/stack/janitor_monkey.yml b/docker/swarm/stack/janitor_monkey.yml
index 2d5f4a7..95095e4 100644
--- a/docker/swarm/stack/janitor_monkey.yml
+++ b/docker/swarm/stack/janitor_monkey.yml
@@ -4,6 +4,24 @@
     docker_image_mongodb: library/mongo:3.4
     docker_mongodb_admin_username: admin
     docker_mongodb_admin_password: password
+    docker_image_janitor_monkey: docker-sandbox.sandbox.mirantis.net/vstoiko/oss/janitor_monkey:6040
+    janitor_monkey_enabled: true
+    janitor_monkey_dryrun_mode: false
+    janitor_monkey_base_url: http://${_param:haproxy_janitor_monkey_bind_host}:${_param:haproxy_janitor_monkey_bind_port}
+    janitor_monkey_mongodb_host: ${_param:haproxy_mongodb_bind_host}
+    janitor_monkey_mongodb_port: ${_param:haproxy_mongodb_bind_port}
+    janitor_monkey_mongodb_db: mcp_cloud
+    janitor_monkey_mongodb_username: janitor
+    janitor_monkey_mongodb_password: password
+    janitor_monkey_elasticsearch: ${_param:haproxy_elasticsearch_bind_host}:${_param:haproxy_elasticsearch_binary_bind_port}
+    janitor_monkey_cloudfire_region: RegionOne
+    janitor_monkey_cis_clustername: ${_param:elasticsearch_cluster_name}
+    janitor_monkey_openstack:
+      project_domain_name: default
+      project_name: admin
+      username: ""
+      password: ""
+      auth_url: ""
   docker:
     client:
       stack:
@@ -11,6 +29,24 @@
           environment:
             MONGO_INITDB_ROOT_USERNAME: ${_param:docker_mongodb_admin_username}
             MONGO_INITDB_ROOT_PASSWORD: ${_param:docker_mongodb_admin_password}
+            simianarmy.recorder.mongodb.host: ${_param:janitor_monkey_mongodb_host}
+            simianarmy.recorder.mongodb.port: ${_param:janitor_monkey_mongodb_port}
+            simianarmy.recorder.mongodb.database: ${_param:janitor_monkey_mongodb_db}
+            simianarmy.recorder.mongodb.user: ${_param:janitor_monkey_mongodb_username}
+            simianarmy.recorder.mongodb.password: ${_param:janitor_monkey_mongodb_password}
+            simianarmy.base.url: ${_param:janitor_monkey_base_url}
+            simianarmy.janitor.enabled: ${_param:janitor_monkey_enabled}
+            simianarmy.janitor.leashed: ${_param:janitor_monkey_dryrun_mode}
+            simianarmy.calendar.isMonkeyTime: true
+            simianarmy.janitor.resources.sdb.domain: ${_param:janitor_monkey_mongodb_db}
+            simianarmy.client.cloudfire.cis.hosts: ${_param:janitor_monkey_elasticsearch}
+            simianarmy.client.cloudfire.region: ${_param:janitor_monkey_cloudfire_region}
+            simianarmy.client.cloudfire.cis.clustername: ${_param:janitor_monkey_cis_clustername}
+            simianarmy.client.cloudfire.identityEndpoint: ${_param:janitor_monkey_openstack:auth_url}
+            simianarmy.client.cloudfire.accountKey: ${_param:janitor_monkey_openstack:username}
+            simianarmy.client.cloudfire.secretKey: ${_param:janitor_monkey_openstack:password}
+            simianarmy.client.cloudfire.domain: ${_param:janitor_monkey_openstack:project_domain_name}
+            simianarmy.client.cloudfire.project: ${_param:janitor_monkey_openstack:project_name}
           service:
             mongodb:
               image: ${_param:docker_image_mongodb}
@@ -21,4 +57,12 @@
               ports:
                 - ${_param:haproxy_mongodb_exposed_port}:${_param:haproxy_mongodb_bind_port}
               volumes:
-                - /srv/volumes/mongodb:/data
+                - /srv/volumes/mongodb:/data/db
+            api:
+              image: ${_param:docker_image_janitor_monkey}
+              deploy:
+                replicas: ${_param:docker_janitor_monkey_replicas}
+                restart_policy:
+                  condition: any
+              ports:
+                - ${_param:haproxy_janitor_monkey_exposed_port}:8080
diff --git a/docker/swarm/stack/monitoring/init.yml b/docker/swarm/stack/monitoring/init.yml
index e5d11e1..97b9ac3 100644
--- a/docker/swarm/stack/monitoring/init.yml
+++ b/docker/swarm/stack/monitoring/init.yml
@@ -3,7 +3,7 @@
 - system.prometheus.pushgateway.container
 - system.prometheus.remote_storage_adapter.container
 - system.prometheus.server.container
-- system.telegraf.agent.remote
+- system.docker.swarm.stack.monitoring.remote_agent
 parameters:
   docker:
     client:
@@ -36,23 +36,6 @@
                 influxdb_db: ${_param:prometheus_influxdb_db}
                 influxdb_username: ${_param:prometheus_influxdb_username}
                 influxdb_password: ${_param:prometheus_influxdb_password}
-            remote_agent:
-              networks:
-                - monitoring
-              deploy:
-                replicas: 1
-                labels:
-                  com.mirantis.monitoring: "remote_agent"
-                restart_policy:
-                  condition: any
-              labels:
-                com.mirantis.monitoring: "remote_agent"
-              image: ${_param:docker_image_remote_agent}
-              ports:
-                - 15014:${telegraf:remote_agent:output:prometheus_client:bind:port}
-              volumes:
-                - ${telegraf:remote_agent:dir:config}:/etc/telegraf
-                - ${telegraf:remote_agent:dir:config_d}:/etc/telegraf/telegraf.d
             alertmanager:
               networks:
                 - monitoring
diff --git a/docker/swarm/stack/monitoring/remote_agent/ceph.yml b/docker/swarm/stack/monitoring/remote_agent/ceph.yml
new file mode 100644
index 0000000..6085eeb
--- /dev/null
+++ b/docker/swarm/stack/monitoring/remote_agent/ceph.yml
@@ -0,0 +1,12 @@
+classes:
+- system.ceph.client.container
+- system.ceph.monitoring.cluster_stats
+parameters:
+  docker:
+    client:
+      stack:
+        monitoring:
+          service:
+            remote_agent:
+              volumes:
+                - ${ceph:client:prefix_dir}/etc/ceph:/etc/ceph
diff --git a/docker/swarm/stack/monitoring/remote_agent/init.yml b/docker/swarm/stack/monitoring/remote_agent/init.yml
new file mode 100644
index 0000000..9e9455e
--- /dev/null
+++ b/docker/swarm/stack/monitoring/remote_agent/init.yml
@@ -0,0 +1,25 @@
+classes:
+- system.telegraf.agent.remote
+parameters:
+  docker:
+    client:
+      stack:
+        monitoring:
+          service:
+            remote_agent:
+              networks:
+                - monitoring
+              deploy:
+                replicas: 1
+                labels:
+                  com.mirantis.monitoring: "remote_agent"
+                restart_policy:
+                  condition: any
+              labels:
+                com.mirantis.monitoring: "remote_agent"
+              image: ${_param:docker_image_remote_agent}
+              ports:
+                - 15014:${telegraf:remote_agent:output:prometheus_client:bind:port}
+              volumes:
+                - ${telegraf:remote_agent:dir:config}:/etc/telegraf
+                - ${telegraf:remote_agent:dir:config_d}:/etc/telegraf/telegraf.d
diff --git a/docker/swarm/stack/postgresql.yml b/docker/swarm/stack/postgresql.yml
index 73435fb..7ae4052 100644
--- a/docker/swarm/stack/postgresql.yml
+++ b/docker/swarm/stack/postgresql.yml
@@ -11,7 +11,6 @@
           environment:
             POSTGRES_USER: ${_param:postgresql_admin_user}
             POSTGRES_PASSWORD: ${_param:postgresql_admin_user_password}
-            SQLALCHEMY_POOL_RECYCLE: 14400
           service:
             db:
               image: ${_param:docker_image_postgresql}
diff --git a/docker/swarm/stack/security_monkey.yml b/docker/swarm/stack/security_monkey.yml
index 167a058..a2249c6 100644
--- a/docker/swarm/stack/security_monkey.yml
+++ b/docker/swarm/stack/security_monkey.yml
@@ -14,6 +14,7 @@
     security_monkey_api_port: ${_param:haproxy_security_monkey_bind_port}
     security_monkey_nginx_port: ${_param:haproxy_security_monkey_bind_port}
     devops_portal_sm_wtf_csrf_enabled: False
+    security_monkey_sync_interval: 15
     security_monkey_openstack:
       os_account_id: mcp_cloud
       os_account_name: mcp_cloud
@@ -49,6 +50,9 @@
             OS_PROJECT_NAME: ${_param:security_monkey_openstack:project_name}
             USER_DOMAIN_NAME: ${_param:security_monkey_openstack:user_domain_name}
             SM_WTF_CSRF_ENABLED: ${_param:devops_portal_sm_wtf_csrf_enabled}
+            SECURITY_MONKEY_SYNC_INTERVAL: ${_param:security_monkey_sync_interval}
+            SQLALCHEMY_DATABASE_URI: postgresql://${_param:secmonkey_db_user}:${_param:secmonkey_db_user_password}@${_param:secmonkey_db_host}:${_param:haproxy_postgresql_bind_port}/${_param:security_monkey_db}
+            SQLALCHEMY_POOL_RECYCLE: 14400
           service:
             api:
               image: ${_param:docker_image_security_monkey_api}
@@ -67,4 +71,4 @@
                 restart_policy:
                   condition: any
               volumes:
-                - /srv/volumes/security_monkey/logs:/var/log/security_monkey/logs
\ No newline at end of file
+                - /srv/volumes/security_monkey/logs:/var/log/security_monkey/logs
diff --git a/elasticsearch/client/index/janitor_monkey.yml b/elasticsearch/client/index/janitor_monkey.yml
new file mode 100644
index 0000000..bef92ae
--- /dev/null
+++ b/elasticsearch/client/index/janitor_monkey.yml
@@ -0,0 +1,15 @@
+parameters:
+  _param:
+    janitor_monkey_cis_openstack_shards: 5
+    janitor_monkey_cis_openstack_replicas: 1
+  elasticsearch:
+    client:
+      index:
+        cis-openstack:
+          enabled: true
+          force_operation: true
+          definition:
+            template: cis-openstack
+            settings:
+              number_of_shards: ${_param:janitor_monkey_cis_openstack_shards}
+              number_of_replicas: ${_param:janitor_monkey_cis_openstack_replicas}
\ No newline at end of file
diff --git a/elasticsearch/client/pushkin/notifications.yml b/elasticsearch/client/index/pushkin.yml
similarity index 100%
rename from elasticsearch/client/pushkin/notifications.yml
rename to elasticsearch/client/index/pushkin.yml
diff --git a/elasticsearch/client/init.yml b/elasticsearch/client/init.yml
new file mode 100644
index 0000000..d0710ca
--- /dev/null
+++ b/elasticsearch/client/init.yml
@@ -0,0 +1,10 @@
+parameters:
+  _param:
+    elasticsearch_client_host: ${_param:haproxy_elasticsearch_bind_host}
+    elasticsearch_client_port: ${_param:haproxy_elasticsearch_http_bind_port}
+  elasticsearch:
+    client:
+      enabled: true
+      server:
+        host: ${_param:elasticsearch_client_host}
+        port: ${_param:elasticsearch_client_port}
\ No newline at end of file
diff --git a/elasticsearch/client/pushkin/init.yml b/elasticsearch/client/pushkin/init.yml
deleted file mode 100644
index 9f37847..0000000
--- a/elasticsearch/client/pushkin/init.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-parameters:
-  _param:
-    pushkin_elasticsearch_host: ${_param:haproxy_elasticsearch_bind_host}
-    pushkin_elasticsearch_port: ${_param:haproxy_elasticsearch_http_bind_port}
-  elasticsearch:
-    client:
-      enabled: true
-      server:
-        host: ${_param:pushkin_elasticsearch_host}
-        port: ${_param:pushkin_elasticsearch_port}
\ No newline at end of file
diff --git a/freeipa/client/dns.yml b/freeipa/client/dns.yml
new file mode 100644
index 0000000..b88174e
--- /dev/null
+++ b/freeipa/client/dns.yml
@@ -0,0 +1,8 @@
+parameters:
+  linux:
+    network:
+      resolv:
+        dns:
+          - ${_param:freeipa_node01_hostname}
+          - ${_param:freeipa_node02_hostname}
+          - ${_param:freeipa_node03_hostname}
diff --git a/freeipa/client/keytab/apache2.yml b/freeipa/client/keytab/apache2.yml
new file mode 100644
index 0000000..3b18150
--- /dev/null
+++ b/freeipa/client/keytab/apache2.yml
@@ -0,0 +1,11 @@
+parameters:
+  freeipa:
+    client:
+      keytab:
+        /etc/apache2/ipa.keytab:
+          user: root
+          group: www-data
+          mode: 640
+          identities:
+            - service: HTTP
+              host: ${linux:network:hostname}
diff --git a/freeipa/client/keytab/krb5.yml b/freeipa/client/keytab/krb5.yml
new file mode 100644
index 0000000..4555927
--- /dev/null
+++ b/freeipa/client/keytab/krb5.yml
@@ -0,0 +1,8 @@
+parameters:
+  freeipa:
+    client:
+      keytab:
+        /etc/krb5.keytab:
+          identities:
+            - service: host
+              host: ${linux:network:hostname}.${_param:cluster_domain}
diff --git a/freeipa/client/nsupdate.yml b/freeipa/client/nsupdate.yml
new file mode 100644
index 0000000..837b9c7
--- /dev/null
+++ b/freeipa/client/nsupdate.yml
@@ -0,0 +1,10 @@
+parameters:
+  _param:
+    freeipa_client_nsupdate_01_address: 172.16.10.240
+  freeipa:
+    client:
+      nsupdate:
+        - name: ${linux:network:hostname}.${_param:cluster_domain}
+          ipv4:
+            - ${_param:freeipa_client_nsupdate_01_address}
+          server: idm.${_param:cluster_domain}
diff --git a/glance/client/image/octavia.yml b/glance/client/image/octavia.yml
index de81f7f..582f1bc 100644
--- a/glance/client/image/octavia.yml
+++ b/glance/client/image/octavia.yml
@@ -2,7 +2,7 @@
 - system.glance.client
 parameters:
   _param:
-    amphora_image_url: "https://artifactory.mirantis.com/binary-prod-local/mirantis/openstack/octavia/images/ocata/amphora-x64-haproxy.qcow2"
+    amphora_image_url: "https://artifactory.mirantis.com/binary-prod-local/mirantis/openstack/octavia/images/${_param:openstack_version}/amphora-x64-haproxy.qcow2"
     amphora_image_name:  "amphora-x64-haproxy"
   glance:
     client:
diff --git a/glusterfs/client/volume/decapod.yml b/glusterfs/client/volume/decapod.yml
new file mode 100644
index 0000000..ef9de8a
--- /dev/null
+++ b/glusterfs/client/volume/decapod.yml
@@ -0,0 +1,13 @@
+parameters:
+  _param:
+    decapod_glusterfs_service_host: ${_param:glusterfs_service_host}
+    glusterfs_node01_address: ${_param:cluster_node01_address}
+    glusterfs_node02_address: ${_param:cluster_node02_address}
+    glusterfs_node03_address: ${_param:cluster_node03_address}
+  glusterfs:
+    client:
+      volumes:
+        decapod:
+          path: /srv/volumes/decapod
+          server: ${_param:decapod_glusterfs_service_host}
+          opts: "defaults,backup-volfile-servers=${_param:glusterfs_node01_address}:${_param:glusterfs_node02_address}:${_param:glusterfs_node03_address}"
diff --git a/glusterfs/client/volume/privatebin.yml b/glusterfs/client/volume/privatebin.yml
index c096096..163d5f9 100644
--- a/glusterfs/client/volume/privatebin.yml
+++ b/glusterfs/client/volume/privatebin.yml
@@ -8,6 +8,6 @@
     client:
       volumes:
         privatebin:
-          path: /srv/volume/privatebin
+          path: /srv/volumes/privatebin
           server: ${_param:privatebin_glusterfs_service_host}
           opts: "defaults,backup-volfile-servers=${_param:glusterfs_node01_address}:${_param:glusterfs_node02_address}:${_param:glusterfs_node03_address}"
diff --git a/glusterfs/server/volume/decapod.yml b/glusterfs/server/volume/decapod.yml
new file mode 100644
index 0000000..e4b80df
--- /dev/null
+++ b/glusterfs/server/volume/decapod.yml
@@ -0,0 +1,17 @@
+parameters:
+  glusterfs:
+    server:
+      volumes:
+        decapod:
+          storage: /srv/glusterfs/decapod
+          replica: 3
+          bricks:
+            - ${_param:cluster_node01_address}:/srv/glusterfs/decapod
+            - ${_param:cluster_node02_address}:/srv/glusterfs/decapod
+            - ${_param:cluster_node03_address}:/srv/glusterfs/decapod
+          options:
+            cluster.readdir-optimize: On
+            nfs.disable: On
+            network.remote-dio: On
+            diagnostics.client-log-level: WARNING
+            diagnostics.brick-log-level: WARNING
diff --git a/haproxy/proxy/listen/decapod.yml b/haproxy/proxy/listen/decapod.yml
new file mode 100644
index 0000000..a3d79ab
--- /dev/null
+++ b/haproxy/proxy/listen/decapod.yml
@@ -0,0 +1,28 @@
+parameters:
+  haproxy:
+    proxy:
+      listen:
+        decapod:
+          mode: http
+          options:
+            - forwardfor
+#            - httpchk
+            - httpclose
+            - httplog
+          balance: source
+          binds:
+            - address: ${_param:haproxy_jenkins_bind_host}
+              port: 9999
+          servers:
+            - name: ${_param:cluster_node01_name}
+              host: ${_param:cluster_node01_address}
+              port: 19999
+              params: check
+            - name: ${_param:cluster_node02_name}
+              host: ${_param:cluster_node02_address}
+              port: 19999
+              params: backup check
+            - name: ${_param:cluster_node03_name}
+              host: ${_param:cluster_node03_address}
+              port: 19999
+              params: backup check
diff --git a/haproxy/proxy/listen/oss/janitor_monkey.yml b/haproxy/proxy/listen/oss/janitor_monkey.yml
new file mode 100644
index 0000000..c2ff760
--- /dev/null
+++ b/haproxy/proxy/listen/oss/janitor_monkey.yml
@@ -0,0 +1,40 @@
+parameters:
+  _param:
+    haproxy_janitor_monkey_bind_host: ${_param:haproxy_bind_address}
+    haproxy_janitor_monkey_bind_port: 8088
+    haproxy_janitor_monkey_exposed_port: 18088
+    haproxy_janitor_monkey_ssl:
+      enabled: false
+  haproxy:
+    proxy:
+      listen:
+        janitor_monkey:
+          mode: http
+          options:
+          - httpchk get /simianarmy/api/v1/janitor
+          balance: source
+          http_request:
+            - action: "add-header X-Forwarded-Proto https"
+              condition: "if { ssl_fc }"
+          health-check:
+            http:
+              enabled: true
+              options:
+                - expect status 200
+          binds:
+            - address: ${_param:haproxy_janitor_monkey_bind_host}
+              port: ${_param:haproxy_janitor_monkey_bind_port}
+              ssl: ${_param:haproxy_janitor_monkey_ssl}
+          servers:
+            - name: ${_param:cluster_node01_name}
+              host: ${_param:cluster_node01_address}
+              port: ${_param:haproxy_janitor_monkey_exposed_port}
+              params: check
+            - name: ${_param:cluster_node02_name}
+              host: ${_param:cluster_node02_address}
+              port: ${_param:haproxy_janitor_monkey_exposed_port}
+              params: backup check
+            - name: ${_param:cluster_node03_name}
+              host: ${_param:cluster_node03_address}
+              port: ${_param:haproxy_janitor_monkey_exposed_port}
+              params: backup check
diff --git a/jenkins/client/approved_scripts.yml b/jenkins/client/approved_scripts.yml
index f9e01b8..51400d7 100644
--- a/jenkins/client/approved_scripts.yml
+++ b/jenkins/client/approved_scripts.yml
@@ -17,9 +17,12 @@
         - method hudson.model.Item getName
         - method hudson.model.ItemGroup getItem java.lang.String
         - method hudson.model.ItemGroup getItems
+        - method hudson.model.Job getBuildByNumber int
         - method hudson.model.Job getBuilds
         - method hudson.model.Job getLastBuild
         - method hudson.model.Run getEnvironment
+        - method hudson.model.Run getId
+        - method hudson.model.Run getNumber
         - method hudson.model.Run getResult
         - method hudson.model.Run getTimeInMillis
         - method hudson.model.Run isBuilding
@@ -30,6 +33,7 @@
         - method java.lang.AutoCloseable close
         - method java.lang.Class isInstance java.lang.Object
         - method java.lang.Iterable iterator
+        - method java.lang.Throwable printStackTrace
         - method java.net.HttpURLConnection getResponseCode
         - method java.net.HttpURLConnection setRequestMethod java.lang.String
         - method java.net.URI getHost
@@ -41,32 +45,51 @@
         - method java.net.URLConnection setDoOutput boolean
         - method java.net.URLConnection setRequestProperty java.lang.String java.lang.String
         - method java.util.Collection remove java.lang.Object
+        - method java.util.Collection stream
         - method java.util.LinkedHashMap$LinkedHashIterator hasNext
         - method java.util.List subList int int
         - method java.util.Map remove java.lang.Object
         - method java.util.Map size
         - method java.util.regex.MatchResult group int
+        - method java.util.regex.MatchResult groupCount
+        - method java.util.regex.Matcher find
         - method java.util.regex.Matcher matches
         - method java.util.regex.Pattern matcher java.lang.CharSequence
+        - method java.util.stream.Stream collect java.util.stream.Collector
+        - method jenkins.model.Jenkins getItemByFullName java.lang.String
         - method jenkins.model.Jenkins getPluginManager
         - method org.jenkinsci.plugins.workflow.job.WorkflowRun doStop
+        - method org.jenkinsci.plugins.workflow.job.WorkflowRun finish hudson.model.Result java.lang.Throwable
+        - method org.jenkinsci.plugins.workflow.support.actions.EnvironmentAction getEnvironment
         - method org.jenkinsci.plugins.workflow.support.steps.build.RunWrapper build
+        - new groovy.json.JsonBuilder
         - new groovy.json.JsonBuilder java.lang.Object
         - new groovy.json.JsonSlurperClassic
         - new java.io.File java.lang.String
+        - new java.io.IOException java.lang.String
         - new java.io.OutputStreamWriter java.io.OutputStream
         - new java.lang.Exception java.lang.String
         - new java.lang.InterruptedException
+        - new java.lang.RuntimeException java.lang.String
+        - new java.lang.StringBuilder
+        - new java.lang.StringBuilder int
         - new java.net.URI java.lang.String
+        - new java.util.ArrayList
         - new java.util.Date
+        - new java.util.HashMap
         - staticField groovy.io.FileType FILES
         - staticMethod com.cloudbees.plugins.credentials.CredentialsProvider lookupCredentials java.lang.Class hudson.model.ItemGroup
+        - staticMethod java.lang.Integer valueOf int
         - staticMethod java.lang.Integer valueOf java.lang.String
+        - staticMethod java.lang.Math min int int
         - staticMethod java.lang.String format java.lang.String java.lang.Object[]
+        - staticMethod java.lang.String valueOf int
         - staticMethod java.lang.System exit int
         - staticMethod java.lang.System getProperty java.lang.String
         - staticMethod java.lang.System getenv java.lang.String
+        - staticMethod java.util.regex.Pattern compile java.lang.String
         - staticMethod java.util.regex.Pattern quote java.lang.String
+        - staticMethod java.util.stream.Collectors joining java.lang.CharSequence
         - staticMethod jenkins.model.Jenkins getInstance
         - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods collect java.util.Map groovy.lang.Closure
         - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods eachFile java.io.File groovy.io.FileType groovy.lang.Closure
@@ -75,36 +98,20 @@
         - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods get java.util.Map java.lang.Object java.lang.Object
         - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods getAt java.lang.Iterable int
         - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods getAt java.lang.String int
+        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods getAt java.util.List groovy.lang.Range
         - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods getBytes java.io.File
         - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods getText java.io.InputStream
         - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods hasProperty java.lang.Object java.lang.String
         - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods iterator java.lang.Object
         - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods iterator java.lang.Object[]
+        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods leftShift java.lang.StringBuffer java.lang.Object
         - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods plus java.util.List java.lang.Iterable
         - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods plus java.util.List java.lang.Object
         - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods plus java.util.List java.util.Collection
         - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods println java.lang.Object java.lang.Object
         - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods putAt java.lang.Object java.lang.String java.lang.Object
+        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods sort java.util.Collection
+        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods split java.lang.String
+        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods takeRight java.util.List int
         - staticMethod org.codehaus.groovy.runtime.EncodingGroovyMethods encodeBase64 byte[]
         - staticMethod org.codehaus.groovy.runtime.ScriptBytecodeAdapter bitwiseNegate java.lang.Object
-        - method java.util.Collection stream
-        - staticMethod java.util.stream.Collectors joining java.lang.CharSequence
-        - method java.util.stream.Stream collect java.util.stream.Collector
-        - staticMethod java.util.regex.Pattern compile java.lang.String
-        - method java.util.regex.Matcher find
-        - method hudson.model.Run getId
-        - method java.util.regex.MatchResult groupCount
-        - method java.lang.Throwable printStackTrace
-        - method hudson.model.Run getNumber
-        - staticMethod java.lang.String valueOf int
-        - method jenkins.model.Jenkins getItemByFullName java.lang.String
-        - new java.util.ArrayList
-        - new java.util.HashMap
-        - staticMethod java.lang.Math min int int
-        - method hudson.model.Job getBuildByNumber int
-        - new java.io.IOException java.lang.String
-        - method org.jenkinsci.plugins.workflow.job.WorkflowRun finish hudson.model.Result java.lang.Throwable
-        - new groovy.json.JsonBuilder
-        - new java.lang.RuntimeException java.lang.String
-        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods takeRight java.util.List int
-        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods getAt java.util.List groovy.lang.Range
diff --git a/jenkins/client/job/deploy/lab/mk/cloud.yml b/jenkins/client/job/deploy/lab/mk/cloud.yml
index fa13051..c29913c 100644
--- a/jenkins/client/job/deploy/lab/mk/cloud.yml
+++ b/jenkins/client/job/deploy/lab/mk/cloud.yml
@@ -1,45 +1,57 @@
 parameters:
   _param:
     jenkins_cloud_deploy_pipelines:
-      - stack_name: k8s_calico
+      # Identity AAA
+      - stack_name: aaa_freeipa
         stack_type: heat
-        stack_install: core,k8s,calico
+        stack_install: core,aaa
+        stack_test: ""
         job_timer: ""
+        extra_formulas: ""
       - stack_name: k8s_calico
         stack_type: aws
         stack_install: core,k8s,calico
+        stack_test: ""
         job_timer: "H H * * *"
-#      - stack_name: ceph_ha
-#        stack_type: heat
-#        stack_install: core
-#        job_timer: ""
+      - stack_name: ceph_ha
+        stack_type: heat
+        stack_install: core,ceph
+        stack_test: "ceph"
+        job_timer: ""
 #      - stack_name: drivetrain_ha
 #        stack_type: heat
 #        stack_install: core
+#        stack_test: ""
 #        job_timer: ""
 #      - stack_name: drivetrain_ha_clusters
 #        stack_type: heat
 #        stack_install: core
+#        stack_test: ""
 #        job_timer: ""
       - stack_name: k8s_aio_calico
         stack_type: heat
         stack_install: core,k8s,calico
+        stack_test: ""
         job_timer: ""
       - stack_name: k8s_aio_contrail
         stack_type: heat
         stack_install: core,k8s,contrail
+        stack_test: ""
         job_timer: ""
       - stack_name: k8s_ha_calico
         stack_type: heat
         stack_install: core,k8s,calico
+        stack_test: ""
         job_timer: ""
       - stack_name: k8s_ha_contrail
         stack_type: heat
         stack_install: core,k8s,contrail
+        stack_test: ""
         job_timer: ""
       - stack_name: os_aio_contrail
         stack_type: heat
         stack_install: core,openstack,contrail
+        stack_test: ""
         job_timer: ""
       - stack_name: os_aio_ovs
         stack_type: heat
@@ -48,22 +60,27 @@
       - stack_name: os_ha_contrail
         stack_type: heat
         stack_install: core,openstack,contrail
+        stack_test: ""
         job_timer: ""
       - stack_name: os_ha_ovs
         stack_type: heat
         stack_install: core,openstack,ovs
+        stack_test: ""
         job_timer: ""
       - stack_name: stacklight_k8s_calico
         stack_type: heat
-        stack_install: core,k8s,calico,stacklight
+        stack_install: core,k8s,calico,sl-legacy
+        stack_test: ""
         job_timer: ""
       - stack_name: stacklight_os_contrail
         stack_type: heat
-        stack_install: core,openstack,contrail,stacklight
+        stack_install: core,openstack,contrail,sl-legacy
+        stack_test: ""
         job_timer: ""
       - stack_name: stacklight_os_ovs
         stack_type: heat
-        stack_install: core,openstack,ovs,stacklight
+        stack_install: core,openstack,ovs,sl-legacy
+        stack_test: ""
         job_timer: ""
   jenkins:
     client:
@@ -107,7 +124,7 @@
                 default: "{{stack_install}}"
               STACK_TEST:
                 type: string
-                default: ""
+                default: "{{stack_test}}"
               STACK_DELETE:
                 type: boolean
                 default: 'true'
diff --git a/jenkins/client/job/deploy/lab/mk/virtual.yml b/jenkins/client/job/deploy/lab/mk/virtual.yml
index 4e1fd97..243fbf0 100644
--- a/jenkins/client/job/deploy/lab/mk/virtual.yml
+++ b/jenkins/client/job/deploy/lab/mk/virtual.yml
@@ -80,6 +80,12 @@
         test: openstack
         timer: ""
         extra_formulas: ""
+      - lab: virtual_mcp11_ironic_small
+        install: core,openstack
+        stack_type: heat
+        test: openstack
+        timer: ""
+        extra_formulas: ""
       - lab: virtual_mcp11_k8s_calico
         install: core,k8s,calico
         stack_type: heat
@@ -104,3 +110,10 @@
         test: openstack
         timer: "H H(0-6) * * *"
         extra_formulas: ""
+      # Identity AAA
+      - lab: virtual_aaa_freeipa
+        install: core,aaa
+        stack_type: heat
+        test: ""
+        timer: ""
+        extra_formulas: ""
diff --git a/jenkins/client/job/deploy/update/init.yml b/jenkins/client/job/deploy/update/init.yml
index 4eadda5..8816a66 100644
--- a/jenkins/client/job/deploy/update/init.yml
+++ b/jenkins/client/job/deploy/update/init.yml
@@ -4,6 +4,8 @@
   - system.jenkins.client.job.deploy.update.saltenv
   - system.jenkins.client.job.deploy.update.upgrade
   - system.jenkins.client.job.deploy.update.upgrade_compute
+  - system.jenkins.client.job.deploy.update.upgrade_ovs_gateway
+  - system.jenkins.client.job.deploy.update.upgrade_opencontrail
   - system.jenkins.client.job.deploy.update.restore_mysql
   - system.jenkins.client.job.deploy.update.restore_cassandra
-  - system.jenkins.client.job.deploy.update.restore_zookeeper
\ No newline at end of file
+  - system.jenkins.client.job.deploy.update.restore_zookeeper
diff --git a/jenkins/client/job/deploy/update/upgrade_compute.yml b/jenkins/client/job/deploy/update/upgrade_compute.yml
index 6fc6ef1..f95e70e 100644
--- a/jenkins/client/job/deploy/update/upgrade_compute.yml
+++ b/jenkins/client/job/deploy/update/upgrade_compute.yml
@@ -25,7 +25,7 @@
               default: "salt"
             TARGET_SERVERS:
               type: string
-              default: "*"
+              default: "cmp*"
               description: Salt compound target to match nodes to be updated [*, G@osfamily:debian].
             TARGET_SUBSET_TEST:
               type: string
@@ -33,4 +33,4 @@
             TARGET_SUBSET_LIVE:
               type: string
               default: '1'
-              description: Number of selected nodes to live apply selected package update.
+              description: Number of selected nodes to live apply upgrade.
diff --git a/jenkins/client/job/deploy/update/upgrade_opencontrail.yml b/jenkins/client/job/deploy/update/upgrade_opencontrail.yml
new file mode 100644
index 0000000..b5d1e77
--- /dev/null
+++ b/jenkins/client/job/deploy/update/upgrade_opencontrail.yml
@@ -0,0 +1,57 @@
+#
+# Jobs to update packages on given Salt master environment
+#
+parameters:
+  _param:
+    jenkins_salt_api_url: "http://${_param:salt_master_host}:6969"
+  jenkins:
+    client:
+      job:
+        deploy-upgrade-opencontrail:
+          type: workflow-scm
+          concurrent: true
+          display_name: "Deploy - upgrade Opencontrail"
+          scm:
+            type: git
+            url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+            credentials: "gerrit"
+            script: opencontrail-upgrade.groovy
+          param:
+            SALT_MASTER_URL:
+              type: string
+              default: "${_param:jenkins_salt_api_url}"
+            SALT_MASTER_CREDENTIALS:
+              type: string
+              default: "salt"
+            STAGE_CONTROLLERS_UPGRADE:
+              type: boolean
+              default: 'true'
+              description: "Run upgrade on Opencontrail controllers"
+            STAGE_ANALYTICS_UPGRADE:
+              type: boolean
+              default: 'true'
+              description: "Run upgrade on Opencontrail analytics"
+            STAGE_COMPUTES_UPGRADE:
+              type: boolean
+              default: 'true'
+              description: "Run upgrade on Opencontrail compute nodes"
+            COMPUTE_TARGET_SERVERS:
+              type: string
+              default: "cmp*"
+              description: Salt compound target to match nodes to be updated [*, G@osfamily:debian].
+            COMPUTE_TARGET_SUBSET_LIVE:
+              type: string
+              default: '1'
+              description: Number of selected nodes to live apply compute upgrade.
+            STAGE_CONTROLLERS_ROLLBACK:
+              type: boolean
+              default: 'false'
+              description: "Run rollback on Opencontrail controllers"
+            STAGE_ANALYTICS_ROLLBACK:
+              type: boolean
+              default: 'false'
+              description: "Run rollback on Opencontrail analytics"
+            STAGE_COMPUTES_ROLLBACK:
+              type: boolean
+              default: 'false'
+              description: "Run rollback on Opencontrail compute nodes"
diff --git a/jenkins/client/job/deploy/update/upgrade_ovs_gateway.yml b/jenkins/client/job/deploy/update/upgrade_ovs_gateway.yml
new file mode 100644
index 0000000..3d12796
--- /dev/null
+++ b/jenkins/client/job/deploy/update/upgrade_ovs_gateway.yml
@@ -0,0 +1,36 @@
+#
+# Jobs to update packages on given Salt master environment
+#
+parameters:
+  _param:
+    jenkins_salt_api_url: "http://${_param:salt_master_host}:6969"
+  jenkins:
+    client:
+      job:
+        deploy-upgrade-ovs-gateway:
+          type: workflow-scm
+          concurrent: true
+          display_name: "Deploy - upgrade OVS gateway"
+          scm:
+            type: git
+            url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+            credentials: "gerrit"
+            script: ovs-gateway-upgrade.groovy
+          param:
+            SALT_MASTER_URL:
+              type: string
+              default: "${_param:jenkins_salt_api_url}"
+            SALT_MASTER_CREDENTIALS:
+              type: string
+              default: "salt"
+            TARGET_SERVERS:
+              type: string
+              default: "gtw*"
+              description: Salt compound target to match nodes to be updated [*, G@osfamily:debian].
+            TARGET_SUBSET_TEST:
+              type: string
+              description: Number of nodes to list package updates, empty string means all targetted nodes.
+            TARGET_SUBSET_LIVE:
+              type: string
+              default: '1'
+              description: Number of selected nodes to live apply upgrade.
diff --git a/jenkins/client/job/docker/cis-collectors.yml b/jenkins/client/job/docker/oss/cis-collectors.yml
similarity index 100%
rename from jenkins/client/job/docker/cis-collectors.yml
rename to jenkins/client/job/docker/oss/cis-collectors.yml
diff --git a/jenkins/client/job/docker/devops-portal.yml b/jenkins/client/job/docker/oss/devops-portal.yml
similarity index 100%
rename from jenkins/client/job/docker/devops-portal.yml
rename to jenkins/client/job/docker/oss/devops-portal.yml
diff --git a/jenkins/client/job/docker/oss/init.yml b/jenkins/client/job/docker/oss/init.yml
new file mode 100644
index 0000000..1157bd3
--- /dev/null
+++ b/jenkins/client/job/docker/oss/init.yml
@@ -0,0 +1,6 @@
+classes:
+  - system.jenkins.client.job.docker.oss.cis-collectors
+  - system.jenkins.client.job.docker.oss.devops-portal
+  - system.jenkins.client.job.docker.oss.janitor-monkey-codebase
+  - system.jenkins.client.job.docker.oss.janitor-monkey-docker
+  - system.jenkins.client.job.docker.oss.rundeck
diff --git a/jenkins/client/job/docker/oss/janitor-monkey-codebase.yml b/jenkins/client/job/docker/oss/janitor-monkey-codebase.yml
new file mode 100644
index 0000000..95a45f1
--- /dev/null
+++ b/jenkins/client/job/docker/oss/janitor-monkey-codebase.yml
@@ -0,0 +1,73 @@
+parameters:
+  jenkins:
+    client:
+      job:
+        docker-build-images-janitor-monkey-codebase:
+          name: docker-build-images-janitor-monkey-codebase
+          discard:
+            build:
+              keep_num: 25
+            artifact:
+              keep_num: 25
+          type: workflow-scm
+          concurrent: true
+          scm:
+            type: git
+            url: "${_param:jenkins_gerrit_url}/oss/jenkins/pipelines"
+            credentials: "gerrit"
+            script: docker-build-image-pipeline.groovy
+          trigger:
+            gerrit:
+              project:
+                "oss/SimianArmy":
+                  branches:
+                    - devel
+              skip_vote:
+                - successful
+                - failed
+                - unstable
+                - not_built
+              event:
+                patchset:
+                  - created:
+                      excludeDrafts: false
+                      excludeNoCodeChange: false
+                change:
+                  - merged
+                comment:
+                  - addedContains:
+                      commentAddedCommentContains: 'rebuild'
+          param:
+            IMAGE_NAME:
+              type: string
+              default: "janitor-monkey"
+            IMAGE_TAGS:
+              type: string
+              default: ""
+            CREDENTIALS_ID:
+              type: string
+              default: "gerrit"
+            DOCKER_REGISTRY:
+              type: string
+              default: "docker-dev-virtual.docker.mirantis.net"
+            PROJECT_NAMESPACE:
+              type: string
+              default: "oss"
+            DOCKERFILE_PATH:
+              type: string
+              default: "Dockerfile"
+            CONTEXT_PATH:
+              type: string
+              default: "."
+            CUSTOM_GERRIT_PROJECT:
+              type: string
+              default: oss/docker-janitor-monkey
+            CUSTOM_GERRIT_BRANCH:
+              type: string
+              default: master
+            CI_BUILD_ARG_JANITOR_MONKEY_REPO:
+              type: string
+              default: ""
+            CI_BUILD_ARG_JANITOR_MONKEY_REF:
+              type: string
+              default: ""
diff --git a/jenkins/client/job/docker/oss/janitor-monkey-docker.yml b/jenkins/client/job/docker/oss/janitor-monkey-docker.yml
new file mode 100644
index 0000000..083d086
--- /dev/null
+++ b/jenkins/client/job/docker/oss/janitor-monkey-docker.yml
@@ -0,0 +1,67 @@
+parameters:
+  jenkins:
+    client:
+      job:
+        docker-build-images-janitor-monkey-docker:
+          name: docker-build-images-janitor-monkey-docker
+          discard:
+            build:
+              keep_num: 25
+            artifact:
+              keep_num: 25
+          type: workflow-scm
+          concurrent: true
+          scm:
+            type: git
+            url: "${_param:jenkins_gerrit_url}/oss/jenkins/pipelines"
+            credentials: "gerrit"
+            script: docker-build-image-pipeline.groovy
+          trigger:
+            gerrit:
+              project:
+                "oss/docker-janitor-monkey":
+                  branches:
+                    - master
+              skip_vote:
+                - successful
+                - failed
+                - unstable
+                - not_built
+              event:
+                patchset:
+                  - created:
+                      excludeDrafts: false
+                      excludeNoCodeChange: false
+                change:
+                  - merged
+                comment:
+                  - addedContains:
+                      commentAddedCommentContains: 'rebuild'
+          param:
+            IMAGE_NAME:
+              type: string
+              default: "janitor-monkey"
+            IMAGE_TAGS:
+              type: string
+              default: ""
+            CREDENTIALS_ID:
+              type: string
+              default: "gerrit"
+            DOCKER_REGISTRY:
+              type: string
+              default: "docker-dev-virtual.docker.mirantis.net"
+            PROJECT_NAMESPACE:
+              type: string
+              default: "oss"
+            DOCKERFILE_PATH:
+              type: string
+              default: "Dockerfile"
+            CONTEXT_PATH:
+              type: string
+              default: "."
+            CI_BUILD_ARG_JANITOR_MONKEY_REPO:
+              type: string
+              default: ""
+            CI_BUILD_ARG_JANITOR_MONKEY_REF:
+              type: string
+              default: ""
\ No newline at end of file
diff --git a/jenkins/client/job/docker/rundeck.yml b/jenkins/client/job/docker/oss/rundeck.yml
similarity index 100%
rename from jenkins/client/job/docker/rundeck.yml
rename to jenkins/client/job/docker/oss/rundeck.yml
diff --git a/jenkins/client/job/opencontrail/build/dpdk-extra.yml b/jenkins/client/job/opencontrail/build/dpdk-extra.yml
index 5b128a2..e69b4a4 100644
--- a/jenkins/client/job/opencontrail/build/dpdk-extra.yml
+++ b/jenkins/client/job/opencontrail/build/dpdk-extra.yml
@@ -39,19 +39,6 @@
               credentials: "gerrit"
               script: build-extra-dpdk-pipeline.groovy
             quiet_period: 120
-            trigger:
-              gerrit:
-                project:
-                  contrail/contrail-dpdk-extra-packages:
-                    branches:
-                      - "{{branch_real_name}}"
-                message:
-                  build_successful: "Build successful"
-                  build_unstable: "Build unstable"
-                  build_failure: "Build failed"
-                event:
-                  ref:
-                    - updated
             param:
               SOURCE_URL:
                 type: string
diff --git a/jenkins/client/job/opencontrail/init.yml b/jenkins/client/job/opencontrail/init.yml
index dad3c3a..4b42d50 100644
--- a/jenkins/client/job/opencontrail/init.yml
+++ b/jenkins/client/job/opencontrail/init.yml
@@ -5,7 +5,7 @@
   _param:
     contrail_branches: "R3.0.2.x,R3.0.3.x,R3.1,R3.1.1.x,R3.2,R3.2.3.x,R4.0,master"
     contrail_kubernetes_branches: "master,release-1.2"
-    contrail_dpdk_extra_branches: "mitaka,kilo,liberty-multiqueue,newton"
+    contrail_dpdk_extra_branches: "mitaka,mitaka_dpdk_17_02,mitaka_dpdk_17_05,kilo,liberty-multiqueue,newton"
     contrail_ceilometer_plugin_branches: "master,R4.0"
     contrail_kubernetes_branches: "master,origin-1.1,origin-1.1.3,release-1.1,release-1.2"
     contrail_dpdk_branches: "master,R3.0.2.x,R3.0.3.x,R3.1,R3.1.1.x,R3.2,R3.2.3.x,R4.0,contrail_dpdk_17_02,contrail_dpdk_17_05,contrail_dpdk_1_7,contrail_dpdk_2_0,contrail_dpdk_2_1"
diff --git a/jenkins/client/job/oss/init.yml b/jenkins/client/job/oss/init.yml
new file mode 100644
index 0000000..0e23f01
--- /dev/null
+++ b/jenkins/client/job/oss/init.yml
@@ -0,0 +1,3 @@
+classes:
+  - system.jenkins.client.job.oss.test_devops_portal
+  - system.jenkins.client.job.oss.test_security_monkey_openstack
diff --git a/jenkins/client/job/test_devops_portal.yml b/jenkins/client/job/oss/test_devops_portal.yml
similarity index 100%
rename from jenkins/client/job/test_devops_portal.yml
rename to jenkins/client/job/oss/test_devops_portal.yml
diff --git a/jenkins/client/job/salt-formulas/tests.yml b/jenkins/client/job/salt-formulas/tests.yml
index 15eff13..c25cc49 100644
--- a/jenkins/client/job/salt-formulas/tests.yml
+++ b/jenkins/client/job/salt-formulas/tests.yml
@@ -158,3 +158,5 @@
               KITCHEN_TESTS_PARALLEL:
                 type: boolean
                 default: 'false'
+              CUSTOM_KITCHEN_ENVS:
+                type: text
diff --git a/jenkins/client/job/salt-models/tests.yml b/jenkins/client/job/salt-models/tests.yml
index e59ae6a..f87914e 100644
--- a/jenkins/client/job/salt-models/tests.yml
+++ b/jenkins/client/job/salt-models/tests.yml
@@ -58,6 +58,9 @@
               SYSTEM_GIT_REF:
                 type: string
                 default: ""
+              CONFIG_NODE_NAME_PATTERN:
+                type: string
+                default: "{{config_node_name}}"
         test_system_reclass:
           name: test-salt-model-{{name}}
           template:
@@ -68,16 +71,6 @@
               credentials: "gerrit"
               script: test-system-reclass-pipeline.groovy
             concurrent: true
-            trigger:
-              gerrit:
-                project:
-                  salt-models/{{name}}:
-                    branches:
-                      - master
-                event:
-                  comment:
-                    - addedContains:
-                        commentAddedCommentContains: '(recheck|reverify)'
             param:
               TEST_MODELS:
                 type: string
@@ -102,8 +95,6 @@
               credentials: "jenkins-mk"
               script: test-cookiecutter-reclass.groovy
             trigger:
-              pollscm:
-                spec: ${_param:jenkins_pollscm_spec}
               gerrit:
                 project:
                   mk/{{cookiecutter_template}}:
diff --git a/keystone/client/core.yml b/keystone/client/core.yml
index 2b608ac..39d28de 100644
--- a/keystone/client/core.yml
+++ b/keystone/client/core.yml
@@ -37,3 +37,4 @@
             host: ${_param:keystone_service_host}
             port: 5000
             region_name: ${_param:openstack_region}
+            use_keystoneauth: true
diff --git a/keystone/client/service/ironic.yml b/keystone/client/service/ironic.yml
index beb99a1..1ab9872 100644
--- a/keystone/client/service/ironic.yml
+++ b/keystone/client/service/ironic.yml
@@ -12,14 +12,6 @@
                   is_admin: true
                   password: ${_param:keystone_ironic_password}
                   email: ${_param:admin_email}
-        admin_identity:
-          admin:
-            user: admin
-            password: ${_param:keystone_admin_password}
-            project: admin
-            host: ${_param:keystone_service_host}
-            port: 5000
-            region_name: ${_param:openstack_region}
           service:
             ironic:
               type: baremetal
@@ -36,3 +28,11 @@
                 admin_address: ${_param:ironic_service_host}
                 admin_port: 6385
                 admin_path: ''
+        admin_identity:
+          admin:
+            user: admin
+            password: ${_param:keystone_admin_password}
+            project: admin
+            host: ${_param:keystone_service_host}
+            port: 5000
+            region_name: ${_param:openstack_region}
diff --git a/keystone/client/single.yml b/keystone/client/single.yml
index 77e22c1..0c70390 100644
--- a/keystone/client/single.yml
+++ b/keystone/client/single.yml
@@ -46,3 +46,4 @@
             host: ${_param:keystone_service_host}
             port: 5000
             region_name: ${_param:openstack_region}
+            use_keystoneauth: true
diff --git a/linux/system/repo/mcp/salt.yml b/linux/system/repo/mcp/salt/init.yml
similarity index 100%
rename from linux/system/repo/mcp/salt.yml
rename to linux/system/repo/mcp/salt/init.yml
diff --git a/linux/system/repo/mcp/salt/unstable.yml b/linux/system/repo/mcp/salt/unstable.yml
new file mode 100644
index 0000000..b0b992e
--- /dev/null
+++ b/linux/system/repo/mcp/salt/unstable.yml
@@ -0,0 +1,17 @@
+classes:
+- linux.system.repo.mcp.salt
+parameters:
+  _param:
+    linux_system_repo_mcp_salt_unstable_version: testing
+  linux:
+    system:
+      repo:
+        mcp_salt_unstable:
+          source: "deb [arch=amd64] http://apt-mk.mirantis.com/${_param:linux_system_codename}/ ${_param:linux_system_repo_mcp_salt_unstable_version} salt"
+          architectures: amd64
+          key_url: "http://apt-mk.mirantis.com/public.gpg"
+          clean_file: true
+          pin:
+          - pin: 'release a=${_param:linux_system_repo_mcp_salt_unstable_version}'
+            priority: 90
+            package: '*'
diff --git a/linux/system/repo_local/mcp/salt.yml b/linux/system/repo_local/mcp/salt/init.yml
similarity index 100%
rename from linux/system/repo_local/mcp/salt.yml
rename to linux/system/repo_local/mcp/salt/init.yml
diff --git a/linux/system/repo_local/mcp/salt/unstable.yml b/linux/system/repo_local/mcp/salt/unstable.yml
new file mode 100644
index 0000000..4d2f9a7
--- /dev/null
+++ b/linux/system/repo_local/mcp/salt/unstable.yml
@@ -0,0 +1,17 @@
+classes:
+- linux.system.repo_local.mcp.salt
+parameters:
+  _param:
+    linux_system_repo_mcp_salt_unstable_version: testing
+  linux:
+    system:
+      repo:
+        mcp_salt_unstable:
+          refresh_db: ${_param:linux_repo_refresh_db}
+          source: "deb [arch=amd64] http://${_param:local_repo_url}/ubuntu-${_param:linux_system_codename}/ ${_param:linux_system_repo_mcp_salt_unstable_version} salt"
+          architectures: amd64
+          key_url: "http://${_param:local_repo_url}/public.gpg"
+          pin:
+          - pin: 'release a=${_param:linux_system_repo_mcp_salt_unstable_version}'
+            priority: 90
+            package: '*'
diff --git a/neutron/client/service/ironic.yml b/neutron/client/service/ironic.yml
index 3bc5be4..17d3e6f 100644
--- a/neutron/client/service/ironic.yml
+++ b/neutron/client/service/ironic.yml
@@ -1,7 +1,8 @@
+classes:
+- service.neutron.client
 parameters:
   neutron:
     client:
-      enabled: true
       server:
         admin_identity:
           endpoint_type: internalURL
diff --git a/neutron/client/service/octavia.yml b/neutron/client/service/octavia.yml
new file mode 100644
index 0000000..e818f76
--- /dev/null
+++ b/neutron/client/service/octavia.yml
@@ -0,0 +1,90 @@
+classes:
+- service.neutron.client
+parameters:
+  neutron:
+    client:
+      server:
+        octavia_identity:
+          endpoint_type: internalURL
+          network:
+            lb-mgmt-net:
+              tenant: service
+              admin_state_up: True
+              subnet:
+                lb-mgmt-subnet:
+                  cidr: 192.168.0.0/24
+                  allocation_pools:
+                    - start: 192.168.0.2
+                      end: 192.168.0.200
+              port:
+                octavia-health-manager-listen-port:
+                  fixed_ips:
+                    - ip_address: '192.168.0.12'
+                  device_owner: Octavia:health-mgr
+                  binding_host_id: ${_param:openstack_gateway_node01_hostname}
+                  security_groups:
+                    - lb-health-mgr-sec-grp
+          security_group:
+            lb-mgmt-sec-grp:
+              tenant: service
+              rules:
+                - 'direction': 'ingress'
+                  'ethertype': 'IPv4'
+                  'protocol': 'icmp'
+                - 'direction': 'ingress'
+                  'ethertype': 'IPv4'
+                  'protocol': 'TCP'
+                  'port_range_min': 22
+                  'port_range_max': 22
+                - 'direction': 'ingress'
+                  'ethertype': 'IPv4'
+                  'protocol': 'TCP'
+                  'port_range_min': 9443
+                  'port_range_max': 9443
+                - 'direction': 'ingress'
+                  'ethertype': 'IPv6'
+                  'protocol': 'icmpv6'
+                  'remote_ip_prefix': '::/0'
+                - 'direction': 'ingress'
+                  'ethertype': 'IPv6'
+                  'protocol': 'TCP'
+                  'port_range_min': 22
+                  'port_range_max': 22
+                  'remote_ip_prefix': '::/0'
+                - 'direction': 'ingress'
+                  'ethertype': 'IPv6'
+                  'protocol': 'TCP'
+                  'port_range_min': 9443
+                  'port_range_max': 9443
+                  'remote_ip_prefix': '::/0'
+            lb-health-mgr-sec-grp:
+              tenant: service
+              rules:
+                - 'direction': 'ingress'
+                  'ethertype': 'IPv4'
+                  'protocol': 'UDP'
+                  'port_range_min': 5555
+                  'port_range_max': 5555
+                - 'direction': 'ingress'
+                  'ethertype': 'IPv6'
+                  'protocol': 'UDP'
+                  'port_range_min': 5555
+                  'port_range_max': 5555
+                  'remote_ip_prefix': '::/0'
+
+  salt:
+    minion:
+      mine:
+        module:
+          list_octavia_networks:
+            mine_function: neutronng.list_networks
+            name: 'lb-mgmt-net'
+            profile: 'octavia_identity'
+          list_octavia_mgmt_security_groups:
+            mine_function: neutronng.list_security_groups
+            name: 'lb-mgmt-sec-grp'
+            profile: 'octavia_identity'
+          list_octavia_hm_ports:
+            mine_function: neutronng.list_ports
+            name: 'octavia-health-manager-listen-port'
+            profile: 'octavia_identity'
diff --git a/nova/client/service/octavia.yml b/nova/client/service/octavia.yml
index 817297f..e0b6557 100644
--- a/nova/client/service/octavia.yml
+++ b/nova/client/service/octavia.yml
@@ -1,9 +1,12 @@
+classes:
+- service.nova.client
 parameters:
+  _param:
+    octavia_ssh_key_path: "/etc/octavia/.ssh/octavia_ssh_key.pub"
   nova:
     client:
-      enabled: true
       server:
-        octavia_identity:
+        admin_identity:
           endpoint_type: internalURL
           flavor:
             m1.amphora:
@@ -11,3 +14,8 @@
               ram: 1024
               disk: 2
               vcpus: 1
+        octavia_identity:
+          endpoint_type: internalURL
+          keypair:
+            octavia_ssh_key:
+              pub_file: ${_param:octavia_ssh_key_path}
diff --git a/openssh/server/team/ccp_team.yml b/openssh/server/team/k8s_apps_team.yml
similarity index 66%
rename from openssh/server/team/ccp_team.yml
rename to openssh/server/team/k8s_apps_team.yml
index 3355dc1..e57ed1a 100644
--- a/openssh/server/team/ccp_team.yml
+++ b/openssh/server/team/k8s_apps_team.yml
@@ -2,20 +2,6 @@
   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
@@ -23,13 +9,20 @@
           full_name: Andrey Pavlov
           home: /home/apavlov
           email: apavlov@mirantis.com
-        sryabin:
+        mzhnichkov:
           enabled: true
-          name: sryabin
+          name: mzhnichkov
           sudo: true
-          full_name: Sergey Ryabin
-          home: /home/sryabin
-          email: sryabin@mirantis.com
+          full_name: Michail Zhnichkov
+          home: /home/mzhnichkov
+          email: mzhnichkov@mirantis.com
+        prazumovsky:
+          enabled: true
+          name: prazumovsky
+          sudo: true
+          full_name: Peter Razumovsky
+          home: /home/prazumovsky
+          email: prazumovsky@mirantis.com
         slukjanov:
           enabled: true
           name: slukjanov
@@ -37,6 +30,13 @@
           full_name: Sergey Lukjanov
           home: /home/slukjanov
           email: slukjanov@mirantis.com
+        sreshetnyak:
+          enabled: true
+          name: sreshetnyak
+          sudo: true
+          full_name: Sergey Reshetnyak
+          home: /home/sreshetnyak
+          email: sreshetnyak@mirantis.com
         ytaraday:
           enabled: true
           name: ytaraday
@@ -48,46 +48,46 @@
     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:
+        mzhnichkov:
           enabled: true
           public_keys:
-          - ${public_keys:sryabin}
-          user: ${linux:system:user:sryabin}
+          - ${public_keys:mzhnichkov}
+          user: ${linux:system:user:mzhnichkov}
+        prazumovsky:
+          enabled: true
+          public_keys:
+          - ${public_keys:prazumovsky}
+          user: ${linux:system:user:prazumovsky}
         slukjanov:
           enabled: true
           public_keys:
           - ${public_keys:slukjanov}
           user: ${linux:system:user:slukjanov}
+        sreshetnyak:
+          enabled: true
+          public_keys:
+          - ${public_keys:sreshetnyak}
+          user: ${linux:system:user:sreshetnyak}
         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
+    prazumovsky:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMGi+I02wfKwHqKoTahRJg3TWX9SaYjKBRKndmVfz4J9kptuQEsVbJGiBIxOKV4unFvBSgVDVgZ4rUwwkL2nMrdATAWiBeVcgaNTt4kVBxD21wAeFWi0kTgrJ403jqOqH/WIKA6lnGUCmdRxp3phcjHRlgw/ZOnFu6AuZqtO1Luxg/9PawOFcoCjWWDolp/ICSHBhGZuDWThvTSgVQTd10oMP55LMjuxSOdvM1ZjWczyxegKD7lt7j+FjQXHzGUyqcCH/NlXl4VHdjaNG2muP0lY+QRiRMye3qftu15qgRxqQtL1QksBspDP2TvVVTwE7c0m7VtKaQtnmlsJGUx/7H prazumovsky@shprotby-box
+    mzhnichkov:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDW54LczyIFu1cKKDiKTcc3CQpY1sosDez7nLlOCdhyn096rl5q4GbjcX5WtMvlArKKjw5cRoBGMlLdJuQ+5PGfxnlK0GOaa924AyQSNINUyvEshV4D1OvEScN/lM0TNQZ3tkIw4YbST1g5JoSkq0MRv/qlzdv8Jg0sV4phZcx410uVQ0oVhfQgrGuq6pjf1fQpvo00cfGUyZRzF9JsxVGHdkXPgYB+W479Smha9GE2wkpiQscnnFyAcs50auLEt9E6/Tw+4fSK1dTgbD0MCSopI+E9WgVaCAxcTaEKaIB32gbgG3jRziC711GDdF4567hM1xDspPc3LeGSsTa4eAYN
     slukjanov:
       key: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOV5dNsXJ6aJMml7JSd4cJ54qYhOya18QNEdb7NJ88yo
+    sreshetnyak:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDbc8cUMy2Stjq4qS8TaVGvTIUGetpgTcLCiW3NnG5Yqe+s+nlQnIL3ezvgSKHin4/PYHl8vV9FnmLdPLk+4eefoek1px8soW/B+Ri0KN6aQUy1ztcecMxcxRH9g4VLZWTbazqGsADwRCQVPXmyIQVQN5wMKd0IzXUp5c03dWv/I1PE7QPdKySrdhjjyo+1Npx/tQjtJaSnGCaUJrXfHXBxiiENzmHuY+se14nWV9RyYN3zRWsa8Yt1n2hWNNiKNfT89h6yFwZAxdsS+jGhzbGTLcWyAqq3sfvvgm0yeL5FEm0AKaOMv7AuM5LqjPkQE4zzCGA0j19EQlAjsVcvKHGH sreshetniak@workstation
     ytaraday:
       key: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDtcRlAQg3baU14eBh8THRv+1T5sHCGAIeFaReEB/KRT
diff --git a/openssh/server/team/members/akomarek.yml b/openssh/server/team/members/akomarek.yml
new file mode 100644
index 0000000..7fe33fb
--- /dev/null
+++ b/openssh/server/team/members/akomarek.yml
@@ -0,0 +1,20 @@
+parameters:
+  linux:
+    system:
+      user:
+        newt:
+          enabled: true
+          name: newt
+          sudo: true
+          full_name: Ales Komarek
+          home: /home/newt
+          email: mail@newt.cz
+  openssh:
+    server:
+      enabled: true
+      user:
+        newt:
+          enabled: true
+          public_keys:
+            - key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3odU+3V2uDA2ptAFL9hrJRPNEEdAyztWOZFQ5Oyd9oerTGOU3p4xmrgWWjfKFKbYGhiiIUcYAol5PkTfKukGEkkjCHYA1t023soCaaAj85wCZCnw2zQNAziwxTYmAzTqgxiSvtZNMMrtJvFHRIRDzJ3M1lV0prWNWkMM1/3FAd4W49y6VT3fkMCo8uqG7CfGdgR2DgBCxf9KaNPfW5eDEPOgmE5lK8tVSEI6T+Cg7hbcTf4lFYnlFBnlQgp/0JstsM4Vbwb4B34LOpOsf2S8rrWk2xQMjwaMHXkc2s/E8iW3F5nVFuyEXYISFQIiAHw8dzC6CHgLcyHUVWwznKawZ newt@newt-dev1
+          user: ${linux:system:user:newt}
\ No newline at end of file
diff --git a/openssh/server/team/members/ashestakov.yml b/openssh/server/team/members/ashestakov.yml
new file mode 100644
index 0000000..c3eae16
--- /dev/null
+++ b/openssh/server/team/members/ashestakov.yml
@@ -0,0 +1,20 @@
+parameters:
+  linux:
+    system:
+      user:
+        ashestakov:
+          enabled: true
+          name: ashestakov
+          sudo: true
+          full_name: Andrey Shestakov
+          home: /home/ashestakov
+          email: ashestakov@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        ashestakov:
+          enabled: true
+          public_keys:
+            - key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQClIwlkr2nH8tCa2VnDgYpsVccJ4pX44mEdjt4oYqSdvEzXKaLhkC2vRzZ/DJo+1GjHC1cy6oPq26bo186MZ2/6PBh2gyVR5rRWyOFoNocAUaaEnBxu8TtNewIzrZ9k+telbmzz/PcoXkELLsHjrTPPxGlpI6qmk3WL/vJlXumvlZlv/FUbI8RlMxTuOK3TF5AQBGd3+1UkF+qFcAFGAAVFO0Td69MMQcsIhLCzJ68d7YM60+3z37At0x/URNlRwgf5Wt8NLPUQwo1dCDCK4GSZtqAHzj7IKVyk77twiN0SLQR12eTqUkyEjm6zR6QpZ6mpIbAjRVVFV5W55WTZXpIz
+          user: ${linux:system:user:ashestakov}
diff --git a/openssh/server/team/members/atengler.yml b/openssh/server/team/members/atengler.yml
new file mode 100644
index 0000000..cf06e02
--- /dev/null
+++ b/openssh/server/team/members/atengler.yml
@@ -0,0 +1,20 @@
+parameters:
+  linux:
+    system:
+      user:
+        tux:
+          enabled: true
+          name: tux
+          sudo: true
+          full_name: Adam Tengler
+          home: /home/tux
+          email: atengler@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        tux:
+          enabled: true
+          public_keys:
+            - key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDXEN5qmte4oMYFCMZtuNzWiu5M32Dp0OsfR1pSz5gMMQF1Sw3xEDXEATEWhyvJTuVtFQasWVcMCYzEPev8H54UK97dLlxHxEDD9PQYY2O+xu/Rq+p/jryJ/T3mO7LDjUUXtHkUnsDZ51G+sFAWktE+FifwrEDmAEnRucLqOzVhehelG73S3uqfxVsPTsW2CcVIZICKtvdODbgAVyCf1LRR0LJv4fXqcyebCbzIrk4NWJhc474TH88niC7PH5VfxSfXZdKoi3yKVMgqdGSUxGhkx3D5CwCR9K+kUnP0rE5GNIqoCiS8iNbWl6POfMPSxH/ckqZN1h8El6SEoPJzVNp9 tux@tux-workbook
+          user: ${linux:system:user:tux}
\ No newline at end of file
diff --git a/openssh/server/team/members/dcech.yml b/openssh/server/team/members/dcech.yml
new file mode 100644
index 0000000..4e6dedf
--- /dev/null
+++ b/openssh/server/team/members/dcech.yml
@@ -0,0 +1,20 @@
+parameters:
+  linux:
+    system:
+      user:
+        dcech:
+          enabled: true
+          name: dcech
+          sudo: true
+          full_name: Daniel Cech
+          home: /home/dcech
+          email: dcech@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        dcech:
+          enabled: true
+          public_keys:
+            - key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC8A26XMLUnXkxv4e/vByD4W4PQ0ZdgGZz5Tg6G/fQKuSa+9zRucG6IlOchJPikwrDyTrojHTGAClHPuyr2bPIRrjFy4oUTZNdjiDptV99Zv/kHRStYzPyZ4KabnFLJVKNtyKKagk6Z3wpzEjFjRHWJK7A5bIzHfd7Amx/frdLKRo9YZjGbLnZRw6mWGqZYyp2/5a/5rKqH1BhMQggDGkAwFGWYQByZzk2F81nDnkt3CY3bi24gX90w4mgFjP8B0m0QCEhcGqpfOKsQTnIyBCtztEHBiUplzBN+RHS4dDOIEs9SWrXLiMFakWu1Vr6bUa7v5xGaNN8XAWjd3xdsy4hvJjJHU5HPaMY9MGH+N6W0UUZxIF0MuxDNP03MDM1uA5mRWTdwffARaDySYaEUrUEYJmzFAtk700Jv/Aav7QixLoIeKU9SAKYvVb7XNlMWgiswQdRPoiMpXPXPw+bMhjpimHJa4n0KFGAUO/cRD1dpJKybqxDe2ip57JzpFkm5PxuNht5qmEreKcS5dWQqm0fDE9wv8cCUMnWQv36f0IDeVpftmeDREatqXSeUjES7NFQOgIQW5C5Pl+8ZHTXw46c/uh89gUILJT2tS/mOXaU4mELox1Qv8vc/laoGAec+TGD0flf75LfiuLOK6JOYX0QVW13ko1wc3CyJzHOi1sFEAw== daniel.cech@tcpcloud.eu
+          user: ${linux:system:user:dcech}
\ No newline at end of file
diff --git a/openssh/server/team/members/fpytloun.yml b/openssh/server/team/members/fpytloun.yml
new file mode 100644
index 0000000..8cdfcec
--- /dev/null
+++ b/openssh/server/team/members/fpytloun.yml
@@ -0,0 +1,20 @@
+parameters:
+  linux:
+    system:
+      user:
+        filip:
+          enabled: true
+          name: filip
+          sudo: true
+          full_name: Filip Pytloun
+          home: /home/filip
+          email: filip@pytloun.cz
+  openssh:
+    server:
+      enabled: true
+      user:
+        filip:
+          enabled: true
+          public_keys:
+            - key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCcuHTjJ3CoWdkmvtag07bIWeyAMqFLAN+QApat7TXUcDYmm/neK4Asg3m/UicofZnB80cI4tjnB84Z8WazLHMxVTLwHbEqTVbXVeKebiZ5yn0yo4ndRzmppUfSvs0xcMysBwu+hYAnIDXTedctbciMSYKbuQ+b9XZ4mFZ/2RHG4QBA/dPUxJdCwvkBu7AOV+6zaRSR99UETr5nxICQUGVJBTy6VkCsch4mK3/K2SrujODUhytcROg+6ejV/aZHWH9xIFRBLfhmSFeOC6oneBWo4QBQ2tTZgb7Go744JpkhkoMfWQnR2s6cCgUN60BJ6j5snqmbv9/2CmgbI4UprC+E6lL04K/Jbgjv+fi3KqnCIpRiQzahmjSeeYdPducWme3BVDceUSb5EzF/RjSDi4yHcTWJS0TcPf195p42O1G6tLw5zfmIu2+PWUq1L4pLualboUbaDtwqg0WaLWKONi9tJkOS1OMz4hxqEbWBAtFNJLHC5K+OXcV8Yt6C7iB2dEZ4c26MAi1pdMqhFjxYiCGYKZ4lyV9xo8tWcs5fiUIi2PKyLQ9SMRQbhXIcb9ENby2D/ijh5AVpbBew8iaUQQKg83Yo0z2PwTWyNFuXECAl667XaTNZEMVUjo5yU/OtktVZiH6ZfvEFwj+7OpLBiZ3sFgp/7EHcGXa0FL6BcXuwfQ== filip@pytloun.cz
+          user: ${linux:system:user:filip}
\ No newline at end of file
diff --git a/openssh/server/team/members/jbroulik.yml b/openssh/server/team/members/jbroulik.yml
new file mode 100644
index 0000000..d7cfcff
--- /dev/null
+++ b/openssh/server/team/members/jbroulik.yml
@@ -0,0 +1,20 @@
+parameters:
+  linux:
+    system:
+      user:
+        jbroulik:
+          enabled: true
+          name: jbroulik
+          sudo: true
+          full_name: Jiri Broulik
+          home: /home/jbroulik
+          email: jbroulik@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        jbroulik:
+          enabled: true
+          public_keys:
+            - key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDCBPHunnzTMg2I88ZIaiQ5eJYJRq/hQcB5UtDZTC7hO0ce+oEpftcLQiQ69xKbOPb5xiK6VMJd6a53gZykabMTov6y+nECMr4B1i6tgK1NPCU/sGhvsUKeiRo7ZVMScRPuJuTGRLjR6Ac3pRrwrWpmoRvJtLnbrvjEYlt9V7ui/VFkl7uiPQc3AjNiSkgBekDGtrqZktjUstEosucjfriF/PVtlZqha7d3rHLpK1KBzzaSMNMxCgBitEtqjgHLtcR1H/KgPQpYAwkokmvAGH8/fqcd+tpmp6hiH3k2Haf8EjVBTcw71fbmqC0rpL8/r74jyYAmkfPG8LISb/T9gPcV jiri@jiri-Mirantis
+          user: ${linux:system:user:jbroulik}
\ No newline at end of file
diff --git a/openssh/server/team/members/jcach.yml b/openssh/server/team/members/jcach.yml
new file mode 100644
index 0000000..8ab2a81
--- /dev/null
+++ b/openssh/server/team/members/jcach.yml
@@ -0,0 +1,20 @@
+parameters:
+  linux:
+    system:
+      user:
+        jcach:
+          enabled: true
+          name: jcach
+          sudo: true
+          full_name: Jan Cach
+          home: /home/jcach
+          email: jcach@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        jcach:
+          enabled: true
+          public_keys:
+            - key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCwAqWUvMAPTh4euvGwhLU3GjlAHVzKvlclKdg1VqmWAZI1Nd+GjKhop5kS3hMk+HCg4bgfE5nAEsp3mF78c+XXDZot1T1Sxsd0SfatkMycXgeK4l1U6QtouNR//7wEv4gPA5la7T5ktgwk7hfjnc9Jl84yS8xA1d5gsgOhQw4wHYQquyOcOA5rN8ylh7P+tEfJSx4PWlfsu9M8IZU9WvftPxNbmUfVF+GuwPcNgbAtMi3Oz2Zg9+6W4gnwfJiufXU+onDa2e5tL8ZsGqEbTQXIx13sg0ilMIT6WpbTtbCe81oZYokAMGY2hlbubhtHgGSQhBI4/qgE7/CsD4TNtuOFTAy8Y6lzvoDsTzR51ApUFHHQEjlsf7AfQFJF3Mb5/fy84K0PF2chz4XwXeO9ZbUGOvY9P349gqyJRIV29V6b8m2aqKYIHO/CRxYk52H1UY9SlCsJq9G+7qjHbugV+35+Za1/RFc0l+80Ei/GnfkYYNxpxHNM6r4sM2mte00lWTQwaSreFIVz/fRlKiaok1hHwwUNxgifdtcdIm+7RGnBgV9MoNGYN4AESKTnj7tr6OIOSLaZm8YbPJDW3VmpSmwGfHpOfI00lfymbKsR5ytn6nTLVHOkfU6pI4+LpUc0Jb9+Szrn+5QA8bGp6yn2DTCzHNW/mR5rrHYUY6o9m8/W4w== casek@casek14NB
+          user: ${linux:system:user:jcach}
\ No newline at end of file
diff --git a/openssh/server/team/members/jjosef.yml b/openssh/server/team/members/jjosef.yml
new file mode 100644
index 0000000..210162a
--- /dev/null
+++ b/openssh/server/team/members/jjosef.yml
@@ -0,0 +1,20 @@
+parameters:
+  linux:
+    system:
+      user:
+        jjosef:
+          enabled: true
+          name: jjosef
+          sudo: true
+          full_name: Jakub Josef
+          home: /home/jjosef
+          email: jakub.josef@gmail.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        jjosef:
+          enabled: true
+          public_keys:
+            - key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDkK55PVyvnhW2XiIyDUTWOaW1frsd7g9t8SLRmjtEjKqJOBaRk48bSUfcV2twGcSOq3E2dUikh3URobYIZ6WBEiWrl1e7MYCJJAE+8qzVoskk01mC6tp9HGbsSRKrZTgpjzReM+kN6jffi/P1rSqgeg4U0O99N2aWqdfc7UJPFM09z9nqfB1Gj4HUnBkC1X+di4U3S6W8q62JLgxuK2MAry3xSnPztFVH5OXXbBltdVIxshOHj9i8wyof9iFHGdjFNvB+c5I3RJ2HRmmmHm3zey9iHU7PNIppXKglUFZ0EKIB4LsDjL6xrEjo2A5tfCaVZLNJgP95tdbGEcYQuDv3N jakub.josef@gmail.com
+          user: ${linux:system:user:jjosef}
\ No newline at end of file
diff --git a/openssh/server/team/members/jpavlik.yml b/openssh/server/team/members/jpavlik.yml
new file mode 100644
index 0000000..135db8c
--- /dev/null
+++ b/openssh/server/team/members/jpavlik.yml
@@ -0,0 +1,20 @@
+parameters:
+  linux:
+    system:
+      user:
+        jpavlik:
+          enabled: true
+          name: jpavlik
+          sudo: true
+          full_name: Jakub Pavlik
+          home: /home/jpavlik
+          email: jpavlik@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        jpavlik:
+          enabled: true
+          public_keys:
+            - key: ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAylDZDzgMuEsJQpwFHDW+QivCVhryxXd1/HWqq1TVhJmT9oNAYdhUBnf/9kVtgmP0EWpDJtGSEaSugCmx8KE76I64RhpOTlm7wO0FFUVnzhFtTPx38WHfMjMdk1HF8twZU4svi72Xbg1KyBimwvaxTTd4zxq8Mskp3uwtkqPcQJDSQaZYv+wtuB6m6vHBCOTZwAognDGEvvCg0dgTU4hch1zoHSaxedS1UFHjUAM598iuI3+hMos/5hjG/vuay4cPLBJX5x1YF6blbFALwrQw8ZmTPaimqDUA9WD6KSmS1qg4rOkk4cszIfJ5vyymMrG+G3qk5LeT4VrgIgWQTAHyXw== pavlk.jakub@gmail.com
+          user: ${linux:system:user:jpavlik}
\ No newline at end of file
diff --git a/openssh/server/team/members/lmercl.yml b/openssh/server/team/members/lmercl.yml
new file mode 100644
index 0000000..4fd4707
--- /dev/null
+++ b/openssh/server/team/members/lmercl.yml
@@ -0,0 +1,20 @@
+parameters:
+  linux:
+    system:
+      user:
+        lmercl:
+          enabled: true
+          name: lmercl
+          sudo: true
+          full_name: Lubos Mercl
+          home: /home/lmercl
+          email: lmercl@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        lmercl:
+          enabled: true
+          public_keys:
+            - key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCy6mFrr4oNdLjT5wBZj1+KXNpdawnGGWEevDBQ2SWFjxBFujkWVLiW1kxLTpLVSnuoE5FB7doRIsT/CDe9IU5OhsJ+z6TT56R/pfVKrVnSB1rgrwqdezjgmYEM6kTWiH2GKJE0yiQEPgagK8Rz5Zl420JkhbFWnL7EGPhxNtmYMGDTZwUTzP0KYmytyeH15OqNIiBGTrp1t2bTrVB8HRnUp0uDpfoWAUnsijVGNe1j1bNKtDO0Z9LAWx3eUyxIk4cdpX/EeWJg8jNrSMxtAZZ7Hhm/WInNSNqcHcZ1rEYCAjENxo1WVOuA/aqUqc5xaAipWNon4Rk0e0IUAaFOfLvN2lIuilUZ5XKHDe7a2crkGPnotheT9FgaEHOeFtpuhSaygeZHTMR197jeocgjWIkPqHjVAGSQqQf0TAdNuN73QPTigbbfHWWc1d8KlCM5BqJUXMHPG6BasE1sI/4ykYbxN/DAEvVJ4+rdIlqSdedd73ZAseVQjDtpzD8diScGrpdOhZnTm43q89F8dIFv7tt1TjIwvfcDQNSBjyyKcYpj+NTyW2Zk7qWDVz+lzH0ToYk/rOKkGlrsRy7OwOnmyKR8IcIOL7Bowj895ThCX8tBrdLu/m55ojBOcZiCpawCm7K55ri1Ar6i8cO+bHDh11kKRa/utRRSQTpsW0sbCsamzQ== lubos@lubos-ThinkPad-X1
+          user: ${linux:system:user:lmercl}
\ No newline at end of file
diff --git a/openssh/server/team/members/mceloud.yml b/openssh/server/team/members/mceloud.yml
new file mode 100644
index 0000000..62dc444
--- /dev/null
+++ b/openssh/server/team/members/mceloud.yml
@@ -0,0 +1,20 @@
+parameters:
+  linux:
+    system:
+      user:
+        marco:
+          enabled: true
+          name: marco
+          sudo: true
+          full_name: Marek Celoud
+          home: /home/marco
+          email: mceloud@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        marco:
+          enabled: true
+          public_keys:
+            - key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDmrJJsRR1dIqaomk83+sn5OnRLvVqrxtROT2uO83W0C4036t3OfJEBL2COJ4Z1iQmyoQUcIpRdJns+Ft8GpVEEQ+mW4eo33jhVEkfLBzRTE7f/WqDmMeDbdxO7LdUNlIIc40KBPcnJWvEorqV2z2UF0+xqittTE34A3CgF82BI2Nx6vCNhgnJJnCyYisD+wT4f+Ovor3Rm2s6zdnJRqcLgx5lkNx6fM2ffkD36MjyPyVYWvFqw68kEsBPcpB0EmiINKQRg3A/iPvUgRWMl9nSvSMVopkbTOBpSK3H9hzGCLiQJvE8pGjHhb7SOix0p0sFdNrNRiC5ayaGQUDQgWH8h marco@marco-MS-7699
+          user: ${linux:system:user:marco}
\ No newline at end of file
diff --git a/openssh/server/team/members/mpolreich.yml b/openssh/server/team/members/mpolreich.yml
new file mode 100644
index 0000000..8a01168
--- /dev/null
+++ b/openssh/server/team/members/mpolreich.yml
@@ -0,0 +1,20 @@
+parameters:
+  linux:
+    system:
+      user:
+        mpolreich:
+          enabled: true
+          name: mpolreich
+          sudo: true
+          full_name: Martin Polreich
+          home: /home/mpolreich
+          email: mpolreich@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        mpolreich:
+          enabled: true
+          public_keys:
+            - key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC0N+ds8BGTR+ZQo9NSRGRbjv3T8AbPmtSw2nClXxetRdmHpM/mU7/5iD7qfkCXtNptKeCG/Qk44wlijnAtjztJK1qfvyphHe3etZxLnqhYMm73Yy++yKPE/ywFPFb+7kd0BDy2iZqohZpX3gUi5iDnvXUInHNqqtTv3xFe2kmn3lq5bSRuUMtr61nZ7z/fkX8kNfoGxKrm7bhSo5zq4sjTrj3lk1LKZc1HYji3RwrzBM0z4eyed1BaJyDNtG+eFN4nOnvVn59452AR8SmKJXRErk37rEoQn80xszypzybooFPN5dpdB6u9b4xquFCOD83usb8kEjKY9VIYGuXxEEts1KIF20J+xd8UnZU8d4JL50G8JY8zdNgurR3ZyMD2okuord4cpHF8SVecsAyRV6nuhDxVtF2Xn/RriY02jrLoRPsS+3nIrKt9H8vpQZMYJ+jgEpekZhhVfz4AP3pATzOrWENzNXj5G1bLJs1C9aTtwE27EnKW73XekX/GLsehCwsQ21JvDX8PMxJwLVfqvkRlrc5GILEIVgjZ82Cj6Eens1QobymRAEWuEpZxkPx6u0kGO62ri8zFx8+NYwYDz3mwhHDRT34T/Rvzy/9V9xVjkUQOj9cZ3eYBnC1MffJjx8heHDmSQmUd+99zKa9Hzr74z3AvR3AIgFqmu7kx5fIMew== ubuntu@thinkpad-x1
+          user: ${linux:system:user:mpolreich}
\ No newline at end of file
diff --git a/openssh/server/team/members/osmola.yml b/openssh/server/team/members/osmola.yml
new file mode 100644
index 0000000..653027b
--- /dev/null
+++ b/openssh/server/team/members/osmola.yml
@@ -0,0 +1,20 @@
+parameters:
+  linux:
+    system:
+      user:
+        osmola:
+          enabled: true
+          name: osmola
+          sudo: true
+          full_name: Ondrej Smola
+          home: /home/osmola
+          email: osmola@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        osmola:
+          enabled: true
+          public_keys:
+            - 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
+          user: ${linux:system:user:osmola}
\ No newline at end of file
diff --git a/openssh/server/team/members/pcizinsky.yml b/openssh/server/team/members/pcizinsky.yml
new file mode 100644
index 0000000..d702687
--- /dev/null
+++ b/openssh/server/team/members/pcizinsky.yml
@@ -0,0 +1,20 @@
+parameters:
+  linux:
+    system:
+      user:
+        pcizinsky:
+          enabled: true
+          name: pcizinsky
+          sudo: true
+          full_name: Pavel Cizinsky
+          home: /home/pcizinsky
+          email: pcizinsky@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        pcizinsky:
+          enabled: true
+          public_keys:
+            - key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCt9HA2bUwCVGGdUjyFzdPFp0j2z9XanLW9gHZ3BhB6Wc4ficU6zmbqYxrHUvdmUrRJbLMEAo9JDlzAIw4CPGhRkD3d7HfnmlEYcEeizLnnC+CmKo3+mrwkQIzWIz6PJOh1kvp5uaNp4ztjRGXXmPzcR0nk4jRD89gLHvH9EYStxZI6nsi3mmWR/LhgIhijb8p63duhE4HuK/RRRjeDQaUsbTG9TMEskY5ZI3p/QM55wlml9F8QJrtwxpaIPI5Fl8lflq+4YcoqgDIBFc6nwubIuiNY4gPJ8s1SQfsfxHSOJpFPZDwi76dxUpthtJrU46fqRvXPzTKoS29WZ5pSAY6p pavel.cizinsky@tcpcloud.eu
+          user: ${linux:system:user:pcizinsky}
\ No newline at end of file
diff --git a/openssh/server/team/members/pjediny.yml b/openssh/server/team/members/pjediny.yml
new file mode 100644
index 0000000..7a4b17d
--- /dev/null
+++ b/openssh/server/team/members/pjediny.yml
@@ -0,0 +1,20 @@
+parameters:
+  linux:
+    system:
+      user:
+        pjediny:
+          enabled: true
+          name: pjediny
+          sudo: true
+          full_name: Petr Jediny
+          home: /home/pjediny
+          email: pjediny@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        pjediny:
+          enabled: true
+          public_keys:
+            - key: ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAgEAgPX2oPwcmBMjf46UC+1vUBnKn9iBG88VD7lNiMN2UGBNihfCfSt4vOSNcVotyCSTrgm1dzHWN3nDt/fYiWvEimVE8VrawU9nJQ48o+M546SMCSYL9jqm+j+oSTd9CP7TeMgRw7hob+/vXREJVmol9cynsQei7HoFeo6iw7ZYMqgI1qOtHwN5Xep/7XZbQ0znweQY4hvywl47dK1GxnoQQUi1v30MzKRVIasf3cCMVr3qJ3ECxyQ2+Po/899jYLDdeJvJeG6dJQf1aDEDSHkoEjVup4jl5xu8y3jAYxOfKwMPe+Lb6lF3zRCB9QRZN71cxLVm+w7LfLtgLfsKv3xPeNpvvOvEQOdFg5jx9Z8w1KRkU2Zkc4fRTcWis89/9va3QL7W1pini3fM+WrpFatc02i7KjoJApeNQt0pwFl33DW+Zz8bQQZT7PT7LWNZjuvB4YmZYA6t9hj5rzUdUN2IyD2mNvPeNykdCLuFh7N7A67tpFSh48UHGld2ckdNmPQR8Ev50Fxu9jj13Cs4l3VMxzOF5I6VOS7g5vEKcCpIyDTtjSk4fGZhyeea5l8unCQzMw9UjkZjgy4nTZvxeqdRNnXSMrb0SzNuqbSM1J67GAUPxfxjb5HSmCYK/KSK3RXHrhwrW+t6B5x72KCCmYYJfUwofm6GIPEYGDxPL/VWGKM= pjediny key
+          user: ${linux:system:user:pjediny}
\ No newline at end of file
diff --git a/openssh/server/team/members/pmichalec.yml b/openssh/server/team/members/pmichalec.yml
new file mode 100644
index 0000000..c397cd4
--- /dev/null
+++ b/openssh/server/team/members/pmichalec.yml
@@ -0,0 +1,20 @@
+parameters:
+  linux:
+    system:
+      user:
+        pmichalec:
+          enabled: true
+          name: pmichalec
+          sudo: true
+          full_name: Petr Michalec
+          home: /home/pmichalec
+          email: pmichalec@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        pmichalec:
+          enabled: true
+          public_keys:
+            - key: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGwsfObHWHqBv6UQBjvm0nkgnAGc5MZPuQXJ3ln4sM1P pmichalec@dontpanic
+          user: ${linux:system:user:pmichalec}
\ No newline at end of file
diff --git a/openssh/server/team/members/rfelkl.yml b/openssh/server/team/members/rfelkl.yml
new file mode 100644
index 0000000..1b7fbf4
--- /dev/null
+++ b/openssh/server/team/members/rfelkl.yml
@@ -0,0 +1,20 @@
+parameters:
+  linux:
+    system:
+      user:
+        rfelkl:
+          enabled: true
+          name: rfelkl
+          sudo: true
+          full_name: Richard Felkl
+          home: /home/rfelkl
+          email: rfelkl@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        rfelkl:
+          enabled: true
+          public_keys:
+            - key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDlvQKWbEQ8bM2rtE35sA5+y//YKMLNJ48d+/RxWlUx6G8xJusUhrKZuMRMgN5NqJQ92Z0Yd2lulsPeKEfSbqAxBxmNZ+mAAy8w8P/BHlQImi2HgMpWtQ5yExsAvCUAqq6KclJBhzjArg4+ztmKmNvjM8ZktJYeCM8VJ+qT01B8/3+frgltIDCDcC8YpRwbAt7aLjuB2Jk5Q9daQbtZ4XyXwHgPDpyZUkcuueUk/iklUBkAh9P3CFJBpttXEyKI0+cJAtM9vCXXPWmWt7nFAyQ8nH9+lTv/ZuD+pipKJBW2sp8+fFUWJ/Z6GzWhyh2KxiY7eK3kgabg1i7FtLFtRbZj richard@richard-inspiron
+          user: ${linux:system:user:rfelkl}
\ No newline at end of file
diff --git a/openssh/server/team/members/skreys.yml b/openssh/server/team/members/skreys.yml
new file mode 100644
index 0000000..df76889
--- /dev/null
+++ b/openssh/server/team/members/skreys.yml
@@ -0,0 +1,20 @@
+parameters:
+  linux:
+    system:
+      user:
+        skreys:
+          enabled: true
+          name: skreys
+          sudo: true
+          full_name: Sergey Kreys
+          home: /home/skreys
+          email: skreys@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        skreys:
+          enabled: true
+          public_keys:
+            - key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDeg+Wj7yTBRLvsu2LKgdKyb6FW4n3t5me0LAZhGkP9mbsYonE5sN0OwI42ZPYeU1O35c+E4n3GJ4ZzdJYRUQJtqO5EHUMNyXELEcS8GZKydg5A0KPs69bB8SPVlTfO5D77sAWwG/3JIQD/uI21jqCp3a4lyEw5X2HjMbuz2Z4cW7Y69i73RdIYQdYb0X5+mqcVz8YEyuMZi2zweMxsvOczcanQ/4J6JKtC8imJu23Gr0TeS15OJCFh7yGviVp//LBzusXreqlEf7Tzx2yHkJ/rqULIIlPpBC1TFD7sgA72j3kq9rw3ZeQAwmaJA82L3KzagkgSQprEsRYnQ+wSWXkj skreys@skreys
+          user: ${linux:system:user:skreys}
\ No newline at end of file
diff --git a/openssh/server/team/members/smatov.yml b/openssh/server/team/members/smatov.yml
new file mode 100644
index 0000000..8c21e28
--- /dev/null
+++ b/openssh/server/team/members/smatov.yml
@@ -0,0 +1,20 @@
+parameters:
+  linux:
+    system:
+      user:
+        smatov:
+          enabled: true
+          name: smatov
+          sudo: true
+          full_name: Sergey Matov
+          home: /home/smatov
+          email: smatov@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        smatov:
+          enabled: true
+          public_keys:
+            - key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDgBHACRnY/VEEDFE63xDp4bx0zgWY4h1aB9/c2f962HtTNaQ6R/Cz6DLISaB5th8qzrzbvjn9WcpHdxyTm9BqkLLzB4qe7fnebPtn6zGczZ9Btrjk9R8Fuw6DZhSucSk572r/gVIY0O3Z1LajHkNr0ZTQS8AY3fgn8rXMD2vMOruOzyTOmfWKmEw7e+JYUqoFXHhE3Dd7hGQ99d6kH2N3zXfM2rzfjshGAq0kOi5dN4Hx6QIXZapt0t9TzpYTkK5SaVzuEVyVaKRLYSa/rdPjHkKqDFa99RcQ+OI93uvT9CFNWDFIC/TDJ2M+7PQbm836EICXXVWKjQ2NUnQJeOU5v smatov@ubuntu
+          user: ${linux:system:user:smatov}
\ No newline at end of file
diff --git a/openssh/server/team/members/tkukral.yml b/openssh/server/team/members/tkukral.yml
new file mode 100644
index 0000000..e53ce2d
--- /dev/null
+++ b/openssh/server/team/members/tkukral.yml
@@ -0,0 +1,21 @@
+parameters:
+  linux:
+    system:
+      user:
+        tkukral:
+          enabled: true
+          name: tkukral
+          sudo: true
+          full_name: Tomas Kukral
+          home: /home/tkukral
+          email: tkukral@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        tkukral:
+          enabled: true
+          public_keys:
+            - key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDRM6WquKic6i6v/JbNR2XuMqCCYqlfyGU1K7XHK7tWFordRLz2/o4S76sZULBTXR0rLHtynvHM4QHlloE1/XJnd0BtI/3y8aY0OkXyu6PHvTC8Az8SyGj2XAcaiPlaT2f+oTJHoPc9rxLhMMD7OTwias6QeVKB3UrT0OaHfy2wWCF7t8cQeofi2ldEHKeCsC1jrT1vaVuoThQgZ00h0rNk4COPZEW34FXdmdJFUmZcUIDMa71HtYgnn4gmE8sUiJ/j6ardvPaycCDT9j1GW1Yu6UVLBWOoMMCb04bDJiidlvY1fQqbM/G4cR4ZPHFZ0RQiM2+wnRaB5RCmBVgNT0Tj
+            - key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQDIcEZKBvsDAVOeUyucpTXH7nubNjXxlQSMf6oXmcXW5EFzQ7bcBjUJIC2/w4NV2v+/qbbvax1BiI5wU3TWM+LKx6VyhexwrnGQ4p9xprbAIiYaDAbT4KsSOyFnItmbD3qo5JzYruF/jxpus2fV/rBjfsgENHSDSL7ZNO5XLRhdfdcjGrReYf6MU+Py90mOxIcafJQ0nI2PkZ4JURtiJmd/lBp+QJH+6JpQ4Fjm1C0stJFLZfyn0r9YtMXs7j3LK5QaypbZO63NvBKp/1GhZUbC48Cb19SqIoBfQl8JroT93PFzhcQaXd/iXbbBg1WPhEJLAaJEJ7aHGVN+93YHoukP+AFobrpCES3LPFrwbRXpjZNCbKtQCMS1oZHLNBrIsa6uuvAhd9ni3Q/iJq4O6uZ8g0gW69+VI3FT7l3adBCBlOQUVvN51k2k3Q18oeFZAuVPoH49gUDXgxaUHjA5nE0hgPd6KaZkh5UGs/8jyvDLRLVRCUGYfVZcXlMAa5uc1SaUGR3XZgciUlY9DWAGTS8mA4ZnD6mXdnQmjDqhaI2S9jFmuO1Z4YAlHCs+qqMmnFBwbIZuIJaTgl9blr2pi8g6SVQGOE8eA9SDZYTH2EM741ZgVxBPTC/QjMcRtERWNTzfK+R6nZgsdozi9w8MMlmLgvjhney+YuhPhBI2YUwafV2wngqcz7qKP35Jx4E0AeI/Z6z2duuP4JHtaswkR7Zwk4/ebRm1DGIvImh4UxucumEMpXrNOyPZqyJwOb1GM7U5w/kfGSU10y6Y2/db23eYvIb2c1aIbKcGI+Db+1UuED9KcmI9JuYnxqzQZe66T56s+jOi0zyjQDlx9gu2ib/ORE+XVuKqvqii/WF4dTK42YgzTY1RX4wag4mNOEhY4hX+VA6eEFLruqIE+zQ9L+vjf4w2jqpC2CTtY+UtgAbkpZWn9/00CqS9EAh3cmYVgL8se+mfo9iQkcOrHoJ/hN9wyWOK8yQXACMtm/zdFyMtCzhWeSvz03SPz4o1L5QcS3VG+FF6XE5jb0KCWH2C0U6ufgKhpna+LXmG1nXGtay7KqUkQeIwOXq2nq2xehPwgfM25xIPHJ+t1dQMstXrR/h0Bs9lHM7V7mTcgA4MtuYM1mwUpuK9QYantvWE7aq1KtFwFBaP/4swtSoxWsotIDv9GxJhWRJ8aUJIAbsN2znMlbtsIDGTMlWLW3pbpr+1ANAZx6YiQOSCkDDzk4eaFMhlGaa+4sBVfIU0QwnO9swOjQMQH+3/qaeGl9LOZEf87kwFKnQDpMEdDl4vmpsSwzcyGT8AIFl/ybrrl///v3cvCZe1lDJZxPag6KT4BOwycoWTKfL5ll06v+JzW67XqkQT
+          user: ${linux:system:user:tkukral}
diff --git a/openssh/server/team/members/vmikes.yml b/openssh/server/team/members/vmikes.yml
new file mode 100644
index 0000000..07d62f3
--- /dev/null
+++ b/openssh/server/team/members/vmikes.yml
@@ -0,0 +1,20 @@
+parameters:
+  linux:
+    system:
+      user:
+        vmikes:
+          enabled: true
+          name: vmikes
+          sudo: true
+          full_name: Vlasta Mikes
+          home: /home/vmikes
+          email: vmikes@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        vmikes:
+          enabled: true
+          public_keys:
+            - key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXng0oUbSGMlZCamlSWuc4jzgTym+p9u0ukbQvaWW2cneOhLw6QbVkOgRETBIfXitiIB+5nNqTYy7lrYqc3wofjZJzonR07oFoNcyhITLnKjLHV9eZ8aRhwKL2PONyp8d61cdm5zqeth1tMP8uBB+SOn+aD12Hu5tfTJjQeH286p+Xt75Llo/bHybfYmt2HaV9Ts6qb/Kw3Eom0Jkjh8837navek/PnFF7WAkM8GvP5Taqzp4Tmu2UfLeMv4459q+ZiS56WRbcixBQGb7uUUy4jkuis0batBNoY0pwMaaTj8KzSwrQ8shc/LuU2QhR7xwXVIgZR/Yqa/Ojw/U36N4t v.mikes@tcpisek.cz
+          user: ${linux:system:user:vmikes}
\ No newline at end of file
diff --git a/openssh/server/team/members/vnogin.yml b/openssh/server/team/members/vnogin.yml
new file mode 100644
index 0000000..e8c1df9
--- /dev/null
+++ b/openssh/server/team/members/vnogin.yml
@@ -0,0 +1,20 @@
+parameters:
+  linux:
+    system:
+      user:
+        vnogin:
+          enabled: true
+          name: vnogin
+          sudo: true
+          full_name: Vitaliy Nogin
+          home: /home/vnogin
+          email: vnogin@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        vnogin:
+          enabled: true
+          public_keys:
+            - key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCiuKuC+aACWPhwTg1liOOGMAvL3zSMcgU2ZfjN6NMLMyekJqD7sr9NwJkeXEt6wr1YSelfYDcUjdu2ZyQHzfQ8CaNrTAlrNYUc+UlUqqydbO1d89j/MMn8fUAuFBu1vLMOqfNW8nPRmy327blmvSxBq2Oz9wSf/z/3lB4TVJKGwB61ciQn08FwFAitCN9cdfBthjRJXrhs/7kt0/An8O0p43LNa1aQ5QeaxLUAqMZa3VxkAaEwFzm/E/Vg4SPEJLijfCWYPozkZttoS2ud0HAJR87jya/BaCrtSAOqX55cLzWGABlvDWFprwo/59aJw7WlE8Y2bgxhtnFRdaHuIk7T vnogin@MacBook-Pro-Vitalii.local
+          user: ${linux:system:user:vnogin}
diff --git a/openssh/server/team/members/vsaienko.yml b/openssh/server/team/members/vsaienko.yml
new file mode 100644
index 0000000..bd532f6
--- /dev/null
+++ b/openssh/server/team/members/vsaienko.yml
@@ -0,0 +1,20 @@
+parameters:
+  linux:
+    system:
+      user:
+        vsaienko:
+          enabled: true
+          name: vsaienko
+          sudo: true
+          full_name: Vasyl Saienko
+          home: /home/vsaienko
+          email: vsaienko@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        vsaienko:
+          enabled: true
+          public_keys:
+            - key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDPagYDP2Dt5cGMC/HYlv+5AVYx/v9yRiOSJuQb/XqU35PLW5CVroSAaEA33IIAOjyte8DRrmi4UxErX00V7+F9Dwebt0qkEX35FE91E+BM2L3S2Zcuuh4gHDDp5khsHSTHdgiFpMhRREFesuG6P7ekQ6gCBzKK4R+TTLVTKWYn1/TXQIvMUAO+umGykHQ2T6memO2eGivnSSNkKCGOjODquyP3JMmt9Dk7bP5RR6kRLSD9HknFCIFds2fkcdbOhZMv+XIqwOVAWhRPksafOMktmaHNyy3k6IcMPJroH6H4P/GsQmrPL8IXpDP01vTdeQYM47YqPC14L3T74u71YJGF vsaienko@mirantis.com
+          user: ${linux:system:user:vsaienko}
diff --git a/openssh/server/team/mmo_devops.yml b/openssh/server/team/mmo_devops.yml
index d3eb756..60fe258 100644
--- a/openssh/server/team/mmo_devops.yml
+++ b/openssh/server/team/mmo_devops.yml
@@ -4,8 +4,12 @@
 - system.openssh.server.team.members.dszeluga
 - system.openssh.server.team.members.jmosher
 - system.openssh.server.team.members.ecantwell
+- system.openssh.server.team.members.lmercl
 - system.openssh.server.team.members.mrelewicz
 - system.openssh.server.team.members.mwilson
+- system.openssh.server.team.members.osmola
+- system.openssh.server.team.members.pcizinsky
 - system.openssh.server.team.members.pmathews
+- system.openssh.server.team.members.pmichalec
 # Missing- team members still in flux
 # - system.openssh.server.team.members.bpiotrowski
diff --git a/openssh/server/team/oscore_devops.yml b/openssh/server/team/oscore_devops.yml
new file mode 100644
index 0000000..2ba780a
--- /dev/null
+++ b/openssh/server/team/oscore_devops.yml
@@ -0,0 +1,5 @@
+classes:
+- system.linux.system.sudo
+- system.openssh.server.team.members.vsaienko
+- system.openssh.server.team.members.vnogin
+- system.openssh.server.team.members.ashestakov
diff --git a/openssh/server/team/tcpcloud.yml b/openssh/server/team/tcpcloud.yml
index bdf29be..6b5205b 100644
--- a/openssh/server/team/tcpcloud.yml
+++ b/openssh/server/team/tcpcloud.yml
@@ -1,3 +1,25 @@
+classes:
+- system.openssh.server.team.members.akomarek
+- system.openssh.server.team.members.atengler
+- system.openssh.server.team.members.dcech
+- system.openssh.server.team.members.fpytloun
+- system.openssh.server.team.members.jbroulik
+- system.openssh.server.team.members.jcach
+- system.openssh.server.team.members.jjosef
+- system.openssh.server.team.members.jpavlik
+- system.openssh.server.team.members.lmercl
+- system.openssh.server.team.members.mceloud
+- system.openssh.server.team.members.mpolreich
+- system.openssh.server.team.members.osmola
+- system.openssh.server.team.members.pcizinsky
+- system.openssh.server.team.members.pjediny
+- system.openssh.server.team.members.pmichalec
+- system.openssh.server.team.members.rfelkl
+- system.openssh.server.team.members.skreys
+- system.openssh.server.team.members.smatov
+- system.openssh.server.team.members.tkukral
+- system.openssh.server.team.members.vmikes
+
 parameters:
   linux:
     system:
@@ -12,141 +34,12 @@
           sudo: true
           full_name: Adam Skotnicky
           home: /home/askotnicky
-        alholanova:
-          enabled: true
-          name: alholanova
-          sudo: true
-          full_name: Alenka Aja Sfinga Holanova
-          home: /home/alholanova
-        vmikes:
-          enabled: true
-          name: vmikes
-          sudo: true
-          full_name: Vlasta Mikes
-          home: /home/vmikes
-        newt:
-          enabled: true
-          name: newt
-          sudo: true
-          full_name: Ales Komarek
-          home: /home/newt
-          email: mail@newt.cz
-        jpavlik:
-          enabled: true
-          name: jpavlik
-          sudo: true
-          full_name: Jakub Pavlik
-          home: /home/jpavlik
-        tux:
-          enabled: true
-          name: tux
-          sudo: true
-          full_name: Adam Tengler
-          home: /home/tux
-        marco:
-          enabled: true
-          name: marco
-          sudo: true
-          full_name: Marek Celoud
-          home: /home/marco
-        filip:
-          enabled: true
-          name: filip
-          sudo: true
-          full_name: Filip Pytloun
-          home: /home/filip
-          email: filip@pytloun.cz
         vzach:
           enabled: true
           name: vzach
           sudo: true
           full_name: Vlastimil Zach
           home: /home/vzach
-        osmola:
-          enabled: true
-          name: osmola
-          sudo: true
-          full_name: Ondrej Smola
-          home: /home/osmola
-        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
-          sudo: true
-          full_name: Petr Michalec
-          home: /home/pmichalec
-        jbroulik:
-          enabled: true
-          name: jbroulik
-          sudo: true
-          full_name: Jiri Broulik
-          home: /home/jbroulik
-        rfelkl:
-          enabled: true
-          name: rfelkl
-          sudo: true
-          full_name: Richard Felkl
-          home: /home/rfelkl
-        tkukral:
-          enabled: true
-          name: tkukral
-          sudo: true
-          full_name: Tomas Kukral
-          home: /home/tkukral
-        mpolreich:
-          enabled: true
-          name: mpolreich
-          sudo: true
-          full_name: Martin Polreich
-          home: /home/mpolreich
-        skreys:
-          enabled: true
-          name: skreys
-          sudo: true
-          full_name: Sergey Kreys
-          home: /home/skreys
-        jcach:
-          enabled: true
-          name: jcach
-          sudo: true
-          full_name: Jan Cach
-          home: /home/jcach
-        lmercl:
-          enabled: true
-          name: lmercl
-          sudo: true
-          full_name: Lubos Mercl
-          home: /home/lmercl
-        smatov:
-          enabled: true
-          name: smatov
-          sudo: true
-          full_name: Sergey Matov
-          home: /home/smatov
-        dcech:
-          enabled: true
-          name: dcech
-          sudo: true
-          full_name: Daniel Cech
-          home: /home/dcech
       group:
         libvirtd:
           enabled: true
@@ -160,160 +53,13 @@
           public_keys:
           - ${public_keys:askotnicky}
           user: ${linux:system:user:askotnicky}
-        alholanova:
-          enabled: true
-          public_keys:
-          - ${public_keys:alholanova}
-          user: ${linux:system:user:alholanova}
-        vmikes:
-          enabled: true
-          public_keys:
-          - ${public_keys:vmikes}
-          user: ${linux:system:user:vmikes}
-        newt:
-          enabled: true
-          public_keys:
-          - ${public_keys:newt}
-          user: ${linux:system:user:newt}
-        jpavlik:
-          enabled: true
-          public_keys:
-          - ${public_keys:jpavlik}
-          user: ${linux:system:user:jpavlik}
-        tux:
-          enabled: true
-          public_keys:
-          - ${public_keys:tux}
-          user: ${linux:system:user:tux}
-        marco:
-          enabled: true
-          public_keys:
-          - ${public_keys:marco}
-          user: ${linux:system:user:marco}
-        filip:
-          enabled: true
-          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:
           - ${public_keys:vzach}
           user: ${linux:system:user:vzach}
-        osmola:
-          enabled: true
-          public_keys:
-          - ${public_keys:osmola}
-          user: ${linux:system:user:osmola}
-        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:
-          - ${public_keys:pmichalec}
-          user: ${linux:system:user:pmichalec}
-        jbroulik:
-          enabled: true
-          public_keys:
-          - ${public_keys:jbroulik}
-          user: ${linux:system:user:jbroulik}
-        rfelkl:
-          enabled: true
-          public_keys:
-          - ${public_keys:rfelkl}
-          user: ${linux:system:user:rfelkl}
-        tkukral:
-          enabled: true
-          public_keys:
-          - ${public_keys:tkukral}
-          user: ${linux:system:user:tkukral}
-        mpolreich:
-          enabled: true
-          public_keys:
-          - ${public_keys:mpolreich}
-          user: ${linux:system:user:mpolreich}
-        skreys:
-          enabled: true
-          public_keys:
-          - ${public_keys:skreys}
-          user: ${linux:system:user:skreys}
-        jcach:
-          enabled: true
-          public_keys:
-          - ${public_keys:jcach}
-          user: ${linux:system:user:jcach}
-        lmercl:
-          enabled: true
-          public_keys:
-          - ${public_keys:lmercl}
-          user: ${linux:system:user:lmercl}
-        smatov:
-          enabled: true
-          public_keys:
-          - ${public_keys:smatov}
-          user: ${linux:system:user:smatov}
-        dcech:
-          enabled: true
-          public_keys:
-          - ${public_keys:dcech}
-          user: ${linux:system:user:dcech}
   public_keys:
     askotnicky:
       key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDO6EnDYaGdF/Nn6lntxDNnKanCsheZRdh8kA/6ImyeRSjT2cgepm1Fsgv7wXBYoy0OxhB5wgCp5Az/Pj4oLkG3g+G05sUPUxxGCGRiwjcnyQ/FTz4TzHglAVqgbdgWoQYf9Hg6EKZovvPcH3STbEwcl+MhLqvxz0wm5+StE+wvp6I9dEfRV+2/e1uepauOTZ1+Ui1DMNXiMefTlbiIBHzUk7RiwJWgqzQXBndgunmbJWSed8zC0Ug97waDOFIX/oKZmAmsv0NLJ2e/kC3oUTuziGT74F9sh7Pqiw/9HZxvP45hJwEvytfUjfuiikIBbmYdF7Je93czaG/qjXGN8YvP== a.skotnicky@tcpisek.cz
-    alholanova:
-      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDqBL5wlpl0HgT6ekRc9IGxMSCylAU1oZTqBl7h9+1g7EnJjhxq8/KR+6jmWl9wn0c2jvd2pPeMnqm3DKe0793RKW6b730QTyckwDpfoIkUtoukiuTgIXg0g6dNlWSPqhiYM1tretBhfEhZrvUfweZZfpOdZ5DxlDP/34cmwXxJRMNHSLK/SPpXthhp+2j/H/U6I6B/YUZkKABwSyJ/AuXfU9NvVXct5W2+i44FuB7ske7vRXJgbfTwRd5HgzF7JQTVBDLezN/am2dR0mCnuDkDRmYW0tOwF0NzwswBwMGfqFlQhNW/5HmanEfU1gBL/sv/M6QiN0MkrzY1fA6DiCER alena.holanova@tcpcloud.eu
-    vmikes:
-      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXng0oUbSGMlZCamlSWuc4jzgTym+p9u0ukbQvaWW2cneOhLw6QbVkOgRETBIfXitiIB+5nNqTYy7lrYqc3wofjZJzonR07oFoNcyhITLnKjLHV9eZ8aRhwKL2PONyp8d61cdm5zqeth1tMP8uBB+SOn+aD12Hu5tfTJjQeH286p+Xt75Llo/bHybfYmt2HaV9Ts6qb/Kw3Eom0Jkjh8837navek/PnFF7WAkM8GvP5Taqzp4Tmu2UfLeMv4459q+ZiS56WRbcixBQGb7uUUy4jkuis0batBNoY0pwMaaTj8KzSwrQ8shc/LuU2QhR7xwXVIgZR/Yqa/Ojw/U36N4t v.mikes@tcpisek.cz
-    newt:
-      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3odU+3V2uDA2ptAFL9hrJRPNEEdAyztWOZFQ5Oyd9oerTGOU3p4xmrgWWjfKFKbYGhiiIUcYAol5PkTfKukGEkkjCHYA1t023soCaaAj85wCZCnw2zQNAziwxTYmAzTqgxiSvtZNMMrtJvFHRIRDzJ3M1lV0prWNWkMM1/3FAd4W49y6VT3fkMCo8uqG7CfGdgR2DgBCxf9KaNPfW5eDEPOgmE5lK8tVSEI6T+Cg7hbcTf4lFYnlFBnlQgp/0JstsM4Vbwb4B34LOpOsf2S8rrWk2xQMjwaMHXkc2s/E8iW3F5nVFuyEXYISFQIiAHw8dzC6CHgLcyHUVWwznKawZ newt@newt-dev1
-    jpavlik:
-      key: ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAylDZDzgMuEsJQpwFHDW+QivCVhryxXd1/HWqq1TVhJmT9oNAYdhUBnf/9kVtgmP0EWpDJtGSEaSugCmx8KE76I64RhpOTlm7wO0FFUVnzhFtTPx38WHfMjMdk1HF8twZU4svi72Xbg1KyBimwvaxTTd4zxq8Mskp3uwtkqPcQJDSQaZYv+wtuB6m6vHBCOTZwAognDGEvvCg0dgTU4hch1zoHSaxedS1UFHjUAM598iuI3+hMos/5hjG/vuay4cPLBJX5x1YF6blbFALwrQw8ZmTPaimqDUA9WD6KSmS1qg4rOkk4cszIfJ5vyymMrG+G3qk5LeT4VrgIgWQTAHyXw== pavlk.jakub@gmail.com
-    tux:
-      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDXEN5qmte4oMYFCMZtuNzWiu5M32Dp0OsfR1pSz5gMMQF1Sw3xEDXEATEWhyvJTuVtFQasWVcMCYzEPev8H54UK97dLlxHxEDD9PQYY2O+xu/Rq+p/jryJ/T3mO7LDjUUXtHkUnsDZ51G+sFAWktE+FifwrEDmAEnRucLqOzVhehelG73S3uqfxVsPTsW2CcVIZICKtvdODbgAVyCf1LRR0LJv4fXqcyebCbzIrk4NWJhc474TH88niC7PH5VfxSfXZdKoi3yKVMgqdGSUxGhkx3D5CwCR9K+kUnP0rE5GNIqoCiS8iNbWl6POfMPSxH/ckqZN1h8El6SEoPJzVNp9 tux@tux-workbook
-    marco:
-      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDmrJJsRR1dIqaomk83+sn5OnRLvVqrxtROT2uO83W0C4036t3OfJEBL2COJ4Z1iQmyoQUcIpRdJns+Ft8GpVEEQ+mW4eo33jhVEkfLBzRTE7f/WqDmMeDbdxO7LdUNlIIc40KBPcnJWvEorqV2z2UF0+xqittTE34A3CgF82BI2Nx6vCNhgnJJnCyYisD+wT4f+Ovor3Rm2s6zdnJRqcLgx5lkNx6fM2ffkD36MjyPyVYWvFqw68kEsBPcpB0EmiINKQRg3A/iPvUgRWMl9nSvSMVopkbTOBpSK3H9hzGCLiQJvE8pGjHhb7SOix0p0sFdNrNRiC5ayaGQUDQgWH8h marco@marco-MS-7699
-    filip:
-      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCcuHTjJ3CoWdkmvtag07bIWeyAMqFLAN+QApat7TXUcDYmm/neK4Asg3m/UicofZnB80cI4tjnB84Z8WazLHMxVTLwHbEqTVbXVeKebiZ5yn0yo4ndRzmppUfSvs0xcMysBwu+hYAnIDXTedctbciMSYKbuQ+b9XZ4mFZ/2RHG4QBA/dPUxJdCwvkBu7AOV+6zaRSR99UETr5nxICQUGVJBTy6VkCsch4mK3/K2SrujODUhytcROg+6ejV/aZHWH9xIFRBLfhmSFeOC6oneBWo4QBQ2tTZgb7Go744JpkhkoMfWQnR2s6cCgUN60BJ6j5snqmbv9/2CmgbI4UprC+E6lL04K/Jbgjv+fi3KqnCIpRiQzahmjSeeYdPducWme3BVDceUSb5EzF/RjSDi4yHcTWJS0TcPf195p42O1G6tLw5zfmIu2+PWUq1L4pLualboUbaDtwqg0WaLWKONi9tJkOS1OMz4hxqEbWBAtFNJLHC5K+OXcV8Yt6C7iB2dEZ4c26MAi1pdMqhFjxYiCGYKZ4lyV9xo8tWcs5fiUIi2PKyLQ9SMRQbhXIcb9ENby2D/ijh5AVpbBew8iaUQQKg83Yo0z2PwTWyNFuXECAl667XaTNZEMVUjo5yU/OtktVZiH6ZfvEFwj+7OpLBiZ3sFgp/7EHcGXa0FL6BcXuwfQ== filip@pytloun.cz
     vzach:
-      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
-    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:
-      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDCBPHunnzTMg2I88ZIaiQ5eJYJRq/hQcB5UtDZTC7hO0ce+oEpftcLQiQ69xKbOPb5xiK6VMJd6a53gZykabMTov6y+nECMr4B1i6tgK1NPCU/sGhvsUKeiRo7ZVMScRPuJuTGRLjR6Ac3pRrwrWpmoRvJtLnbrvjEYlt9V7ui/VFkl7uiPQc3AjNiSkgBekDGtrqZktjUstEosucjfriF/PVtlZqha7d3rHLpK1KBzzaSMNMxCgBitEtqjgHLtcR1H/KgPQpYAwkokmvAGH8/fqcd+tpmp6hiH3k2Haf8EjVBTcw71fbmqC0rpL8/r74jyYAmkfPG8LISb/T9gPcV jiri@jiri-Mirantis
-    rfelkl:
-      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDlvQKWbEQ8bM2rtE35sA5+y//YKMLNJ48d+/RxWlUx6G8xJusUhrKZuMRMgN5NqJQ92Z0Yd2lulsPeKEfSbqAxBxmNZ+mAAy8w8P/BHlQImi2HgMpWtQ5yExsAvCUAqq6KclJBhzjArg4+ztmKmNvjM8ZktJYeCM8VJ+qT01B8/3+frgltIDCDcC8YpRwbAt7aLjuB2Jk5Q9daQbtZ4XyXwHgPDpyZUkcuueUk/iklUBkAh9P3CFJBpttXEyKI0+cJAtM9vCXXPWmWt7nFAyQ8nH9+lTv/ZuD+pipKJBW2sp8+fFUWJ/Z6GzWhyh2KxiY7eK3kgabg1i7FtLFtRbZj richard@richard-inspiron
-    tkukral:
-      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDRM6WquKic6i6v/JbNR2XuMqCCYqlfyGU1K7XHK7tWFordRLz2/o4S76sZULBTXR0rLHtynvHM4QHlloE1/XJnd0BtI/3y8aY0OkXyu6PHvTC8Az8SyGj2XAcaiPlaT2f+oTJHoPc9rxLhMMD7OTwias6QeVKB3UrT0OaHfy2wWCF7t8cQeofi2ldEHKeCsC1jrT1vaVuoThQgZ00h0rNk4COPZEW34FXdmdJFUmZcUIDMa71HtYgnn4gmE8sUiJ/j6ardvPaycCDT9j1GW1Yu6UVLBWOoMMCb04bDJiidlvY1fQqbM/G4cR4ZPHFZ0RQiM2+wnRaB5RCmBVgNT0Tj tkukral
-    mpolreich:
-      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC0N+ds8BGTR+ZQo9NSRGRbjv3T8AbPmtSw2nClXxetRdmHpM/mU7/5iD7qfkCXtNptKeCG/Qk44wlijnAtjztJK1qfvyphHe3etZxLnqhYMm73Yy++yKPE/ywFPFb+7kd0BDy2iZqohZpX3gUi5iDnvXUInHNqqtTv3xFe2kmn3lq5bSRuUMtr61nZ7z/fkX8kNfoGxKrm7bhSo5zq4sjTrj3lk1LKZc1HYji3RwrzBM0z4eyed1BaJyDNtG+eFN4nOnvVn59452AR8SmKJXRErk37rEoQn80xszypzybooFPN5dpdB6u9b4xquFCOD83usb8kEjKY9VIYGuXxEEts1KIF20J+xd8UnZU8d4JL50G8JY8zdNgurR3ZyMD2okuord4cpHF8SVecsAyRV6nuhDxVtF2Xn/RriY02jrLoRPsS+3nIrKt9H8vpQZMYJ+jgEpekZhhVfz4AP3pATzOrWENzNXj5G1bLJs1C9aTtwE27EnKW73XekX/GLsehCwsQ21JvDX8PMxJwLVfqvkRlrc5GILEIVgjZ82Cj6Eens1QobymRAEWuEpZxkPx6u0kGO62ri8zFx8+NYwYDz3mwhHDRT34T/Rvzy/9V9xVjkUQOj9cZ3eYBnC1MffJjx8heHDmSQmUd+99zKa9Hzr74z3AvR3AIgFqmu7kx5fIMew== ubuntu@thinkpad-x1
-    skreys:
-      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDeg+Wj7yTBRLvsu2LKgdKyb6FW4n3t5me0LAZhGkP9mbsYonE5sN0OwI42ZPYeU1O35c+E4n3GJ4ZzdJYRUQJtqO5EHUMNyXELEcS8GZKydg5A0KPs69bB8SPVlTfO5D77sAWwG/3JIQD/uI21jqCp3a4lyEw5X2HjMbuz2Z4cW7Y69i73RdIYQdYb0X5+mqcVz8YEyuMZi2zweMxsvOczcanQ/4J6JKtC8imJu23Gr0TeS15OJCFh7yGviVp//LBzusXreqlEf7Tzx2yHkJ/rqULIIlPpBC1TFD7sgA72j3kq9rw3ZeQAwmaJA82L3KzagkgSQprEsRYnQ+wSWXkj skreys@skreys
-    jcach:
-      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCwAqWUvMAPTh4euvGwhLU3GjlAHVzKvlclKdg1VqmWAZI1Nd+GjKhop5kS3hMk+HCg4bgfE5nAEsp3mF78c+XXDZot1T1Sxsd0SfatkMycXgeK4l1U6QtouNR//7wEv4gPA5la7T5ktgwk7hfjnc9Jl84yS8xA1d5gsgOhQw4wHYQquyOcOA5rN8ylh7P+tEfJSx4PWlfsu9M8IZU9WvftPxNbmUfVF+GuwPcNgbAtMi3Oz2Zg9+6W4gnwfJiufXU+onDa2e5tL8ZsGqEbTQXIx13sg0ilMIT6WpbTtbCe81oZYokAMGY2hlbubhtHgGSQhBI4/qgE7/CsD4TNtuOFTAy8Y6lzvoDsTzR51ApUFHHQEjlsf7AfQFJF3Mb5/fy84K0PF2chz4XwXeO9ZbUGOvY9P349gqyJRIV29V6b8m2aqKYIHO/CRxYk52H1UY9SlCsJq9G+7qjHbugV+35+Za1/RFc0l+80Ei/GnfkYYNxpxHNM6r4sM2mte00lWTQwaSreFIVz/fRlKiaok1hHwwUNxgifdtcdIm+7RGnBgV9MoNGYN4AESKTnj7tr6OIOSLaZm8YbPJDW3VmpSmwGfHpOfI00lfymbKsR5ytn6nTLVHOkfU6pI4+LpUc0Jb9+Szrn+5QA8bGp6yn2DTCzHNW/mR5rrHYUY6o9m8/W4w== casek@casek14NB
-    lmercl:
-      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCy6mFrr4oNdLjT5wBZj1+KXNpdawnGGWEevDBQ2SWFjxBFujkWVLiW1kxLTpLVSnuoE5FB7doRIsT/CDe9IU5OhsJ+z6TT56R/pfVKrVnSB1rgrwqdezjgmYEM6kTWiH2GKJE0yiQEPgagK8Rz5Zl420JkhbFWnL7EGPhxNtmYMGDTZwUTzP0KYmytyeH15OqNIiBGTrp1t2bTrVB8HRnUp0uDpfoWAUnsijVGNe1j1bNKtDO0Z9LAWx3eUyxIk4cdpX/EeWJg8jNrSMxtAZZ7Hhm/WInNSNqcHcZ1rEYCAjENxo1WVOuA/aqUqc5xaAipWNon4Rk0e0IUAaFOfLvN2lIuilUZ5XKHDe7a2crkGPnotheT9FgaEHOeFtpuhSaygeZHTMR197jeocgjWIkPqHjVAGSQqQf0TAdNuN73QPTigbbfHWWc1d8KlCM5BqJUXMHPG6BasE1sI/4ykYbxN/DAEvVJ4+rdIlqSdedd73ZAseVQjDtpzD8diScGrpdOhZnTm43q89F8dIFv7tt1TjIwvfcDQNSBjyyKcYpj+NTyW2Zk7qWDVz+lzH0ToYk/rOKkGlrsRy7OwOnmyKR8IcIOL7Bowj895ThCX8tBrdLu/m55ojBOcZiCpawCm7K55ri1Ar6i8cO+bHDh11kKRa/utRRSQTpsW0sbCsamzQ== lubos@lubos-ThinkPad-X1
-    smatov:
-      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDgBHACRnY/VEEDFE63xDp4bx0zgWY4h1aB9/c2f962HtTNaQ6R/Cz6DLISaB5th8qzrzbvjn9WcpHdxyTm9BqkLLzB4qe7fnebPtn6zGczZ9Btrjk9R8Fuw6DZhSucSk572r/gVIY0O3Z1LajHkNr0ZTQS8AY3fgn8rXMD2vMOruOzyTOmfWKmEw7e+JYUqoFXHhE3Dd7hGQ99d6kH2N3zXfM2rzfjshGAq0kOi5dN4Hx6QIXZapt0t9TzpYTkK5SaVzuEVyVaKRLYSa/rdPjHkKqDFa99RcQ+OI93uvT9CFNWDFIC/TDJ2M+7PQbm836EICXXVWKjQ2NUnQJeOU5v smatov@ubuntu
-    dcech:
-      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC8A26XMLUnXkxv4e/vByD4W4PQ0ZdgGZz5Tg6G/fQKuSa+9zRucG6IlOchJPikwrDyTrojHTGAClHPuyr2bPIRrjFy4oUTZNdjiDptV99Zv/kHRStYzPyZ4KabnFLJVKNtyKKagk6Z3wpzEjFjRHWJK7A5bIzHfd7Amx/frdLKRo9YZjGbLnZRw6mWGqZYyp2/5a/5rKqH1BhMQggDGkAwFGWYQByZzk2F81nDnkt3CY3bi24gX90w4mgFjP8B0m0QCEhcGqpfOKsQTnIyBCtztEHBiUplzBN+RHS4dDOIEs9SWrXLiMFakWu1Vr6bUa7v5xGaNN8XAWjd3xdsy4hvJjJHU5HPaMY9MGH+N6W0UUZxIF0MuxDNP03MDM1uA5mRWTdwffARaDySYaEUrUEYJmzFAtk700Jv/Aav7QixLoIeKU9SAKYvVb7XNlMWgiswQdRPoiMpXPXPw+bMhjpimHJa4n0KFGAUO/cRD1dpJKybqxDe2ip57JzpFkm5PxuNht5qmEreKcS5dWQqm0fDE9wv8cCUMnWQv36f0IDeVpftmeDREatqXSeUjES7NFQOgIQW5C5Pl+8ZHTXw46c/uh89gUILJT2tS/mOXaU4mELox1Qv8vc/laoGAec+TGD0flf75LfiuLOK6JOYX0QVW13ko1wc3CyJzHOi1sFEAw== daniel.cech@tcpcloud.eu
\ No newline at end of file
+      key: AAAAB3NzaC1yc2EAAAABJQAAAQEAn4MJUkXbiZPPEcdKijB4MqnjPGk80x5W+8XsMvZuUqElmuLgB30kdCnSCBgipYPor3m8wakdJTTwiY6P50yhtp/tD2b4t1TC1djPwiNS/6JwjZawj30bS5ZrVKeTHtOq6E0tf927svXgEE21/ADgWpMoDeQ/pKlbt0m/U8YGBCmJ7cBa8ggGHhvJIwCNhpELn02vKV8Qfx44rk+DoxLBwQUHQ8PsEwtoSCLMIulpLflptak1pgvN6ggA5p15i36OyJkobI1yR9YEgtb+8yQqofu2DZ+v+9Qhbb+C0446RnyGzfvk/DreCeI4rJh5/6QZjwv3XfYDER5LbNCnoOQAsQ== v.zach@tcpcloud.eu
\ No newline at end of file
diff --git a/reclass/storage/system/cicd_manager_cluster.yml b/reclass/storage/system/cicd_manager_cluster.yml
new file mode 100644
index 0000000..898e657
--- /dev/null
+++ b/reclass/storage/system/cicd_manager_cluster.yml
@@ -0,0 +1,29 @@
+parameters:
+  _param:
+    cicd_control_node02_hostname: cid01
+    cicd_control_node03_hostname: cid02
+  reclass:
+    storage:
+      node:
+        cicd_control_node02:
+          name: ${_param:cicd_control_node02_hostname}
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.cicd.control.manager
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: xenial
+            single_address: ${_param:cicd_control_node02_address}
+            keepalived_vip_priority: 102
+            cicd_database_id: 2
+        cicd_control_node03:
+          name: ${_param:cicd_control_node03_hostname}
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.cicd.control.manager
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: xenial
+            single_address: ${_param:cicd_control_node03_address}
+            keepalived_vip_priority: 101
+            cicd_database_id: 3
diff --git a/reclass/storage/system/openstack_baremetal_single.yml b/reclass/storage/system/openstack_baremetal_single.yml
index d823157..3b279b0 100644
--- a/reclass/storage/system/openstack_baremetal_single.yml
+++ b/reclass/storage/system/openstack_baremetal_single.yml
@@ -12,5 +12,5 @@
           params:
             salt_master_host: ${_param:reclass_config_master}
             linux_system_codename: ${_param:linux_system_codename}
-            single_address: ${_param:openstack_baremetal_address}
+            single_address: ${_param:openstack_baremetal_node01_address}
             baremetal_address: ${_param:openstack_baremetal_node01_baremetal_address}
diff --git a/reclass/storage/system/openstack_gateway_single_octavia.yml b/reclass/storage/system/openstack_gateway_single_octavia.yml
index 264b3f1..7291977 100644
--- a/reclass/storage/system/openstack_gateway_single_octavia.yml
+++ b/reclass/storage/system/openstack_gateway_single_octavia.yml
@@ -5,3 +5,5 @@
         openstack_gateway_node01:
           classes:
           - system.octavia.manager.single
+          - system.salt.minion.ca.octavia_ca
+          - system.salt.minion.cert.octavia_amp_client
diff --git a/salt/minion/ca/octavia_ca.yml b/salt/minion/ca/octavia_ca.yml
new file mode 100644
index 0000000..ac66bec
--- /dev/null
+++ b/salt/minion/ca/octavia_ca.yml
@@ -0,0 +1,29 @@
+parameters:
+  _param:
+    octavia_ca_common_name: Octavia CA
+    octavia_ca_country: cz
+    octavia_ca_locality: Prague
+    octavia_ca_organization: Mirantis
+    octavia_ca_days_valid_authority: 3650
+    octavia_ca_days_valid_certificate: 365
+  salt:
+    minion:
+      ca:
+        octavia_ca:
+          common_name: ${_param:octavia_ca_common_name}
+          country: ${_param:octavia_ca_country}
+          locality: ${_param:octavia_ca_locality}
+          organization: ${_param:octavia_ca_organization}
+          signing_policy:
+            cert_server:
+              type: v3_edge_cert_server
+              minions: '*'
+            cert_client:
+              type: v3_edge_cert_client
+              minions: '*'
+            cert_open:
+              type: v3_edge_cert_open
+              minions: '*'
+          days_valid:
+            authority: ${_param:octavia_ca_days_valid_authority}
+            certificate: ${_param:octavia_ca_days_valid_certificate}
diff --git a/salt/minion/cert/octavia_amp_client.yml b/salt/minion/cert/octavia_amp_client.yml
new file mode 100644
index 0000000..7a8425a
--- /dev/null
+++ b/salt/minion/cert/octavia_amp_client.yml
@@ -0,0 +1,20 @@
+parameters:
+  _param:
+    salt_minion_ca_host: ${_param:openstack_gateway_node01_hostname}.${_param:cluster_domain}
+    salt_minion_ca_authority: octavia_ca
+  salt:
+    minion:
+      cert:
+        octavia_amp_client:
+          host: ${_param:salt_minion_ca_host}
+          authority: ${_param:salt_minion_ca_authority}
+          common_name: octavia_amp_client
+          signing_policy: cert_open
+          key_usage: "digitalSignature,nonRepudiation,keyEncipherment"
+          ca_file: ${octavia:manager:certificates:ca_certificate}
+          ca_key_file: ${octavia:manager:certificates:ca_private_key}
+          key_file: ${octavia:manager:haproxy_amphora:client_cert_key}
+          cert_file: ${octavia:manager:haproxy_amphora:client_cert}
+          all_file: ${octavia:manager:haproxy_amphora:client_cert_all}
+          user: octavia
+          group: octavia
diff --git a/salt/minion/cert/rabbitmq_server.yml b/salt/minion/cert/rabbitmq_server.yml
new file mode 100644
index 0000000..59972fe
--- /dev/null
+++ b/salt/minion/cert/rabbitmq_server.yml
@@ -0,0 +1,22 @@
+parameters:
+
+  _param:
+    salt_minion_ca_host: cfg01.${_param:cluster_domain}
+    salt_minion_ca_authority: salt_master_ca
+
+  salt:
+    minion:
+        cert:
+          rabbitmq_server:
+            host: ${_param:salt_minion_ca_host}
+            authority: ${_param:salt_minion_ca_authority}
+            common_name: rabbitmq_server
+            signing_policy: cert_open
+            alternative_names: IP:127.0.0.1,IP:${_param:cluster_local_address},DNS:${linux:system:name},DNS:${linux:network:fqdn}
+            key_usage: "digitalSignature,nonRepudiation,keyEncipherment"
+            key_file: ${rabbitmq:server:ssl:key_file}
+            cert_file: ${rabbitmq:server:ssl:cert_file}
+            all_file: ${rabbitmq:server:ssl:all_file}
+            ca_file: ${rabbitmq:server:ssl:ca_file}
+            user: rabbitmq
+            group: rabbitmq
\ No newline at end of file
diff --git a/telegraf/agent/init.yml b/telegraf/agent/init.yml
index ca7e2b0..64ef566 100644
--- a/telegraf/agent/init.yml
+++ b/telegraf/agent/init.yml
@@ -1,13 +1,5 @@
 classes:
 - service.telegraf.agent
 - system.telegraf.agent.input.http_listener
+- system.telegraf.agent.output.prometheus_client
 - system.telegraf.sudo
-parameters:
-  telegraf:
-    agent:
-      output:
-        prometheus_client:
-          bind:
-            address: 0.0.0.0
-            port: 9126
-          engine: prometheus
diff --git a/telegraf/agent/output/prometheus.yml b/telegraf/agent/output/prometheus.yml
deleted file mode 100644
index 952bc13..0000000
--- a/telegraf/agent/output/prometheus.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-parameters:
-  _param:
-    telegraf_agent_prometheus_port: 9126
-  telegraf:
-    agent:
-      output:
-        prometheus_client:
-          bind:
-            address: 0.0.0.0
-            port: ${_param: telegraf_agent_prometheus_port}
-          engine: prometheus
diff --git a/telegraf/agent/output/prometheus_client.yml b/telegraf/agent/output/prometheus_client.yml
new file mode 100644
index 0000000..bad5ebd
--- /dev/null
+++ b/telegraf/agent/output/prometheus_client.yml
@@ -0,0 +1,2 @@
+classes:
+- service.telegraf.agent.output.prometheus_client