Merge "Move list of artifactory repositories to salt"
diff --git a/cinder/control/cluster.yml b/cinder/control/cluster.yml
index 868b71e..c130e97 100644
--- a/cinder/control/cluster.yml
+++ b/cinder/control/cluster.yml
@@ -4,6 +4,12 @@
 - service.keepalived.cluster.single
 - system.haproxy.proxy.listen.openstack.cinder
 parameters:
+  linux:
+    system:
+      package:
+        python-pymysql:
+          fromrepo: ${_param:openstack_version}
+          version: latest
   cinder:      
     volume:
       enabled: false
diff --git a/cinder/control/single.yml b/cinder/control/single.yml
index 58156cb..2d7f179 100644
--- a/cinder/control/single.yml
+++ b/cinder/control/single.yml
@@ -1,6 +1,12 @@
 classes:
 - service.cinder.control.single
 parameters:
+  linux:
+    system:
+      package:
+        python-pymysql:
+          fromrepo: ${_param:openstack_version}
+          version: latest
   cinder:
     volume:
       enabled: false
diff --git a/cinder/volume/single.yml b/cinder/volume/single.yml
index 9c8f7c2..de468ba 100644
--- a/cinder/volume/single.yml
+++ b/cinder/volume/single.yml
@@ -1,6 +1,12 @@
 classes:
 - service.cinder.volume.single
 parameters:
+  linux:
+    system:
+      package:
+        python-pymysql:
+          fromrepo: ${_param:openstack_version}
+          version: latest
   cinder:
     volume:
       enabled: True
diff --git a/designate/server/cluster.yml b/designate/server/cluster.yml
index 33eb632..eb6a5b6 100644
--- a/designate/server/cluster.yml
+++ b/designate/server/cluster.yml
@@ -4,6 +4,12 @@
 - system.haproxy.proxy.listen.openstack.designate
 - service.haproxy.proxy.single
 parameters:
+  linux:
+    system:
+      package:
+        python-pymysql:
+          fromrepo: ${_param:openstack_version}
+          version: latest
   designate:
     _support:
       sensu:
diff --git a/designate/server/single.yml b/designate/server/single.yml
index 623c357..b658f8b 100644
--- a/designate/server/single.yml
+++ b/designate/server/single.yml
@@ -1,6 +1,12 @@
 classes:
 - service.designate.server.single
 parameters:
+  linux:
+    system:
+      package:
+        python-pymysql:
+          fromrepo: ${_param:openstack_version}
+          version: latest
   designate:
     server:
       enabled: true
diff --git a/docker/swarm/manager.yml b/docker/swarm/manager.yml
index 4bbc22b..12bfc0c 100644
--- a/docker/swarm/manager.yml
+++ b/docker/swarm/manager.yml
@@ -3,10 +3,11 @@
 parameters:
   _param:
     docker_gwbridge_subnet: 10.20.0.0/16
+    docker_swarm_master_port: 2377
   docker:
     swarm:
       role: manager
       advertise_addr: ${_param:single_address}
       master:
         host: ${_param:cluster_node01_address}
-        port: 2377
+        port: ${_param:docker_swarm_master_port}
diff --git a/docker/swarm/worker.yml b/docker/swarm/worker.yml
index 643b207..4bed790 100644
--- a/docker/swarm/worker.yml
+++ b/docker/swarm/worker.yml
@@ -3,9 +3,11 @@
 parameters:
   _param:
     docker_gwbridge_subnet: 10.20.0.0/16
+    docker_swarm_master_port: 2377
   docker:
     swarm:
       role: worker
       advertise_addr: ${_param:single_address}
       master:
         host: ${_param:cluster_node01_address}
+        port: ${_param:docker_swarm_master_port}
diff --git a/glance/control/cluster.yml b/glance/control/cluster.yml
index 6402721..bb87f16 100644
--- a/glance/control/cluster.yml
+++ b/glance/control/cluster.yml
@@ -4,6 +4,12 @@
 - service.haproxy.proxy.single
 - system.haproxy.proxy.listen.openstack.glance
 parameters:
+  linux:
+    system:
+      package:
+        python-pymysql:
+          fromrepo: ${_param:openstack_version}
+          version: latest
   glance:
     server:
       enabled: true
diff --git a/glance/control/single.yml b/glance/control/single.yml
index 458cd37..b285d38 100644
--- a/glance/control/single.yml
+++ b/glance/control/single.yml
@@ -1,6 +1,12 @@
 classes:
 - service.glance.control.single
 parameters:
+  linux:
+    system:
+      package:
+        python-pymysql:
+          fromrepo: ${_param:openstack_version}
+          version: latest
   glance:
     server:
       database:
diff --git a/haproxy/proxy/listen/openstack/nova.yml b/haproxy/proxy/listen/openstack/nova.yml
index 3865a82..efffee0 100644
--- a/haproxy/proxy/listen/openstack/nova.yml
+++ b/haproxy/proxy/listen/openstack/nova.yml
@@ -2,26 +2,6 @@
   haproxy:
     proxy:
       listen:
-        nova_ec2_api:
-          type: general-service
-          service_name: nova
-          check: false
-          binds:
-          - address: ${_param:cluster_vip_address}
-            port: 8773
-          servers:
-          - name: ctl01
-            host: ${_param:cluster_node01_address}
-            port: 8773
-            params: check
-          - name: ctl02
-            host: ${_param:cluster_node02_address}
-            port: 8773
-            params: check
-          - name: ctl03
-            host: ${_param:cluster_node03_address}
-            port: 8773
-            params: check
         nova_api:
           type: openstack-service
           service_name: nova
diff --git a/haproxy/proxy/listen/radosgw.yml b/haproxy/proxy/listen/radosgw.yml
index 369306b..ecdeb6b 100644
--- a/haproxy/proxy/listen/radosgw.yml
+++ b/haproxy/proxy/listen/radosgw.yml
@@ -19,8 +19,8 @@
             - name: ${_param:cluster_node02_hostname}
               host: ${_param:cluster_node02_address}
               port: ${_param:haproxy_radosgw_source_port}
-              params: backup check
+              params: check
             - name: ${_param:cluster_node03_hostname}
               host: ${_param:cluster_node03_address}
               port: ${_param:haproxy_radosgw_source_port}
