Merge "define jenkins credentials for auth"
diff --git a/.releasenotes/notes/custom-path-proxy-7f587526696c0744.yaml b/.releasenotes/notes/custom-path-proxy-7f587526696c0744.yaml
index 6f16e07..17f383d 100644
--- a/.releasenotes/notes/custom-path-proxy-7f587526696c0744.yaml
+++ b/.releasenotes/notes/custom-path-proxy-7f587526696c0744.yaml
@@ -1,30 +1,41 @@
 ---
 summary: >
-  Additional path for DevopsPortal nginx proxy service
+  Added the ability to define a custom path to the NGINX proxy service
+  endpoints for DevOps Portal
 
 features:
    - |
-     Possibility of defining additional path to service endpoints. Need to define 'custom_path' variable on system level metadata.
-     Result of endpoint looks like 'address:port/custom_path'. Main goal of this feature - auto loading special frame on DevopsPortal dashboard.
+     Added the ability to define a custom path to the NGINX proxy service
+     endpoints for the DevOps Portal to auto-load a dedicated frame in the
+     web UI. To define the path, specify the ``custom_path`` parameter on
+     the system level metadata of your deployment.
 
-     Example:
+     Configuration example:
+
      .. code-block:: yaml
-     parameters:
-       _param:
-         grafana_prometheus_ssl:
-           enabled: false
-       devops_portal:
-         config:
-           service:
-             stacklight-prometheus:
-               configure_proxy: false
-               enabled: true
-               endpoint:
-                 address: ${_param:grafana_prometheus_address}
-                 custom_path: alerts
-                 port: ${_param:grafana_prometheus_port}
-                 https: ${_param:grafana_prometheus_ssl:enabled}
 
+        parameters:
+          _param:
+            grafana_prometheus_ssl:
+              enabled: false
+          devops_portal:
+            config:
+              service:
+                stacklight-prometheus:
+                  configure_proxy: false
+                  enabled: true
+                  endpoint:
+                    address: ${_param:grafana_prometheus_address}
+                    custom_path: alerts
+                    port: ${_param:grafana_prometheus_port}
+                    https: ${_param:grafana_prometheus_ssl:enabled}
 
-fixes:
-  - related bug: https://mirantis.jira.com/browse/PROD-15068 
+     If specified, the endpoint of the NGINX service will take the following
+     form:
+
+     .. code-block:: yaml
+
+        <ADDRESS>:<PORT>/<CUSTOM_PATH>
+
+     .. fixes: https://mirantis.jira.com/browse/PROD-15068
+
diff --git a/aodh/server/cluster.yml b/aodh/server/cluster.yml
index 4743111..00a8263 100644
--- a/aodh/server/cluster.yml
+++ b/aodh/server/cluster.yml
@@ -1,6 +1,8 @@
 classes:
 - service.aodh.server.cluster
+- service.haproxy.proxy.single
 - system.haproxy.proxy.listen.openstack.aodh
+- system.keepalived.cluster.instance.openstack_telemetry_vip
 parameters:
   aodh:
     server:
diff --git a/ceilometer/server/cluster.yml b/ceilometer/server/cluster.yml
index cfe54f9..11488fb 100644
--- a/ceilometer/server/cluster.yml
+++ b/ceilometer/server/cluster.yml
@@ -1,8 +1,8 @@
 classes:
 - service.ceilometer.server.cluster
+- service.haproxy.proxy.single
 - system.haproxy.proxy.listen.openstack.ceilometer
 - system.keepalived.cluster.instance.openstack_telemetry_vip
-- service.haproxy.proxy.single
 parameters:
   ceilometer:
     server:
diff --git a/ceph/radosgw/single.yml b/ceph/radosgw/single.yml
index 31bdc7d..d6b9bf7 100644
--- a/ceph/radosgw/single.yml
+++ b/ceph/radosgw/single.yml
@@ -1,3 +1,4 @@
+# LEGACY - use rgw.cluster or rgw.single instead
 parameters:
   _param:
     radosgw_keyring_path: /etc/ceph/ceph.client.radosgw.keyring
