Merge pull request #19 from ityaptin/ceilometer_packages

Pin latest ceilometer packages from mos9.0-proposed
diff --git a/cinder/control/notification/messagingv2.yml b/cinder/control/notification/messagingv2.yml
new file mode 100644
index 0000000..8fb1172
--- /dev/null
+++ b/cinder/control/notification/messagingv2.yml
@@ -0,0 +1,6 @@
+parameters:
+  cinder:
+    controller:
+      notification:
+        driver: messagingv2
+        topics: "${_param:openstack_notification_topics}"
diff --git a/cinder/volume/notification/messagingv2.yml b/cinder/volume/notification/messagingv2.yml
new file mode 100644
index 0000000..4ccbdd8
--- /dev/null
+++ b/cinder/volume/notification/messagingv2.yml
@@ -0,0 +1,6 @@
+parameters:
+  cinder:
+    volume:
+      notification:
+        driver: messagingv2
+        topics: "${_param:openstack_notification_topics}"
diff --git a/glance/control/notification/messagingv2.yml b/glance/control/notification/messagingv2.yml
new file mode 100644
index 0000000..7020add
--- /dev/null
+++ b/glance/control/notification/messagingv2.yml
@@ -0,0 +1,6 @@
+parameters:
+  glance:
+    server:
+      notification:
+        driver: messagingv2
+        topics: "${_param:openstack_notification_topics}"
diff --git a/glusterfs/client/volume/glance.yml b/glusterfs/client/volume/glance.yml
index c266a2f..66a4166 100644
--- a/glusterfs/client/volume/glance.yml
+++ b/glusterfs/client/volume/glance.yml
@@ -1,9 +1,11 @@
 parameters:
+  _param:
+    glance_glusterfs_service_host: ${_param:glusterfs_service_host}
   glusterfs:
     client:
       volumes:
         glance:
           path: /var/lib/glance/images
-          server: ${_param:glusterfs_service_host}
+          server: ${_param:glance_glusterfs_service_host}
           user: glance
           group: glance
diff --git a/glusterfs/client/volume/keystone.yml b/glusterfs/client/volume/keystone.yml
index 1ebd908..188ea03 100644
--- a/glusterfs/client/volume/keystone.yml
+++ b/glusterfs/client/volume/keystone.yml
@@ -1,9 +1,11 @@
 parameters:
+  _param:
+    keystone_glusterfs_service_host: ${_param:glusterfs_service_host}
   glusterfs:
     client:
       volumes:
         keystone-keys:
           path: /var/lib/keystone/fernet-keys
-          server: ${_param:glusterfs_service_host}
+          server: ${_param:keystone_glusterfs_service_host}
           user: keystone
           group: keystone
\ No newline at end of file
diff --git a/grafana/client/single.yml b/grafana/client/single.yml
index c36d4ff..49ac876 100644
--- a/grafana/client/single.yml
+++ b/grafana/client/single.yml
@@ -17,7 +17,7 @@
           type: influxdb
           host: ${_param:grafana_influxdb_host}
           port: ${_param:influxdb_port}
-          user: ${_param:influxdb_user}
-          password: ${_param:influxdb_password}
-          database: ${_param:influxdb_database}
+          user: lma
+          password: ${_param:influxdb_stacklight_password}
+          database: lma
           is_default: true
diff --git a/graphite/server/single.yml b/graphite/server/single.yml
index b6d507a..364877e 100644
--- a/graphite/server/single.yml
+++ b/graphite/server/single.yml
@@ -37,4 +37,4 @@
             rights: all privileges
   supervisor:
     server:
-      enabled: false
+      enabled: true
diff --git a/haproxy/proxy/listen/kubernetes/apiserver.yml b/haproxy/proxy/listen/kubernetes/apiserver.yml
new file mode 100644
index 0000000..a365c51
--- /dev/null
+++ b/haproxy/proxy/listen/kubernetes/apiserver.yml
@@ -0,0 +1,40 @@
+parameters:
+  haproxy:
+    proxy:
+      listen:
+        k8s_cluster:
+          type: kubernetes
+          binds:
+          - address: ${_param:cluster_vip_address}
+            port: 8080
+          servers:
+          - name: ${_param:cluster_node01_hostname}
+            host: ${_param:cluster_node01_address}
+            port: 8080
+            params: check
+          - name: ${_param:cluster_node02_hostname}
+            host: ${_param:cluster_node02_address}
+            port: 8080
+            params: check
+          - name: ${_param:cluster_node03_hostname}
+            host: ${_param:cluster_node03_address}
+            port: 8080
+            params: check
+        k8s_cluster_localhost:
+          type: kubernetes
+          binds:
+          - address: localhost
+            port: 8080
+          servers:
+          - name: ${_param:cluster_node01_hostname}
+            host: ${_param:cluster_node01_address}
+            port: 8080
+            params: check
+          - name: ${_param:cluster_node02_hostname}
+            host: ${_param:cluster_node02_address}
+            port: 8080
+            params: check
+          - name: ${_param:cluster_node03_hostname}
+            host: ${_param:cluster_node03_address}
+            port: 8080
+            params: check
\ No newline at end of file
diff --git a/haproxy/proxy/listen/kubernetes/etcd.yml b/haproxy/proxy/listen/kubernetes/etcd.yml
new file mode 100644
index 0000000..c314191
--- /dev/null
+++ b/haproxy/proxy/listen/kubernetes/etcd.yml
@@ -0,0 +1,22 @@
+parameters:
+  haproxy:
+    proxy:
+      listen:
+        etcd_cluster:
+          type: etcd
+          binds:
+          - address: ${_param:cluster_vip_address}
+            port: 4001
+          servers:
+          - name: etc01
+            host: ${_param:cluster_node01_address}
+            port: 4001
+            params: check
+          - name: etc02
+            host: ${_param:cluster_node02_address}
+            port: 4001
+            params: backup check
+          - name: etc03
+            host: ${_param:cluster_node03_address}
+            port: 4001
+            params: backup check
\ No newline at end of file
diff --git a/heat/server/notification/messagingv2.yml b/heat/server/notification/messagingv2.yml
new file mode 100644
index 0000000..eff5141
--- /dev/null
+++ b/heat/server/notification/messagingv2.yml
@@ -0,0 +1,6 @@
+parameters:
+  heat:
+    server:
+      notification:
+        driver: messagingv2
+        topics: "${_param:openstack_notification_topics}"
diff --git a/heat/server/single.yml b/heat/server/single.yml
index 3c4b5f3..d097605 100644
--- a/heat/server/single.yml
+++ b/heat/server/single.yml
@@ -3,7 +3,6 @@
 parameters:
   heat:
     server:
-      notification: true
       stack_domain_admin:
         name: heat_domain_admin
         password: ${_param:heat_domain_admin_password}
diff --git a/heka/aggregator/cluster.yml b/heka/aggregator/cluster.yml
index 455dbb1..2913211 100644
--- a/heka/aggregator/cluster.yml
+++ b/heka/aggregator/cluster.yml
@@ -9,15 +9,16 @@
     aggregator:
       influxdb_host: ${_param:heka_influxdb_host}
       influxdb_port: ${_param:influxdb_port}
-      influxdb_database: ${_param:influxdb_database}
-      influxdb_username: ${_param:influxdb_user}
-      influxdb_password: ${_param:influxdb_password}
+      influxdb_database: lma
+      influxdb_username: lma
+      influxdb_password: ${_param:influxdb_stacklight_password}
       nagios_host: ${_param:nagios_host}
       nagios_username: ${_param:nagios_username}
       nagios_password: ${_param:nagios_password}
       nagios_port: ${_param:nagios_status_port}
       nagios_default_host_alarm_clusters: ${_param:nagios_default_host_alarm_clusters}
       nagios_host_dimension_key: ${_param:nagios_host_dimension_key}
+      poolsize: 200
   keepalived:
     cluster:
       instance:
diff --git a/heka/aggregator/single.yml b/heka/aggregator/single.yml
index 4b1c71f..c5ad6ab 100644
--- a/heka/aggregator/single.yml
+++ b/heka/aggregator/single.yml
@@ -9,12 +9,13 @@
     aggregator:
       influxdb_host: ${_param:heka_influxdb_host}
       influxdb_port: ${_param:influxdb_port}
-      influxdb_database: ${_param:influxdb_database}
-      influxdb_username: ${_param:influxdb_user}
-      influxdb_password: ${_param:influxdb_password}
+      influxdb_database: lma
+      influxdb_username: lma
+      influxdb_password: ${_param:influxdb_stacklight_password}
       nagios_host: ${_param:nagios_host}
       nagios_username: ${_param:nagios_username}
       nagios_password: ${_param:nagios_password}
       nagios_port: ${_param:nagios_status_port}
       nagios_default_host_alarm_clusters: ${_param:nagios_default_host_alarm_clusters}
       nagios_host_dimension_key: ${_param:nagios_host_dimension_key}
+      poolsize: 200
diff --git a/heka/remote_collector/cluster.yml b/heka/remote_collector/cluster.yml
index 7669bcf..ef7973f 100644
--- a/heka/remote_collector/cluster.yml
+++ b/heka/remote_collector/cluster.yml
@@ -6,9 +6,9 @@
     remote_collector:
       influxdb_host: ${_param:heka_influxdb_host}
       influxdb_port: ${_param:influxdb_port}