-              params: backup check
+              params: check
diff --git a/heat/server/cluster.yml b/heat/server/cluster.yml
index ee5df33..8e38f4f 100644
--- a/heat/server/cluster.yml
+++ b/heat/server/cluster.yml
@@ -6,6 +6,12 @@
 parameters:
   _param:
     cluster_public_protocol: https
+  linux:
+    system:
+      package:
+        python-pymysql:
+          fromrepo: ${_param:openstack_version}
+          version: latest
   heat:
     server:
       stack_domain_admin:
diff --git a/heat/server/single.yml b/heat/server/single.yml
index d097605..cd548bf 100644
--- a/heat/server/single.yml
+++ b/heat/server/single.yml
@@ -1,6 +1,12 @@
 classes:
 - service.heat.server.single
 parameters:
+  linux:
+    system:
+      package:
+        python-pymysql:
+          fromrepo: ${_param:openstack_version}
+          version: latest
   heat:
     server:
       stack_domain_admin:
diff --git a/ironic/api/cluster.yml b/ironic/api/cluster.yml
index c3a7901..5522f3f 100644
--- a/ironic/api/cluster.yml
+++ b/ironic/api/cluster.yml
@@ -1,6 +1,12 @@
 classes:
 - service.ironic.api.cluster
 parameters:
+  linux:
+    system:
+      package:
+        python-pymysql:
+          fromrepo: ${_param:openstack_version}
+          version: latest
   ironic:
     api:
       enabled: true
diff --git a/ironic/api/single.yml b/ironic/api/single.yml
index 0800579..ed73e90 100644
--- a/ironic/api/single.yml
+++ b/ironic/api/single.yml
@@ -1,6 +1,12 @@
 classes:
 - service.ironic.api.single
 parameters:
+  linux:
+    system:
+      package:
+        python-pymysql:
+          fromrepo: ${_param:openstack_version}
+          version: latest
   ironic:
     api:
       bind:
diff --git a/ironic/conductor/cluster.yml b/ironic/conductor/cluster.yml
index ba0c538..063719c 100644
--- a/ironic/conductor/cluster.yml
+++ b/ironic/conductor/cluster.yml
@@ -1,6 +1,12 @@
 classes:
 - service.ironic.conductor.cluster
 parameters:
+  linux:
+    system:
+      package:
+        python-pymysql:
+          fromrepo: ${_param:openstack_version}
+          version: latest
   ironic:
     conductor:
       api_url: 'http://${_param:cluster_baremetal_vip_address}:6385'
diff --git a/ironic/conductor/single.yml b/ironic/conductor/single.yml
index 69e6c20..d827129 100644
--- a/ironic/conductor/single.yml
+++ b/ironic/conductor/single.yml
@@ -1,6 +1,12 @@
 classes:
 - service.ironic.conductor.single
 parameters:
+  linux:
+    system:
+      package:
+        python-pymysql:
+          fromrepo: ${_param:openstack_version}
+          version: latest
   ironic:
     conductor:
       enabled: true
diff --git a/jenkins/client/job/deploy/lab/cicd.yml b/jenkins/client/job/deploy/lab/cicd.yml
index 260e7b1..9002c9c 100644
--- a/jenkins/client/job/deploy/lab/cicd.yml
+++ b/jenkins/client/job/deploy/lab/cicd.yml
@@ -63,10 +63,6 @@
               OPENSTACK_API_URL:
                 type: string
                 default: "https://cloud-cz.bud.mirantis.net:5000"
-              TARGET_OPENSTACK_IP:
-                type: string
-                default: "${_param:oss_target_openstack_ip}"
-                description: "IP address of the OpenStack deployment, managed by OSS tooling"
               OPENSTACK_API_CREDENTIALS:
                 type: string
                 default: "openstack-devcloud-credentials"
diff --git a/jenkins/client/job/deploy/lab/component/aaa.yml b/jenkins/client/job/deploy/lab/component/aaa.yml
index 61d0b60..1c640d5 100644
--- a/jenkins/client/job/deploy/lab/component/aaa.yml
+++ b/jenkins/client/job/deploy/lab/component/aaa.yml
@@ -4,6 +4,7 @@
   _param:
     jenkins_deploy_jobs:
       - stack_name: aaa_ha_freeipa
+        stack_env: devcloud
         stack_type: heat
         stack_install: core,aaa
         stack_test: ""
diff --git a/jenkins/client/job/deploy/lab/component/ceph.yml b/jenkins/client/job/deploy/lab/component/ceph.yml
index 0d84374..b0b3af1 100644
--- a/jenkins/client/job/deploy/lab/component/ceph.yml
+++ b/jenkins/client/job/deploy/lab/component/ceph.yml
@@ -4,6 +4,7 @@
   _param:
     jenkins_deploy_jobs:
       - stack_name: ceph_ha
+        stack_env: devcloud
         stack_type: heat
         stack_install: core,ceph
         stack_test: "ceph"
diff --git a/jenkins/client/job/deploy/lab/component/drivetrain.yml b/jenkins/client/job/deploy/lab/component/drivetrain.yml
index e9e00e7..945ac4a 100644
--- a/jenkins/client/job/deploy/lab/component/drivetrain.yml
+++ b/jenkins/client/job/deploy/lab/component/drivetrain.yml
@@ -4,11 +4,13 @@
   _param:
     jenkins_deploy_jobs:
       - stack_name: drivetrain_ha
+        stack_env: devcloud
         stack_type: heat
         stack_install: core
         stack_test: ""
         job_timer: ""
       - stack_name: drivetrain_ha_clusters
+        stack_env: devcloud
         stack_type: heat
         stack_install: core
         stack_test: ""
diff --git a/jenkins/client/job/deploy/lab/component/kubernetes.yml b/jenkins/client/job/deploy/lab/component/kubernetes.yml
index 9e80c64..5ef3bd9 100644
--- a/jenkins/client/job/deploy/lab/component/kubernetes.yml
+++ b/jenkins/client/job/deploy/lab/component/kubernetes.yml
@@ -4,26 +4,31 @@
   _param:
     jenkins_deploy_jobs:
       - stack_name: k8s_aio_calico
+        stack_env: devcloud
         stack_type: heat
         stack_install: core,k8s,calico
         stack_test: ""
         job_timer: ""
       - stack_name: k8s_aio_contrail