diff --git a/ceph/rgw/cluster.yml b/ceph/rgw/cluster.yml
new file mode 100644
index 0000000..fbee1fc
--- /dev/null
+++ b/ceph/rgw/cluster.yml
@@ -0,0 +1,7 @@
+classes:
+- system.haproxy.proxy.single
+- system.haproxy.proxy.listen.radosgw
+- system.linux.system.repo.ceph
+- system.linux.system.repo.ubuntu
+- service.keepalived.cluster.single
+- service.ceph.radosgw.cluster
diff --git a/ceph/rgw/keystone.yml b/ceph/rgw/keystone.yml
new file mode 100644
index 0000000..4340d62
--- /dev/null
+++ b/ceph/rgw/keystone.yml
@@ -0,0 +1,20 @@
+parameters:
+  _param:
+    ceph_radosgw_keystone_host: 127.0.0.1
+    ceph_radosgw_keystone_user: admin
+    ceph_radosgw_keystone_api_version: 3
+    ceph_radosgw_keystone_project: admin
+    ceph_radosgw_keystone_domain: default
+    ceph_radosgw_keystone_port: 5000
+  ceph:
+    radosgw:
+      identity:
+        engine: keystone
+        api_version: ${_param:ceph_radosgw_keystone_api_version}
+        host: ${_param:ceph_radosgw_keystone_host}
+        port: ${_param:ceph_radosgw_keystone_port}
+        user: ${_param:ceph_radosgw_keystone_user}
+        password: ${_param:ceph_radosgw_keystone_password}
+        tenant: ${_param:ceph_radosgw_keystone_project}
+        project: ${_param:ceph_radosgw_keystone_project}
+        domain: ${_param:ceph_radosgw_keystone_domain}
diff --git a/ceph/rgw/single.yml b/ceph/rgw/single.yml
new file mode 100644
index 0000000..4dba033
--- /dev/null
+++ b/ceph/rgw/single.yml
@@ -0,0 +1,4 @@
+classes:
+- system.linux.system.repo.ceph
+- system.linux.system.repo.ubuntu
+- service.ceph.radosgw.single
diff --git a/docker/swarm/stack/pushkin.yml b/docker/swarm/stack/pushkin.yml
index f7ba935..a1fc0a8 100644
--- a/docker/swarm/stack/pushkin.yml
+++ b/docker/swarm/stack/pushkin.yml
@@ -22,7 +22,6 @@
     sfdc_consumer_secret: example_consumer_secret
     sfdc_organization_id: example_organization_id
     sfdc_sandbox_enabled: true
-    sfdc_case_fields: case_and_bool_value
   docker:
     client:
       stack:
@@ -47,7 +46,6 @@
             SFDC_CONSUMER_SECRET: ${_param:sfdc_consumer_secret}
             SFDC_ORGANIZATION_ID: ${_param:sfdc_organization_id}
             SFDC_SANDBOX_ENABLED: ${_param:sfdc_sandbox_enabled}
-            SFDC_CASE_FIELDS: ${_param:sfdc_case_fields}
           service:
             pushkin-api:
               image: ${_param:docker_image_pushkin}
diff --git a/haproxy/proxy/listen/cicd/artifactory.yml b/haproxy/proxy/listen/cicd/artifactory.yml
index cb6184e..ff4d5c4 100644
--- a/haproxy/proxy/listen/cicd/artifactory.yml
+++ b/haproxy/proxy/listen/cicd/artifactory.yml
@@ -17,14 +17,16 @@
             - httplog
           balance: source
           acl:
-            is_docker: "path_reg ^/v[12][/.]*"
+            is_docker: "path_beg /v1/ /v2/"
+            has_prefix: "path_beg /artifactory"
           http_request:
             - action: "add-header X-Artifactory-Override-Base-Url https://%[req.hdr(host)]/artifactory"
-              condition: "if is_docker"
             - action: "add-header X-Forwarded-Proto https"
               condition: "if { ssl_fc }"
             - action: "set-path /artifactory/api/docker/%[req.hdr(host),lower,field(1,'.')]%[path]"
-              condition: "if is_docker "
+              condition: "if is_docker"
+            - action: "set-path /artifactory%[path]"
+              condition: "if !is_docker !has_prefix"
           binds:
             - address: ${_param:haproxy_artifactory_bind_host}
               port: ${_param:haproxy_artifactory_bind_port}
diff --git a/jenkins/client/job/ceph/init.yml b/jenkins/client/job/ceph/init.yml
index 06dc5eb..e4f2ba4 100644
--- a/jenkins/client/job/ceph/init.yml
+++ b/jenkins/client/job/ceph/init.yml
@@ -1,3 +1,2 @@
 classes:
 - system.jenkins.client.job.ceph.remove-osd
-- system.jenkins.client.job.ceph.weights
diff --git a/jenkins/client/job/ceph/remove-osd.yml b/jenkins/client/job/ceph/remove-osd.yml
index 448318a..af3b9ed 100644
--- a/jenkins/client/job/ceph/remove-osd.yml
+++ b/jenkins/client/job/ceph/remove-osd.yml
@@ -34,6 +34,7 @@
             ADMIN_HOST:
               type: string
               description: Host with admin keyring and access to cluster management
