Merge "Debmirror saltstack-2016.3"
diff --git a/.releasenotes/notes/prometheus-2.0-2a7b3bc4ad76e118.yaml b/.releasenotes/notes/prometheus-2.0-2a7b3bc4ad76e118.yaml
index af017f5..bb62760 100644
--- a/.releasenotes/notes/prometheus-2.0-2a7b3bc4ad76e118.yaml
+++ b/.releasenotes/notes/prometheus-2.0-2a7b3bc4ad76e118.yaml
@@ -25,10 +25,10 @@
     .. code-block:: yaml
 
        _param:
-         docker_image_alertmanager: docker-prod-virtual.docker.mirantis.net/openstack-docker/alertmanager:20171222124606
-         docker_image_pushgateway: docker-prod-virtual.docker.mirantis.net/openstack-docker/pushgateway:20171222124606
-         docker_image_prometheus: docker-prod-virtual.docker.mirantis.net/openstack-docker/prometheus:20171222124606
-         docker_image_remote_storage_adapter: docker-prod-virtual.docker.mirantis.net/openstack-docker/remote_storage_adapter:20171222124606
+         docker_image_alertmanager: docker-prod-local.artifactory.mirantis.com/openstack-docker/alertmanager:20171222124606
+         docker_image_pushgateway: docker-prod-local.artifactory.mirantis.com/openstack-docker/pushgateway:20171222124606
+         docker_image_prometheus: docker-prod-local.artifactory.mirantis.com/openstack-docker/prometheus:20171222124606
+         docker_image_remote_storage_adapter: docker-prod-local.artifactory.mirantis.com/openstack-docker/remote_storage_adapter:20171222124606
        docker:
          client:
            stack:
diff --git a/auditd/server/ciscat.yml b/auditd/server/ciscat.yml
new file mode 100644
index 0000000..dc4baa7
--- /dev/null
+++ b/auditd/server/ciscat.yml
@@ -0,0 +1,3 @@
+classes:
+- service.auditd.server
+- service.auditd.rules.ciscat
diff --git a/debmirror/mirror_mirantis_com/ubuntu/xenial.yml b/debmirror/mirror_mirantis_com/ubuntu/xenial.yml
index 3ba7267..d869e94 100644
--- a/debmirror/mirror_mirantis_com/ubuntu/xenial.yml
+++ b/debmirror/mirror_mirantis_com/ubuntu/xenial.yml
@@ -136,6 +136,12 @@
             301: "--exclude='(main|universe)/l/linux-*-(.*azure|.*aws|gke|.*azure-edge|.*oem/|.*euclid/)'"
             302: "--exclude='/*universe.*(-armel-|-arm-)(?!.*amd64)'"
             303: "--exclude='/main/l/linux(.*)/linux-source-*'"
+            # Generic: Old minor version of kernels. Old - if minor less then 3 digits.
+            304: '--exclude="main/l/(linux|linux-signed)/linux-.*.4\.4\.0-[0-9]{1,2}\."'
+            # Hwe 4.8: Old minor version of kernels. Old - if minor in 30-40.
+            305: '--exclude="main/l/.*hwe.*/linux-.*.4\.8\.0-((3|4)[0-9])"'
+            # Hwe 4.10: Old minor version of kernels. Old - if minor in 20-30.
+            306: '--exclude="main/l/.*hwe.*/linux-.*.4\.10\.0-((2|3)[0-9])"'
             # List of packages, that should be fetched from fresh ppa or other mirror
             # So,removing them from upstream mirror.
             500: "--exclude='/main/m/maas/'"
diff --git a/docker/swarm/stack/monitoring/gainsight.yml b/docker/swarm/stack/monitoring/gainsight.yml
index 4254636..11344b7 100644
--- a/docker/swarm/stack/monitoring/gainsight.yml
+++ b/docker/swarm/stack/monitoring/gainsight.yml
@@ -2,6 +2,7 @@
 - system.prometheus.gainsight.container
 parameters:
   _param:
+    gainsight_enabled: 'true'
     gainsight_csv_upload_url: 'http://localhost:9999'
     gainsight_account_id: 'default'
     gainsight_environment_id: 'default'
@@ -11,6 +12,7 @@
     gainsight_login: 'default'
     gainsight_prometheus_url: "http://${_param:stacklight_monitor_address}:15010"
     gainsight_config_directory: '/srv/gainsight'
+    gainsight_crontab_directory: '/etc/cron.d'
     gainsight_config_path: "${_param:gainsight_config_directory}/config.ini"
     docker_image_prometheus_gainsight: 'docker-prod-local.artifactory.mirantis.com/openstack-docker/gainsight:nightly'
   docker:
@@ -37,6 +39,7 @@
               image: ${_param:docker_image_prometheus_gainsight}
               volumes:
                 - ${prometheus:gainsight:dir:config}:${_param:gainsight_config_directory}
+                - ${prometheus:gainsight:dir:crontab}:${_param:gainsight_crontab_directory}
               environment:
                 CSV_UPLOAD_URL: "${_param:gainsight_csv_upload_url}"
                 ACCOUNT_ID: "${_param:gainsight_account_id}"
@@ -47,3 +50,4 @@
                 LOGIN: "${_param:gainsight_login}"
                 PROMETHEUS_URL: "${_param:gainsight_prometheus_url}"
                 CONFIG_PATH: "${_param:gainsight_config_path}"
+                ENABLED: "${_param:gainsight_enabled}"
diff --git a/jenkins/client/approved_scripts.yml b/jenkins/client/approved_scripts.yml
index 2b2c6a7..65db576 100644
--- a/jenkins/client/approved_scripts.yml
+++ b/jenkins/client/approved_scripts.yml
@@ -155,4 +155,5 @@
         - method hudson.model.Job getProperty java.lang.Class
         - method hudson.model.ParametersDefinitionProperty getParameterDefinitions
         - method hudson.model.ParameterDefinition getName
-        - hudson.model.StringParameterDefinition getDefaultValue
+        - method hudson.model.StringParameterDefinition getDefaultValue
+        - method java.util.Collection toArray
diff --git a/jenkins/client/job/deploy/lab/deploy.yml b/jenkins/client/job/deploy/lab/deploy.yml
index 6c9eb2a..879d7c9 100644
--- a/jenkins/client/job/deploy/lab/deploy.yml
+++ b/jenkins/client/job/deploy/lab/deploy.yml
@@ -167,7 +167,7 @@
                 default: "http://127.0.0.1:8080"
               TEST_K8S_CONFORMANCE_IMAGE:
                 type: string
-                default: "docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/k8s-conformance:v1.8.13-11"
+                default: "docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/k8s-conformance:v1.10.4-4"
 
               TEST_TEMPEST_IMAGE:
                 type: string
diff --git a/jenkins/client/job/deploy/update/cloud_update.yml b/jenkins/client/job/deploy/update/cloud_update.yml
index 3034ea5..d434850 100644
--- a/jenkins/client/job/deploy/update/cloud_update.yml
+++ b/jenkins/client/job/deploy/update/cloud_update.yml
@@ -156,3 +156,7 @@
               type: boolean
               default: 'false'
               description: "Restore Cassandra and Zookeeper DBs for OpenContrail"
+            RUN_CVP_TESTS:
+              type: boolean
+              default: 'false'
+              description: "Run cloud validation pipelines before and after update"
diff --git a/jenkins/client/job/deploy/update/upgrade.yml b/jenkins/client/job/deploy/update/upgrade.yml
index 7e94c10..6ffc9c1 100644
--- a/jenkins/client/job/deploy/update/upgrade.yml
+++ b/jenkins/client/job/deploy/update/upgrade.yml
@@ -44,3 +44,7 @@
               type: boolean
               default: 'false'
               description: "Set to true if vms should not be recreated"