+        stack_env: devcloud
         stack_type: heat
         stack_install: core,k8s,contrail
         stack_test: ""
         job_timer: ""
       - stack_name: k8s_ha_calico
+        stack_env: devcloud
         stack_type: aws
         stack_install: core,k8s,calico
         stack_test: ""
         job_timer: "H H(0-6) * * *"
       - stack_name: k8s_ha_calico
+        stack_env: devcloud
         stack_type: heat
         stack_install: core,k8s,calico
         stack_test: ""
         job_timer: "H H(0-6) * * *"
       - stack_name: k8s_ha_contrail
+        stack_env: devcloud
         stack_type: heat
         stack_install: core,k8s,contrail
         stack_test: ""
diff --git a/jenkins/client/job/deploy/lab/component/openstack.yml b/jenkins/client/job/deploy/lab/component/openstack.yml
index 33c03f3..1e1d334 100644
--- a/jenkins/client/job/deploy/lab/component/openstack.yml
+++ b/jenkins/client/job/deploy/lab/component/openstack.yml
@@ -4,20 +4,24 @@
   _param:
     jenkins_deploy_jobs:
       - stack_name: os_aio_contrail
+        stack_env: devcloud
         stack_type: heat
         stack_install: core,openstack,contrail
         stack_test: ""
         job_timer: ""
       - stack_name: os_aio_ovs
+        stack_env: devcloud
         stack_type: heat
         stack_install: core,openstack,ovs
         job_timer: ""
       - stack_name: os_ha_contrail
+        stack_env: devcloud
         stack_type: heat
         stack_install: core,openstack,contrail
         stack_test: ""
         job_timer: "H H(0-6) * * *"
       - stack_name: os_ha_ovs
+        stack_env: devcloud
         stack_type: heat
         stack_install: core,openstack,ovs
         stack_test: ""
diff --git a/jenkins/client/job/deploy/lab/component/stacklight.yml b/jenkins/client/job/deploy/lab/component/stacklight.yml
index 2802e13..94ccce2 100644
--- a/jenkins/client/job/deploy/lab/component/stacklight.yml
+++ b/jenkins/client/job/deploy/lab/component/stacklight.yml
@@ -4,16 +4,19 @@
   _param:
     jenkins_deploy_jobs:
       - stack_name: stacklight_k8s_calico
+        stack_env: devcloud
         stack_type: heat
         stack_install: core,k8s,calico,stacklight
         stack_test: ""
         job_timer: "H H(0-6) * * *"
       - stack_name: stacklight_os_contrail
+        stack_env: devcloud
         stack_type: heat
         stack_install: core,openstack,contrail,stacklight
         stack_test: ""
         job_timer: "H H(0-6) * * *"
       - stack_name: stacklight_os_ovs
+        stack_env: devcloud
         stack_type: heat
         stack_install: core,openstack,ovs,stacklight
         stack_test: ""
diff --git a/jenkins/client/job/deploy/lab/deploy.yml b/jenkins/client/job/deploy/lab/deploy.yml
index 5d87340..75bab43 100644
--- a/jenkins/client/job/deploy/lab/deploy.yml
+++ b/jenkins/client/job/deploy/lab/deploy.yml
@@ -94,7 +94,7 @@
               # heat
               HEAT_STACK_ENVIRONMENT:
                 type: string
-                default: "devcloud"
+                default: "{{stack_env}}"
               HEAT_STACK_ZONE:
                 type: string
                 default: "mcp-mk"
diff --git a/jenkins/client/job/deploy/lab/init.yml b/jenkins/client/job/deploy/lab/init.yml
index 881e425..860e55f 100644
--- a/jenkins/client/job/deploy/lab/init.yml
+++ b/jenkins/client/job/deploy/lab/init.yml
@@ -1,6 +1,6 @@
 classes:
   - system.jenkins.client.job.deploy.lab.cicd
-  - system.jenkins.client.job.deploy.lab.test-cicd
+  - system.jenkins.client.job.deploy.lab.test-devops-portal-cicd
   - system.jenkins.client.job.deploy.lab.demo
   - system.jenkins.client.job.deploy.lab.cleanup
   - system.jenkins.client.job.deploy.lab.release.mcp05
diff --git a/jenkins/client/job/deploy/lab/release/mcp05.yml b/jenkins/client/job/deploy/lab/release/mcp05.yml
index 3dbc25f..5ec2787 100644
--- a/jenkins/client/job/deploy/lab/release/mcp05.yml
+++ b/jenkins/client/job/deploy/lab/release/mcp05.yml
@@ -4,11 +4,13 @@
   _param:
     jenkins_deploy_jobs:
       - stack_name: virtual_mcp05_dvr
+        stack_env: virtual_mcp05_dvr/devcloud
         stack_install: core,openstack,dvr
         stack_type: heat
         stack_test: ""
         job_timer: ""
       - stack_name: virtual_mcp05_ovs
+        stack_env: virtual_mcp05_ovs/devcloud
         stack_install: core,openstack,ovs
         stack_type: heat
         stack_test: ""
diff --git a/jenkins/client/job/deploy/lab/release/mcp10.yml b/jenkins/client/job/deploy/lab/release/mcp10.yml
index e8905ac..516d533 100644
--- a/jenkins/client/job/deploy/lab/release/mcp10.yml
+++ b/jenkins/client/job/deploy/lab/release/mcp10.yml
@@ -5,21 +5,25 @@
     jenkins_deploy_jobs:
       # physical
       - stack_name: mcp10_contrail
+        stack_env: mcp10_contrail/devcloud
         stack_install: core,kvm,openstack,contrail
         stack_type: physical
         stack_test: openstack
         job_timer: ""
       - stack_name: mcp10_opencontrail_nfv
+        stack_env: mcp10_opencontrail_nfv/devcloud
         stack_install: core,kvm,openstack,nfv
         stack_type: physical
         stack_test: openstack
         job_timer: ""
       - stack_name: mcp10_dvr
+        stack_env: mcp10_dvr/devcloud
         stack_install: core,kvm,openstack,dvr
         stack_type: physical
         stack_test: openstack
         job_timer: ""
       - stack_name: mcp10_non_dvr