+              default: 'cmn01*'
             CLUSTER_FLAGS:
               type: string
               description: Flags to be aplied before pipeline and after pipeline (comma-separated list)
diff --git a/jenkins/client/job/ceph/weights.yml b/jenkins/client/job/ceph/weights.yml
deleted file mode 100644
index 776e16f..0000000
--- a/jenkins/client/job/ceph/weights.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-parameters:
-  jenkins:
-    client:
-      job:
-        ceph-enforce-weights:
-          type: workflow-scm
-          concurrent: true
-          display_name: "Ceph - enforce OSD weights"
-          discard:
-            build:
-              keep_num: 50
-          scm:
-            type: git
-            url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
-            credentials: "gerrit"
-            script: ceph-enforce-weights.groovy
-          param:
-            # general parameters
-            SALT_MASTER_URL:
-              type: string
-              description: URL of Salt master
-              default: "http://${_param:salt_master_host}:6969"
-            SALT_MASTER_CREDENTIALS:
-              type: string
-              description: Credentials for login to Salt API
-              default: salt
-            ADMIN_HOST:
-              type: string
-              description: Host with admin keyring and access to cluster management
diff --git a/jenkins/client/job/debian/packages/salt-multi.yml b/jenkins/client/job/debian/packages/salt-multi.yml
index a57a8ab..322afde 100644
--- a/jenkins/client/job/debian/packages/salt-multi.yml
+++ b/jenkins/client/job/debian/packages/salt-multi.yml
@@ -6,44 +6,64 @@
           name: build-debian-salt-formula-{{name}}-ubuntu-{{dist}}
           jobs:
             - name: ceilometer
+              upload_source_package: false
               dist: trusty
             - name: cinder
+              upload_source_package: false
               dist: trusty
             - name: glance
+              upload_source_package: false
               dist: trusty
             - name: heat
+              upload_source_package: false
               dist: trusty
             - name: horizon
+              upload_source_package: false
               dist: trusty
             - name: keystone
+              upload_source_package: false
               dist: trusty
             - name: kubernetes
+              upload_source_package: false
               dist: trusty
             - name: neutron
+              upload_source_package: false
               dist: trusty
             - name: nova
+              upload_source_package: false
               dist: trusty
             - name: swift
+              upload_source_package: false
               dist: trusty
             - name: ceilometer
+              upload_source_package: true
               dist: xenial
             - name: cinder
+              upload_source_package: true
               dist: xenial
             - name: glance
+              upload_source_package: true
               dist: xenial
             - name: heat
+              upload_source_package: true
               dist: xenial
             - name: horizon
+              upload_source_package: true
               dist: xenial
             - name: keystone
+              upload_source_package: true
               dist: xenial
             - name: kubernetes
+              upload_source_package: true
               dist: xenial
             - name: neutron
+              upload_source_package: true
               dist: xenial
             - name: nova
+              upload_source_package: true
               dist: xenial
             - name: swift
+              upload_source_package: true
               dist: xenial
           template:
             discard:
@@ -117,4 +137,4 @@
                 default: 'true'
               UPLOAD_APTLY:
                 type: boolean
-                default: 'true'
+                default: '{{upload_source_package}}'
diff --git a/jenkins/client/job/debian/packages/salt.yml b/jenkins/client/job/debian/packages/salt.yml
index 968c617..41fdb7a 100644
--- a/jenkins/client/job/debian/packages/salt.yml
+++ b/jenkins/client/job/debian/packages/salt.yml
@@ -6,408 +6,610 @@
           name: build-debian-salt-formula-{{name}}-ubuntu-{{dist}}
           jobs:
             - name: aodh
+              upload_source_package: false
               dist: trusty
             - name: apache
+              upload_source_package: false
               dist: trusty
             - name: aptcacher
+              upload_source_package: false
               dist: trusty
             - name: aptly
+              upload_source_package: false
               dist: trusty
             - name: artifactory
+              upload_source_package: false
               dist: trusty
             - name: avinetworks
+              upload_source_package: false
               dist: trusty
             - name: backupninja
+              upload_source_package: false
               dist: trusty
             - name: baremetal-simulator
+              upload_source_package: false
               dist: trusty
             - name: billometer
+              upload_source_package: false
               dist: trusty
             - name: bind
+              upload_source_package: false
               dist: trusty
             - name: bird
+              upload_source_package: false
               dist: trusty
             - name: cadf
+              upload_source_package: false
               dist: trusty
             - name: calico