+            INTERACTIVE:
+              type: boolean
+              default: 'true'
+              description: "Ask interactive questions during pipeline run (bool)"
diff --git a/jenkins/client/job/deploy/update/upgrade_compute.yml b/jenkins/client/job/deploy/update/upgrade_compute.yml
index 90bfc76..3986997 100644
--- a/jenkins/client/job/deploy/update/upgrade_compute.yml
+++ b/jenkins/client/job/deploy/update/upgrade_compute.yml
@@ -35,3 +35,7 @@
               type: string
               default: '1'
               description: Number of selected nodes to live apply upgrade.
+            INTERACTIVE:
+              type: boolean
+              default: 'true'
+              description: "Ask interactive questions during pipeline run (bool)"
diff --git a/jenkins/client/job/deploy/update/upgrade_mcp_release.yml b/jenkins/client/job/deploy/update/upgrade_mcp_release.yml
index 9f18006..c9b846f 100644
--- a/jenkins/client/job/deploy/update/upgrade_mcp_release.yml
+++ b/jenkins/client/job/deploy/update/upgrade_mcp_release.yml
@@ -29,11 +29,15 @@
               default: ""
             UPDATE_CLUSTER_MODEL:
               type: boolean
-              default: 'false'
+              default: 'true'
               description: "Replace `apt_mk_version` parameter in cluster level Reclass model."
+            UPGRADE_SALTSTACK:
+              type: boolean
+              default: 'true'
+              description: "Upgrade SaltStack packages."
             UPDATE_PIPELINES:
               type: boolean
-              default: 'false'
+              default: 'true'
               description: "Mirror pipelines from upstream/local mirror to Gerrit."
             UPDATE_LOCAL_REPOS:
               type: boolean
diff --git a/jenkins/client/job/deploy/update/upgrade_ovs_gateway.yml b/jenkins/client/job/deploy/update/upgrade_ovs_gateway.yml
index 335492d..e7cdb12 100644
--- a/jenkins/client/job/deploy/update/upgrade_ovs_gateway.yml
+++ b/jenkins/client/job/deploy/update/upgrade_ovs_gateway.yml
@@ -35,3 +35,7 @@
               type: string
               default: '1'
               description: Number of selected nodes to live apply upgrade.
+            INTERACTIVE:
+              type: boolean
+              default: 'true'
+              description: "Ask interactive questions during pipeline run (bool)"
diff --git a/jenkins/client/job/oscore/qa.yml b/jenkins/client/job/oscore/qa.yml
index 6d54082..13d0e76 100644
--- a/jenkins/client/job/oscore/qa.yml
+++ b/jenkins/client/job/oscore/qa.yml
@@ -25,6 +25,7 @@
                   mcp/{{oscore-qa-project}}:
                     branches:
                       - master
+                      - pike
                 event:
                   change:
                     - merged
@@ -43,7 +44,7 @@
                 default: "mirantis/oscore/{{oscore-qa-project}}"
               IMAGE_TAG:
                 type: string
-                default: "latest"
+                default: ""
               DOCKER_REGISTRY:
                 type: string
                 default: "docker-prod-local.docker.mirantis.net"
diff --git a/jenkins/client/job/oscore/test_upgrades.yml b/jenkins/client/job/oscore/test_upgrades.yml
index 1ad4583..e513cf7 100644
--- a/jenkins/client/job/oscore/test_upgrades.yml
+++ b/jenkins/client/job/oscore/test_upgrades.yml
@@ -15,7 +15,7 @@
             type: workflow-scm
             scm:
               type: git
-              url: "https://github.com/jumpojoy/openstack-pipelines"
+              url: "${_param:jenkins_gerrit_url}/openstack-ci/openstack-pipelines"
               credentials: "gerrit"
               branch: 'master'
               script: test-openstack-upgrade-pipeline.groovy
@@ -59,7 +59,7 @@
             SALT_MASTER_CREDENTIALS:
               type: string
               description: "ID of salt API credentials."
-              default: "salt"
+              default: "salt-qa-credentials"
             SALT_MASTER_URL:
               type: string
               description: 'Url for salt API.'