+        stack_env: mcp10_non_dvr/devcloud
         stack_install: core,kvm,openstack
         stack_type: physical
         stack_test: openstack
@@ -27,16 +31,19 @@
 
       # virtual
       - stack_name: virtual_mcp10_contrail
+        stack_env: virtual_mcp10_contrail/devcloud
         stack_install: core,openstack,contrail
         stack_type: heat
         stack_test: ""
         job_timer: "H H(0-6) * * *"
       - stack_name: virtual_mcp10_dvr
+        stack_env: virtual_mcp10_dvr/devcloud
         stack_install: core,openstack,dvr
         stack_type: heat
         stack_test: ""
         job_timer: "H H(0-6) * * *"
       - stack_name: virtual_mcp10_ovs
+        stack_env: virtual_mcp10_ovs/devcloud
         stack_install: core,openstack,ovs
         stack_type: heat
         stack_test: ""
diff --git a/jenkins/client/job/deploy/lab/release/mcp11.yml b/jenkins/client/job/deploy/lab/release/mcp11.yml
index 98c8a5c..27f2184 100644
--- a/jenkins/client/job/deploy/lab/release/mcp11.yml
+++ b/jenkins/client/job/deploy/lab/release/mcp11.yml
@@ -4,46 +4,55 @@
   _param:
     jenkins_deploy_jobs:
       - stack_name: virtual_mcp11_contrail
+        stack_env: virtual_mcp11_contrail/devcloud
         stack_install: core,openstack,contrail
         stack_type: heat
         stack_test: ""
         job_timer: ""
       - stack_name: virtual_mcp11_dvr
+        stack_env: virtual_mcp11_dvr/devcloud
         stack_install: core,openstack,dvr
         stack_type: heat
         stack_test: ""
         job_timer: ""
       - stack_name: virtual_mcp11_ovs
+        stack_env: virtual_mcp11_ovs/devcloud
         stack_install: core,openstack,ovs
         stack_type: heat
         stack_test: ""
         job_timer: ""
       - stack_name: virtual_mcp11_ironic_small
+        stack_env: virtual_mcp11_ironic_small/devcloud
         stack_install: core,openstack
         stack_type: heat
         stack_test: ""
         job_timer: ""
       - stack_name: virtual_mcp11_aio
+        stack_env: virtual_mcp11_aio/devcloud
         stack_install: core,openstack
         stack_type: heat
         stack_test: ""
         job_timer: ""
       - stack_name: virtual_mcp11_k8s_calico
+        stack_env: virtual_mcp11_k8s_calico/devcloud
         stack_install: core,k8s,calico
         stack_type: heat
         stack_test: k8s
         job_timer: "H H(0-6) * * *"
       - stack_name: virtual_mcp11_k8s_contrail
+        stack_env: virtual_mcp11_k8s_contrail/devcloud
         stack_install: core,k8s,contrail
         stack_type: heat
         stack_test: k8s
         job_timer: "H H(0-6) * * *"
       - stack_name: virtual_mcp11_contrail_nfv
+        stack_env: virtual_mcp11_contrail_nfv/devcloud
         stack_install: core,openstack,contrail
         stack_type: heat
         stack_test: ""
         job_timer: "H H(0-6) * * *"
       - stack_name: virtual_mcp11_ovs_dpdk
+        stack_env: virtual_mcp11_ovs_dpdk/devcloud
         stack_install: core,openstack,ovs
         stack_type: heat
         stack_test: ""
diff --git a/jenkins/client/job/deploy/lab/release/mk.yml b/jenkins/client/job/deploy/lab/release/mk.yml
index 4fce1c5..1be1057 100644
--- a/jenkins/client/job/deploy/lab/release/mk.yml
+++ b/jenkins/client/job/deploy/lab/release/mk.yml
@@ -5,22 +5,26 @@
     jenkins_deploy_jobs:
       # mk20
       - stack_name: virtual_mk20_advanced
+        stack_env: virtual_mk20_advanced/devcloud
         stack_install: core,openstack
         stack_type: heat
         stack_test: ""
         job_timer: ""
       - stack_name: virtual_mk20_basic
+        stack_env: virtual_mk20_basic/devcloud
         stack_install: core,openstack
         stack_type: heat
         stack_test: ""
         job_timer: ""
       # mk22
       - stack_name: virtual_mk22_advanced
+        stack_env: virtual_mk22_advanced/devcloud
         stack_install: core,openstack
         stack_type: heat
         stack_test: ""
         job_timer: ""
       - stack_name: virtual_mk22_basic
+        stack_env: virtual_mk22_basic/devcloud
         stack_install: core,openstack
         stack_type: heat
         stack_test: ""
diff --git a/jenkins/client/job/deploy/lab/test-cicd.yml b/jenkins/client/job/deploy/lab/test-devops-portal-cicd.yml
similarity index 92%
rename from jenkins/client/job/deploy/lab/test-cicd.yml
rename to jenkins/client/job/deploy/lab/test-devops-portal-cicd.yml
index 0205223..8dfc70e 100644
--- a/jenkins/client/job/deploy/lab/test-cicd.yml
+++ b/jenkins/client/job/deploy/lab/test-devops-portal-cicd.yml
@@ -13,11 +13,23 @@
             display_name: "Deploy {{name}} heat stack"
             scm:
               type: git
-              url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+              url: "${_param:jenkins_gerrit_url}/oss/jenkins/pipelines"
               credentials: "gerrit"
-              script: cicd-lab-pipeline.groovy
+              script: test-func-devops-portal-pipeline.groovy
             param:
               # heat
+              HEAT_STACK_DELETE:
+                type: boolean
+                default: 'true'
+                description: "Delete heat stack at the end of job"
+              HEAT_STACK_REUSE:
+                type: boolean
+                default: 'false'
+                description: "Reuse existing stack and only orchestrate deployment"
+              HEAT_STACK_KEEP_INTACT:
+                type: boolean
+                default: 'false'
+                description: "Save current deployment status without re-orchestrating"
               HEAT_TEMPLATE_URL:
                 type: string
                 default: "${_param:jenkins_gerrit_url}/mk/heat-templates"
@@ -42,14 +54,6 @@
               HEAT_STACK_PUBLIC_NET:
                 type: string
                 default: "public"