+              upload_source_package: false
               dist: trusty
             - name: cassandra
+              upload_source_package: false
               dist: trusty
             - name: ccp
+              upload_source_package: false
               dist: trusty
             - name: ceph
+              upload_source_package: false
               dist: trusty
             - name: chrony
+              upload_source_package: false
               dist: trusty
             - name: collectd
+              upload_source_package: false
               dist: trusty
             - name: dekapod
+              upload_source_package: false
               dist: trusty
             - name: designate
+              upload_source_package: false
               dist: trusty
             - name: devops-portal
+              upload_source_package: false
               dist: trusty
             - name: docker
+              upload_source_package: false
               dist: trusty
             - name: dovecot
+              upload_source_package: false
               dist: trusty
             - name: elasticsearch
+              upload_source_package: false
               dist: trusty
             - name: etcd
+              upload_source_package: false
               dist: trusty
             - name: fluentbit
+              upload_source_package: false
               dist: trusty
             - name: foreman
+              upload_source_package: false
               dist: trusty
             - name: freeipa
+              upload_source_package: false
               dist: trusty
             - name: galera
+              upload_source_package: false
               dist: trusty
             - name: gerrit
+              upload_source_package: false
               dist: trusty
             - name: git
+              upload_source_package: false
               dist: trusty
             - name: gitlab
+              upload_source_package: false
               dist: trusty
             - name: glusterfs
+              upload_source_package: false
               dist: trusty
             - name: grafana
+              upload_source_package: false
               dist: trusty
             - name: graphite
+              upload_source_package: false
               dist: trusty
             - name: haproxy
+              upload_source_package: false
               dist: trusty
             - name: heka
+              upload_source_package: false
               dist: trusty
             - name: influxdb
+              upload_source_package: false
               dist: trusty
             - name: iptables
+              upload_source_package: false
               dist: trusty
             - name: ironic
+              upload_source_package: false
               dist: trusty
             - name: isc-dhcp
+              upload_source_package: false
               dist: trusty
             - name: java
+              upload_source_package: false
               dist: trusty
             - name: jenkins
+              upload_source_package: false
               dist: trusty
             - name: kedb
+              upload_source_package: false
               dist: trusty
             - name: keepalived
+              upload_source_package: false
               dist: trusty
             - name: kibana
+              upload_source_package: false
               dist: trusty
             - name: letsencrypt
+              upload_source_package: false
               dist: trusty
             - name: libvirt
+              upload_source_package: false
               dist: trusty
             - name: linux
+              upload_source_package: false
               dist: trusty
             - name: lldp
+              upload_source_package: false
               dist: trusty
             - name: logrotate
+              upload_source_package: false
               dist: trusty
             - name: maas
+              upload_source_package: false
               dist: trusty
             - name: magnum
+              upload_source_package: false
               dist: trusty
             - name: memcached
+              upload_source_package: false
               dist: trusty
             - name: midonet
+              upload_source_package: false
               dist: trusty
             - name: monasca
+              upload_source_package: false
               dist: trusty
             - name: mongodb
+              upload_source_package: false
               dist: trusty
             - name: murano
+              upload_source_package: false
               dist: trusty
             - name: mysql
+              upload_source_package: false
               dist: trusty
             - name: nagios
+              upload_source_package: false
               dist: trusty
             - name: network
+              upload_source_package: false
               dist: trusty
             - name: nfs
+              upload_source_package: false
               dist: trusty
             - name: nginx
+              upload_source_package: false
               dist: trusty
             - name: nodejs
+              upload_source_package: false
               dist: trusty
             - name: ntp
+              upload_source_package: false
               dist: trusty
             - name: octavia
+              upload_source_package: false
               dist: trusty
             - name: opencontrail
+              upload_source_package: false
               dist: trusty
             - name: openldap
+              upload_source_package: false
               dist: trusty
             - name: openssh
+              upload_source_package: false
               dist: trusty
             - name: openvpn
+              upload_source_package: false
               dist: trusty
             - name: openvstorage
+              upload_source_package: false
               dist: trusty
             - name: owncloud
+              upload_source_package: false
               dist: trusty
             - name: postfix
+              upload_source_package: false
               dist: trusty
             - name: postgresql
+              upload_source_package: false
               dist: trusty
             - name: powerdns
+              upload_source_package: false
               dist: trusty
             - name: pritunl
+              upload_source_package: false
               dist: trusty
             - name: prometheus
+              upload_source_package: false
               dist: trusty
             - name: python
+              upload_source_package: false
               dist: trusty
             - name: rabbitmq
