Merge "Revert "Adding pin for keepalived package""
diff --git a/defaults/init.yml b/defaults/init.yml
index 6c30995..ef1fe8c 100644
--- a/defaults/init.yml
+++ b/defaults/init.yml
@@ -9,6 +9,7 @@
 - system.defaults.linux_system_repo
 - system.defaults.linux_system_file
 - system.defaults.git
+- system.defaults.jenkins
 - system.defaults.maas
 - system.defaults.openstack
 - system.defaults.galera
diff --git a/defaults/jenkins.yml b/defaults/jenkins.yml
new file mode 100644
index 0000000..36bcbfb
--- /dev/null
+++ b/defaults/jenkins.yml
@@ -0,0 +1,5 @@
+parameters:
+  _param:
+    jenkins_master_port: 8081
+    jenkins_master_protocol: http
+    jenkins_pipelines_branch: "master"
diff --git a/defaults/openstack/init.yml b/defaults/openstack/init.yml
index 5adb1a7..97c1fe8 100644
--- a/defaults/openstack/init.yml
+++ b/defaults/openstack/init.yml
@@ -89,6 +89,10 @@
     # Ironic
     ironic_memcache_security_enabled: ${_param:openstack_memcache_security_enabled}
     ironic_memcache_secret_key: ''
+    ironic_console_enabled: true
+    ironic_old_version: ${_param:openstack_old_version}
+    ironic_version: ${_param:openstack_version}
+    ironic_upgrade_enabled: ${_param:openstack_upgrade_enabled}
     # Keystone
     keystone_old_version: ${_param:openstack_old_version}
     keystone_version: ${_param:openstack_version}
diff --git a/docker/swarm/stack/jenkins/slave_base.yml b/docker/swarm/stack/jenkins/slave_base.yml
index 3af4cc3..91601ab 100644
--- a/docker/swarm/stack/jenkins/slave_base.yml
+++ b/docker/swarm/stack/jenkins/slave_base.yml
@@ -3,7 +3,6 @@
 parameters:
   _param:
     jenkins_master_host: ${_param:control_vip_address}
-    jenkins_master_port: 8081
     jenkins_master_url: http://${_param:jenkins_master_host}:${_param:jenkins_master_port}
     jenkins_slave_user: ${_param:jenkins_client_user}
     jenkins_slave_password: ${_param:jenkins_client_password}
diff --git a/docker/swarm/stack/monitoring/sf_notifier.yml b/docker/swarm/stack/monitoring/sf_notifier.yml
index a171ce8..b8b2dd6 100644
--- a/docker/swarm/stack/monitoring/sf_notifier.yml
+++ b/docker/swarm/stack/monitoring/sf_notifier.yml
@@ -29,8 +29,6 @@
               image: ${_param:docker_image_sf_notifier}
               ports:
                 - 15018:5000
-              volumes:
-                - ${prometheus:sf_notifier:dir:logs}:/var/log/sf-notifier
               environment:
                 SF_NOTIFIER_WORKERS: ${_param:sf_notifier_workers}
                 SF_NOTIFIER_BUFFER_SIZE: ${_param:sf_notifier_buffer_size}
diff --git a/haproxy/proxy/listen/openstack/placement.yml b/haproxy/proxy/listen/openstack/placement.yml
index b2e37bb..78776ca 100644
--- a/haproxy/proxy/listen/openstack/placement.yml
+++ b/haproxy/proxy/listen/openstack/placement.yml
@@ -1,5 +1,6 @@
 # Starting with Nova (17.0.0) Queens - accessing to / of placement service
 # returns 200 with version data instead of 401 as it was before.
+# Also OPTIONS default haproxy check method is no longer allowed starting from Queens.
 # This file should be included for nova/placement higher than Queens.
 parameters:
   _param:
@@ -7,9 +8,19 @@
   haproxy:
     proxy:
       listen:
+        # Nova placement API returns 401 when doing GET to root URL, while
+        # other services normally returns 200 and API versions data.
         placement_api:
-          type: openstack-service
           service_name: placement
+          mode: http
+          options:
+            - httpclose
+            - httplog
+            - httpchk GET /
+          health-check:
+            http:
+              options:
+              - expect rstatus (401|200)
           binds:
           - address: ${_param:cluster_vip_address}
             port: 8778
diff --git a/haproxy/proxy/listen/openstack/placement_large.yml b/haproxy/proxy/listen/openstack/placement_large.yml
index d559572..95711d2 100644
--- a/haproxy/proxy/listen/openstack/placement_large.yml
+++ b/haproxy/proxy/listen/openstack/placement_large.yml
@@ -1,5 +1,6 @@
 # Starting with Nova (17.0.0) Queens - accessing to / of placement service
 # returns 200 with version data instead of 401 as it was before.