-              HEAT_STACK_DELETE:
-                type: boolean
-                default: 'true'
-                description: "Delete heat stack at the end of job"
-              HEAT_STACK_REUSE:
-                type: boolean
-                default: 'false'
-                description: "Reuse existing stack and only orchestrate deployment"
 
               # salt master
               SALT_MASTER_CREDENTIALS:
diff --git a/jenkins/client/job/deploy/test.yml b/jenkins/client/job/deploy/test.yml
new file mode 100644
index 0000000..fe79e73
--- /dev/null
+++ b/jenkins/client/job/deploy/test.yml
@@ -0,0 +1,51 @@
+parameters:
+  jenkins:
+    client:
+      job:
+        test_service_job:
+          name: deploy-test-service
+          type: workflow-scm
+          discard:
+            build:
+              keep_num: 20
+          concurrent: true
+          display_name: "Deploy - Test services in environment"
+          scm:
+            type: git
+            url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+            credentials: "gerrit"
+            script: test-service.groovy
+          param:
+
+            # salt
+            SALT_MASTER_CREDENTIALS:
+              type: string
+              default: "salt-qa-credentials"
+            SALT_MASTER_URL:
+              type: string
+              default: ""
+
+            # test
+            TEST_K8S_API_SERVER:
+              type: string
+              default: "http://127.0.0.1:8080"
+            TEST_K8S_CONFORMANCE_IMAGE:
+              type: string
+              default: "docker-dev-virtual.docker.mirantis.net/mirantis/kubernetes/k8s-conformance:v1.5.1-3_1482332392819"
+
+            TEST_TEMPEST_IMAGE:
+              type: string
+              description: "Tempest docker image"
+              default: "sandbox-docker-prod-local.docker.mirantis.net/mirantis/rally_tempest:0.1"
+            TEST_TEMPEST_TARGET:
+              type: string
+              description: "Node to run tests"
+              default: ""
+            TEST_DOCKER_INSTALL:
+              type: boolean
+              description: "Install docker on the target if true"
+              default: "true"
+            TEST_TEMPEST_PATTERN:
+              type: string
+              description: "Run tests matched to pattern only"
+              default: ""
diff --git a/jenkins/client/job/deploy/update/package.yml b/jenkins/client/job/deploy/update/package.yml
index a4e7fc0..55a9ef0 100644
--- a/jenkins/client/job/deploy/update/package.yml
+++ b/jenkins/client/job/deploy/update/package.yml
@@ -29,7 +29,7 @@
               description: Salt compound target to match nodes to be updated [*, G@osfamily:debian].
             TARGET_PACKAGES:
               type: string
-              description: Space delimited list of packages to be updates [package1=version package2=version], empty string means all updating all packages to the latest version.
+              description: Space delimited list of packages to be updated, empty string means updating all packages to the latest version e.g. [package1=version package2=version] or [package1 package2].
             TARGET_SUBSET_TEST:
               type: string
               description: Number of nodes to list package updates, empty string means all targetted nodes.
diff --git a/jenkins/client/job/docker/oss/janitor-monkey-docker.yml b/jenkins/client/job/docker/oss/janitor-monkey-docker.yml
index 083d086..78167bd 100644
--- a/jenkins/client/job/docker/oss/janitor-monkey-docker.yml
+++ b/jenkins/client/job/docker/oss/janitor-monkey-docker.yml
@@ -58,10 +58,4 @@
               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
+              default: "."
\ No newline at end of file
diff --git a/jenkins/client/job/docker/oss/pushkin-docker.yml b/jenkins/client/job/docker/oss/pushkin-docker.yml
index d71e701..e77e99b 100644
--- a/jenkins/client/job/docker/oss/pushkin-docker.yml
+++ b/jenkins/client/job/docker/oss/pushkin-docker.yml
@@ -58,16 +58,4 @@
               default: "Dockerfile"
             CONTEXT_PATH:
               type: string
-              default: "."
-            CI_BUILD_ARG_PUSHKIN_REPO:
-              type: string
-              default: ""
-            CI_BUILD_ARG_PUSHKIN_REF:
-              type: string
-              default: ""
-            CI_BUILD_ARG_PUSHKIN_EXT_REPO:
-              type: string
-              default: ""
-            CI_BUILD_ARG_PUSHKIN_EXT_REF:
-              type: string
-              default: ""
\ No newline at end of file
+              default: "."
\ No newline at end of file
diff --git a/jenkins/client/job/docker/oss/security-monkey-docker.yml b/jenkins/client/job/docker/oss/security-monkey-docker.yml
index 7724f80..b9d4512 100644
--- a/jenkins/client/job/docker/oss/security-monkey-docker.yml
+++ b/jenkins/client/job/docker/oss/security-monkey-docker.yml
@@ -58,16 +58,4 @@
               default: "security-monkey/Dockerfile"
             CONTEXT_PATH:
               type: string
-              default: "."
-            CI_BUILD_ARG_SECURITY_MONKEY_REPO:
-              type: string
-              default: ""
-            CI_BUILD_ARG_SECURITY_MONKEY_REF:
-              type: string
-              default: ""
-            CI_BUILD_ARG_SECURITY_MONKEY_OPENSTACK_REPO:
-              type: string
-              default: ""
-            CI_BUILD_ARG_SECURITY_MONKEY_OPENSTACK_REF:
-              type: string
-              default: ""
\ No newline at end of file
+              default: "."
\ No newline at end of file
diff --git a/jenkins/client/job/gating.yml b/jenkins/client/job/gating.yml
index 6886b06..d0f2149 100644
--- a/jenkins/client/job/gating.yml
+++ b/jenkins/client/job/gating.yml
@@ -38,7 +38,6 @@
             quiet_period: 60
             trigger:
               gerrit:
-                silent_start_mode: true
                 project:
                   '{{regex}}':
                     compare_type: REG_EXP
diff --git a/jenkins/client/job/opencontrail/init.yml b/jenkins/client/job/opencontrail/init.yml
index 4b42d50..595dcc0 100644
--- a/jenkins/client/job/opencontrail/init.yml
+++ b/jenkins/client/job/opencontrail/init.yml
@@ -5,10 +5,10 @@
   _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,mitaka_dpdk_17_02,mitaka_dpdk_17_05,kilo,liberty-multiqueue,newton"