+              upload_source_package: false
               dist: trusty
             - name: reclass
+              upload_source_package: false
               dist: trusty
             - name: redis
+              upload_source_package: false
               dist: trusty
             - name: roundcube
+              upload_source_package: false
               dist: trusty
             - name: rsync
+              upload_source_package: false
               dist: trusty
             - name: rsyslog
+              upload_source_package: false
               dist: trusty
             - name: rundeck
+              upload_source_package: false
               dist: trusty
             - name: sahara
+              upload_source_package: false
               dist: trusty
             - name: salt
+              upload_source_package: false
               dist: trusty
             - name: sensu
+              upload_source_package: false
               dist: trusty
             - name: sentry
+              upload_source_package: false
               dist: trusty
             - name: sphinx
+              upload_source_package: false
               dist: trusty
             - name: spinnaker
+              upload_source_package: false
               dist: trusty
             - name: statsd
+              upload_source_package: false
               dist: trusty
             - name: supervisor
+              upload_source_package: false
               dist: trusty
             - name: taiga
+              upload_source_package: false
               dist: trusty
             - name: telegraf
+              upload_source_package: false
               dist: trusty
             - name: tftpd-hpa
+              upload_source_package: false
               dist: trusty
             - name: varnish
+              upload_source_package: false
               dist: trusty
             - name: xtrabackup
+              upload_source_package: false
               dist: trusty
             - name: zookeeper
+              upload_source_package: false
               dist: trusty
             - name: aodh
+              upload_source_package: true
               dist: xenial
             - name: apache
+              upload_source_package: true
               dist: xenial
             - name: aptcacher
+              upload_source_package: true
               dist: xenial
             - name: aptly
+              upload_source_package: true
               dist: xenial
             - name: artifactory
+              upload_source_package: true
               dist: xenial
             - name: avinetworks
+              upload_source_package: true
               dist: xenial
             - name: barbican
+              upload_source_package: true
               dist: xenial
             - name: baremetal-simulator
+              upload_source_package: true
               dist: xenial
             - name: backupninja
+              upload_source_package: true
               dist: xenial
             - name: billometer
+              upload_source_package: true
               dist: xenial
             - name: bind
+              upload_source_package: true
               dist: xenial
             - name: bird
+              upload_source_package: true
               dist: xenial
             - name: cadf
+              upload_source_package: true
               dist: xenial
             - name: calico
+              upload_source_package: true
               dist: xenial
             - name: cassandra
+              upload_source_package: true
               dist: xenial
             - name: ccp
+              upload_source_package: true
               dist: xenial
             - name: ceph
+              upload_source_package: true
               dist: xenial
             - name: chrony
+              upload_source_package: true
               dist: xenial
             - name: collectd
+              upload_source_package: true
               dist: xenial
             - name: dekapod
+              upload_source_package: true
               dist: xenial
             - name: designate
+              upload_source_package: true
               dist: xenial
             - name: devops-portal
+              upload_source_package: true
               dist: xenial
             - name: docker
+              upload_source_package: true
               dist: xenial
             - name: dovecot
+              upload_source_package: true
               dist: xenial
             - name: elasticsearch
+              upload_source_package: true
               dist: xenial
             - name: etcd
+              upload_source_package: true
               dist: xenial
             - name: fluentbit
+              upload_source_package: true
               dist: xenial
             - name: foreman
+              upload_source_package: true
               dist: xenial
             - name: freeipa
+              upload_source_package: true
               dist: xenial
             - name: galera
+              upload_source_package: true
               dist: xenial
             - name: gerrit
+              upload_source_package: true
               dist: xenial
             - name: git
+              upload_source_package: true
               dist: xenial
             - name: gitlab
+              upload_source_package: true
               dist: xenial
             - name: glusterfs
+              upload_source_package: true
               dist: xenial
             - name: gnocchi
+              upload_source_package: true
               dist: xenial
             - name: grafana
+              upload_source_package: true
               dist: xenial
             - name: graphite
+              upload_source_package: true
               dist: xenial
             - name: haproxy
+              upload_source_package: true
               dist: xenial
             - name: heka
+              upload_source_package: true
               dist: xenial
             - name: helm
+              upload_source_package: true
               dist: xenial
             - name: influxdb
+              upload_source_package: true
               dist: xenial
             - name: iptables
+              upload_source_package: true
               dist: xenial
             - name: ironic
+              upload_source_package: true
               dist: xenial
             - name: isc-dhcp
+              upload_source_package: true
               dist: xenial
             - name: java
+              upload_source_package: true
               dist: xenial
             - name: jenkins