diff --git a/kubernetes/common.yml b/kubernetes/common.yml
new file mode 100644
index 0000000..ac6325d
--- /dev/null
+++ b/kubernetes/common.yml
@@ -0,0 +1,129 @@
+parameters:
+  _param:
+    kubernetes_calico_calicoctl_repo: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico
+    kubernetes_calico_repo: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico
+    kubernetes_calico_cni_repo: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico
+    kubernetes_hyperkube_repo: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes
+    kubernetes_contrail_cni_repo: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes
+    kubernetes_contrail_network_controller_repo: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/contrail-integration
+    kubernetes_netchecker_agent_repo: mirantis
+    kubernetes_netchecker_server_repo: mirantis
+    kubernetes_virtlet_repo: mirantis
+    kubernetes_kubedns_repo: gcr.io/google_containers
+    kubernetes_externaldns_repo: mirantis
+    kubernetes_genie_repo: mirantis
+    kubernetes_flannel_repo: quay.io/coreos
+    kubernetes_metallb_repo: metallb
+
+    # component docker images
+    kubernetes_docker_package: docker-engine=1.13.1-0~ubuntu-xenial
+    kubernetes_calico_calicoctl_image: ${_param:kubernetes_calico_calicoctl_repo}/ctl:v1.6.4
+    kubernetes_calico_image: ${_param:kubernetes_calico_repo}/node:v2.6.9
+    kubernetes_calico_cni_image: ${_param:kubernetes_calico_cni_repo}/cni:v1.11.5
+    kubernetes_hyperkube_image: ${_param:kubernetes_hyperkube_repo}/hyperkube-amd64:v1.10.4-4
+    kubernetes_pause_image: ${_param:kubernetes_hyperkube_repo}/pause-amd64:v1.10.4-4
+    kubernetes_contrail_cni_image: ${_param:kubernetes_contrail_cni_repo}/contrail-cni:v1.2.0
+    kubernetes_contrail_network_controller_image: ${_param:kubernetes_contrail_network_controller_repo}/contrail-network-controller:v1.2.0
+    kubernetes_virtlet_image: ${_param:kubernetes_virtlet_repo}/virtlet:v1.1.0
+    kubernetes_criproxy_version: v0.11.0
+    kubernetes_criproxy_checksum: md5=115bbb0c27518db6b0b3bc8cdc5fc897
+    kubernetes_netchecker_agent_image: ${_param:kubernetes_netchecker_agent_repo}/k8s-netchecker-agent:v1.2.2
+    kubernetes_netchecker_server_image: ${_param:kubernetes_netchecker_server_repo}/k8s-netchecker-server:v1.2.2
+    kubernetes_kubedns_image: ${_param:kubernetes_kubedns_repo}/k8s-dns-kube-dns-amd64:1.14.5
+    kubernetes_dnsmasq_image: ${_param:kubernetes_kubedns_repo}/k8s-dns-dnsmasq-amd64:1.14.5
+    kubernetes_sidecar_image: ${_param:kubernetes_kubedns_repo}/k8s-dns-sidecar-amd64:1.14.5
+    kubernetes_dns_autoscaler_image: ${_param:kubernetes_kubedns_repo}/cluster-proportional-autoscaler-amd64:1.0.0
+    kubernetes_externaldns_image: ${_param:kubernetes_externaldns_repo}/external-dns:v0.5.3
+    kubernetes_genie_image: ${_param:kubernetes_genie_repo}/cnigenie:v1.0-124-ge4298f1
+    kubernetes_flannel_image: ${_param:kubernetes_flannel_repo}/flannel:v0.10.0-amd64
+    kubernetes_metallb_controller_image: ${_param:kubernetes_metallb_repo}/controller:v0.6.2
+    kubernetes_metallb_speaker_image: ${_param:kubernetes_metallb_repo}/speaker:v0.6.2
+
+    kubelet_fail_on_swap: true
+    kubernetes_kubedns_enabled: true
+    kubernetes_externaldns_enabled: false
+    kubernetes_coredns_enabled: false
+    kubernetes_externaldns_provider: coredns
+    kubernetes_virtlet_enabled: false
+    kubernetes_flannel_enabled: false
+    kubernetes_genie_enabled: false
+    kubernetes_calico_enabled: false
+    kubernetes_opencontrail_enabled: false
+    kubernetes_contrail_network_controller_enabled: false
+    kubernetes_metallb_enabled: false
+
+  docker:
+    host:
+      pkgs:
+        - ${_param:kubernetes_docker_package}
+        - python-docker
+      options:
+        bip: 172.31.255.1/24
+        storage-driver: overlay2
+
+  kubernetes:
+    common:
+      hyperkube:
+        image: ${_param:kubernetes_hyperkube_image}
+        pause_image: ${_param:kubernetes_pause_image}
+      addons:
+        dns:
+          enabled: ${_param:kubernetes_kubedns_enabled}
+          kubedns_image: ${_param:kubernetes_kubedns_image}
+          dnsmasq_image: ${_param:kubernetes_dnsmasq_image}
+          sidecar_image: ${_param:kubernetes_sidecar_image}
+          autoscaler:
+            image: ${_param:kubernetes_dns_autoscaler_image}
+        externaldns:
+          enabled: ${_param:kubernetes_externaldns_enabled}
+          namespace: kube-system
+          image: ${_param:kubernetes_externaldns_image}
+          provider: ${_param:kubernetes_externaldns_provider}
+        coredns:
+          enabled: ${_param:kubernetes_coredns_enabled}
+        contrail_network_controller:
+          enabled: ${_param:kubernetes_contrail_network_controller_enabled}
+          image: ${_param:kubernetes_contrail_network_controller_image}
+        flannel:
+          enabled: ${_param:kubernetes_flannel_enabled}
+          image: ${_param:kubernetes_flannel_image}
+        virtlet:
+          enabled: ${_param:kubernetes_virtlet_enabled}
+          namespace: kube-system
+          image: ${_param:kubernetes_virtlet_image}
+          criproxy_version: ${_param:kubernetes_criproxy_version}
+          criproxy_source: ${_param:kubernetes_criproxy_checksum}
+        metallb:
+          enabled: ${_param:kubernetes_metallb_enabled}
+    master:
+      kubelet:
+        fail_on_swap: ${_param:kubelet_fail_on_swap}
+      container: false
+      network:
+        genie:
+          enabled: ${_param:kubernetes_genie_enabled}
+          image: ${_param:kubernetes_genie_image}
+        calico:
+          enabled: ${_param:kubernetes_calico_enabled}
+          image: ${_param:kubernetes_calico_image}
+          calicoctl_image: ${_param:kubernetes_calico_calicoctl_image}
+          cni_image: ${_param:kubernetes_calico_cni_image}
+        opencontrail:
+          enabled: ${_param:kubernetes_opencontrail_enabled}
+          cni_image: ${_param:kubernetes_contrail_cni_image}
+    pool:
+      kubelet:
+        fail_on_swap: ${_param:kubelet_fail_on_swap}
+      container: false
+      network:
+        genie:
+          enabled: ${_param:kubernetes_genie_enabled}
+          image: ${_param:kubernetes_genie_image}
+        calico:
+          enabled: ${_param:kubernetes_calico_enabled}
+          image: ${_param:kubernetes_calico_image}
+          calicoctl_image: ${_param:kubernetes_calico_calicoctl_image}
+          cni_image: ${_param:kubernetes_calico_cni_image}
+        opencontrail:
+          enabled: ${_param:kubernetes_opencontrail_enabled}
+          cni_image: ${_param:kubernetes_contrail_cni_image}
diff --git a/kubernetes/master/cluster.yml b/kubernetes/master/cluster.yml
index 6d6b404..199537f 100644
--- a/kubernetes/master/cluster.yml
+++ b/kubernetes/master/cluster.yml
@@ -3,20 +3,10 @@
 - service.haproxy.proxy.single
 - system.haproxy.proxy.listen.kubernetes.apiserver
 - system.keepalived.cluster.instance.kube_api_server_vip
+- system.kubernetes.common
 parameters:
-  _param:
-    kubernetes_netchecker_agent_repo: mirantis
-    kubernetes_netchecker_server_repo: mirantis
-    kubernetes_netchecker_agent_image: ${_param:kubernetes_netchecker_agent_repo}/k8s-netchecker-agent:v1.2.2
-    kubernetes_netchecker_server_image: ${_param:kubernetes_netchecker_server_repo}/k8s-netchecker-server:v1.2.2
-
-    kubelet_fail_on_swap: true
-
   kubernetes:
     master:
-      kubelet:
-        fail_on_swap: ${_param:kubelet_fail_on_swap}
-      container: false
       network:
         calico:
           prometheus:
diff --git a/kubernetes/master/single.yml b/kubernetes/master/single.yml
index b4f20b0..8d75ca2 100644
--- a/kubernetes/master/single.yml
+++ b/kubernetes/master/single.yml
@@ -1,16 +1,3 @@
 classes:
 - service.kubernetes.master.single
-parameters:
-  _param:
-    kubernetes_netchecker_agent_repo: mirantis
-    kubernetes_netchecker_server_repo: mirantis
-    kubernetes_netchecker_agent_image: ${_param:kubernetes_netchecker_agent_repo}/k8s-netchecker-agent:v1.2.2
-    kubernetes_netchecker_server_image: ${_param:kubernetes_netchecker_server_repo}/k8s-netchecker-server:v1.2.2
-
-    kubelet_fail_on_swap: true
-
-  kubernetes:
-    master:
-      kubelet:
-        fail_on_swap: ${_param:kubelet_fail_on_swap}
-      container: false
+- system.kubernetes.common
diff --git a/kubernetes/pool/cluster.yml b/kubernetes/pool/cluster.yml
index 335078f..fca14e7 100644
--- a/kubernetes/pool/cluster.yml
+++ b/kubernetes/pool/cluster.yml
@@ -1,38 +1,10 @@
 classes:
 - service.kubernetes.pool.cluster
 - service.docker.host
+- system.kubernetes.common
 parameters:
-  _param:
-    kubernetes_calico_calicoctl_repo: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico
-    kubernetes_calico_repo: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico
-    kubernetes_calico_cni_repo: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico
-    kubernetes_hyperkube_repo: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes
-    kubernetes_contrail_cni_repo: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes
-    kubernetes_contrail_network_controller_repo: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/contrail-integration
-
-    # component docker images
-    kubernetes_calico_calicoctl_image: ${_param:kubernetes_calico_calicoctl_repo}/ctl:v1.6.4
-    kubernetes_calico_image: ${_param:kubernetes_calico_repo}/node:v2.6.9
-    kubernetes_calico_cni_image: ${_param:kubernetes_calico_cni_repo}/cni:v1.11.5
-    kubernetes_hyperkube_image: ${_param:kubernetes_hyperkube_repo}/hyperkube-amd64:v1.8.13-11
-    kubernetes_pause_image: ${_param:kubernetes_hyperkube_repo}/pause-amd64:v1.8.13-11
-    kubernetes_contrail_cni_image: ${_param:kubernetes_contrail_cni_repo}/contrail-cni:v1.2.0
-    kubernetes_contrail_network_controller_image: ${_param:kubernetes_contrail_network_controller_repo}/contrail-network-controller:v1.2.0
-    kubernetes_virtlet_image: mirantis/virtlet:v1.0.3
-    kubernetes_criproxy_version: v0.11.0
-    kubernetes_criproxy_checksum: md5=115bbb0c27518db6b0b3bc8cdc5fc897
-
-    kubelet_fail_on_swap: true
-
   kubernetes:
-    common:
-      hyperkube:
-        image: ${_param:kubernetes_hyperkube_image}
-        pause_image: ${_param:kubernetes_pause_image}
     pool:
-      kubelet:
-        fail_on_swap: ${_param:kubelet_fail_on_swap}
-      container: false
       network:
         calico:
           prometheus:
diff --git a/kubernetes/pool/single.yml b/kubernetes/pool/single.yml
index 3f4af34..4e8c8ab 100644
--- a/kubernetes/pool/single.yml
+++ b/kubernetes/pool/single.yml
@@ -1,38 +1,8 @@
 classes:
 - service.kubernetes.pool.single
 - service.docker.host
+- system.kubernetes.common
 parameters:
-  _param:
-    kubernetes_calico_calicoctl_repo: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico
-    kubernetes_calico_repo: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico
-    kubernetes_calico_cni_repo: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico
-    kubernetes_hyperkube_repo: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes
-    kubernetes_contrail_cni_repo: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes
-    kubernetes_contrail_network_controller_repo: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/contrail-integration
-
-    # component docker images
-    kubernetes_calico_calicoctl_image: ${_param:kubernetes_calico_calicoctl_repo}/ctl:v1.6.4
-    kubernetes_calico_image: ${_param:kubernetes_calico_repo}/node:v2.6.9
-    kubernetes_calico_cni_image: ${_param:kubernetes_calico_cni_repo}/cni:v1.11.5
-    kubernetes_hyperkube_image: ${_param:kubernetes_hyperkube_repo}/hyperkube-amd64:v1.8.13-11
-    kubernetes_pause_image: ${_param:kubernetes_hyperkube_repo}/pause-amd64:v1.8.13-11
-    kubernetes_contrail_cni_image: ${_param:kubernetes_contrail_cni_repo}/contrail-cni:v1.2.0
-    kubernetes_contrail_network_controller_image: ${_param:kubernetes_contrail_network_controller_repo}/contrail-network-controller:v1.2.0
-    kubernetes_virtlet_image: mirantis/virtlet:v1.0.3
-    kubernetes_criproxy_version: v0.11.0
-    kubernetes_criproxy_checksum: md5=115bbb0c27518db6b0b3bc8cdc5fc897
-
-    kubelet_fail_on_swap: true
-
-  kubernetes:
-    common:
-      hyperkube:
-        image: ${_param:kubernetes_hyperkube_image}
-        pause_image: ${_param:kubernetes_pause_image}
-    pool:
-      kubelet:
-        fail_on_swap: ${_param:kubelet_fail_on_swap}
-      container: false
   docker:
     host:
       options:
diff --git a/linux/system/repo/mcp/apt_mirantis/saltstack.yml b/linux/system/repo/mcp/apt_mirantis/saltstack.yml
index 6fcd5a1..ec7d320 100644
--- a/linux/system/repo/mcp/apt_mirantis/saltstack.yml
+++ b/linux/system/repo/mcp/apt_mirantis/saltstack.yml
@@ -12,3 +12,7 @@
           key_id: 0E08A149DE57BFBE
           key_server: keyserver.ubuntu.com
           clean_file: true
+          pin:
+          - pin: 'release o=SaltStack'
+            priority: 1100
+            package: '*'
\ No newline at end of file
diff --git a/linux/system/repo/mcp/apt_mirantis/saltstack_2016_3.yml b/linux/system/repo/mcp/apt_mirantis/saltstack_2016_3.yml
index 5d5e494..c0eabe3 100644
--- a/linux/system/repo/mcp/apt_mirantis/saltstack_2016_3.yml
+++ b/linux/system/repo/mcp/apt_mirantis/saltstack_2016_3.yml
@@ -3,6 +3,7 @@
 parameters:
   _param:
     apt_mk_version: stable
+    salt_version: 2016.3
     linux_system_repo_url: http://mirror.mirantis.com/${_param:apt_mk_version}/
     linux_system_repo_mcp_saltstack_url: ${_param:linux_system_repo_url}/saltstack-2016.3/
   linux:
@@ -12,3 +13,7 @@
           source: "deb [arch=amd64] ${_param:linux_system_repo_mcp_saltstack_url}/${_param:linux_system_codename}/ ${_param:linux_system_codename} main"
           architectures: amd64
           clean_file: true
+          pin:
+          - pin: 'release o=SaltStack'
+            priority: 1100
+            package: '*'
diff --git a/opencontrail/control/analytics4_0.yml b/opencontrail/control/analytics4_0.yml
index ee8462a..cd7b8cc 100644
--- a/opencontrail/control/analytics4_0.yml
+++ b/opencontrail/control/analytics4_0.yml
@@ -10,12 +10,13 @@
     opencontrail_kafka_log_cleanup_dir: '/usr/share/kafka/logs/'
     opencontrail_version: 4.0
     linux_repo_contrail_component: oc40
+    opencontrail_image_tag: latest
     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_message_queue_address: ${_param:openstack_message_queue_address}
-    opencontrail_analytics_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-analytics
-    opencontrail_analyticsdb_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-analyticsdb
+    opencontrail_analytics_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-analytics:${_param:opencontrail_image_tag}
+    opencontrail_analyticsdb_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-analyticsdb:${_param:opencontrail_image_tag}
     opencontrail_analytics_container_name: opencontrail_analytics_1
     opencontrail_analyticsdb_container_name: opencontrail_analyticsdb_1
 # Temprorary fix for MOS9 packages to pin old version of kafka
diff --git a/opencontrail/control/cluster4_0.yml b/opencontrail/control/cluster4_0.yml
index 60749b3..71c69b6 100644
--- a/opencontrail/control/cluster4_0.yml
+++ b/opencontrail/control/cluster4_0.yml
@@ -10,13 +10,14 @@
     opencontrail_kafka_log_cleanup_dir: '/usr/share/kafka/logs/'
     opencontrail_version: 4.0
     linux_repo_contrail_component: oc40
+    opencontrail_image_tag: latest
     opencontrail_message_queue_node01_address: ${_param:openstack_control_node01_address}
     opencontrail_message_queue_node02_address: ${_param:openstack_control_node02_address}
     opencontrail_message_queue_node03_address: ${_param:openstack_control_node03_address}
     opencontrail_message_queue_address: ${_param:openstack_control_address}
-    opencontrail_analytics_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-analytics
-    opencontrail_analyticsdb_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-analyticsdb
-    opencontrail_controller_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-controller
+    opencontrail_analytics_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-analytics:${_param:opencontrail_image_tag}
+    opencontrail_analyticsdb_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-analyticsdb:${_param:opencontrail_image_tag}
+    opencontrail_controller_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-controller:${_param:opencontrail_image_tag}
     opencontrail_controller_container_name: opencontrail_controller_1
     opencontrail_analytics_container_name: opencontrail_analytics_1
     opencontrail_analyticsdb_container_name: opencontrail_analyticsdb_1