+# Also OPTIONS default haproxy check method is no longer allowed starting from Queens.
 # This file should be included for nova/placement higher than Queens.
 parameters:
   _param:
@@ -7,9 +8,19 @@
   haproxy:
     proxy:
       listen:
+        # Nova placement API returns 401 when doing GET to root URL, while
+        # other services normally returns 200 and API versions data.
         placement_api:
-          type: openstack-service
           service_name: placement
+          mode: http
+          options:
+            - httpclose
+            - httplog
+            - httpchk GET /
+          health-check:
+            http:
+              options:
+              - expect rstatus (401|200)
           binds:
           - address: ${_param:cluster_vip_address}
             port: 8778
diff --git a/heat/server/cluster.yml b/heat/server/cluster.yml
index 1edf790..be2f211 100644
--- a/heat/server/cluster.yml
+++ b/heat/server/cluster.yml
@@ -18,7 +18,6 @@
       stack_domain_admin:
         name: heat_domain_admin
         password: ${_param:heat_domain_admin_password}
-        domain: heat
       enabled: true
       region: ${_param:openstack_region}
       version: ${_param:heat_version}
diff --git a/heat/server/single.yml b/heat/server/single.yml
index 24db595..4ce11fa 100644
--- a/heat/server/single.yml
+++ b/heat/server/single.yml
@@ -17,7 +17,6 @@
       stack_domain_admin:
         name: heat_domain_admin
         password: ${_param:heat_domain_admin_password}
-        domain: heat
       metadata:
         protocol: ${_param:cluster_public_protocol}
       waitcondition:
diff --git a/ironic/api/cluster.yml b/ironic/api/cluster.yml
index aa45ec2..d343e28 100644
--- a/ironic/api/cluster.yml
+++ b/ironic/api/cluster.yml
@@ -2,6 +2,7 @@
 - system.salt.minion.cert.mysql.clients.openstack.ironic
 - system.salt.minion.cert.rabbitmq.clients.openstack.ironic
 - service.ironic.api.cluster
+- system.ironic.upgrade
 parameters:
   linux:
     system:
@@ -40,3 +41,4 @@
           secret_key: ${_param:ironic_memcache_secret_key}
       identity:
         region: ${_param:openstack_region}
+        protocol: ${_param:cluster_internal_protocol}
diff --git a/ironic/api/single.yml b/ironic/api/single.yml
index 5eb290b..0e5d61e 100644
--- a/ironic/api/single.yml
+++ b/ironic/api/single.yml
@@ -2,6 +2,7 @@
 - system.salt.minion.cert.mysql.clients.openstack.ironic
 - system.salt.minion.cert.rabbitmq.clients.openstack.ironic
 - service.ironic.api.single
+- system.ironic.upgrade
 parameters:
   linux:
     system:
@@ -38,3 +39,4 @@
           secret_key: ${_param:ironic_memcache_secret_key}
       identity:
         region: ${_param:openstack_region}
+        protocol: ${_param:cluster_internal_protocol}
diff --git a/ironic/conductor/cluster.yml b/ironic/conductor/cluster.yml
index 09548b7..b733a87 100644
--- a/ironic/conductor/cluster.yml
+++ b/ironic/conductor/cluster.yml
@@ -2,7 +2,10 @@
 - system.salt.minion.cert.mysql.clients.openstack.ironic
 - system.salt.minion.cert.rabbitmq.clients.openstack.ironic
 - service.ironic.conductor.cluster
+- system.ironic.upgrade
 parameters:
+  _param:
+    ironic_conductor_api_url_protocol: 'http'
   linux:
     system:
       package:
@@ -11,7 +14,7 @@
           version: latest
   ironic:
     conductor:
-      api_url: 'http://${_param:cluster_baremetal_vip_address}:6385'
+      api_url: '${_param:ironic_conductor_api_url_protocol}://${_param:cluster_baremetal_vip_address}:6385'
       database:
         x509:
           enabled: ${_param:openstack_mysql_x509_enabled}
@@ -36,6 +39,14 @@
           secret_key: ${_param:ironic_memcache_secret_key}
       identity:
         region: ${_param:openstack_region}
+        protocol: ${_param:cluster_internal_protocol}
       automated_clean: true
       erase_devices_priority: 0
       erase_devices_metadata_priority: 1
+      console:
+        enabled: ${_param:ironic_console_enabled}
+      enabled_console_interfaces:
+        - ipmitool-shellinabox
+        - ipmitool-socat
+        - no-console
+      pxe_append_params: 'nofb nomodeset vga=normal ipa-insecure=1'
diff --git a/ironic/conductor/single.yml b/ironic/conductor/single.yml
index 4bbdfa9..752f1cf 100644
--- a/ironic/conductor/single.yml
+++ b/ironic/conductor/single.yml
@@ -2,6 +2,7 @@
 - system.salt.minion.cert.mysql.clients.openstack.ironic
 - system.salt.minion.cert.rabbitmq.clients.openstack.ironic
 - service.ironic.conductor.single