+              upload_source_package: true
               dist: xenial
             - name: kedb
+              upload_source_package: true
               dist: xenial
             - name: keepalived
+              upload_source_package: true
               dist: xenial
             - name: kibana
+              upload_source_package: true
               dist: xenial
             - name: letsencrypt
+              upload_source_package: true
               dist: xenial
             - name: libvirt
+              upload_source_package: true
               dist: xenial
             - name: linux
+              upload_source_package: true
               dist: xenial
             - name: lldp
+              upload_source_package: true
               dist: xenial
             - name: logrotate
+              upload_source_package: true
               dist: xenial
             - name: maas
+              upload_source_package: true
               dist: xenial
             - name: magnum
+              upload_source_package: true
               dist: xenial
             - name: memcached
+              upload_source_package: true
               dist: xenial
             - name: midonet
+              upload_source_package: true
               dist: xenial
             - name: monasca
+              upload_source_package: true
               dist: xenial
             - name: mongodb
+              upload_source_package: true
               dist: xenial
             - name: murano
+              upload_source_package: true
               dist: xenial
             - name: mysql
+              upload_source_package: true
               dist: xenial
             - name: nagios
+              upload_source_package: true
               dist: xenial
             - name: network
+              upload_source_package: true
               dist: xenial
             - name: nfs
+              upload_source_package: true
               dist: xenial
             - name: nginx
+              upload_source_package: true
               dist: xenial
             - name: nodejs
+              upload_source_package: true
               dist: xenial
             - name: ntp
+              upload_source_package: true
               dist: xenial
             - name: octavia
+              upload_source_package: true
               dist: xenial
             - name: opencontrail
+              upload_source_package: true
               dist: xenial
             - name: openldap
+              upload_source_package: true
               dist: xenial
             - name: openssh
+              upload_source_package: true
               dist: xenial
             - name: openvpn
+              upload_source_package: true
               dist: xenial
             - name: openvstorage
+              upload_source_package: true
               dist: xenial
             - name: owncloud
+              upload_source_package: true
               dist: xenial
             - name: panko
+              upload_source_package: true
               dist: xenial
             - name: postfix
+              upload_source_package: true
               dist: xenial
             - name: postgresql
+              upload_source_package: true
               dist: xenial
             - name: pritunl
+              upload_source_package: true
               dist: xenial
             - name: prometheus
+              upload_source_package: true
               dist: xenial
             - name: powerdns
+              upload_source_package: true
               dist: xenial
             - name: python
+              upload_source_package: true
               dist: xenial
             - name: rabbitmq
+              upload_source_package: true
               dist: xenial
             - name: reclass
+              upload_source_package: true
               dist: xenial
             - name: redis
+              upload_source_package: true
               dist: xenial
             - name: roundcube
+              upload_source_package: true
               dist: xenial
             - name: rsync
+              upload_source_package: true
               dist: xenial
             - name: rundeck
+              upload_source_package: true
               dist: xenial
             - name: rsyslog
+              upload_source_package: true
               dist: xenial
             - name: sahara
+              upload_source_package: true
               dist: xenial
             - name: salt
+              upload_source_package: true
               dist: xenial
             - name: sensu
+              upload_source_package: true
               dist: xenial
             - name: sentry
+              upload_source_package: true
               dist: xenial
             - name: sphinx
+              upload_source_package: true
               dist: xenial
             - name: spinnaker
+              upload_source_package: true
               dist: xenial
             - name: statsd
+              upload_source_package: true
               dist: xenial
             - name: supervisor
+              upload_source_package: true
               dist: xenial
             - name: taiga
+              upload_source_package: true
               dist: xenial
             - name: telegraf
+              upload_source_package: true
               dist: xenial
             - name: tftpd-hpa
+              upload_source_package: true
               dist: xenial
             - name: varnish
+              upload_source_package: true
               dist: xenial
             - name: xtrabackup
+              upload_source_package: true
               dist: xenial
             - name: zookeeper
+              upload_source_package: true
               dist: xenial
           template:
             discard:
@@ -477,7 +679,7 @@
                 default: "salt-formulas/ppa"
               UPLOAD_PPA:
                 type: boolean
-                default: 'true'
+                default: '{{upload_source_package}}'
               UPLOAD_APTLY:
                 type: boolean
                 default: 'true'
diff --git a/jenkins/client/job/opencontrail/build/generic.yml b/jenkins/client/job/opencontrail/build/generic.yml
index 7fd041e..699222e 100644
--- a/jenkins/client/job/opencontrail/build/generic.yml
+++ b/jenkins/client/job/opencontrail/build/generic.yml
@@ -86,7 +86,7 @@
               ppa: mirantis-opencontrail/opencontrail-4.0
               upload_source_package: true
               dpdk: contrail_dpdk_17_02