diff --git a/opencontrail/control/control4_0.yml b/opencontrail/control/control4_0.yml
index 10c72ee..6174379 100644
--- a/opencontrail/control/control4_0.yml
+++ b/opencontrail/control/control4_0.yml
@@ -7,10 +7,11 @@
   _param:
     opencontrail_version: 4.0
     linux_repo_contrail_component: oc40
+    opencontrail_image_tag: latest
     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_controller_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-controller
+    opencontrail_controller_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-controller::${_param:opencontrail_image_tag}
     opencontrail_controller_container_name: opencontrail_controller_1
     analytics_vip_address: ${_param:opencontrail_analytics_address}
   opencontrail:
diff --git a/opencontrail/control/single4_0.yml b/opencontrail/control/single4_0.yml
index df551ef..d4069e0 100644
--- a/opencontrail/control/single4_0.yml
+++ b/opencontrail/control/single4_0.yml
@@ -8,9 +8,10 @@
     opencontrail_kafka_log_cleanup_dir: '/usr/share/kafka/logs/'
     opencontrail_version: 4.0
     linux_repo_contrail_component: oc40
-    opencontrail_analytics_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-analytics
-    opencontrail_analyticsdb_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-analyticsdb
-    opencontrail_controller_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-controller
+    opencontrail_image_tag: latest
+    opencontrail_analytics_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-analytics:${_param:opencontrail_image_tag}
+    opencontrail_analyticsdb_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-analyticsdb:${_param:opencontrail_image_tag}
+    opencontrail_controller_image: docker-prod-local.artifactory.mirantis.com/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-controller:${_param:opencontrail_image_tag}
     opencontrail_controller_container_name: opencontrail_controller_1
     opencontrail_analytics_container_name: opencontrail_analytics_1
     opencontrail_analyticsdb_container_name: opencontrail_analyticsdb_1