+- system.ironic.upgrade
 parameters:
   linux:
     system:
@@ -37,6 +38,14 @@
           secret_key: ${_param:ironic_memcache_secret_key}
       identity:
         region: ${_param:openstack_region}
+        protocol: ${_param:cluster_internal_protocol}
       automated_clean: true
       erase_devices_priority: 0
       erase_devices_metadata_priority: 1
+      console:
+        enabled: ${_param:ironic_console_enabled}
+      enabled_console_interfaces:
+        - ipmitool-shellinabox
+        - ipmitool-socat
+        - no-console
+      pxe_append_params: 'nofb nomodeset vga=normal ipa-insecure=1'
diff --git a/ironic/upgrade/init.yml b/ironic/upgrade/init.yml
new file mode 100644
index 0000000..ebd9bfd
--- /dev/null
+++ b/ironic/upgrade/init.yml
@@ -0,0 +1,6 @@
+parameters:
+  ironic:
+    upgrade:
+      enabled: ${_param:ironic_upgrade_enabled}
+      old_release: ${_param:ironic_old_version}
+      new_release: ${_param:ironic_version}
diff --git a/jenkins/client/init.yml b/jenkins/client/init.yml
index a64c76f..d5b7875 100644
--- a/jenkins/client/init.yml
+++ b/jenkins/client/init.yml
@@ -8,15 +8,9 @@
     jenkins_client_user: none
     jenkins_client_password: none
     jenkins_master_host: ${_param:control_vip_address}
-    jenkins_master_port: 8081
     jenkins_aptly_storages: "local"
-    jenkins_pipelines_branch: "master"
-    jenkins_offline_deployment: "false"
   jenkins:
     client:
-      globalenvprop:
-        OFFLINE_DEPLOYMENT:
-          value: ${_param:jenkins_offline_deployment}
       master:
         host: ${_param:jenkins_master_host}
         port: ${_param:jenkins_master_port}
diff --git a/jenkins/client/job/deploy/galera_verify_restore.yml b/jenkins/client/job/deploy/galera_verify_restore.yml
index 5a32bb5..492d76f 100644
--- a/jenkins/client/job/deploy/galera_verify_restore.yml
+++ b/jenkins/client/job/deploy/galera_verify_restore.yml
@@ -28,3 +28,9 @@
             ASK_CONFIRMATION:
               type: boolean
               default: 'true'
+            CHECK_TIME_SYNC:
+              type: boolean
+              default: 'true'
+            VERIFICATION_RETRIES:
+              type: string
+              default: 5
diff --git a/jenkins/client/job/validate.yml b/jenkins/client/job/validate.yml
index 1ee9fbc..0f0bbf8 100644
--- a/jenkins/client/job/validate.yml
+++ b/jenkins/client/job/validate.yml
@@ -465,3 +465,76 @@
               type: text
               default: "---"
               description: YAML context with additional parameters