-              build_trigger: ""
+              build_trigger: "H H(20-23) */3 * *"
             - buildname: oc40
               os: ubuntu
               dist: xenial
@@ -94,7 +94,7 @@
               ppa: mirantis-opencontrail/opencontrail-4.0
               upload_source_package: true
               dpdk: contrail_dpdk_17_02
-              build_trigger: ""
+              build_trigger: "H H(20-23) */3 * *"
             - buildname: oc41
               os: ubuntu
               dist: trusty
@@ -102,7 +102,7 @@
               ppa: mirantis-opencontrail/opencontrail-4.1
               upload_source_package: true
               dpdk: contrail_dpdk_17_02
-              build_trigger: ""
+              build_trigger: "H H(20-23) */7 * *"
             - buildname: oc41
               os: ubuntu
               dist: xenial
@@ -110,7 +110,7 @@
               ppa: mirantis-opencontrail/opencontrail-4.1
               upload_source_package: true
               dpdk: contrail_dpdk_17_02
-              build_trigger: ""
+              build_trigger: "H H(20-23) */7 * *"
             - buildname: oc666
               os: ubuntu
               dist: trusty
@@ -118,7 +118,7 @@
               ppa: mirantis-opencontrail/opencontrail-master
               upload_source_package: true
               dpdk: contrail_dpdk_17_02
-              build_trigger: ""
+              build_trigger: "H H(20-23) */7 * *"
             - buildname: oc666
               os: ubuntu
               dist: xenial
@@ -126,7 +126,7 @@
               ppa: mirantis-opencontrail/opencontrail-master
               upload_source_package: true
               dpdk: contrail_dpdk_17_02
-              build_trigger: ""
+              build_trigger: "H H(20-23) */7 * *"
           template:
             discard:
              build:
diff --git a/keepalived/cluster/instance/openstack_telemetry_vip.yml b/keepalived/cluster/instance/openstack_telemetry_vip.yml
index 91155e7..5dc91a1 100644
--- a/keepalived/cluster/instance/openstack_telemetry_vip.yml
+++ b/keepalived/cluster/instance/openstack_telemetry_vip.yml
@@ -1,19 +1,11 @@
-applications:
-- keepalived
 classes:
-- service.keepalived.support
+- service.keepalived.cluster.single
 parameters:
   _param:
     keepalived_openstack_telemetry_vip_address: ${_param:cluster_vip_address}
     keepalived_openstack_telemetry_vip_password: password
     keepalived_openstack_telemetry_vip_interface: eth1
-  keepalived:
-    cluster:
-      enabled: true
-      instance:
-        openstack_telemetry_vip:
-          address: ${_param:keepalived_openstack_telemetry_vip_address}
-          password: ${_param:keepalived_openstack_telemetry_vip_password}
-          interface: ${_param:keepalived_openstack_telemetry_vip_interface}
-          virtual_router_id: 230
-          priority: 101
+    keepalived_vip_virtual_router_id: 230
+    keepalived_vip_address: ${_param:keepalived_openstack_telemetry_vip_address}
+    keepalived_vip_password: ${_param:keepalived_openstack_telemetry_vip_password}
+    keepalived_vip_interface: ${_param:keepalived_openstack_telemetry_vip_interface}
diff --git a/nginx/server/proxy/ceph_radosgw.yml b/nginx/server/proxy/ceph_radosgw.yml
index fe90201..2601849 100644
--- a/nginx/server/proxy/ceph_radosgw.yml
+++ b/nginx/server/proxy/ceph_radosgw.yml
@@ -1,15 +1,23 @@
 parameters:
   _param:
     nginx_proxy_radosgw_host: ${_param:cluster_public_host}
+    nginx_proxy_radosgw_port: 8080
+    nginx_proxy_radosgw_service_host: ${_param:ceph_rgw_address}
+    nginx_proxy_radosgw_service_port: 8080
   nginx:
     server:
       enabled: true
       site:
         ceph_radosgw:
           enabled: true
-          type: ceph
+          type: nginx_proxy
           name: ceph_radosgw
+          proxy:
+            host: ${_param:nginx_proxy_radosgw_service_host}
+            port: ${_param:nginx_proxy_radosgw_service_port}
+            protocol: http
           host:
             name: ${_param:nginx_proxy_radosgw_host}