-      influxdb_database: ${_param:influxdb_database}
-      influxdb_username: ${_param:influxdb_user}
-      influxdb_password: ${_param:influxdb_password}
+      influxdb_database: lma
+      influxdb_username: lma
+      influxdb_password: ${_param:influxdb_stacklight_password}
       aggregator_host: ${_param:heka_aggregator_host}
       aggregator_port: ${_param:aggregator_port}
       elasticsearch_host: ${_param:heka_elasticsearch_host}
diff --git a/heka/remote_collector/input/amqp.yml b/heka/remote_collector/input/amqp.yml
index fecd09b..392b224 100644
--- a/heka/remote_collector/input/amqp.yml
+++ b/heka/remote_collector/input/amqp.yml
@@ -1,4 +1,6 @@
 parameters:
+  _param:
+    stacklight_notification_topic: stacklight_notifications
   heka:
     remote_collector:
       amqp_host: ${_param:heka_amqp_host}
@@ -6,4 +8,4 @@
       amqp_user: openstack
       amqp_password: ${_param:rabbitmq_openstack_password}
       amqp_vhost: '/openstack'
-      amqp_notification_topic: notifications
+      amqp_notification_topic: ${_param:stacklight_notification_topic}
diff --git a/heka/remote_collector/single.yml b/heka/remote_collector/single.yml
index 7b4050e..c18484f 100644
--- a/heka/remote_collector/single.yml
+++ b/heka/remote_collector/single.yml
@@ -6,9 +6,9 @@
     remote_collector:
       influxdb_host: ${_param:heka_influxdb_host}
       influxdb_port: ${_param:influxdb_port}
-      influxdb_database: ${_param:influxdb_database}
-      influxdb_username: ${_param:influxdb_user}
-      influxdb_password: ${_param:influxdb_password}
+      influxdb_database: lma
+      influxdb_username: lma
+      influxdb_password: ${_param:influxdb_stacklight_password}
       aggregator_host: ${_param:heka_aggregator_host}
       aggregator_port: ${_param:aggregator_port}
       elasticsearch_host: ${_param:heka_elasticsearch_host}
diff --git a/influxdb/database/stacklight.yml b/influxdb/database/stacklight.yml
new file mode 100644
index 0000000..d741380
--- /dev/null
+++ b/influxdb/database/stacklight.yml
@@ -0,0 +1,23 @@
+parameters:
+  influxdb:
+    server:
+      database:
+        lma:
+          enabled: true
+          name: lma
+          retention_policy:
+          - name: lma
+            is_default: true
+            duration: 30d
+            replication: 1
+      user:
+        lma:
+          enabled: true
+          name: lma
+          password: ${_param:influxdb_stacklight_password}
+      grant:
+        grant_lma_all:
+          enabled: true
+          user: lma
+          database: lma
+          privilege: all
diff --git a/influxdb/server/single.yml b/influxdb/server/single.yml
index 3d40099..ed0b2d5 100644
--- a/influxdb/server/single.yml
+++ b/influxdb/server/single.yml
@@ -19,23 +19,3 @@
           enabled: true
           name: 'root'
           password: ${_param:influxdb_admin_password}
-      database:
-        lma:
-          enabled: true
-          name: lma
-          retention_policy:
-          - name: lma
-            is_default: true
-            duration: 30d
-            replication: 1
-      user:
-        lma:
-          enabled: true
-          name: lma
-          password: ${_param:influxdb_stacklight_password}
-      grant:
-        grant_lma_all:
-          enabled: true
-          user: lma
-          database: lma
-          privilege: all
diff --git a/keystone/server/notification/messagingv2.yml b/keystone/server/notification/messagingv2.yml
new file mode 100644
index 0000000..2cc7e64
--- /dev/null
+++ b/keystone/server/notification/messagingv2.yml
@@ -0,0 +1,6 @@
+parameters:
+  keystone:
+    server:
+      notification:
+        driver: messagingv2
+        topics: "${_param:openstack_notification_topics}"
diff --git a/kubernetes/master/cluster.yml b/kubernetes/master/cluster.yml
new file mode 100644
index 0000000..0539331
--- /dev/null
+++ b/kubernetes/master/cluster.yml
@@ -0,0 +1,12 @@
+classes:
+- service.kubernetes.master.cluster
+- service.keepalived.cluster.single
+- service.haproxy.proxy.single
+- system.haproxy.proxy.listen.kubernetes.apiserver
+parameters:
+  kubernetes:
+    master:
+      container: false
+      network:
+        engine: calico
+        private_ip_range: ${_param:calico_private_network}/${_param:calico_private_netmask}
\ No newline at end of file
diff --git a/kubernetes/pool/cluster.yml b/kubernetes/pool/cluster.yml
new file mode 100644
index 0000000..b38cf07
--- /dev/null
+++ b/kubernetes/pool/cluster.yml
@@ -0,0 +1,9 @@
+classes:
+- service.kubernetes.pool.cluster
+- service.docker.host
+parameters:
+  kubernetes:
+    pool:
+      container: false
+      network:
+        engine: calico
\ No newline at end of file
diff --git a/linux/system/repo/docker.yml b/linux/system/repo/docker.yml
new file mode 100644
index 0000000..6eae575
--- /dev/null
+++ b/linux/system/repo/docker.yml
@@ -0,0 +1,9 @@
+parameters:
+  linux:
+    system:
+      repo:
+        docker:
+          source: "deb https://apt.dockerproject.org/repo ubuntu-${_param:linux_system_codename} main"
+          architectures: amd64
+          key_id: 58118E89F3A912897C070ADBF76221572C52609D
+          key_server: hkp://p80.pool.sks-keyservers.net:80
diff --git a/linux/system/repo/grafana.yml b/linux/system/repo/grafana.yml
index 267065e..c1c8a5b 100644
--- a/linux/system/repo/grafana.yml
+++ b/linux/system/repo/grafana.yml
@@ -1,7 +1,8 @@
+parameters:
   linux:
     system:
       repo:
         grafana:
           enabled: true
           source: 'deb https://packagecloud.io/grafana/stable/debian/ jessie main'
-          key_url: 'https://packagecloud.io/gpg.key'
\ No newline at end of file
+          key_url: 'https://packagecloud.io/gpg.key'
diff --git a/linux/system/repo_local/influxdb.yml b/linux/system/repo_local/influxdb.yml
index 7e3fb93..5e30d83 100644
--- a/linux/system/repo_local/influxdb.yml
+++ b/linux/system/repo_local/influxdb.yml
@@ -1,8 +1,8 @@
 parameters:
   linux:
     system:
-      repo:influxdb
-        grafana:
+      repo:
+        influxdb:
           refresh_db: ${_param:linux_repo_refresh_db}
           source: "deb [arch=amd64] http://${_param:local_repo_url}/ubuntu-${_param:linux_system_codename}/ nightly influxdb"
           architectures: amd64
diff --git a/neutron/compute/notification/messagingv2.yml b/neutron/compute/notification/messagingv2.yml
new file mode 100644
index 0000000..0e9d34a
--- /dev/null
+++ b/neutron/compute/notification/messagingv2.yml
@@ -0,0 +1,6 @@
+parameters:
+  neutron:
+    compute:
+      notification:
+        driver: messagingv2
+        topics: "${_param:openstack_notification_topics}"
diff --git a/neutron/control/notification/messagingv2.yml b/neutron/control/notification/messagingv2.yml
new file mode 100644
index 0000000..70e8618
--- /dev/null
+++ b/neutron/control/notification/messagingv2.yml
@@ -0,0 +1,6 @@
+parameters:
+  neutron:
+    server:
+      notification:
+        driver: messagingv2
+        topics: "${_param:openstack_notification_topics}"
diff --git a/neutron/gateway/notification/messagingv2.yml b/neutron/gateway/notification/messagingv2.yml
new file mode 100644
index 0000000..6363c39
--- /dev/null
+++ b/neutron/gateway/notification/messagingv2.yml
@@ -0,0 +1,6 @@
+parameters:
+  neutron:
+    gateway:
+      notification:
+        driver: messagingv2
+        topics: "${_param:openstack_notification_topics}"
diff --git a/nginx/server/proxy/foundation/gerrit.yml b/nginx/server/proxy/infra/gerrit.yml
similarity index 84%
rename from nginx/server/proxy/foundation/gerrit.yml
rename to nginx/server/proxy/infra/gerrit.yml
index 8915b71..13ae180 100644
--- a/nginx/server/proxy/foundation/gerrit.yml
+++ b/nginx/server/proxy/infra/gerrit.yml
@@ -8,7 +8,7 @@
           type: nginx_proxy
           name: gerrit
           proxy:
-            host: ${_param:fuel_version_control_node01_single_address}
+            host: ${_param:infra_version_control_node01_single_address}
             port: 8082
             protocol: http
           host:
diff --git a/nginx/server/proxy/foundation/jenkins.yml b/nginx/server/proxy/infra/jenkins.yml
similarity index 85%
rename from nginx/server/proxy/foundation/jenkins.yml
rename to nginx/server/proxy/infra/jenkins.yml
index 9f10ad7..9d10dae 100644
--- a/nginx/server/proxy/foundation/jenkins.yml
+++ b/nginx/server/proxy/infra/jenkins.yml
@@ -8,7 +8,7 @@
           type: nginx_proxy
           name: jenkins
           proxy:
-            host: ${_param:fuel_integration_node01_single_address}
+            host: ${_param:infra_integration_node01_single_address}
             port: 8080
             protocol: http
           host:
diff --git a/nginx/server/proxy/foundation/sphinx.yml b/nginx/server/proxy/infra/sphinx.yml
similarity index 100%
rename from nginx/server/proxy/foundation/sphinx.yml
rename to nginx/server/proxy/infra/sphinx.yml
diff --git a/nova/compute/notification/messagingv2.yml b/nova/compute/notification/messagingv2.yml
new file mode 100644
index 0000000..59ec94d
--- /dev/null
+++ b/nova/compute/notification/messagingv2.yml
@@ -0,0 +1,8 @@
+parameters:
+  nova:
+    compute:
+      notification:
+        driver: messagingv2
+        topics: "${_param:openstack_notification_topics}"
+        notify_on:
+          state_change: vm_and_task_state
diff --git a/nova/control/notification/messagingv2.yml b/nova/control/notification/messagingv2.yml
new file mode 100644
index 0000000..5ed8013
--- /dev/null
+++ b/nova/control/notification/messagingv2.yml
@@ -0,0 +1,6 @@
+parameters:
+  nova:
+    controller:
+      notification:
+        driver: messagingv2
+        topics: "${_param:openstack_notification_topics}"
diff --git a/openssh/server/team/mcp_qa.yml b/openssh/server/team/mcp_qa.yml
new file mode 100644
index 0000000..eef4e3f
--- /dev/null
+++ b/openssh/server/team/mcp_qa.yml
@@ -0,0 +1,52 @@
+parameters:
+  linux:
+    system:
+      user:
+        ddmitriev:
+          enabled: true
+          name: ddmitriev
+          sudo: true
+          full_name: Denys Dmytriiev
+          home: /home/ddmitriev
+        dtyzhnenko:
+          enabled: true
+          name: dtyzhnenko
+          sudo: true
+          full_name: Dmitry Tyzhnenko
+          home: /home/dtyzhnenko
+        tleontovich:
+          enabled: true
+          name: tleontovich
+          sudo: true
+          full_name: Tatyanka Leontovich
+          home: /home/tleontovich
+      group:
+        libvirtd:
+          enabled: true
+          name: libvirtd
+  openssh:
+    server:
+      enabled: true
+      user:
+        ddmitriev:
+          enabled: true
+          public_keys:
+          - ${public_keys:ddmitriev}
+          user: ${linux:system:user:ddmitriev}
+        dtyzhnenko:
+          enabled: true
+          public_keys:
+          - ${public_keys:dtyzhnenko}
+          user: ${linux:system:user:dtyzhnenko}
+        tleontovich:
+          enabled: true
+          public_keys:
+          - ${public_keys:tleontovich}
+          user: ${linux:system:user:tleontovich}
+  public_keys:
+    ddmitriev:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDuD4wJ8hzkchQ0pfgdwWukQyps1xYRfHOsjosmDu/mmgaXVud5mnpwb2q35E2YYTox2mx+ulJqyS+099gz6MPg4P8D5qdMuRbAsJqbceLaaIGQhdT8qgSo7ESrl5pwvYnfWzKLKF0z5s7nrW0nvArC40zhV9o9XpvzzzSFByepWfkwA8ReldGUYVvTKp8YXaCrqEdMZrU42adPM2nl+fYBbGF+h4/Ka247aVjPeER0blV3znFXbv2Kf38G+i/TEGaktgpBdtGGDi1tX2loMypmTJeqZRJnM0Eoly0BnynB7CSxn11eoIXBUe1mVYNqmQd1hw6uh59iymhK5j939v9J ddmitriev@dis_xcom
+    dtyzhnenko:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDhf5ysfuTmOO1975vUCag59tL+lQwfmWSQglZvKnMLnhO1P39VXDHCMla0Uh2IXI5abSrsq4xVXNfD3R5cnzPW8rG1h3528tSpszwZp28LSMkMfEZReEWVq2XoseRfzd7b3AaWN283NbQGPL6NRwyg9hLRG5dipdRxnDSutvDg/J4gbzeuS+QjXP6ymIs9vBhrpvHlQ6POI7Zedp2FOmqbGf3OK9wuBkD1Dhf+hTXvFSq1PFxmKB7w5CWvAOGGuapb+IYspPlDwd8lVWbvp+D3DchkhyL36gQyl2In/NKG2NR4z6dETX8JON5OMe0UipeKAsXInoVbyZfs3uZgdKDB dtyzhnenko
+    tleontovich:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLtOIkzqNA3wdLQyQxLRaRwi4oXnRCPCsrn8oaAyxDXHhU3+ATGvXBdbkA6xU3d4hAohru5DwxGzyikzAAtrv79GWA9/ryXPcplmxBiJcN36GyfW6eX89hI1VIJMKMG3cUs0ONf2D+hENhbaO0pu4hNAb5HFcHAuqecQNOFFrJ3RqnWM8RWgJPY3iF1A9JnXwVrUgME962VPlydYvlL5mLk+h+4DgHuPipw/Qana5a2JfdErsPYeAdDwG8frCdA9wvMzVVZv78s0lA6BritQdd0SyZejbOlT9KVHhSOhqnWdCtd8+nZXzXgjV7GAiv7H9yE4Ee6QYSHUQHwJxZs3ZT tleontovich@tleontovich-pc
diff --git a/openssh/server/team/mmo_de.yml b/openssh/server/team/mmo_de.yml
new file mode 100644
index 0000000..1ecfd84
--- /dev/null
+++ b/openssh/server/team/mmo_de.yml
@@ -0,0 +1,23 @@
+parameters:
+  linux:
+    system:
+      user:
+        dszeluga:
+          enabled: true
+          name: dszeluga
+          sudo: true
+          full_name: Damian Szeluga
+          home: /home/dszeluga
+  openssh:
+    server:
+      enabled: true
+      user:
+        dszeluga:
+          enabled: true
+          public_keys:
+          - ${public_keys:dszeluga}
+          user: ${linux:system:user:dszeluga}
+  public_keys:
+    dszeluga:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDEEFoCOaivah6AjFZmPIDlDlp8mUfsh9UFrjgLL8vqVYoyVnuZ5DQZTeZsCgFCPxodEsgHDkSEFwkB6hbyqEXszGIL8dWwSBR3QfNJD2cjZ8ZYqXsKN63RzHGAjTXMjlCB7TZtcui1SWpKjGd+x3gQ0KkHZI9V9WVYDcC75kyEAHZptM2N9jlwbhr9lXZ77gZacjaGoKN0Agb/ydd1TyhQ1F3g56pnvgZtkOe/bStwjpz2NS0FqiqAR3wOeZZUGsR3TCP70oYfaeJvpCDVRR/gVXqqvcBAiNYTGC/tMlKuECKPtOOAP8Oc+bt1eOrbiPVJ5NfoOIpmMCDUUSnFoNGN damjanek@cocaine.local
+
diff --git a/reclass/storage/system/kubernetes_control_cluster.yml b/reclass/storage/system/kubernetes_control_cluster.yml
new file mode 100644
index 0000000..5180ab6
--- /dev/null
+++ b/reclass/storage/system/kubernetes_control_cluster.yml
@@ -0,0 +1,38 @@
+parameters:
+  _param:
+    kubernetes_control_node01_hostname: ctl01
+    kubernetes_control_node02_hostname: ctl02
+    kubernetes_control_node03_hostname: ctl03
+  reclass:
+    storage:
+      node:
+        kubernetes_control_node01:
+          name: ${_param:kubernetes_control_node01_hostname}
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.kubernetes.control
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: xenial
+            single_address: ${_param:kubernetes_control_node01_address}
+            keepalived_vip_priority: 103
+        kubernetes_control_node02:
+          name: ${_param:kubernetes_control_node02_hostname}
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.kubernetes.control
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: xenial
+            single_address: ${_param:kubernetes_control_node02_address}
+            keepalived_vip_priority: 102
+        kubernetes_control_node03:
+          name: ${_param:kubernetes_control_node03_hostname}
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.kubernetes.control
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: xenial
+            single_address: ${_param:kubernetes_control_node03_address}
+            keepalived_vip_priority: 101
\ No newline at end of file
diff --git a/reclass/storage/system/monitoring_service_cluster.yml b/reclass/storage/system/monitoring_service_cluster.yml
index d86a218..630ee32 100644
--- a/reclass/storage/system/monitoring_service_cluster.yml
+++ b/reclass/storage/system/monitoring_service_cluster.yml
@@ -1,9 +1,13 @@
 parameters:
+  _param:
+    monitor_node01_hostname: mon01
+    monitor_node02_hostname: mon02
+    monitor_node03_hostname: mon03
   reclass:
     storage:
       node:
         monitoring_service_node01:
-          name: mon01
+          name: ${_param:monitor_node01_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.monitoring.server
@@ -12,7 +16,7 @@
             linux_system_codename: xenial
             single_address: ${_param:monitoring_service_node01_address}
         monitoring_service_node02:
-          name: mon02
+          name: ${_param:monitor_node02_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.monitoring.server
@@ -21,7 +25,7 @@
             linux_system_codename: xenial
             single_address: ${_param:monitoring_service_node02_address}
         monitoring_service_node03:
-          name: mon03
+          name: ${_param:monitor_node03_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.monitoring.server
diff --git a/reclass/storage/system/monitoring_service_single.yml b/reclass/storage/system/monitoring_service_single.yml
index 42353ef..9680529 100644
--- a/reclass/storage/system/monitoring_service_single.yml
+++ b/reclass/storage/system/monitoring_service_single.yml
@@ -1,9 +1,11 @@
 parameters:
+  _param:
+    monitor_node01_hostname: mon01
   reclass:
     storage:
       node:
         monitoring_service_node01:
-          name: mon01
+          name: ${_param:monitor_node01_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.monitoring.server
diff --git a/reclass/storage/system/opencontrail_analytics_cluster.yml b/reclass/storage/system/opencontrail_analytics_cluster.yml
index f8055a6..6a4b7ee 100644
--- a/reclass/storage/system/opencontrail_analytics_cluster.yml
+++ b/reclass/storage/system/opencontrail_analytics_cluster.yml
@@ -1,9 +1,13 @@
 parameters:
+  _param:
+    opencontrail_analytics_node01_hostname: nal01
+    opencontrail_analytics_node02_hostname: nal02
+    opencontrail_analytics_node03_hostname: nal03
   reclass:
     storage:
       node:
         opencontrail_analytics_node01:
-          name: nal01
+          name: ${_param:opencontrail_analytics_node01_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.opencontrail.analytics
@@ -14,7 +18,7 @@
             keepalived_vip_priority: 103
             opencontrail_database_id: 1
         opencontrail_analytics_node02:
-          name: nal02
+          name: ${_param:opencontrail_analytics_node02_hostname}
           domain: ${_param:cluster_domain}
           classes:  
           - cluster.${_param:cluster_name}.opencontrail.analytics
@@ -25,7 +29,7 @@
             keepalived_vip_priority: 102
             opencontrail_database_id: 2
         opencontrail_analytics_node03:
-          name: nal03
+          name: ${_param:opencontrail_analytics_node03_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.opencontrail.analytics
diff --git a/reclass/storage/system/opencontrail_control_cluster.yml b/reclass/storage/system/opencontrail_control_cluster.yml
index 0f882a3..d0213b3 100644
--- a/reclass/storage/system/opencontrail_control_cluster.yml
+++ b/reclass/storage/system/opencontrail_control_cluster.yml
@@ -1,9 +1,13 @@
 parameters:
+  _param:
+    opencontrail_control_node01_hostname: ntw01
+    opencontrail_control_node02_hostname: ntw02
+    opencontrail_control_node03_hostname: ntw03
   reclass:
     storage:
       node:
         opencontrail_control_node01:
-          name: ntw01
+          name: ${_param:opencontrail_control_node01_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.opencontrail.control
@@ -14,9 +18,9 @@
             keepalived_vip_priority: 103
             opencontrail_database_id: 1
         opencontrail_control_node02:
-          name: ntw02
+          name: ${_param:opencontrail_control_node02_hostname}
           domain: ${_param:cluster_domain}
-          classes:  
+          classes:
           - cluster.${_param:cluster_name}.opencontrail.control
           params:
             salt_master_host: ${_param:reclass_config_master}
@@ -25,7 +29,7 @@
             keepalived_vip_priority: 102
             opencontrail_database_id: 2
         opencontrail_control_node03:
-          name: ntw03
+          name: ${_param:opencontrail_control_node03_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.opencontrail.control
diff --git a/reclass/storage/system/opencontrail_gateway_single.yml b/reclass/storage/system/opencontrail_gateway_single.yml
index c6ae10f..52b2786 100644
--- a/reclass/storage/system/opencontrail_gateway_single.yml
+++ b/reclass/storage/system/opencontrail_gateway_single.yml
@@ -1,9 +1,11 @@
 parameters:
+  _param:
+    opencontrail_gateway_hostname: gtw01
   reclass:
     storage:
       node:
         opencontrail_gateway_node01:
-          name: gtw01
+          name: ${_param:opencontrail_gateway_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.opencontrail.gateway
diff --git a/reclass/storage/system/openstack_benchmark_single.yml b/reclass/storage/system/openstack_benchmark_single.yml
index 5c86ba3..4c85d29 100644
--- a/reclass/storage/system/openstack_benchmark_single.yml
+++ b/reclass/storage/system/openstack_benchmark_single.yml
@@ -1,9 +1,11 @@
 parameters:
+  _param:
+    openstack_benchmark_node01_hostname: bmk01
   reclass:
     storage:
       node:
         opencontrail_benchmark_node01:
-          name: bmk01
+          name: ${_param:openstack_benchmark_node01_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.openstack.benchmark
diff --git a/reclass/storage/system/openstack_billing_single.yml b/reclass/storage/system/openstack_billing_single.yml
index c0e05c4..5b63ec0 100644
--- a/reclass/storage/system/openstack_billing_single.yml
+++ b/reclass/storage/system/openstack_billing_single.yml
@@ -1,9 +1,11 @@
 parameters:
+  _param:
+    openstack_billing_hostname: bil01
   reclass:
     storage:
       node:
         opencontrail_billing_node01:
-          name: bil01
+          name: ${_param:openstack_billing_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.openstack.billing
diff --git a/reclass/storage/system/openstack_compute_multi.yml b/reclass/storage/system/openstack_compute_multi.yml
index 82f465a..0340e9c 100644
--- a/reclass/storage/system/openstack_compute_multi.yml
+++ b/reclass/storage/system/openstack_compute_multi.yml
@@ -1,9 +1,12 @@
 parameters:
+  _param:
+    openstack_compute_node01_hostname: cmp01
+    openstack_compute_node02_hostname: cmp02
   reclass:
     storage:
       node:
         openstack_compute_node01:
-          name: cmp01
+          name: ${_param:openstack_compute_node01_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.openstack.compute
@@ -12,7 +15,7 @@
             linux_system_codename: trusty
             single_address: 172.16.10.105
         openstack_compute_node02:
-          name: cmp02
+          name: ${_param:openstack_compute_node02_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.openstack.compute
diff --git a/reclass/storage/system/openstack_compute_single.yml b/reclass/storage/system/openstack_compute_single.yml
index 11bb4f5..80758c7 100644
--- a/reclass/storage/system/openstack_compute_single.yml
+++ b/reclass/storage/system/openstack_compute_single.yml
@@ -1,9 +1,11 @@
 parameters:
+  _param:
+    openstack_compute_node01_hostname: cmp01
   reclass:
     storage:
       node:
         openstack_compute_node01:
-          name: cmp01
+          name: ${_param:openstack_compute_node01_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.openstack.compute
diff --git a/reclass/storage/system/openstack_control_cluster.yml b/reclass/storage/system/openstack_control_cluster.yml
index 482d826..deb25b8 100644
--- a/reclass/storage/system/openstack_control_cluster.yml
+++ b/reclass/storage/system/openstack_control_cluster.yml
@@ -1,9 +1,13 @@
 parameters:
+  _param:
+    openstack_control_node01_hostname: ctl01
+    openstack_control_node02_hostname: ctl02
+    openstack_control_node03_hostname: ctl03
   reclass:
     storage:
       node:
         openstack_control_node01:
-          name: ctl01
+          name: ${_param:openstack_control_node01_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.openstack.control
@@ -15,7 +19,7 @@
             opencontrail_database_id: 1
             rabbitmq_cluster_role: master
         openstack_control_node02:
-          name: ctl02
+          name: ${_param:openstack_control_node02_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.openstack.control
@@ -27,7 +31,7 @@
             opencontrail_database_id: 2
             rabbitmq_cluster_role: slave
         openstack_control_node03:
-          name: ctl03
+          name: ${_param:openstack_control_node03_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.openstack.control
diff --git a/reclass/storage/system/openstack_dashboard_single.yml b/reclass/storage/system/openstack_dashboard_single.yml
index 3a9f81a..c2915d3 100644
--- a/reclass/storage/system/openstack_dashboard_single.yml
+++ b/reclass/storage/system/openstack_dashboard_single.yml
@@ -1,9 +1,11 @@
 parameters:
+  _param:
+    openstack_proxy_hostname: prx01
   reclass:
     storage:
       node:
         openstack_proxy_node01:
-          name: prx01
+          name: ${_param:openstack_proxy_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.openstack.dashboard
diff --git a/reclass/storage/system/openstack_database_cluster.yml b/reclass/storage/system/openstack_database_cluster.yml
index a46aaec..33c6d24 100644
--- a/reclass/storage/system/openstack_database_cluster.yml
+++ b/reclass/storage/system/openstack_database_cluster.yml
@@ -1,9 +1,13 @@
 parameters:
+  _param:
+    openstack_database_node01_hostname: dbs01
+    openstack_database_node02_hostname: dbs02
+    openstack_database_node03_hostname: dbs03
   reclass:
     storage:
       node:
         openstack_database_node01:
-          name: dbs01
+          name: ${_param:openstack_database_node01_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - service.galera.master.cluster
@@ -15,7 +19,7 @@
             keepalived_vip_priority: 103
             mysql_cluster_role: master
         openstack_database_node02:
-          name: dbs02
+          name: ${_param:openstack_database_node02_hostname}
           domain: ${_param:cluster_domain}
           classes:  
           - service.galera.slave.cluster
@@ -27,7 +31,7 @@
             keepalived_vip_priority: 102
             mysql_cluster_role: slave
         openstack_database_node03:
-          name: dbs03
+          name: ${_param:openstack_database_node03_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - service.galera.slave.cluster
diff --git a/reclass/storage/system/openstack_gateway_cluster.yml b/reclass/storage/system/openstack_gateway_cluster.yml
index f4af2b4..30e04ab 100644
--- a/reclass/storage/system/openstack_gateway_cluster.yml
+++ b/reclass/storage/system/openstack_gateway_cluster.yml
@@ -1,9 +1,12 @@
 parameters:
+  _param:
+    openstack_gateway_node01_hostname: gtw01
+    openstack_gateway_node02_hostname: gtw02
   reclass:
     storage:
       node:
         openstack_gateway_node01:
-          name: gtw01
+          name: ${_param:openstack_gateway_node01_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.openstack.gateway
@@ -12,7 +15,7 @@
             linux_system_codename: trusty
             single_address: ${_param:openstack_gateway_node01_address}
         openstack_gateway_node02:
-          name: gtw02
+          name: ${_param:openstack_gateway_node02_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.openstack.gateway
diff --git a/reclass/storage/system/openstack_gateway_single.yml b/reclass/storage/system/openstack_gateway_single.yml
index 4128f5a..ebb9195 100644
--- a/reclass/storage/system/openstack_gateway_single.yml
+++ b/reclass/storage/system/openstack_gateway_single.yml
@@ -1,9 +1,11 @@
 parameters:
+  _param:
+    openstack_gateway_node01_hostname: gtw01
   reclass:
     storage:
       node:
         openstack_gateway_node01:
-          name: gtw01
+          name: ${_param:openstack_gateway_node01_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.openstack.gateway
diff --git a/reclass/storage/system/openstack_message_queue_cluster.yml b/reclass/storage/system/openstack_message_queue_cluster.yml
index ccf811f..c6a811f 100644
--- a/reclass/storage/system/openstack_message_queue_cluster.yml
+++ b/reclass/storage/system/openstack_message_queue_cluster.yml
@@ -1,9 +1,13 @@
 parameters:
+  _param:
+    openstack_message_queue_node01_hostname: msg01
+    openstack_message_queue_node02_hostname: msg02
+    openstack_message_queue_node03_hostname: msg03
   reclass:
     storage:
       node:
         openstack_message_queue_node01:
-          name: msg01
+          name: ${_param:openstack_message_queue_node01_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.openstack.message_queue
@@ -14,7 +18,7 @@
             keepalived_vip_priority: 103
             rabbitmq_cluster_role: master
         openstack_message_queue_node02:
-          name: msg02
+          name: ${_param:openstack_message_queue_node02_hostname}
           domain: ${_param:cluster_domain}
           classes:  
           - cluster.${_param:cluster_name}.openstack.message_queue
@@ -25,7 +29,7 @@
             keepalived_vip_priority: 102
             rabbitmq_cluster_role: slave
         openstack_message_queue_node03:
-          name: msg03
+          name: ${_param:openstack_message_queue_node03_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.openstack.message_queue
diff --git a/reclass/storage/system/openstack_proxy_cluster.yml b/reclass/storage/system/openstack_proxy_cluster.yml
index 3e546ed..95439fa 100644
--- a/reclass/storage/system/openstack_proxy_cluster.yml
+++ b/reclass/storage/system/openstack_proxy_cluster.yml
@@ -1,9 +1,12 @@
 parameters:
+  _param:
+    openstack_proxy_node01_hostname: prx01
+    openstack_proxy_node02_hostname: prx02
   reclass:
     storage:
       node:
         openstack_proxy_node01:
-          name: prx01
+          name: ${_param:openstack_proxy_node01_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.openstack.proxy
@@ -13,7 +16,7 @@
             single_address: ${_param:openstack_proxy_node01_address}
             keepalived_vip_priority: 102
         openstack_proxy_node02:
-          name: prx02
+          name: ${_param:openstack_proxy_node02_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.openstack.proxy
diff --git a/reclass/storage/system/openstack_proxy_single.yml b/reclass/storage/system/openstack_proxy_single.yml
index 4cfcc87..794ca64 100644
--- a/reclass/storage/system/openstack_proxy_single.yml
+++ b/reclass/storage/system/openstack_proxy_single.yml
@@ -1,9 +1,11 @@
 parameters:
+  _param:
+    openstack_proxy_node01_hostname: prx01
   reclass:
     storage:
       node:
         openstack_proxy_node01:
-          name: prx01
+          name: ${_param:openstack_proxy_node01_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.openstack.proxy
diff --git a/reclass/storage/system/openstack_telemetry_cluster.yml b/reclass/storage/system/openstack_telemetry_cluster.yml
index dba415c..d184fc9 100644
--- a/reclass/storage/system/openstack_telemetry_cluster.yml
+++ b/reclass/storage/system/openstack_telemetry_cluster.yml
@@ -1,9 +1,13 @@
 parameters:
+  _param:
+    openstack_telemetry_node01_hostname: mdb01
+    openstack_telemetry_node02_hostname: mdb02
+    openstack_telemetry_node03_hostname: mdb03
   reclass:
     storage:
       node:
         openstack_telemetry_node01:
-          name: mdb01
+          name: ${_param:openstack_telemetry_node01_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.openstack.telemetry
@@ -13,7 +17,7 @@
             single_address: ${_param:openstack_telemetry_node01_address}
             keepalived_vip_priority: 103
         openstack_telemetry_node02:
-          name: mdb02
+          name: ${_param:openstack_telemetry_node02_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.openstack.telemetry
@@ -23,7 +27,7 @@
             single_address: ${_param:openstack_telemetry_node02_address}
             keepalived_vip_priority: 102
         openstack_telemetry_node03:
-          name: mdb03
+          name: ${_param:openstack_telemetry_node03_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.openstack.telemetry
diff --git a/reclass/storage/system/physical_control_cluster.yml b/reclass/storage/system/physical_control_cluster.yml
index d16d4e5..12b83c9 100644
--- a/reclass/storage/system/physical_control_cluster.yml
+++ b/reclass/storage/system/physical_control_cluster.yml
@@ -1,31 +1,57 @@
 parameters:
+  _param:
+    infra_compute_node01_hostname: kvm01
+    infra_compute_node02_hostname: kvm02
+    infra_compute_node03_hostname: kvm03
+
+    infra_compute_node01_deploy_address: ${_param:infra_compute_node01_address}
+    infra_compute_node02_deploy_address: ${_param:infra_compute_node02_address}
+    infra_compute_node03_deploy_address: ${_param:infra_compute_node03_address}
+
+    infra_compute_node01_storage_address: ${_param:infra_compute_node01_address}
+    infra_compute_node02_storage_address: ${_param:infra_compute_node02_address}
+    infra_compute_node03_storage_address: ${_param:infra_compute_node03_address}
+
+    infra_compute_node01_public_address: ${_param:infra_compute_node01_address}
+    infra_compute_node02_public_address: ${_param:infra_compute_node02_address}
+    infra_compute_node03_public_address: ${_param:infra_compute_node03_address}
+
   reclass:
     storage:
       node:
-        fuel_compute_node01:
-          name: kvm01
+        infra_compute_node01:
+          name: ${_param:infra_compute_node01_hostname}
           domain: ${_param:cluster_domain}
           classes:
-          - cluster.${_param:cluster_name}.fuel.compute
+          - cluster.${_param:cluster_name}.infra.kvm
           params:
             salt_master_host: ${_param:reclass_config_master}
             linux_system_codename: trusty
-            single_address: ${_param:fuel_compute_node01_address}
-        fuel_compute_node02:
-          name: kvm02
+            single_address: ${_param:infra_compute_node01_address}
+            deploy_address: ${_param:infra_compute_node01_deploy_address}
+            public_address: ${_param:infra_compute_node01_public_address}
+            storage_address: ${_param:infra_compute_node01_storage_address}
+        infra_compute_node02:
+          name: ${_param:infra_compute_node02_hostname}
           domain: ${_param:cluster_domain}
           classes:
-          - cluster.${_param:cluster_name}.fuel.compute
+          - cluster.${_param:cluster_name}.infra.kvm
           params:
             salt_master_host: ${_param:reclass_config_master}
             linux_system_codename: trusty
-            single_address: ${_param:fuel_compute_node02_address}
-        fuel_compute_node03:
-          name: kvm03
+            single_address: ${_param:infra_compute_node02_address}
+            deploy_address: ${_param:infra_compute_node02_deploy_address}
+            public_address: ${_param:infra_compute_node02_public_address}
+            storage_address: ${_param:infra_compute_node02_storage_address}
+        infra_compute_node03:
+          name: ${_param:infra_compute_node03_hostname}
           domain: ${_param:cluster_domain}
           classes:
-          - cluster.${_param:cluster_name}.fuel.compute
+          - cluster.${_param:cluster_name}.infra.kvm
           params:
             salt_master_host: ${_param:reclass_config_master}
             linux_system_codename: trusty
-            single_address: ${_param:fuel_compute_node03_address}
+            single_address: ${_param:infra_compute_node03_address}
+            deploy_address: ${_param:infra_compute_node03_deploy_address}
+            public_address: ${_param:infra_compute_node03_public_address}
+            storage_address: ${_param:infra_compute_node03_storage_address}
diff --git a/reclass/storage/system/physical_control_full.yml b/reclass/storage/system/physical_control_full.yml
index d43c1c4..7591113 100644
--- a/reclass/storage/system/physical_control_full.yml
+++ b/reclass/storage/system/physical_control_full.yml
@@ -1,94 +1,153 @@
 parameters:
+  _param:
+    infra_compute_node01_hostname: kvm01
+    infra_compute_node02_hostname: kvm02
+    infra_compute_node03_hostname: kvm03
+    infra_compute_node04_hostname: kvm04
+    infra_compute_node05_hostname: kvm05
+    infra_compute_node06_hostname: kvm06
+    infra_compute_node07_hostname: kvm07
+    infra_compute_node08_hostname: kvm08
+    infra_compute_node09_hostname: kvm09
+
+    infra_compute_node01_deploy_address: ${_param:infra_compute_node01_address}
+    infra_compute_node02_deploy_address: ${_param:infra_compute_node02_address}
+    infra_compute_node03_deploy_address: ${_param:infra_compute_node03_address}
+    infra_compute_node04_deploy_address: ${_param:infra_compute_node04_address}
+    infra_compute_node05_deploy_address: ${_param:infra_compute_node05_address}
+    infra_compute_node06_deploy_address: ${_param:infra_compute_node06_address}
+    infra_compute_node07_deploy_address: ${_param:infra_compute_node07_address}
+    infra_compute_node08_deploy_address: ${_param:infra_compute_node08_address}
+    infra_compute_node09_deploy_address: ${_param:infra_compute_node09_address}
+
+    infra_compute_node01_storage_address: ${_param:infra_compute_node01_address}
+    infra_compute_node02_storage_address: ${_param:infra_compute_node02_address}
+    infra_compute_node03_storage_address: ${_param:infra_compute_node03_address}
+    infra_compute_node04_storage_address: ${_param:infra_compute_node04_address}
+    infra_compute_node05_storage_address: ${_param:infra_compute_node05_address}
+    infra_compute_node06_storage_address: ${_param:infra_compute_node06_address}
+    infra_compute_node07_storage_address: ${_param:infra_compute_node07_address}
+    infra_compute_node08_storage_address: ${_param:infra_compute_node08_address}
+    infra_compute_node09_storage_address: ${_param:infra_compute_node09_address}
+
+    infra_compute_node01_public_address: ${_param:infra_compute_node01_address}
+    infra_compute_node02_public_address: ${_param:infra_compute_node02_address}
+    infra_compute_node03_public_address: ${_param:infra_compute_node03_address}
+    infra_compute_node04_public_address: ${_param:infra_compute_node04_address}
+    infra_compute_node05_public_address: ${_param:infra_compute_node05_address}
+    infra_compute_node06_public_address: ${_param:infra_compute_node06_address}
+    infra_compute_node07_public_address: ${_param:infra_compute_node07_address}
+    infra_compute_node08_public_address: ${_param:infra_compute_node08_address}
+    infra_compute_node09_public_address: ${_param:infra_compute_node09_address}
+
   reclass:
     storage:
       node:
-        fuel_compute_node01:
-          name: kvm01
+        infra_compute_node01:
+          name: ${_param:infra_compute_node01_hostname}
           domain: ${_param:cluster_domain}
           classes:
-          - cluster.${_param:cluster_name}.fuel.compute
+          - cluster.${_param:cluster_name}.infra.kvm
           params:
             salt_master_host: ${_param:reclass_config_master}
             linux_system_codename: trusty
-            single_address: ${_param:fuel_compute_node01_address}
-            deploy_address: ${_param:fuel_compute_node01_deploy_address}
-        fuel_compute_node02:
-          name: kvm02
+            single_address: ${_param:infra_compute_node01_address}
+            deploy_address: ${_param:infra_compute_node01_deploy_address}
+            public_address: ${_param:infra_compute_node01_public_address}
+            storage_address: ${_param:infra_compute_node01_storage_address}
+        infra_compute_node02:
+          name: ${_param:infra_compute_node02_hostname}
           domain: ${_param:cluster_domain}
           classes:
-          - cluster.${_param:cluster_name}.fuel.compute
+          - cluster.${_param:cluster_name}.infra.kvm
           params:
             salt_master_host: ${_param:reclass_config_master}
             linux_system_codename: trusty
-            single_address: ${_param:fuel_compute_node02_address}
-            deploy_address: ${_param:fuel_compute_node02_deploy_address}
-        fuel_compute_node03:
-          name: kvm03
+            single_address: ${_param:infra_compute_node02_address}
+            deploy_address: ${_param:infra_compute_node02_deploy_address}
+            public_address: ${_param:infra_compute_node02_public_address}
+            storage_address: ${_param:infra_compute_node02_storage_address}
+        infra_compute_node03:
+          name: ${_param:infra_compute_node03_hostname}
           domain: ${_param:cluster_domain}
           classes:
-          - cluster.${_param:cluster_name}.fuel.compute
+          - cluster.${_param:cluster_name}.infra.kvm
           params:
             salt_master_host: ${_param:reclass_config_master}
             linux_system_codename: trusty
-            single_address: ${_param:fuel_compute_node03_address}
-            deploy_address: ${_param:fuel_compute_node03_deploy_address}
-        fuel_compute_node04:
-          name: kvm04
+            single_address: ${_param:infra_compute_node03_address}
+            deploy_address: ${_param:infra_compute_node03_deploy_address}
+            public_address: ${_param:infra_compute_node03_public_address}
+            storage_address: ${_param:infra_compute_node03_storage_address}
+        infra_compute_node04:
+          name: ${_param:infra_compute_node04_hostname}
           domain: ${_param:cluster_domain}
           classes:
-          - cluster.${_param:cluster_name}.fuel.compute
+          - cluster.${_param:cluster_name}.infra.kvm
           params:
             salt_master_host: ${_param:reclass_config_master}
             linux_system_codename: trusty
-            single_address: ${_param:fuel_compute_node04_address}
-            deploy_address: ${_param:fuel_compute_node04_deploy_address}
-        fuel_compute_node05:
-          name: kvm05
+            single_address: ${_param:infra_compute_node04_address}
+            deploy_address: ${_param:infra_compute_node04_deploy_address}
+            public_address: ${_param:infra_compute_node04_public_address}
+            storage_address: ${_param:infra_compute_node04_storage_address}
+        infra_compute_node05:
+          name: ${_param:infra_compute_node05_hostname}
           domain: ${_param:cluster_domain}
           classes:
-          - cluster.${_param:cluster_name}.fuel.compute
+          - cluster.${_param:cluster_name}.infra.kvm
           params:
             salt_master_host: ${_param:reclass_config_master}
             linux_system_codename: trusty
-            single_address: ${_param:fuel_compute_node05_address}
-            deploy_address: ${_param:fuel_compute_node05_deploy_address}
-        fuel_compute_node06:
-          name: kvm06
+            single_address: ${_param:infra_compute_node05_address}
+            deploy_address: ${_param:infra_compute_node05_deploy_address}
+            public_address: ${_param:infra_compute_node05_public_address}
+            storage_address: ${_param:infra_compute_node05_storage_address}
+        infra_compute_node06:
+          name: ${_param:infra_compute_node06_hostname}
           domain: ${_param:cluster_domain}
           classes:
-          - cluster.${_param:cluster_name}.fuel.compute
+          - cluster.${_param:cluster_name}.infra.kvm
           params:
             salt_master_host: ${_param:reclass_config_master}
             linux_system_codename: trusty
-            single_address: ${_param:fuel_compute_node06_address}
-            deploy_address: ${_param:fuel_compute_node06_deploy_address}
-        fuel_compute_node07:
-          name: kvm07
+            single_address: ${_param:infra_compute_node06_address}
+            deploy_address: ${_param:infra_compute_node06_deploy_address}
+            public_address: ${_param:infra_compute_node06_public_address}
+            storage_address: ${_param:infra_compute_node06_storage_address}
+        infra_compute_node07:
+          name: ${_param:infra_compute_node07_hostname}
           domain: ${_param:cluster_domain}
           classes:
-          - cluster.${_param:cluster_name}.fuel.compute
+          - cluster.${_param:cluster_name}.infra.kvm
           params:
             salt_master_host: ${_param:reclass_config_master}
             linux_system_codename: trusty
-            single_address: ${_param:fuel_compute_node07_address}
-            deploy_address: ${_param:fuel_compute_node07_deploy_address}
-        fuel_compute_node08:
-          name: kvm08
+            single_address: ${_param:infra_compute_node07_address}
+            deploy_address: ${_param:infra_compute_node07_deploy_address}
+            public_address: ${_param:infra_compute_node07_public_address}
+            storage_address: ${_param:infra_compute_node07_storage_address}
+        infra_compute_node08:
+          name: ${_param:infra_compute_node08_hostname}
           domain: ${_param:cluster_domain}
           classes:
-          - cluster.${_param:cluster_name}.fuel.compute
+          - cluster.${_param:cluster_name}.infra.kvm
           params:
             salt_master_host: ${_param:reclass_config_master}
             linux_system_codename: trusty
-            single_address: ${_param:fuel_compute_node08_address}
-            deploy_address: ${_param:fuel_compute_node08_deploy_address}
-        fuel_compute_node09:
-          name: kvm09
+            single_address: ${_param:infra_compute_node08_address}
+            deploy_address: ${_param:infra_compute_node08_deploy_address}
+            public_address: ${_param:infra_compute_node08_public_address}
+            storage_address: ${_param:infra_compute_node08_storage_address}
+        infra_compute_node09:
+          name: ${_param:infra_compute_node09_hostname}
           domain: ${_param:cluster_domain}
           classes:
-          - cluster.${_param:cluster_name}.fuel.compute
+          - cluster.${_param:cluster_name}.infra.kvm
           params:
             salt_master_host: ${_param:reclass_config_master}
             linux_system_codename: trusty
-            single_address: ${_param:fuel_compute_node09_address}
-            deploy_address: ${_param:fuel_compute_node09_deploy_address}
+            single_address: ${_param:infra_compute_node09_address}
+            deploy_address: ${_param:infra_compute_node09_deploy_address}
+            public_address: ${_param:infra_compute_node09_public_address}
+            storage_address: ${_param:infra_compute_node09_storage_address}
\ No newline at end of file
diff --git a/reclass/storage/system/physical_control_single.yml b/reclass/storage/system/physical_control_single.yml
index 7767c7e..1a604f1 100644
--- a/reclass/storage/system/physical_control_single.yml
+++ b/reclass/storage/system/physical_control_single.yml
@@ -1,14 +1,21 @@
 parameters:
+  _param:
+    infra_compute_node01_hostname: kvm01
+    infra_compute_node01_deploy_address: ${_param:infra_compute_node01_address}
+    infra_compute_node01_storage_address: ${_param:infra_compute_node01_address}
+    infra_compute_node01_public_address: ${_param:infra_compute_node01_address}
   reclass:
     storage:
       node:
-        fuel_compute_node01:
-          name: kvm01
+        infra_compute_node01:
+          name: ${_param:infra_compute_node01_hostname}
           domain: ${_param:cluster_domain}
           classes:
-          - cluster.${_param:cluster_name}.fuel.compute
+          - cluster.${_param:cluster_name}.infra.kvm
           params:
             salt_master_host: ${_param:reclass_config_master}
             linux_system_codename: trusty
-            single_address: ${_param:fuel_compute_node01_address}
-
+            single_address: ${_param:infra_compute_node01_address}
+            deploy_address: ${_param:infra_compute_node01_deploy_address}
+            public_address: ${_param:infra_compute_node01_public_address}
+            storage_address: ${_param:infra_compute_node01_storage_address}
\ No newline at end of file
diff --git a/reclass/storage/system/stacklight_log_cluster.yml b/reclass/storage/system/stacklight_log_cluster.yml
index 15d2c21..4a5da29 100644
--- a/reclass/storage/system/stacklight_log_cluster.yml
+++ b/reclass/storage/system/stacklight_log_cluster.yml
@@ -1,9 +1,13 @@
 parameters:
+  _param:
+    stacklight_log_node01_hostname: log01
+    stacklight_log_node02_hostname: log02
+    stacklight_log_node03_hostname: log03
   reclass:
     storage:
       node:
         stacklight_log_node01:
-          name: log01
+          name: ${_param:stacklight_log_node01_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.stacklight.log
@@ -14,7 +18,7 @@
             single_address: ${_param:stacklight_log_node01_address}
             keepalived_vip_priority: 103
         stacklight_log_node02:
-          name: log02
+          name: ${_param:stacklight_log_node02_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.stacklight.log
@@ -24,7 +28,7 @@
             single_address: ${_param:stacklight_log_node02_address}
             keepalived_vip_priority: 102
         stacklight_log_node03:
-          name: log03
+          name: ${_param:stacklight_log_node03_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.stacklight.log
diff --git a/reclass/storage/system/stacklight_monitor_cluster.yml b/reclass/storage/system/stacklight_monitor_cluster.yml
index be862f6..9df1a69 100644
--- a/reclass/storage/system/stacklight_monitor_cluster.yml
+++ b/reclass/storage/system/stacklight_monitor_cluster.yml
@@ -1,9 +1,13 @@
 parameters:
+  _param:
+    stacklight_monitor_node01_hostname: mon01
+    stacklight_monitor_node02_hostname: mon02
+    stacklight_monitor_node03_hostname: mon03
   reclass:
     storage:
       node:
         stacklight_monitor_node01:
-          name: mon01
+          name: ${_param:stacklight_monitor_node01_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.stacklight.monitor
@@ -13,7 +17,7 @@
             single_address: ${_param:stacklight_monitor_node01_address}
             keepalived_vip_priority: 103
         stacklight_monitor_node02:
-          name: mon02
+          name: ${_param:stacklight_monitor_node02_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.stacklight.monitor
@@ -23,7 +27,7 @@
             single_address: ${_param:stacklight_monitor_node02_address}
             keepalived_vip_priority: 102
         stacklight_monitor_node03:
-          name: mon03
+          name: ${_param:stacklight_monitor_node03_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.stacklight.monitor
diff --git a/reclass/storage/system/stacklight_server_cluster.yml b/reclass/storage/system/stacklight_server_cluster.yml
index 5a106b9..9d40ea9 100644
--- a/reclass/storage/system/stacklight_server_cluster.yml
+++ b/reclass/storage/system/stacklight_server_cluster.yml
@@ -1,13 +1,18 @@
 parameters:
+  _param:
+    stacklight_monitor_node01_hostname: mon01
+    stacklight_monitor_node02_hostname: mon02
+    stacklight_monitor_node03_hostname: mon03
   reclass:
     storage:
       node:
         stacklight_server_node01:
-          name: mon01
+          name: ${_param:stacklight_monitor_node01_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.stacklight.server
           - system.influxdb.server.single
+          - system.influxdb.database.stacklight
           - system.elasticsearch.client.single
           - system.grafana.client.single
           - system.kibana.client.single
@@ -17,7 +22,7 @@
             single_address: ${_param:stacklight_monitor_node01_address}
             keepalived_vip_priority: 103
         stacklight_server_node02:
-          name: mon02
+          name: ${_param:stacklight_monitor_node02_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.stacklight.server
@@ -27,7 +32,7 @@
             single_address: ${_param:stacklight_monitor_node02_address}
             keepalived_vip_priority: 102
         stacklight_server_node03:
-          name: mon03
+          name: ${_param:stacklight_monitor_node03_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.stacklight.server
diff --git a/reclass/storage/system/stacklight_server_single.yml b/reclass/storage/system/stacklight_server_single.yml
index c2237f1..6ef1050 100644
--- a/reclass/storage/system/stacklight_server_single.yml
+++ b/reclass/storage/system/stacklight_server_single.yml
@@ -1,14 +1,18 @@
 parameters:
+  _param:
+    stacklight_monitor_node01_hostname: mon01
   reclass:
     storage:
       node:
         stacklight_server_node01:
-          name: mon01
+          name: ${_param:stacklight_monitor_node01_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.stacklight.server
           - system.elasticsearch.client.single
           - system.grafana.client.single
+          - system.influxdb.server.single
+          - system.influxdb.database.stacklight
           - system.kibana.client.single
           params:
             salt_master_host: ${_param:reclass_config_master}
diff --git a/reclass/storage/system/stacklight_telemetry_cluster.yml b/reclass/storage/system/stacklight_telemetry_cluster.yml
index 8791b98..12b1dae 100644
--- a/reclass/storage/system/stacklight_telemetry_cluster.yml
+++ b/reclass/storage/system/stacklight_telemetry_cluster.yml
@@ -1,9 +1,13 @@
 parameters:
+  _param:
+    stacklight_telemetry_node01_hostname: mtr01
+    stacklight_telemetry_node02_hostname: mtr02
+    stacklight_telemetry_node03_hostname: mtr03
   reclass:
     storage:
       node:
         stacklight_telemetry_node01:
-          name: mtr01
+          name: ${_param:stacklight_telemetry_node01_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.stacklight.telemetry
@@ -13,7 +17,7 @@
             single_address: ${_param:stacklight_telemetry_node01_address}
             keepalived_vip_priority: 103
         stacklight_telemetry_node02:
-          name: mtr02
+          name: ${_param:stacklight_telemetry_node02_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.stacklight.telemetry
@@ -23,7 +27,7 @@
             single_address: ${_param:stacklight_telemetry_node02_address}
             keepalived_vip_priority: 102
         stacklight_telemetry_node03:
-          name: mtr03
+          name: ${_param:stacklight_telemetry_node03_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.stacklight.telemetry
diff --git a/reclass/storage/system/stacklight_telemetry_single.yml b/reclass/storage/system/stacklight_telemetry_single.yml
index 920c29d..bc51b30 100644
--- a/reclass/storage/system/stacklight_telemetry_single.yml
+++ b/reclass/storage/system/stacklight_telemetry_single.yml
@@ -1,9 +1,11 @@
 parameters:
+  _param:
+    stacklight_telemetry_node01_hostname: mtr01
   reclass:
     storage:
       node:
         stacklight_telemetry_node01:
-          name: mtr01
+          name: ${_param:stacklight_telemetry_node01_hostname}
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.stacklight.telemetry
diff --git a/salt/master/api.yml b/salt/master/api.yml
new file mode 100644
index 0000000..1c0c3fb
--- /dev/null
+++ b/salt/master/api.yml
@@ -0,0 +1,31 @@
+parameters:
+  _param:
+    salt_master_api_port: 8000
+    salt_master_api_permissions:
+    - '.*'
+    - '@local'
+    - '@wheel'   # to allow access to all wheel modules
+    - '@runner'  # to allow access to all runner modules
+    - '@jobs'    # to allow access to the jobs runner and/or wheel mo
+  salt:
+    api:
+      enabled: true
+      bind:
+        address: 0.0.0.0
+        port: ${_param:salt_master_api_port}
+    master:
+      command_timeout: 600
+      user:
+        salt:
+          permissions: ${_param:salt_master_api_permissions}
+  linux:
+    system:
+      user:
+        salt:
+          enabled: true
+          name: salt
+          password: ${_param:salt_api_password_hash}
+          home: /var/tmp/salt
+          sudo: false
+          system: true
+          shell: /bin/false
diff --git a/salt/master/formula/git/kubernetes.yml b/salt/master/formula/git/kubernetes.yml
new file mode 100644
index 0000000..c827caf
--- /dev/null
+++ b/salt/master/formula/git/kubernetes.yml
@@ -0,0 +1,22 @@
+parameters:
+  salt:
+    master:
+      environment:
+        dev:
+          formula:
+            kubernetes:
+              source: git
+              address: 'https://github.com/openstack/salt-formula-kubernetes.git'
+              revision: ${_param:salt_master_environment_revision}
+            etcd:
+              source: git
+              address: 'https://github.com/tcpcloud/salt-formula-etcd.git'
+              revision: ${_param:salt_master_environment_revision}
+            bird:
+              source: git
+              address: 'https://github.com/tcpcloud/salt-formula-bird.git'
+              revision: ${_param:salt_master_environment_revision}
+            docker:
+              source: git
+              address: 'https://github.com/tcpcloud/salt-formula-docker.git'
+              revision: ${_param:salt_master_environment_revision}
\ No newline at end of file
diff --git a/salt/master/formula/pkg/kubernetes.yml b/salt/master/formula/pkg/kubernetes.yml
new file mode 100644
index 0000000..7b3af30
--- /dev/null
+++ b/salt/master/formula/pkg/kubernetes.yml
@@ -0,0 +1,18 @@
+parameters:
+  salt:
+    master:
+      environment:
+        prd:
+          formula:
+            kubernetes:
+              source: pkg
+              name: salt-formula-kubernetes
+            etcd:
+              source: pkg
+              name: salt-formula-etcd
+            bird:
+              source: pkg
+              name: salt-formula-bird
+            docker:
+              source: pkg
+              name: salt-formula-docker
\ No newline at end of file
diff --git a/salt/master/git.yml b/salt/master/git.yml
index 5a922af..7b57a26 100644
--- a/salt/master/git.yml
+++ b/salt/master/git.yml
@@ -3,6 +3,7 @@
 - system.salt.master.formula.git.openstack
 - system.salt.master.formula.git.saltstack
 - system.salt.master.formula.git.stacklight
+- system.salt.master.formula.git.kubernetes
 parameters:
   _param:
     salt_master_environment_repository: "https://github.com/tcpcloud"
diff --git a/salt/master/pkg.yml b/salt/master/pkg.yml
index d1c8a1a..baae04c 100644
--- a/salt/master/pkg.yml
+++ b/salt/master/pkg.yml
@@ -3,4 +3,5 @@
 - system.salt.master.formula.pkg.openstack
 - system.salt.master.formula.pkg.saltstack
 - system.salt.master.formula.pkg.stacklight
+- system.salt.master.formula.pkg.kubernetes
 - system.linux.system.repo.tcp_salt
diff --git a/salt/minion/ca/salt_master.yml b/salt/minion/ca/salt_master.yml
new file mode 100644
index 0000000..30c9d9b
--- /dev/null
+++ b/salt/minion/ca/salt_master.yml
@@ -0,0 +1,26 @@
+parameters:
+  _param:
+    salt_minion_ca_common_name: Salt Master CA
+    salt_minion_ca_country: cz 
+    salt_minion_ca_locality: Prague
+    salt_minion_ca_organization: Mirantis
+    salt_minion_ca_days_valid_authority: 3650
+    salt_minion_ca_days_valid_certificate: 365
+  salt:
+    minion:
+      ca:
+        salt_master_ca:
+          common_name: ${_param:salt_minion_ca_common_name}
+          country: ${_param:salt_minion_ca_country}
+          locality: ${_param:salt_minion_ca_locality}
+          organization: ${_param:salt_minion_ca_organization}
+          signing_policy:
+            cert_server:
+              type: v3_edge_cert_server
+              minions: '*'
+            cert_client:
+              type: v3_edge_cert_client
+              minions: '*'
+          days_valid:
+            authority: ${_param:salt_minion_ca_days_valid_authority}
+            certificate: ${_param:salt_minion_ca_days_valid_certificate}
diff --git a/salt/minion/cert/k8s_client_certificate.yml b/salt/minion/cert/k8s_client_certificate.yml
new file mode 100644
index 0000000..37bf618
--- /dev/null
+++ b/salt/minion/cert/k8s_client_certificate.yml
@@ -0,0 +1,12 @@
+parameters:
+  salt:
+    minion:
+      cert:
+        k8s_client:
+          host: ${_param:salt_minion_ca_host}
+          authority: ${_param:salt_minion_ca_authority}
+          key_file: /etc/kubernetes/ssl/kubelet-client.key
+          cert_file: /etc/kubernetes/ssl/kubelet-client.crt
+          common_name: kubelet-client
+          signing_policy: cert_client
+          alternative_names: IP:${_param:cluster_vip_address},IP:${_param:cluster_node01_address},IP:${_param:cluster_node02_address},IP:${_param:cluster_node03_address},IP:${_param:kubernetes_internal_api_address}
\ No newline at end of file
diff --git a/salt/minion/cert/k8s_server_certificate.yml b/salt/minion/cert/k8s_server_certificate.yml
new file mode 100644
index 0000000..835f043
--- /dev/null
+++ b/salt/minion/cert/k8s_server_certificate.yml
@@ -0,0 +1,13 @@
+parameters:
+  salt:
+    minion:
+      cert:
+        k8s_server:
+          host: ${_param:salt_minion_ca_host}
+          authority: ${_param:salt_minion_ca_authority}
+          common_name: kubernetes-server
+          key_file: /etc/kubernetes/ssl/kubernetes-server.key
+          cert_file: /etc/kubernetes/ssl/kubernetes-server.crt
+          ca_file: /etc/kubernetes/ssl/ca-kubernetes.crt
+          signing_policy: cert_server
+          alternative_names: IP:${_param:cluster_vip_address},IP:${_param:cluster_node01_address},IP:${_param:cluster_node02_address},IP:${_param:cluster_node03_address},IP:${_param:kubernetes_internal_api_address}
\ No newline at end of file
diff --git a/salt/minion/cert/proxy.yml b/salt/minion/cert/proxy.yml
new file mode 100644
index 0000000..fac9aa5
--- /dev/null
+++ b/salt/minion/cert/proxy.yml
@@ -0,0 +1,11 @@
+parameters:
+  _param:
+    salt_minion_ca_authority: salt_master_ca
+  salt:
+    minion:
+      cert:
+        proxy:
+          host: ${_param:salt_minion_ca_host}
+          signing_policy: cert_server
+          authority: ${_param:salt_minion_ca_authority}
+          common_name: ${_param:cluster_public_host}
diff --git a/salt/minion/pki/authority.yml b/salt/minion/pki/authority.yml
deleted file mode 100644
index fa84966..0000000
--- a/salt/minion/pki/authority.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-parameters:
-  salt:
-    minion:
-      ca:
-        mk_lab_ca:
-          common_name: mk_lab_ca
-          country: cz
-          locality: Prague
-          organization: Mirantis
-          signing_policy:
-            cert_server:
-              type: v3_edge_cert_server
-              minions: '*'
-            cert_client:
-              type: v3_edge_cert_client
-              minions: '*'
-          days_valid:
-            authority: 3650
-            certificate: 3650
diff --git a/salt/minion/pki/certificate.yml b/salt/minion/pki/certificate.yml
deleted file mode 100644
index 4bf4ef3..0000000
--- a/salt/minion/pki/certificate.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-parameters:
-  salt:
-    minion:
-      cert:
-        proxy_cert:
-          host: ${_param:salt_minion_ca_host}
-          signing_policy: cert_server
-          authority: mk_lab_ca
-          common_name: ${_param:cluster_public_host}