+        cvp-shaker:
+          type: workflow-scm
+          name: cvp-shaker
+          display_name: "CVP - Shaker network tests"
+          discard:
+            build:
+              keep_num: 20
+            artifact:
+              keep_num: 20
+          concurrent: false
+          scm:
+            type: git
+            url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+            branch: "${_param:jenkins_pipelines_branch}"
+            credentials: "gerrit"
+            script: cvp-shaker.groovy
+          param:
+            IMAGE:
+              type: string
+              default: "${_param:mcp_docker_registry}/mirantis/cvp/cvp-shaker:${_param:mcp_version}"
+              description: Docker image to use for running Shaker.
+            SALT_MASTER_URL:
+              type: string
+              default: "${_param:jenkins_salt_api_url}"
+              description: Full Salt API address [e.g. https://10.10.10.2:6969].
+            SALT_MASTER_CREDENTIALS:
+              type: string
+              default: "salt"
+              description: Credentials to the Salt API.
+            SHAKER_PARAMS:
+              type: text
+              default:  |
+                ---
+                  SHAKER_SERVER_ENDPOINT: '10.13.0.15:5999'
+                  SHAKER_SCENARIOS: 'scenarios/essential'
+                  SKIP_LIST: ''
+                  image_builder:
+                  #  - SHAKER_FLAVOR_DISK=4
+                  #  - SHAKER_FLAVOR_RAM=512
+                  #  - SHAKER_FLAVOR_VCPUS=1
+                  #  - SHAKER_IMAGE_BUILDER_MODE='dib'
+                  shaker:
+                  #  - SHAKER_AGENT_JOIN_TIMEOUT=300
+                  #  - SHAKER_AGENT_LOSS_TIMEOUT=120
+                  #  - SCENARIO_AVAILABILITY_ZONE='nova,internal'
+                  #  - SCENARIO_COMPUTE_NODES=2
+                  #  - SHAKER_EXTERNAL_NET='public'
+              description: |
+                  YAML context with parameters for running Shaker tests, where
+                  "SHAKER_SERVER_ENDPOINT" - Address for Shaker server connections (host:port). Should be accessible
+                  from tenant's VM network (usually equals to public address of cicd node)
+                  "SHAKER_SCENARIOS" - Path to shaker scenarios in the cvp-shaker docker image
+                  (can be directory or specific file). Main categories are
+                    scenarios/essential/l2
+                    scenarios/essential/l3
+                    scenarios/additional/cross_az
+                    scenarios/additional/external
+                    scenarios/additional/qos
+                  "SKIP_LIST" - Comma-separated list of Shaker scenarios to skip, directories or files inside scenarios/
+                  of cvp-shaker, e.g. "dense_l2.yaml,full_l2.yaml,l3"
+                  "image_builder" - shaker-image-builder env variables
+                    SHAKER_FLAVOR_DISK=4
+                    SHAKER_FLAVOR_RAM=512
+                    SHAKER_FLAVOR_VCPUS=1
+                    SHAKER_IMAGE_BUILDER_MODE='dib'
+                  "shaker" - main shaker runner env variables
+                    SHAKER_AGENT_JOIN_TIMEOUT=300
+                    SHAKER_AGENT_LOSS_TIMEOUT=120
+                    SCENARIO_AVAILABILITY_ZONE='nova,internal'
+                    SCENARIO_COMPUTE_NODES=2
+                    SHAKER_EXTERNAL_NET='public'
+                  For the more detailed description of the last two categories please refer to the shaker documentation
+                  https://pyshaker.readthedocs.io/en/latest/tools.html
diff --git a/jenkins/slave/init.yml b/jenkins/slave/init.yml
index c445c14..20dc641 100644
--- a/jenkins/slave/init.yml
+++ b/jenkins/slave/init.yml
@@ -9,8 +9,6 @@
     jenkins_slave_user: none
     jenkins_slave_password: none
     jenkins_master_host: ${_param:control_vip_address}
-    jenkins_master_port: 8081
-    jenkins_master_protocol: http
   java:
     environment:
       headless: true
diff --git a/keystone/client/v3/service/neutron.yml b/keystone/client/v3/service/neutron.yml
index 8f3c47e..2c1df47 100644
--- a/keystone/client/v3/service/neutron.yml
+++ b/keystone/client/v3/service/neutron.yml
@@ -22,7 +22,7 @@
                   interface: 'public'
                   url: ${_param:cluster_public_protocol}://${_param:cluster_public_host}:9696/
                   region: ${_param:openstack_region}
-                neutron_interna;:
+                neutron_internal:
                   interface: 'internal'
                   url: ${_param:neutron_service_protocol}://${_param:neutron_service_host}:9696/
                   region: ${_param:openstack_region}
diff --git a/kubernetes/common/init.yml b/kubernetes/common/init.yml
index c9f83c8..3bba699 100644
--- a/kubernetes/common/init.yml
+++ b/kubernetes/common/init.yml
@@ -25,6 +25,7 @@
     kubernetes_openstack_provider_repo: ${_param:mcp_binary_registry}/mirantis/kubernetes/cloud-provider-openstack
     kubernetes_metrics_server_repo: k8s.gcr.io
     kubernetes_helm_tiller_repo: gcr.io/kubernetes-helm
+    kubernetes_helm_client_repo: https://storage.googleapis.com/kubernetes-helm
 
     # component images/binaries
     kubernetes_calico_image: ${_param:kubernetes_calico_repo}/node:v3.3.2
@@ -73,6 +74,8 @@
     kubernetes_containerd_package: containerd.io=1.2.1-1~u16.04+mcp
     kubernetes_metrics_server_image: ${_param:kubernetes_metrics_server_repo}/metrics-server-amd64:v0.3.1
     kubernetes_helm_tiller_image: ${_param:kubernetes_helm_tiller_repo}/tiller:v2.12.2
+    kubernetes_helm_client_source: ${_param:kubernetes_helm_client_repo}/helm-v2.12.2-linux-amd64.tar.gz
+    kubernetes_helm_client_hash: sha256=edad6d5e594408b996b8d758a04948f89dab15fa6c6ea6daee3709f8c099df6d
 
     kubernetes_opencontrail_controller_image: ${_param:kubernetes_contrail_registry}/opencontrail-controller:${_param:mcp_version}
     kubernetes_opencontrail_analyticsdb_image: ${_param:kubernetes_contrail_registry}/opencontrail-analyticsdb:${_param:mcp_version}
@@ -248,6 +251,9 @@
         helm:
           enabled: ${_param:kubernetes_helm_tiller_enabled}
           tiller_image: ${_param:kubernetes_helm_tiller_image}
+          client:
+            source: ${_param:kubernetes_helm_client_source}
+            hash: ${_param:kubernetes_helm_client_hash}
     pool:
       enabled: false
       kubelet:
diff --git a/linux/system/single/mcp.yml b/linux/system/single/mcp.yml
index a77459d..e8ca938 100644
--- a/linux/system/single/mcp.yml
+++ b/linux/system/single/mcp.yml
@@ -13,6 +13,8 @@
           net.ipv4.tcp_keepalive_probes: 8
           fs.file-max: 124165
           net.core.somaxconn: 4096
+          net.core.netdev_budget: 600
+          net.core.netdev_budget_usecs: 5000
           vm.swappiness: 10
           net.nf_conntrack_max: 1048576
           net.ipv4.tcp_retries2: 5
diff --git a/neutron/client/service/contrail_public.yml b/neutron/client/service/contrail_public.yml
new file mode 100644
index 0000000..211582e
--- /dev/null
+++ b/neutron/client/service/contrail_public.yml
@@ -0,0 +1,22 @@
+classes:
+- service.neutron.client
+parameters:
+  neutron:
+    client:
+      server:
+        admin_identity:
+          endpoint_type: internalURL
+          network:
+            public:
+              tenant: admin
+              shared: False
+              router_external: True
+              admin_state_up: True
+              subnet:
+                public-subnet:
+                  cidr: ${_param:openstack_public_neutron_subnet_cidr}
+                  allocation_pools:
+                    - start: ${_param:openstack_public_neutron_subnet_allocation_start}
+                      end: ${_param:openstack_public_neutron_subnet_allocation_end}
+                  gateway_ip: ${_param:openstack_public_neutron_subnet_gateway}
+                  enable_dhcp: False
diff --git a/neutron/client/service/contrail_public_v2.yml b/neutron/client/service/contrail_public_v2.yml
new file mode 100644
index 0000000..b94bb98
--- /dev/null
+++ b/neutron/client/service/contrail_public_v2.yml
@@ -0,0 +1,21 @@
+classes:
+- service.neutron.client
+parameters:
+  neutron:
+    client:
+      resources:
+        v2:
+          admin_identity:
+            network:
+              public:
+                shared: False
+                router_external: True
+                subnet:
+                  public-subnet:
+                    cidr: ${_param:openstack_public_neutron_subnet_cidr}
+                    gateway_ip: ${_param:openstack_public_neutron_subnet_gateway}
+                    allocation_pools:
+                      - start: ${_param:openstack_public_neutron_subnet_allocation_start}
+                        end: ${_param:openstack_public_neutron_subnet_allocation_end}
+                    enable_dhcp: False
+                    ip_version: 4
diff --git a/neutron/control/cluster.yml b/neutron/control/cluster.yml
index 63e4faf..91b410b 100644
--- a/neutron/control/cluster.yml
+++ b/neutron/control/cluster.yml
@@ -37,5 +37,5 @@
         ssl:
           enabled: ${_param:galera_ssl_enabled}
       role: ${_param:openstack_node_role}
-    identity:
-      protocol: ${_param:cluster_internal_protocol}
+      identity:
+        protocol: ${_param:cluster_internal_protocol}
diff --git a/neutron/control/openvswitch/octavia.yml b/neutron/control/openvswitch/octavia.yml
index 9f6345b..81d48bc 100644
--- a/neutron/control/openvswitch/octavia.yml
+++ b/neutron/control/openvswitch/octavia.yml
@@ -9,4 +9,4 @@
           octavia:
             engine: octavia
             driver_path: 'neutron_lbaas.drivers.octavia.driver.OctaviaDriver'
-            base_url: http://${_param:octavia_api_bind_address}:9876
+            base_url: ${_param:cluster_internal_protocol}://${_param:octavia_api_bind_address}:9876
diff --git a/nginx/server/proxy/openstack_web.yml b/nginx/server/proxy/openstack_web.yml
index 2de6606..db4453a 100644
--- a/nginx/server/proxy/openstack_web.yml
+++ b/nginx/server/proxy/openstack_web.yml
@@ -5,12 +5,14 @@
     nginx_proxy_openstack_web_buffer_size:
       number: 4
       size: 256
+    # starting from 2019.2.0 horizon is running under haproxy in HA mode.
+    nginx_server_site_nginx_proxy_openstack_web_enabled: False
   nginx:
     server:
       enabled: true
       site:
         nginx_proxy_openstack_web:
-          enabled: true
+          enabled: ${_param:nginx_server_site_nginx_proxy_openstack_web_enabled}
           type: nginx_proxy
           name: openstack_web
           proxy:
@@ -30,7 +32,7 @@
             protocol: ${_param:horizon_public_protocol}
           ssl: ${_param:nginx_proxy_ssl}
         nginx_ssl_redirect_openstack_web:
-          enabled: true
+          enabled: ${_param:nginx_server_site_nginx_proxy_openstack_web_enabled}
           type: nginx_redirect
           name: openstack_web_redirect
           host:
diff --git a/octavia/api/cluster.yml b/octavia/api/cluster.yml
index 66622e3..31989b0 100644
--- a/octavia/api/cluster.yml
+++ b/octavia/api/cluster.yml
@@ -24,6 +24,7 @@
         protocol: ${_param:cluster_internal_protocol}
       message_queue:
         host: ${_param:openstack_message_queue_address}
+        port: ${_param:openstack_rabbitmq_port}
         x509:
           enabled: ${_param:openstack_rabbitmq_x509_enabled}
           ca_file: ${_param:rabbitmq_octavia_ssl_ca_file}
diff --git a/octavia/api/single.yml b/octavia/api/single.yml
index 54e0abb..c42009d 100644
--- a/octavia/api/single.yml
+++ b/octavia/api/single.yml
@@ -23,6 +23,7 @@
         protocol: ${_param:cluster_internal_protocol}
       message_queue:
         host: ${_param:openstack_message_queue_address}
+        port: ${_param:openstack_rabbitmq_port}
         x509:
           enabled: ${_param:openstack_rabbitmq_x509_enabled}
           ca_file: ${_param:rabbitmq_octavia_ssl_ca_file}
diff --git a/octavia/manager/cluster.yml b/octavia/manager/cluster.yml
index 0e71b5c..f86dd80 100644
--- a/octavia/manager/cluster.yml
+++ b/octavia/manager/cluster.yml
@@ -25,6 +25,7 @@
         protocol: ${_param:cluster_internal_protocol}
       message_queue:
         host: ${_param:openstack_message_queue_address}
+        port: ${_param:openstack_rabbitmq_port}
         x509:
           enabled: ${_param:openstack_rabbitmq_x509_enabled}
           ca_file: ${_param:rabbitmq_octavia_ssl_ca_file}
diff --git a/octavia/manager/single.yml b/octavia/manager/single.yml
index 73c2ffe..e1e356b 100644
--- a/octavia/manager/single.yml
+++ b/octavia/manager/single.yml
@@ -30,6 +30,7 @@
         protocol: ${_param:cluster_internal_protocol}
       message_queue:
         host: ${_param:openstack_message_queue_address}
+        port: ${_param:openstack_rabbitmq_port}
         x509:
           enabled: ${_param:openstack_rabbitmq_x509_enabled}
           ca_file: ${_param:rabbitmq_octavia_ssl_ca_file}
diff --git a/opencontrail/control/cluster4_0.yml b/opencontrail/control/cluster4_0.yml
index 95b0d90..12a344e 100644
--- a/opencontrail/control/cluster4_0.yml
+++ b/opencontrail/control/cluster4_0.yml
@@ -27,7 +27,7 @@
     opencontrail_controller_container_name: opencontrail_controller_1
     opencontrail_analytics_container_name: opencontrail_analytics_1
     opencontrail_analyticsdb_container_name: opencontrail_analyticsdb_1
-    opencontrail_api_workers_count: 6
+    opencontrail_api_workers_count: 1
     analytics_vip_address: ${_param:opencontrail_analytics_address}
 # Temprorary fix for MOS9 packages to pin old version of kafka
   linux:
diff --git a/opencontrail/control/cluster4_0_k8s.yml b/opencontrail/control/cluster4_0_k8s.yml
index cf9a8e7..6e24ac3 100644
--- a/opencontrail/control/cluster4_0_k8s.yml
+++ b/opencontrail/control/cluster4_0_k8s.yml
@@ -21,7 +21,7 @@
     opencontrail_controller_container_name: opencontrail_controller_1
     opencontrail_analytics_container_name: opencontrail_analytics_1
     opencontrail_analyticsdb_container_name: opencontrail_analyticsdb_1
-    opencontrail_api_workers_count: 6
+    opencontrail_api_workers_count: 1
     analytics_vip_address: ${_param:opencontrail_analytics_address}
 # Temprorary fix for MOS9 packages to pin old version of kafka
   linux:
diff --git a/opencontrail/control/control4_0.yml b/opencontrail/control/control4_0.yml
index ba47959..fb751ca 100644
--- a/opencontrail/control/control4_0.yml
+++ b/opencontrail/control/control4_0.yml
@@ -17,7 +17,7 @@
     opencontrail_message_queue_password: guest
     opencontrail_controller_image: ${_param:mcp_docker_registry}/opencontrail-${_param:linux_repo_contrail_component}/opencontrail-controller:${_param:opencontrail_image_tag}
     opencontrail_controller_container_name: opencontrail_controller_1
-    opencontrail_api_workers_count: 6
+    opencontrail_api_workers_count: 1
     analytics_vip_address: ${_param:opencontrail_analytics_address}
   opencontrail:
     common:
diff --git a/openssh/server/team/members/vdrok.yml b/openssh/server/team/members/vdrok.yml
index 6f6cbba..22576de 100644
--- a/openssh/server/team/members/vdrok.yml
+++ b/openssh/server/team/members/vdrok.yml
@@ -16,4 +16,5 @@
           enabled: true
           public_keys:
           - key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCpnn6IyistbIGnzeV3DOWR+u/QLl1cuQspwuvcl1FxeZljkdIgLXcNVzFaFHSX+rOgrOLpcFf3X+dwnB55EoUDj85IOwKz1tVoD5Df42xZMnmjnvOaAScVTStrdcWxzpB6bWt/+GWpt1br3pLpTjqZxa1YipT7tz6bs7cNKplvQuBaoYeG/x9ycRhLIhYXFYOtHD/lxwTRqHnvpwdNKRYPtfakR/kaeZEaYQoJlVcAq0AKzws8l87InoWnjGo/NrBJTvgiLQPYw6uJ9mf17p2GVv1JGCbEpPKnRLyIitdwCFjYEwAKoSsisf2TdH9iY1DWwJEuPzsvjM2ZCPcc7baV vlad@carbon
+          - key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC2yUGXlJ5Zvlyw5s4KRqnYE2GwwuoXLraBJ1MubRSRpgthNPBOvo/nGrniUE7QrtivGgGEJYz2ZmLYwfD3b03oQWMatwz2eUmJh7Oe7N7NKLem6cdtQrZ1n/4+Ji6MF/2Lblhm0I3l9ExiKDfqBP0TTfqft30tUKxkso2xxhu4YyKj59P4kqzKZEcFgS7r+HClFM20yQbEVIzw/pz7Yz6xGSAy9uUhrUeqEaSHo/JVck6A6X1vCrRqKHoLXcVXVd6r1vy1V6VRVx1mamXhnEEnc2DUIYo5Ry8qucHgdLp2oEIQkM2DVKFmPG8/HIfiKrAstUK1M5rGaKnmnS/h6CpX vlad@vlad-ThinkPad-W541
           user: ${linux:system:user:vdrok}
diff --git a/salt/control/sizes/cicd/minimal.yml b/salt/control/sizes/cicd/minimal.yml
index f420bb9..baf480f 100644
--- a/salt/control/sizes/cicd/minimal.yml
+++ b/salt/control/sizes/cicd/minimal.yml
@@ -1,8 +1,8 @@
 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_cpu_cicd_control: 2
+    salt_control_size_ram_cicd_control: 4096
+    salt_control_size_disk_profile_cicd_control: minimal_xsmall
     salt_control_size_net_profile_cicd_control: default
   salt:
     control:
diff --git a/salt/control/sizes/opencontrail/minimal.yml b/salt/control/sizes/opencontrail/minimal.yml
index de7fa6d..4fd93a1 100644
--- a/salt/control/sizes/opencontrail/minimal.yml
+++ b/salt/control/sizes/opencontrail/minimal.yml
@@ -1,12 +1,12 @@
 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_cpu_opencontrail_control: 2
+    salt_control_size_ram_opencontrail_control: 4096
+    salt_control_size_disk_profile_opencontrail_control: minimal_xsmall
     salt_control_size_net_profile_opencontrail_control: default
-    salt_control_size_cpu_opencontrail_analytics: 12
+    salt_control_size_cpu_opencontrail_analytics: 4
     salt_control_size_ram_opencontrail_analytics: 8192
-    salt_control_size_disk_profile_opencontrail_analytics: medium
+    salt_control_size_disk_profile_opencontrail_analytics: large
     salt_control_size_net_profile_opencontrail_analytics: default
   salt:
     control:
diff --git a/salt/control/sizes/openstack/minimal.yml b/salt/control/sizes/openstack/minimal.yml
index b3b2a85..ac07075 100644
--- a/salt/control/sizes/openstack/minimal.yml
+++ b/salt/control/sizes/openstack/minimal.yml
@@ -1,44 +1,44 @@
 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_cpu_openstack_control: 6
+    salt_control_size_ram_openstack_control: 16384
+    salt_control_size_disk_profile_openstack_control: minimal_xsmall
     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_cpu_openstack_database: 1
+    salt_control_size_ram_openstack_database: 6144
+    salt_control_size_disk_profile_openstack_database: minimal_xxsmall
     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_cpu_openstack_message_queue: 1
+    salt_control_size_ram_openstack_message_queue: 2048
+    salt_control_size_disk_profile_openstack_message_queue: xxxsmall
     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_cpu_openstack_proxy: 1
+    salt_control_size_ram_openstack_proxy: 2048
+    salt_control_size_disk_profile_openstack_proxy: xxxsmall
     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_disk_profile_openstack_upgrade: minimal_xsmall
     salt_control_size_net_profile_openstack_upgrade: default
     salt_control_size_cpu_openstack_share: 1
     salt_control_size_ram_openstack_share: 2048
-    salt_control_size_disk_profile_openstack_share: large
+    salt_control_size_disk_profile_openstack_share: minimal_xsmall
     salt_control_size_net_profile_openstack_share: default
-    salt_control_size_cpu_openstack_dns: 2
-    salt_control_size_ram_openstack_dns: 4096
-    salt_control_size_disk_profile_openstack_dns: small
+    salt_control_size_cpu_openstack_dns: 1
+    salt_control_size_ram_openstack_dns: 2048
+    salt_control_size_disk_profile_openstack_dns: xxxsmall
     salt_control_size_net_profile_openstack_dns: default
-    salt_control_size_cpu_openstack_telemetry: 4
-    salt_control_size_ram_openstack_telemetry: 6144
-    salt_control_size_disk_profile_openstack_telemetry: small
+    salt_control_size_cpu_openstack_telemetry: 2
+    salt_control_size_ram_openstack_telemetry: 4096
+    salt_control_size_disk_profile_openstack_telemetry: minimal_medium
     salt_control_size_net_profile_openstack_telemetry: default
     salt_control_size_cpu_openstack_barbican: 4
-    salt_control_size_ram_openstack_barbican: 6144
-    salt_control_size_disk_profile_openstack_barbican: small
+    salt_control_size_ram_openstack_barbican: 8192
+    salt_control_size_disk_profile_openstack_barbican: xxxsmall
     salt_control_size_net_profile_openstack_barbican: default
-    salt_control_size_cpu_openstack_baremetal: 4
-    salt_control_size_ram_openstack_baremetal: 4096
-    salt_control_size_disk_profile_openstack_baremetal: small
+    salt_control_size_cpu_openstack_baremetal: 8
+    salt_control_size_ram_openstack_baremetal: 8192
+    salt_control_size_disk_profile_openstack_baremetal: xxxsmall
     salt_control_size_net_profile_openstack_baremetal: default
   salt:
     control:
diff --git a/salt/control/sizes/ovs/minimal.yml b/salt/control/sizes/ovs/minimal.yml
index 0b822b4..37cef97 100644
--- a/salt/control/sizes/ovs/minimal.yml
+++ b/salt/control/sizes/ovs/minimal.yml
@@ -1,8 +1,8 @@
 parameters:
   _param:
-    salt_control_size_cpu_openstack_gateway: 4
-    salt_control_size_ram_openstack_gateway: 16384
-    salt_control_size_disk_profile_openstack_gateway: small
+    salt_control_size_cpu_openstack_gateway: 1
+    salt_control_size_ram_openstack_gateway: 2048
+    salt_control_size_disk_profile_openstack_gateway: minimal_xsmall
     salt_control_size_net_profile_openstack_gateway: default
   salt:
     control:
diff --git a/salt/control/sizes/stacklight/minimal.yml b/salt/control/sizes/stacklight/minimal.yml
index d6256cf..48cfa1c 100644
--- a/salt/control/sizes/stacklight/minimal.yml
+++ b/salt/control/sizes/stacklight/minimal.yml
@@ -1,16 +1,16 @@
 parameters:
   _param:
-    salt_control_size_cpu_stacklight_log: 4
+    salt_control_size_cpu_stacklight_log: 2
     salt_control_size_ram_stacklight_log: 4096
-    salt_control_size_disk_profile_stacklight_log: medium
+    salt_control_size_disk_profile_stacklight_log: minimal_xsmall
     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_cpu_stacklight_server: 2
+    salt_control_size_ram_stacklight_server: 4096
     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_cpu_stacklight_telemetry: 2
+    salt_control_size_ram_stacklight_telemetry: 6144
+    salt_control_size_disk_profile_stacklight_telemetry: minimal_xsmall
     salt_control_size_net_profile_stacklight_telemetry: default
   salt:
     control:
diff --git a/salt/control/virt.yml b/salt/control/virt.yml
index 05bf23d..08c1bca 100644
--- a/salt/control/virt.yml
+++ b/salt/control/virt.yml
@@ -21,12 +21,24 @@
       xxxsmall:
         - system:
             size: 8000
+      minimal_xxsmall:
+        - system:
+            size: 10000
       xxsmall:
         - system:
             size: 15000
+      minimal_xsmall:
+        - system:
+            size: 20000
       xsmall:
         - system:
             size: 30000
+      minimal_small:
+        - system:
+            size: 35000
+      minimal_medium:
+        - system:
+            size: 40000
       small:
         - system:
             size: 50000