+    contrail_dpdk_extra_branches: "mitaka,mitaka_dpdk_17_02,mitaka_dpdk_17_05,kilo,liberty-multiqueue,newton,ocata"
     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"
+    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,R4.0.1,contrail_dpdk_17_02,contrail_dpdk_17_05,contrail_dpdk_1_7,contrail_dpdk_2_0,contrail_dpdk_2_1"
   jenkins:
     client:
       view:
diff --git a/jenkins/client/job/validate.yml b/jenkins/client/job/validate.yml
new file mode 100644
index 0000000..f8ebcc7
--- /dev/null
+++ b/jenkins/client/job/validate.yml
@@ -0,0 +1,49 @@
+parameters:
+  jenkins:
+    client:
+      view:
+        Validation:
+          enabled: true
+          type: ListView
+          include_regex: "validate.*"
+      job:
+        validate_openstack:
+          type: workflow-scm
+          name: validate-openstack
+          display_name: "Validate - Openstack"
+          discard:
+            build:
+              keep_num: 20
+            artifact:
+              keep_num: 20
+          concurrent: false
+          scm:
+            type: git
+            url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+            credentials: "gerrit"
+            script: validate-cloud.groovy
+
+          param:
+            SALT_MASTER_URL:
+              type: string
+              default: ""
+            SALT_MASTER_CREDENTIALS:
+              type: string
+              default: "salt"
+            TEST_IMAGE:
+              type: string
+              default: "docker-prod-local.artifactory.mirantis.com/mirantis/oss/qa-tools"
+            TARGET_NODE:
+              type: string
+              default: ""
+            RUN_RALLY_TESTS:
+              type: boolean
+              default: 'true'
+            RUN_TEMPEST_TESTS:
+              type: boolean
+              default: 'true'
+            TEMPEST_TEST_SET:
+              type: choice
+              choices:
+                - smoke
+                - full
diff --git a/keystone/server/cluster.yml b/keystone/server/cluster.yml
index 9b13788..0c79462 100644
--- a/keystone/server/cluster.yml
+++ b/keystone/server/cluster.yml
@@ -4,6 +4,12 @@
 - system.haproxy.proxy.listen.openstack.keystone
 - system.haproxy.proxy.listen.openstack.keystone.standalone
 parameters:
+  linux:
+    system:
+      package:
+        python-pymysql:
+          fromrepo: ${_param:openstack_version}
+          version: latest
   keystone:
     server:
       enabled: true
diff --git a/keystone/server/single.yml b/keystone/server/single.yml
index 72dc045..c35ef73 100644
--- a/keystone/server/single.yml
+++ b/keystone/server/single.yml
@@ -7,6 +7,12 @@
     mysql_admin_user: root
     mysql_admin_password: password
     mysql_keystone_password: password
+  linux:
+    system:
+      package:
+        python-pymysql:
+          fromrepo: ${_param:openstack_version}
+          version: latest
   keystone:
     server:
       enabled: true
diff --git a/linux/system/repo/ceph.yml b/linux/system/repo/ceph.yml
new file mode 100644
index 0000000..ccf63d7
--- /dev/null
+++ b/linux/system/repo/ceph.yml
@@ -0,0 +1,11 @@
+parameters:
+  _param:
+    linux_repo_ceph_component: jewel
+    linux_repo_ceph_mirror: download
+  linux:
+    system:
+      repo:
+        ceph:
+          source: "deb [arch=amd64] https://${_param:linux_repo_ceph_mirror}.ceph.com/debian-${_param:linux_repo_ceph_component} ${_param:linux_system_codename} main"
+          architectures: amd64
+          key_url: "https://${_param:linux_repo_ceph_mirror}.ceph.com/keys/release.asc"
diff --git a/linux/system/sudo.yml b/linux/system/sudo.yml
index ba499d1..68f2b84 100644
--- a/linux/system/sudo.yml
+++ b/linux/system/sudo.yml
@@ -22,21 +22,32 @@
     - /bin/su
     - /usr/sbin/visudo
     - /usr/bin/sudo
+    - /bin/bash
     sudo_coreutils_safe:
+    - /usr/bin/cat
     - /usr/bin/less
+    - /usr/bin/view
+    - /usr/bin/more
     - /usr/bin/grep
     - /usr/bin/fgrep
     - /usr/bin/egrep
     - /usr/bin/zgrep
+    - /usr/bin/ack
     - /usr/bin/tail
     - /usr/bin/socat
     - /usr/bin/top
+    - /usr/bin/atop
     - /usr/bin/tail
     - /usr/bin/lsof
     - /usr/bin/virsh
     - /bin/ls
     - /bin/cp
     - /bin/netstat
+    sudo_coreutils_trusted:
+    - /usr/bin/vi*
+    - /usr/bin/vim*
+    - /usr/bin/emacs*
+    - /usr/bin/nano*
     sudo_rabbitmq_safe:
     - /usr/sbin/rabbitmqctl
     - /usr/sbin/rabbitmqctl status
@@ -80,6 +91,9 @@
     - /usr/bin/rados*
     - /usr/bin/rbd
     - /usr/sbin/gluster
+    - /usr/fdisk -l *
+    - /usr/bin/du *
+    - /bin/df *
     sudo_openstack_clients:
     - /usr/bin/openstack
     - /usr/bin/heat*
diff --git a/neutron/compute/cluster.yml b/neutron/compute/cluster.yml
index d6674f0..fc87e84 100644
--- a/neutron/compute/cluster.yml
+++ b/neutron/compute/cluster.yml
@@ -3,6 +3,12 @@
 parameters:
   _param:
     neutron_enable_qos: False
+  linux:
+    system:
+      package:
+        python-pymysql:
+          fromrepo: ${_param:openstack_version}
+          version: latest
   neutron:
     compute:
       dvr: ${_param:neutron_compute_dvr}
diff --git a/neutron/control/cluster.yml b/neutron/control/cluster.yml
index dd1d3ee..9beed6b 100644
--- a/neutron/control/cluster.yml
+++ b/neutron/control/cluster.yml
@@ -4,6 +4,12 @@
 - service.neutron.control.cluster
 - system.haproxy.proxy.listen.openstack.neutron
 parameters:
+  linux:
+    system:
+      package:
+        python-pymysql:
+          fromrepo: ${_param:openstack_version}
+          version: latest
   mysql:
     server:
       database:
diff --git a/neutron/control/single.yml b/neutron/control/single.yml
index 663ec32..e412f36 100644
--- a/neutron/control/single.yml
+++ b/neutron/control/single.yml
@@ -1,6 +1,12 @@
 classes:
 - service.neutron.control.single
 parameters:
+  linux:
+    system:
+      package:
+        python-pymysql:
+          fromrepo: ${_param:openstack_version}
+          version: latest
   neutron:
     server:
       database:
diff --git a/nova/client/service/octavia.yml b/nova/client/service/octavia.yml
index e0b6557..e31fde3 100644
--- a/nova/client/service/octavia.yml
+++ b/nova/client/service/octavia.yml
@@ -1,8 +1,6 @@
 classes:
 - service.nova.client
 parameters:
-  _param:
-    octavia_ssh_key_path: "/etc/octavia/.ssh/octavia_ssh_key.pub"
   nova:
     client:
       server:
@@ -18,4 +16,4 @@
           endpoint_type: internalURL
           keypair:
             octavia_ssh_key:
-              pub_file: ${_param:octavia_ssh_key_path}
+              pub_key: ${_param:octavia_public_key}
diff --git a/nova/control/cluster.yml b/nova/control/cluster.yml
index d47c5e1..dee725d 100644
--- a/nova/control/cluster.yml
+++ b/nova/control/cluster.yml
@@ -11,6 +11,12 @@
     nova_ram_allocation_ratio: 1.5
     nova_disk_allocation_ratio: 1.0
     metadata_password: metadataPass
+  linux:
+    system:
+      package:
+        python-pymysql:
+          fromrepo: ${_param:openstack_version}
+          version: latest
   nova:
     controller:
       enabled: true
diff --git a/nova/control/single.yml b/nova/control/single.yml
index 00182a3..c2aef10 100644
--- a/nova/control/single.yml
+++ b/nova/control/single.yml
@@ -1,6 +1,12 @@
 classes:
 - service.nova.control.single
 parameters:
+  linux:
+    system:
+      package:
+        python-pymysql:
+          fromrepo: ${_param:openstack_version}
+          version: latest
   nova:
     controller:
       database:
diff --git a/octavia/manager/single.yml b/octavia/manager/single.yml
index a7bc7a9..acab136 100644
--- a/octavia/manager/single.yml
+++ b/octavia/manager/single.yml
@@ -5,3 +5,7 @@
     manager:
       enabled: true
       version: ${_param:octavia_version}
+      ssh:
+        private_key: ${_param:octavia_private_key}
+        user: octavia
+        group: octavia
diff --git a/opencontrail/control/control.yml b/opencontrail/control/control.yml
index fdc4f7d..50c0c77 100644
--- a/opencontrail/control/control.yml
+++ b/opencontrail/control/control.yml
@@ -4,7 +4,10 @@
 - system.haproxy.proxy.listen.opencontrail.control
 parameters:
   _param:
-    multi_tenancy: false  
+    multi_tenancy: false
+    opencontrail_message_queue_node01_address: ${_param:openstack_message_queue_node01_address}
+    opencontrail_message_queue_node02_address: ${_param:openstack_message_queue_node02_address}
+    opencontrail_message_queue_node03_address: ${_param:openstack_message_queue_node03_address}
   opencontrail:
     common:
       identity:
@@ -21,9 +24,9 @@
         address: ${_param:cluster_local_address}
       message_queue:
         members:
-          - host: ${_param:openstack_message_queue_node01_address}
-          - host: ${_param:openstack_message_queue_node02_address}
-          - host: ${_param:openstack_message_queue_node03_address}
+          - host: ${_param:opencontrail_message_queue_node01_address}
+          - host: ${_param:opencontrail_message_queue_node02_address}
+          - host: ${_param:opencontrail_message_queue_node03_address}
       identity:
         region: ${_param:openstack_region}
         host: ${_param:openstack_control_address}
diff --git a/openssh/server/team/members/dkalashnik.yml b/openssh/server/team/members/dkalashnik.yml
new file mode 100644
index 0000000..52a2a69
--- /dev/null
+++ b/openssh/server/team/members/dkalashnik.yml
@@ -0,0 +1,20 @@
+parameters:
+  linux:
+    system:
+      user:
+        dkalashnik:
+          enabled: true
+          name: dkalashnik
+          sudo: ${_param:linux_system_user_sudo}
+          full_name: Dmitry Kalashnik
+          home: /home/dkalashnik
+          email: dkalashnik@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        dkalashnik:
+          enabled: true
+          public_keys:
+            - key: ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAyz5ovMK/rRxlhiy7x4dVwFkUqN/hhdVIpsQRQoGgTOjVhH6Y+eTE3si0RRq/HKZMwkcClJIqzMgjoajT5eQQphQrAAn2pwuCyZj0mXJJ1RSXQm+nSnhoqyB1r7Nl3keopgxrDlBLWyvyS3dJM9RJy4TimIwhuSA3qdhmfeqRm5M=
+          user: ${linux:system:user:dkalashnik}
\ No newline at end of file
diff --git a/openssh/server/team/members/mniedbala.yml b/openssh/server/team/members/mniedbala.yml
new file mode 100644
index 0000000..30f7f30
--- /dev/null
+++ b/openssh/server/team/members/mniedbala.yml
@@ -0,0 +1,20 @@
+parameters:
+  linux:
+    system:
+      user:
+        mniedbala:
+          enabled: true
+          name: mniedbala
+          sudo: ${_param:linux_system_user_sudo}
+          full_name: Mikolaj Niedbala
+          home: /home/mniedbala
+          email: mniedbala@mirantis.com
+  openssh:
+    server:
+      enabled: true
+      user:
+        mniedbala:
+          enabled: true
+          public_keys:
+            - key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDNepHgtflir2vNW+h9cr3hP3llsTlg5uIvvmByykfk455Cum0vSO27mWKZJu0ebU4LXfeH+WP4MjR3tKAKvXqzjGhPVGjMO3wo4/NLlel2CDx99w0KotcjQhW6p+iqLv1AT9E5LW4Kr1NuQ65nvGn6y4SevRw2y36bNS4VJBq40HlgQFTW3oNP+5u4TVzu7QQhulsTUdQETgLswZKsarX7whgvcHvFs1dnbriZlkPXvrKhZLA/CUb7ot+ugw6KWOl+g4gTFLjnt0IXjJXMstCOL9R7/juflUku9CYFvSuq4/T67yMW7XntQ89VkwudSCMjjUWg6ilEG0ghd9+b3bPr mniedbala@mirantis.com
+          user: ${linux:system:user:mniedbala}
diff --git a/openssh/server/team/services.yml b/openssh/server/team/services.yml
new file mode 100644
index 0000000..564fc32
--- /dev/null
+++ b/openssh/server/team/services.yml
@@ -0,0 +1,9 @@
+classes:
+- system.linux.system.sudo
+- system.openssh.server.team.members.mniedbala
+parameters:
+  linux:
+    system:
+      user:
+        mniedbala:
+          sudo: true
diff --git a/openssh/server/team/support.yml b/openssh/server/team/support.yml
index 30382a3..d164d2d 100644
--- a/openssh/server/team/support.yml
+++ b/openssh/server/team/support.yml
@@ -51,8 +51,10 @@
       group:
         supportl1:
           enabled: false