-            port: 8080
-          ssl: ${_param:nginx_proxy_ssl}
\ No newline at end of file
+            port: ${_param:nginx_proxy_radosgw_port}
+            protocol: https
+          ssl: ${_param:nginx_proxy_ssl}
diff --git a/opencontrail/client/resource/global_vrouter_config.yml b/opencontrail/client/resource/global_vrouter_config.yml
new file mode 100644
index 0000000..15bf76e
--- /dev/null
+++ b/opencontrail/client/resource/global_vrouter_config.yml
@@ -0,0 +1,11 @@
+parameters:
+  opencontrail:
+    client:
+      global_vrouter_config:
+        name: global-vrouter-config
+        parent_type: global-system-config
+        encap_priority: "MPLSoUDP,MPLSoGRE"
+        vxlan_vn_id_mode: automatic
+        fq_names:
+          - 'default-global-system-config'
+          - 'default-global-vrouter-config'
diff --git a/reclass/storage/system/ceph_mon_cluster.yml b/reclass/storage/system/ceph_mon_cluster.yml
index d54d767..91b76f6 100644
--- a/reclass/storage/system/ceph_mon_cluster.yml
+++ b/reclass/storage/system/ceph_mon_cluster.yml
@@ -12,7 +12,7 @@
           domain: ${_param:cluster_domain}
           classes:
           - cluster.${_param:cluster_name}.ceph.mon
-          - cluster.${_param:cluster_name}.ceph.mon_init
+          - cluster.${_param:cluster_name}.ceph.setup
           params:
             salt_master_host: ${_param:reclass_config_master}
             linux_system_codename: ${_param:ceph_mon_system_codename}
diff --git a/reclass/storage/system/ceph_rgw_cluster.yml b/reclass/storage/system/ceph_rgw_cluster.yml
new file mode 100644
index 0000000..46d8a59
--- /dev/null
+++ b/reclass/storage/system/ceph_rgw_cluster.yml
@@ -0,0 +1,39 @@
+parameters:
+  _param:
+    ceph_rgw_node01_hostname: rgw01
+    ceph_rgw_node02_hostname: rgw02
+    ceph_rgw_node03_hostname: rgw03
+    ceph_rgw_system_codename: xenial
+  reclass:
+    storage:
+      node:
+        ceph_rgw_node01:
+          name: ${_param:ceph_rgw_node01_hostname}
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.ceph.rgw
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename: ${_param:ceph_rgw_system_codename}
+            single_address: ${_param:ceph_rgw_node01_address}
+            keepalived_vip_priority: 103
+        ceph_rgw_node02:
+          name: ${_param:ceph_rgw_node02_hostname}
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.ceph.rgw
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename:  ${_param:ceph_rgw_system_codename}
+            single_address: ${_param:ceph_rgw_node02_address}
+            keepalived_vip_priority: 102
+        ceph_rgw_node03:
+          name: ${_param:ceph_rgw_node03_hostname}
+          domain: ${_param:cluster_domain}
+          classes:
+          - cluster.${_param:cluster_name}.ceph.rgw
+          params:
+            salt_master_host: ${_param:reclass_config_master}
+            linux_system_codename:  ${_param:ceph_rgw_system_codename}
+            single_address: ${_param:ceph_rgw_node03_address}
+            keepalived_vip_priority: 101
diff --git a/salt/control/cluster/ceph_rgw_cluster.yml b/salt/control/cluster/ceph_rgw_cluster.yml
new file mode 100644
index 0000000..6f24819
--- /dev/null
+++ b/salt/control/cluster/ceph_rgw_cluster.yml
@@ -0,0 +1,29 @@
+parameters:
+  salt:
+    control:
+      size:
+        ceph.rgw:
+          cpu: 16
+          ram: 32768
+          disk_profile: small
+          net_profile: default
+      cluster:
+        internal:
+          domain: ${_param:cluster_domain}
+          engine: virt
+          node:
+            rgw01:
+              name: ${_param:ceph_rgw_node01_hostname}
+              provider: ${_param:infra_kvm_node01_hostname}.${_param:cluster_domain}
+              image: ${_param:salt_control_xenial_image}
+              size: ceph.rgw
+            rgw02:
+              name: ${_param:ceph_rgw_node02_hostname}
+              provider: ${_param:infra_kvm_node02_hostname}.${_param:cluster_domain}
+              image: ${_param:salt_control_xenial_image}
+              size: ceph.rgw
+            rgw03:
+              name: ${_param:ceph_rgw_node03_hostname}
+              provider: ${_param:infra_kvm_node03_hostname}.${_param:cluster_domain}
+              image: ${_param:salt_control_xenial_image}
+              size: ceph.rgw
\ No newline at end of file