diff --git a/prometheus/gainsight/query/openstack.yml b/prometheus/gainsight/query/openstack.yml
new file mode 100644
index 0000000..9215d2e
--- /dev/null
+++ b/prometheus/gainsight/query/openstack.yml
@@ -0,0 +1,19 @@
+parameters:
+  prometheus:
+    gainsight:
+      queries:
+        vcpu_used: "'vCPU Used','sum(avg_over_time(openstack_nova_used_vcpus[24h]))'"
+        vcpu_free: "'vCPU Free','sum(avg_over_time(openstack_nova_free_vcpus[24h]))'"
+        vstorge_used: "'vStorage Used','sum(avg_over_time(openstack_nova_used_disk[24h]))'"
+        vstorage_free: "'vStorage Free','sum(avg_over_time(openstack_nova_free_disk[24h]))'"
+        vram_used: "'vRAM Used','sum(avg_over_time(openstack_nova_used_ram[24h]))'"
+        vram_free: "'vRAM Free','sum(avg_over_time(openstack_nova_free_ram[24h]))'"
+        instances: "'Instances','sum(avg_over_time(openstack_nova_instances[24h]))'"
+        compute_nodes: "'Compute Nodes','sum(openstack_nova_services{service=~\"nova.compute\"})'"
+        tenants: "'Tenants','sum(avg_over_time(openstack_keystone_tenants_total[24h]))'"
+        cinder_api: "'Cinder API','avg(avg_over_time(openstack_api_check_status{service=\"cinderv2\"}[24h]))'"
+        nova_api: "'Nova API','avg(avg_over_time(openstack_api_check_status{service=\"nova\"}[24h]))'"
+        keystone_api: "'Keystone API','avg(avg_over_time(openstack_api_check_status{service=\"keystone\"}[24h]))'"
+        glance_api: "'Glance API','avg(avg_over_time(openstack_api_check_status{service=\"glance\"}[24h]))'"
+        keystone_api: "'Keystone API','avg(avg_over_time(openstack_api_check_status{service=\"keystone\"}[24h]))'"
+        neutron_api: "'Neutron API','avg(avg_over_time(openstack_api_check_status{service=\"neutron\"}[24h]))'"
diff --git a/rabbitmq/server/vhost/openstack/ha_for_all_queues.yml b/rabbitmq/server/vhost/openstack/ha_for_all_queues.yml
new file mode 100644
index 0000000..040a8ed
--- /dev/null
+++ b/rabbitmq/server/vhost/openstack/ha_for_all_queues.yml
@@ -0,0 +1,10 @@
+parameters:
+  rabbitmq:
+    server:
+      host:
+        '/openstack':
+          policies:
+          - name: ha-all
+            pattern: '.'
+            definition: '{"ha-mode":"all", "ha-sync-mode":"automatic"}'
+            priority: 0
diff --git a/rabbitmq/server/vhost/openstack/ha_for_all_queues_except_telemetry.yml b/rabbitmq/server/vhost/openstack/ha_for_all_queues_except_telemetry.yml
new file mode 100644
index 0000000..a2eef5b
--- /dev/null
+++ b/rabbitmq/server/vhost/openstack/ha_for_all_queues_except_telemetry.yml
@@ -0,0 +1,10 @@
+parameters:
+  rabbitmq:
+    server:
+      host:
+        '/openstack':
+          policies:
+          - name: ha-all-except-notif
+            pattern: '^((?!(alarm|alarming|event|metering|notifications)\.).)*$'
+            definition: '{"ha-mode":"all", "ha-sync-mode":"automatic"}'
+            priority: 0
diff --git a/rabbitmq/server/vhost/openstack/ha_for_telemetry_queues.yml b/rabbitmq/server/vhost/openstack/ha_for_telemetry_queues.yml
new file mode 100644
index 0000000..d456072
--- /dev/null
+++ b/rabbitmq/server/vhost/openstack/ha_for_telemetry_queues.yml
@@ -0,0 +1,10 @@
+parameters:
+  rabbitmq:
+    server:
+      host:
+        '/openstack':
+          policies:
+          - name: ha-notif
+            pattern: '^(alarm|alarming|event|metering|notifications)\.'
+            definition: '{"ha-mode":"all", "ha-sync-mode":"automatic"}'
+            priority: 0
diff --git a/rabbitmq/server/vhost/openstack/rpc_ha.yml b/rabbitmq/server/vhost/openstack/rpc_ha.yml
new file mode 100644
index 0000000..a3c461d
--- /dev/null
+++ b/rabbitmq/server/vhost/openstack/rpc_ha.yml
@@ -0,0 +1,22 @@
+parameters:
+  rabbitmq:
+    server:
+      host:
+        '/openstack':
+          policies:
+          - name: heat_engine_rpc_expire
+            pattern: '^heat-engine-listener\.'
+            definition: '{"expires":3600000, "ha-mode":"all", "ha-sync-mode":"automatic"}'
+            priority: 1
+          - name: heat_worker_rpc_expire
+            pattern: '^engine_worker\.'
+            definition: '{"expires":3600000, "ha-mode":"all", "ha-sync-mode":"automatic"}'
+            priority: 1
+          - name: results_expire
+            pattern: '^results\.'
+            definition: '{"expires":3600000, "ha-mode":"all", "ha-sync-mode":"automatic"}'
+            priority: 1
+          - name: tasks_expire
+            pattern: '^tasks\.'
+            definition: '{"expires":3600000, "ha-mode":"all", "ha-sync-mode":"automatic"}'
+            priority: 1
diff --git a/rabbitmq/server/vhost/openstack/without_rpc_ha.yml b/rabbitmq/server/vhost/openstack/without_rpc_ha.yml
new file mode 100644
index 0000000..4b35c32
--- /dev/null
+++ b/rabbitmq/server/vhost/openstack/without_rpc_ha.yml
@@ -0,0 +1,22 @@
+parameters:
+  rabbitmq:
+    server:
+      host:
+        '/openstack':
+          policies:
+          - name: heat_engine_rpc_expire
+            pattern: '^heat-engine-listener\.'
+            definition: '{"expires":3600000}'
+            priority: 1
+          - name: heat_worker_rpc_expire
+            pattern: '^engine_worker\.'
+            definition: '{"expires":3600000}'
+            priority: 1
+          - name: results_expire
+            pattern: '^results\.'
+            definition: '{"expires":3600000}'
+            priority: 1
+          - name: tasks_expire
+            pattern: '^tasks\.'
+            definition: '{"expires":3600000}'
+            priority: 1
diff --git a/salt/control/sizes/cicd/compact.yml b/salt/control/sizes/cicd/compact.yml
new file mode 100644
index 0000000..65ad7b7
--- /dev/null
+++ b/salt/control/sizes/cicd/compact.yml
@@ -0,0 +1,6 @@
+parameters:
+  _param:
+    salt_control_size_cpu_cicd_control: 8
+    salt_control_size_ram_cicd_control: 12288
+    salt_control_size_disk_profile_cicd_control: large
+    salt_control_size_net_profile_cicd_control: default
\ No newline at end of file
diff --git a/salt/control/sizes/cicd/large.yml b/salt/control/sizes/cicd/large.yml
new file mode 100644
index 0000000..deb3722
--- /dev/null
+++ b/salt/control/sizes/cicd/large.yml
@@ -0,0 +1,6 @@
+parameters:
+  _param:
+    salt_control_size_cpu_cicd_control: 8
+    salt_control_size_ram_cicd_control: 32768
+    salt_control_size_disk_profile_cicd_control: xxxlarge
+    salt_control_size_net_profile_cicd_control: default
\ No newline at end of file
diff --git a/salt/control/sizes/cicd/medium.yml b/salt/control/sizes/cicd/medium.yml
new file mode 100644
index 0000000..2ef4866
--- /dev/null
+++ b/salt/control/sizes/cicd/medium.yml
@@ -0,0 +1,6 @@
+parameters:
+  _param:
+    salt_control_size_cpu_cicd_control: 8
+    salt_control_size_ram_cicd_control: 32768
+    salt_control_size_disk_profile_cicd_control: xxlarge
+    salt_control_size_net_profile_cicd_control: default
\ No newline at end of file
diff --git a/salt/control/sizes/cicd/minimal.yml b/salt/control/sizes/cicd/minimal.yml
new file mode 100644
index 0000000..876578b
--- /dev/null
+++ b/salt/control/sizes/cicd/minimal.yml
@@ -0,0 +1,6 @@
+parameters:
+  _param:
+    salt_control_size_cpu_cicd_control: 8
+    salt_control_size_ram_cicd_control: 8192
+    salt_control_size_disk_profile_cicd_control: small
+    salt_control_size_net_profile_cicd_control: default
\ No newline at end of file
diff --git a/salt/control/sizes/cicd/small.yml b/salt/control/sizes/cicd/small.yml
new file mode 100644
index 0000000..2ef4866
--- /dev/null
+++ b/salt/control/sizes/cicd/small.yml
@@ -0,0 +1,6 @@
+parameters:
+  _param:
+    salt_control_size_cpu_cicd_control: 8
+    salt_control_size_ram_cicd_control: 32768
+    salt_control_size_disk_profile_cicd_control: xxlarge
+    salt_control_size_net_profile_cicd_control: default
\ No newline at end of file
diff --git a/salt/control/sizes/opencontrail/compact.yml b/salt/control/sizes/opencontrail/compact.yml
new file mode 100644
index 0000000..5e70d89
--- /dev/null
+++ b/salt/control/sizes/opencontrail/compact.yml
@@ -0,0 +1,10 @@
+parameters:
+  _param:
+    salt_control_size_cpu_opencontrail_control: 8
+    salt_control_size_ram_opencontrail_control: 32768
+    salt_control_size_disk_profile_opencontrail_control: small
+    salt_control_size_net_profile_opencontrail_control: default
+    salt_control_size_cpu_opencontrail_analytics: 8
+    salt_control_size_ram_opencontrail_analytics: 32768
+    salt_control_size_disk_profile_opencontrail_analytics: large
+    salt_control_size_net_profile_opencontrail_analytics: default
\ No newline at end of file
diff --git a/salt/control/sizes/opencontrail/large.yml b/salt/control/sizes/opencontrail/large.yml
new file mode 100644
index 0000000..3af75d7
--- /dev/null
+++ b/salt/control/sizes/opencontrail/large.yml
@@ -0,0 +1,10 @@
+parameters:
+  _param:
+    salt_control_size_cpu_opencontrail_control: 16
+    salt_control_size_ram_opencontrail_control: 65536
+    salt_control_size_disk_profile_opencontrail_control: large
+    salt_control_size_net_profile_opencontrail_control: default
+    salt_control_size_cpu_opencontrail_analytics: 24
+    salt_control_size_ram_opencontrail_analytics: 131072
+    salt_control_size_disk_profile_opencontrail_analytics: xxhuge
+    salt_control_size_net_profile_opencontrail_analytics: default
\ No newline at end of file
diff --git a/salt/control/sizes/opencontrail/medium.yml b/salt/control/sizes/opencontrail/medium.yml
new file mode 100644
index 0000000..410092c
--- /dev/null
+++ b/salt/control/sizes/opencontrail/medium.yml
@@ -0,0 +1,10 @@
+parameters:
+  _param:
+    salt_control_size_cpu_opencontrail_control: 8
+    salt_control_size_ram_opencontrail_control: 65536
+    salt_control_size_disk_profile_opencontrail_control: large
+    salt_control_size_net_profile_opencontrail_control: default
+    salt_control_size_cpu_opencontrail_analytics: 16
+    salt_control_size_ram_opencontrail_analytics: 98304
+    salt_control_size_disk_profile_opencontrail_analytics: xhuge
+    salt_control_size_net_profile_opencontrail_analytics: default
\ No newline at end of file
diff --git a/salt/control/sizes/opencontrail/minimal.yml b/salt/control/sizes/opencontrail/minimal.yml
new file mode 100644
index 0000000..ad80ca9
--- /dev/null
+++ b/salt/control/sizes/opencontrail/minimal.yml
@@ -0,0 +1,10 @@
+parameters:
+  _param:
+    salt_control_size_cpu_opencontrail_control: 8
+    salt_control_size_ram_opencontrail_control: 12288
+    salt_control_size_disk_profile_opencontrail_control: small
+    salt_control_size_net_profile_opencontrail_control: default
+    salt_control_size_cpu_opencontrail_analytics: 12
+    salt_control_size_ram_opencontrail_analytics: 8192
+    salt_control_size_disk_profile_opencontrail_analytics: medium
+    salt_control_size_net_profile_opencontrail_analytics: default
\ No newline at end of file
diff --git a/salt/control/sizes/opencontrail/small.yml b/salt/control/sizes/opencontrail/small.yml
new file mode 100644
index 0000000..5e70d89
--- /dev/null
+++ b/salt/control/sizes/opencontrail/small.yml
@@ -0,0 +1,10 @@
+parameters:
+  _param:
+    salt_control_size_cpu_opencontrail_control: 8
+    salt_control_size_ram_opencontrail_control: 32768
+    salt_control_size_disk_profile_opencontrail_control: small
+    salt_control_size_net_profile_opencontrail_control: default
+    salt_control_size_cpu_opencontrail_analytics: 8
+    salt_control_size_ram_opencontrail_analytics: 32768
+    salt_control_size_disk_profile_opencontrail_analytics: large
+    salt_control_size_net_profile_opencontrail_analytics: default
\ No newline at end of file
diff --git a/salt/control/sizes/openstack/compact.yml b/salt/control/sizes/openstack/compact.yml
new file mode 100644
index 0000000..16e5dba
--- /dev/null
+++ b/salt/control/sizes/openstack/compact.yml
@@ -0,0 +1,22 @@
+parameters:
+  _param:
+    salt_control_size_cpu_openstack_control: 8
+    salt_control_size_ram_openstack_control: 32768
+    salt_control_size_disk_profile_openstack_control: small
+    salt_control_size_net_profile_openstack_control: default
+    salt_control_size_cpu_openstack_database: 8
+    salt_control_size_ram_openstack_database: 16384
+    salt_control_size_disk_profile_openstack_database: large
+    salt_control_size_net_profile_openstack_database: default
+    salt_control_size_cpu_openstack_message_queue: 8
+    salt_control_size_ram_openstack_message_queue: 32768
+    salt_control_size_disk_profile_openstack_message_queue: small
+    salt_control_size_net_profile_openstack_message_queue: default
+    salt_control_size_cpu_openstack_proxy: 4
+    salt_control_size_ram_openstack_proxy: 8192
+    salt_control_size_disk_profile_openstack_proxy: small
+    salt_control_size_net_profile_openstack_proxy: default
+    salt_control_size_cpu_openstack_upgrade: 8
+    salt_control_size_ram_openstack_upgrade: 16384
+    salt_control_size_disk_profile_openstack_upgrade: medium
+    salt_control_size_net_profile_openstack_upgrade: default
\ No newline at end of file
diff --git a/salt/control/sizes/openstack/large.yml b/salt/control/sizes/openstack/large.yml
new file mode 100644
index 0000000..04aa0c4
--- /dev/null
+++ b/salt/control/sizes/openstack/large.yml
@@ -0,0 +1,22 @@
+parameters:
+  _param:
+    salt_control_size_cpu_openstack_control: 24
+    salt_control_size_ram_openstack_control: 131072
+    salt_control_size_disk_profile_openstack_control: large
+    salt_control_size_net_profile_openstack_control: default
+    salt_control_size_cpu_openstack_database: 24
+    salt_control_size_ram_openstack_database: 65536
+    salt_control_size_disk_profile_openstack_database: huge
+    salt_control_size_net_profile_openstack_database: default
+    salt_control_size_cpu_openstack_message_queue: 32
+    salt_control_size_ram_openstack_message_queue: 200704
+    salt_control_size_disk_profile_openstack_message_queue: large
+    salt_control_size_net_profile_openstack_message_queue: default
+    salt_control_size_cpu_openstack_proxy: 8
+    salt_control_size_ram_openstack_proxy: 32768
+    salt_control_size_disk_profile_openstack_proxy: large
+    salt_control_size_net_profile_openstack_proxy: default
+    salt_control_size_cpu_openstack_upgrade: 8
+    salt_control_size_ram_openstack_upgrade: 16384
+    salt_control_size_disk_profile_openstack_upgrade: medium
+    salt_control_size_net_profile_openstack_upgrade: default
\ No newline at end of file
diff --git a/salt/control/sizes/openstack/medium.yml b/salt/control/sizes/openstack/medium.yml
new file mode 100644
index 0000000..7fa5d24
--- /dev/null
+++ b/salt/control/sizes/openstack/medium.yml
@@ -0,0 +1,22 @@
+parameters:
+  _param:
+    salt_control_size_cpu_openstack_control: 16
+    salt_control_size_ram_openstack_control: 65536
+    salt_control_size_disk_profile_openstack_control: large
+    salt_control_size_net_profile_openstack_control: default
+    salt_control_size_cpu_openstack_database: 8
+    salt_control_size_ram_openstack_database: 32786
+    salt_control_size_disk_profile_openstack_database: large
+    salt_control_size_net_profile_openstack_database: default
+    salt_control_size_cpu_openstack_message_queue: 16
+    salt_control_size_ram_openstack_message_queue: 66553
+    salt_control_size_disk_profile_openstack_message_queue: large
+    salt_control_size_net_profile_openstack_message_queue: default
+    salt_control_size_cpu_openstack_proxy: 4
+    salt_control_size_ram_openstack_proxy: 16384
+    salt_control_size_disk_profile_openstack_proxy: small
+    salt_control_size_net_profile_openstack_proxy: default
+    salt_control_size_cpu_openstack_upgrade: 8
+    salt_control_size_ram_openstack_upgrade: 16384
+    salt_control_size_disk_profile_openstack_upgrade: medium
+    salt_control_size_net_profile_openstack_upgrade: default
\ No newline at end of file
diff --git a/salt/control/sizes/openstack/minimal.yml b/salt/control/sizes/openstack/minimal.yml
new file mode 100644
index 0000000..bee7c71
--- /dev/null
+++ b/salt/control/sizes/openstack/minimal.yml
@@ -0,0 +1,22 @@
+parameters:
+  _param:
+    salt_control_size_cpu_openstack_control: 8
+    salt_control_size_ram_openstack_control: 12288
+    salt_control_size_disk_profile_openstack_control: small
+    salt_control_size_net_profile_openstack_control: default
+    salt_control_size_cpu_openstack_database: 6
+    salt_control_size_ram_openstack_database: 8192
+    salt_control_size_disk_profile_openstack_database: medium
+    salt_control_size_net_profile_openstack_database: default
+    salt_control_size_cpu_openstack_message_queue: 6
+    salt_control_size_ram_openstack_message_queue: 8192
+    salt_control_size_disk_profile_openstack_message_queue: small
+    salt_control_size_net_profile_openstack_message_queue: default
+    salt_control_size_cpu_openstack_proxy: 4
+    salt_control_size_ram_openstack_proxy: 6144
+    salt_control_size_disk_profile_openstack_proxy: small
+    salt_control_size_net_profile_openstack_proxy: default
+    salt_control_size_cpu_openstack_upgrade: 8
+    salt_control_size_ram_openstack_upgrade: 16384
+    salt_control_size_disk_profile_openstack_upgrade: medium
+    salt_control_size_net_profile_openstack_upgrade: default
\ No newline at end of file
diff --git a/salt/control/sizes/openstack/small.yml b/salt/control/sizes/openstack/small.yml
new file mode 100644
index 0000000..9f820d6
--- /dev/null
+++ b/salt/control/sizes/openstack/small.yml
@@ -0,0 +1,22 @@
+parameters:
+  _param:
+    salt_control_size_cpu_openstack_control: 8
+    salt_control_size_ram_openstack_control: 32768
+    salt_control_size_disk_profile_openstack_control: large
+    salt_control_size_net_profile_openstack_control: default
+    salt_control_size_cpu_openstack_database: 8
+    salt_control_size_ram_openstack_database: 16384
+    salt_control_size_disk_profile_openstack_database: large
+    salt_control_size_net_profile_openstack_database: default
+    salt_control_size_cpu_openstack_message_queue: 8
+    salt_control_size_ram_openstack_message_queue: 65536
+    salt_control_size_disk_profile_openstack_message_queue: xxlarge
+    salt_control_size_net_profile_openstack_message_queue: default
+    salt_control_size_cpu_openstack_proxy: 4
+    salt_control_size_ram_openstack_proxy: 8192
+    salt_control_size_disk_profile_openstack_proxy: small
+    salt_control_size_net_profile_openstack_proxy: default
+    salt_control_size_cpu_openstack_upgrade: 8
+    salt_control_size_ram_openstack_upgrade: 16384
+    salt_control_size_disk_profile_openstack_upgrade: medium
+    salt_control_size_net_profile_openstack_upgrade: default
\ No newline at end of file
diff --git a/salt/control/sizes/stacklight/compact.yml b/salt/control/sizes/stacklight/compact.yml
new file mode 100644
index 0000000..8d67466
--- /dev/null
+++ b/salt/control/sizes/stacklight/compact.yml
@@ -0,0 +1,14 @@
+parameters:
+  _param:
+    salt_control_size_cpu_stacklight_log: 4
+    salt_control_size_ram_stacklight_log: 8192
+    salt_control_size_disk_profile_stacklight_log: xxxlarge
+    salt_control_size_net_profile_stacklight_log: default
+    salt_control_size_cpu_stacklight_server: 4
+    salt_control_size_ram_stacklight_server: 8192
+    salt_control_size_disk_profile_stacklight_server: xxlarge
+    salt_control_size_net_profile_stacklight_server: default
+    salt_control_size_cpu_stacklight_telemetry: 4
+    salt_control_size_ram_stacklight_telemetry: 8192
+    salt_control_size_disk_profile_stacklight_telemetry: xxlarge
+    salt_control_size_net_profile_stacklight_telemetry: default
\ No newline at end of file
diff --git a/salt/control/sizes/stacklight/large.yml b/salt/control/sizes/stacklight/large.yml
new file mode 100644
index 0000000..6e2463f
--- /dev/null
+++ b/salt/control/sizes/stacklight/large.yml
@@ -0,0 +1,14 @@
+parameters:
+  _param:
+    salt_control_size_cpu_stacklight_log: 16
+    salt_control_size_ram_stacklight_log: 49152
+    salt_control_size_disk_profile_stacklight_log: xxxxhuge
+    salt_control_size_net_profile_stacklight_log: default
+    salt_control_size_cpu_stacklight_server: 24
+    salt_control_size_ram_stacklight_server: 262144
+    salt_control_size_disk_profile_stacklight_server: huge
+    salt_control_size_net_profile_stacklight_server: default
+    salt_control_size_cpu_stacklight_telemetry: 16
+    salt_control_size_ram_stacklight_telemetry: 200704
+    salt_control_size_disk_profile_stacklight_telemetry: xxhuge
+    salt_control_size_net_profile_stacklight_telemetry: default
\ No newline at end of file
diff --git a/salt/control/sizes/stacklight/medium.yml b/salt/control/sizes/stacklight/medium.yml
new file mode 100644
index 0000000..6207f48
--- /dev/null
+++ b/salt/control/sizes/stacklight/medium.yml
@@ -0,0 +1,14 @@
+parameters:
+  _param:
+    salt_control_size_cpu_stacklight_log: 16
+    salt_control_size_ram_stacklight_log: 49152
+    salt_control_size_disk_profile_stacklight_log: xxhuge
+    salt_control_size_net_profile_stacklight_log: default
+    salt_control_size_cpu_stacklight_server: 12
+    salt_control_size_ram_stacklight_server: 65536
+    salt_control_size_disk_profile_stacklight_server: xxlarge
+    salt_control_size_net_profile_stacklight_server: default
+    salt_control_size_cpu_stacklight_telemetry: 12
+    salt_control_size_ram_stacklight_telemetry: 98304
+    salt_control_size_disk_profile_stacklight_telemetry: xhuge
+    salt_control_size_net_profile_stacklight_telemetry: default
\ No newline at end of file
diff --git a/salt/control/sizes/stacklight/minimal.yml b/salt/control/sizes/stacklight/minimal.yml
new file mode 100644
index 0000000..8d5c935
--- /dev/null
+++ b/salt/control/sizes/stacklight/minimal.yml
@@ -0,0 +1,14 @@
+parameters:
+  _param:
+    salt_control_size_cpu_stacklight_log: 4
+    salt_control_size_ram_stacklight_log: 4096
+    salt_control_size_disk_profile_stacklight_log: medium
+    salt_control_size_net_profile_stacklight_log: default
+    salt_control_size_cpu_stacklight_server: 4
+    salt_control_size_ram_stacklight_server: 6144
+    salt_control_size_disk_profile_stacklight_server: small
+    salt_control_size_net_profile_stacklight_server: default
+    salt_control_size_cpu_stacklight_telemetry: 4
+    salt_control_size_ram_stacklight_telemetry: 4096
+    salt_control_size_disk_profile_stacklight_telemetry: medium
+    salt_control_size_net_profile_stacklight_telemetry: default
\ No newline at end of file
diff --git a/salt/control/sizes/stacklight/small.yml b/salt/control/sizes/stacklight/small.yml
new file mode 100644
index 0000000..293e14d
--- /dev/null
+++ b/salt/control/sizes/stacklight/small.yml
@@ -0,0 +1,14 @@
+parameters:
+  _param:
+    salt_control_size_cpu_stacklight_log: 12
+    salt_control_size_ram_stacklight_log: 49152
+    salt_control_size_disk_profile_stacklight_log: xhuge
+    salt_control_size_net_profile_stacklight_log: default
+    salt_control_size_cpu_stacklight_server: 12
+    salt_control_size_ram_stacklight_server: 65536
+    salt_control_size_disk_profile_stacklight_server: xxlarge
+    salt_control_size_net_profile_stacklight_server: default
+    salt_control_size_cpu_stacklight_telemetry: 12
+    salt_control_size_ram_stacklight_telemetry: 65536
+    salt_control_size_disk_profile_stacklight_telemetry: xxxlarge
+    salt_control_size_net_profile_stacklight_telemetry: default
\ No newline at end of file
diff --git a/salt/control/virt.yml b/salt/control/virt.yml
index aea524c..0bbb7fa 100644
--- a/salt/control/virt.yml
+++ b/salt/control/virt.yml
@@ -57,3 +57,9 @@
       xxhuge:
         - system:
             size: 3000000
+      xxxhuge:
+        - system:
+            size: 4000000
+      xxxxhuge:
+        - system:
+            size: 5000000
\ No newline at end of file
diff --git a/salt/master/formula/git/auditd.yml b/salt/master/formula/git/auditd.yml
new file mode 100644
index 0000000..f88c0f9
--- /dev/null
+++ b/salt/master/formula/git/auditd.yml
@@ -0,0 +1,10 @@
+parameters:
+  salt:
+    master:
+      environment:
+        dev:
+          formula:
+            auditd:
+              source: git
+              address: '${_param:salt_master_environment_repository}/salt-formula-auditd.git'
+              revision: ${_param:salt_master_environment_revision}
diff --git a/salt/master/formula/pkg/auditd.yml b/salt/master/formula/pkg/auditd.yml
new file mode 100644
index 0000000..b81c419
--- /dev/null
+++ b/salt/master/formula/pkg/auditd.yml
@@ -0,0 +1,9 @@
+parameters:
+  salt:
+    master:
+      environment:
+        prd:
+          formula:
+            auditd:
+              source: pkg
+              name: salt-formula-auditd