+          name: supportl1
         supportl2:
           enabled: false
+          name: supportl2
         support0:
           enabled: true
           name: support0
diff --git a/prometheus/server/target/kubernetes/endpoint.yml b/prometheus/server/target/kubernetes/endpoint.yml
new file mode 100644
index 0000000..671f037
--- /dev/null
+++ b/prometheus/server/target/kubernetes/endpoint.yml
@@ -0,0 +1,7 @@
+parameters:
+  prometheus:
+    server:
+      target:
+        kubernetes:
+          endpoint:
+            enabled: true
diff --git a/prometheus/server/target/kubernetes.yml b/prometheus/server/target/kubernetes/init.yml
similarity index 100%
rename from prometheus/server/target/kubernetes.yml
rename to prometheus/server/target/kubernetes/init.yml
diff --git a/prometheus/server/target/kubernetes/pod.yml b/prometheus/server/target/kubernetes/pod.yml
new file mode 100644
index 0000000..964282f
--- /dev/null
+++ b/prometheus/server/target/kubernetes/pod.yml
@@ -0,0 +1,7 @@
+parameters:
+  prometheus:
+    server:
+      target:
+        kubernetes:
+          pod:
+            enabled: true
diff --git a/rabbitmq/server/vhost/opencontrail.yml b/rabbitmq/server/vhost/opencontrail.yml
new file mode 100644
index 0000000..8f88cee
--- /dev/null
+++ b/rabbitmq/server/vhost/opencontrail.yml
@@ -0,0 +1,12 @@
+parameters:
+  rabbitmq:
+    server:
+      host:
+        '/':
+          enabled: true
+          user: guest
+          password: guest
+          policies:
+          - name: HA
+            pattern: '^(?!amq\.).*'
+            definition: '{"ha-mode": "all", "message-ttl": 120000}'
diff --git a/reclass/storage/system/ceph_monitor_cluster.yml b/reclass/storage/system/ceph_monitor_cluster.yml
new file mode 100644
index 0000000..ca7e7ff
--- /dev/null
+++ b/reclass/storage/system/ceph_monitor_cluster.yml
@@ -0,0 +1,38 @@
+parameters:
+  _param:
+    ceph_monitor_node01_hostname: cmn01
+    ceph_monitor_node02_hostname: cmn02
+    ceph_monitor_node03_hostname: cmn03
+  reclass:
+    storage:
+      node:
+        ceph_monitor_node01:
+          name: ${_param:ceph_monitor_node01_hostname}
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.ceph.monitor
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: xenial
+            single_address: ${_param:ceph_monitor_node01_address}
+            keepalived_vip_priority: 103
+        ceph_monitor_node02:
+          name: ${_param:ceph_monitor_node02_hostname}
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.ceph.monitor
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: xenial
+            single_address: ${_param:ceph_monitor_node02_address}
+            keepalived_vip_priority: 102
+        ceph_monitor_node03:
+          name: ${_param:ceph_monitor_node03_hostname}
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.ceph.monitor
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: xenial
+            single_address: ${_param:ceph_monitor_node03_address}
+            keepalived_vip_priority: 101
diff --git a/salt/minion/ca/octavia_ca.yml b/salt/minion/ca/octavia_ca.yml
index ac66bec..453c450 100644
--- a/salt/minion/ca/octavia_ca.yml
+++ b/salt/minion/ca/octavia_ca.yml
@@ -27,3 +27,7 @@
           days_valid:
             authority: ${_param:octavia_ca_days_valid_authority}
             certificate: ${_param:octavia_ca_days_valid_certificate}
+          ca_file: ${octavia:manager:certificates:ca_certificate}
+          ca_key_file: ${octavia:manager:certificates:ca_private_key}
+          user: octavia
+          group: octavia
diff --git a/salt/minion/cert/octavia/amphora_client.yml b/salt/minion/cert/octavia/amphora_client.yml
new file mode 100644
index 0000000..fd8f465
--- /dev/null
+++ b/salt/minion/cert/octavia/amphora_client.yml
@@ -0,0 +1,12 @@
+classes:
+- system.salt.minion.cert.octavia
+parameters:
+  salt:
+    minion:
+      cert:
+        octavia_amp_client:
+          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}
diff --git a/salt/minion/cert/octavia_amp_client.yml b/salt/minion/cert/octavia/init.yml
similarity index 60%
rename from salt/minion/cert/octavia_amp_client.yml
rename to salt/minion/cert/octavia/init.yml
index 5219450..25d3ee4 100644
--- a/salt/minion/cert/octavia_amp_client.yml
+++ b/salt/minion/cert/octavia/init.yml
@@ -12,10 +12,5 @@
           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/prometheus_server.yml b/salt/minion/cert/prometheus_server.yml
index 30a0711..154009b 100644
--- a/salt/minion/cert/prometheus_server.yml
+++ b/salt/minion/cert/prometheus_server.yml
@@ -9,5 +9,4 @@
           cert_file: ${prometheus:server:dir:config}/prometheus-server.crt
           common_name: prometheus-server
           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}
           mode: '0444'