Merge "Add option to skip generation of Rally reports"
diff --git a/defaults/docker_images.yml b/defaults/docker_images.yml
index a99be69..214578e 100644
--- a/defaults/docker_images.yml
+++ b/defaults/docker_images.yml
@@ -41,6 +41,7 @@
     docker_image_sf_notifier: "${_param:mcp_docker_registry}/openstack-docker/sf_notifier:0.2-mcp0"
     ##
     docker_image_cockroachdb: "${_param:mcp_docker_registry}/mirantis/external/cockroach/cockroach:v2.1.1"
+    docker_image_cockroachdb_init: "${_param:mcp_docker_registry}/mirantis/external/atengler/cockroach-init/cockroach-init:v2.0.6"
     # keycloak
     docker_image_keycloak_server: "${_param:mcp_docker_registry}/mirantis/external/jboss/keycloak:4.5.0.Final"
     docker_image_keycloak_proxy: "${_param:mcp_docker_registry}/mirantis/external/jboss/keycloak:3.4.2.Final"
diff --git a/docker/swarm/stack/operations_api.yml b/docker/swarm/stack/operations_api.yml
index e4f4ebd..a584f37 100644
--- a/docker/swarm/stack/operations_api.yml
+++ b/docker/swarm/stack/operations_api.yml
@@ -1,7 +1,7 @@
 parameters:
   _param:
     docker_operations_api_replicas: 1
-    operations_api_sqlalchemy_database_uri: "cockroachdb://oapi@cockroach-ui:26257/oapi"
+    operations_api_sqlalchemy_database_uri: "cockroachdb://oapi@cockroach-db-1:26257/oapi"
     operations_api_sqlalchemy_echo: "false"
     operations_api_flask_debug: "false"
     operations_api_bind_host: 0.0.0.0
@@ -52,18 +52,18 @@
                 - ${_param:haproxy_operations_api_exposed_port}:${_param:haproxy_operations_api_bind_port}
               volumes:
                 - /srv/volumes/operations_api/logs/:/var/log/operations_api
-            cockroach-ui:
-              image: ${_param:docker_image_cockroachdb}
-              ports:
-                - ${_param:haproxy_cockroachdb_ui_exposed_port}:${_param:haproxy_cockroachdb_ui_bind_port}
-              command: start --insecure
             cockroach-db-1:
-              image: cockroachdb/cockroach
-              command: start --insecure --join=cockroach-ui
-              depends_on:
-                - cockroach-ui
+              image: ${_param:docker_image_cockroachdb}
+              command: start --insecure
               volumes:
-                - /srv/volumes/cockroachdb/cockroach-db-1:/cockroach/cockroach-data
+              - /srv/volumes/cockroachdb/cockroach-db-1:/cockroach/cockroach-data
+            cockroach-db-2:
+              image: ${_param:docker_image_cockroachdb}
+              command: start --insecure --join=cockroach-db-1
+              depends_on:
+                - cockroach-db-1
+              volumes:
+                - /srv/volumes/cockroachdb/cockroach-db-2:/cockroach/cockroach-data
             operations-ui:
               environment:
                 REACT_APP_OPERATIONS_API_URL: 'http://${_param:cluster_public_host}:${_param:haproxy_operations_api_bind_port}'
@@ -75,10 +75,10 @@
                 - ${_param:haproxy_operations_ui_exposed_port}:${_param:haproxy_operations_ui_bind_port}
             cockroach-init:
               environment:
-                COCKROACH_HOST: cockroach-ui
+                COCKROACH_HOST: cockroach-db-1
                 DB_NAME: oapi
                 DB_USER: oapi
-              image: atengler/cockroach-init
+              image: ${_param:docker_image_cockroachdb_init}
               deploy:
                 restart_policy:
                   condition: on-failure
diff --git a/jenkins/client/job/ceph/upgrade.yml b/jenkins/client/job/ceph/upgrade.yml
index 0c07b46..638188e 100644
--- a/jenkins/client/job/ceph/upgrade.yml
+++ b/jenkins/client/job/ceph/upgrade.yml
@@ -73,3 +73,7 @@
               type: boolean
               default: 'true'
               description: Select to copy the disks of Ceph VMs before upgrade and backup Ceph directories on OSD nodes.
+            BACKUP_DIR:
+              type: string
+              default: '/root'
+              description: Select the target dir to backup to when BACKUP_ENABLED
diff --git a/kubernetes/common/init.yml b/kubernetes/common/init.yml
index ab91422..3ca6080 100644
--- a/kubernetes/common/init.yml
+++ b/kubernetes/common/init.yml
@@ -38,9 +38,9 @@
     kubernetes_calico_cni_source_hash: md5=2544bc1865c1451cac7a61264c25a2cb
     kubernetes_calico_cni_ipam_source: ${_param:kubernetes_calico_cni_repo}/calico-ipam-v3.3.2
     kubernetes_calico_cni_ipam_source_hash: md5=b22623eeea3b29ba8ec071d859ac7055
-    kubernetes_hyperkube_source: ${_param:kubernetes_hyperkube_repo}/hyperkube_v1.13.5-3_1553734030770
-    kubernetes_hyperkube_source_hash: md5=50e76be5db36adcffe24ede633e428d2
-    kubernetes_pause_image: ${_param:mcp_docker_registry}/mirantis/kubernetes/pause-amd64:v1.13.5-3
+    kubernetes_hyperkube_source: ${_param:kubernetes_hyperkube_repo}/hyperkube_v1.13.6-4_1559029385616
+    kubernetes_hyperkube_source_hash: md5=0746e3e541794b1a85f7c55e8280bdd7
+    kubernetes_pause_image: ${_param:mcp_docker_registry}/mirantis/kubernetes/pause-amd64:v1.13.6-4
     kubernetes_virtlet_image: ${_param:kubernetes_virtlet_repo}/virtlet:v1.5.0
     kubernetes_criproxy_version: v0.14.0
     kubernetes_criproxy_checksum: md5=f0fa669295a156a588f3480c9909e6fd
@@ -50,7 +50,7 @@
     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.11-4
+    kubernetes_externaldns_image: ${_param:kubernetes_externaldns_repo}/external-dns:v0.5.14-5
     kubernetes_genie_source: ${_param:kubernetes_genie_repo}/genie_v2.0-1-g209d3c4
     kubernetes_genie_source_hash: md5=fa7a27ecbb9f800c1b705f87c64f6226
     kubernetes_flannel_image: ${_param:kubernetes_flannel_repo}/flannel:v0.10.0-amd64
@@ -58,17 +58,17 @@
     kubernetes_metallb_speaker_image: ${_param:kubernetes_metallb_repo}/speaker:v0.7.3-2
     kubernetes_sriov_source: ${_param:kubernetes_sriov_repo}/sriov_v0.3-9-g3b31f1a
     kubernetes_sriov_source_hash: md5=cd9ea01e80d260218260314447c23b30
-    kubernetes_cniplugins_source: ${_param:kubernetes_cniplugins_repo}/containernetworking-plugins_v0.7.2-173-g8db2808.tar.gz
-    kubernetes_cniplugins_source_hash: md5=1861ab0c880fff58e7e8299e3dad8a0b
+    kubernetes_cniplugins_source: ${_param:kubernetes_cniplugins_repo}/containernetworking-plugins_v0.8.0-7-g70fb96e.tar.gz
+    kubernetes_cniplugins_source_hash: md5=6311ce5044ab76ad7de665f359988854
     kubernetes_dashboard_image: ${_param:kubernetes_dashboard_repo}/kubernetes-dashboard-amd64:v1.10.1-2
     kubernetes_telegraf_image: ${_param:mcp_docker_registry}/openstack-docker/telegraf:2018.8.0
     kubernetes_coredns_image: ${_param:kubernetes_coredns_repo}/coredns:v1.4.0-96
-    kubernetes_ingressnginx_controller_image: ${_param:kubernetes_ingressnginx_repo}/nginx-ingress-controller-amd64:nginx-0.23.0-4
+    kubernetes_ingressnginx_controller_image: ${_param:kubernetes_ingressnginx_repo}/nginx-ingress-controller-amd64:nginx-0.24.1-5
     kubernetes_corends_etcd_operator_image: ${_param:kubernetes_corends_etcd_operator_repo}/etcd-operator:v0.9.3
     kubernetes_containerd_source: ${_param:kubernetes_containerd_repo}/v1.12.0/crictl-v1.12.0-linux-amd64.tar.gz
     kubernetes_containerd_source_hash: md5=ff60b9ddfa5617f7ed14b3f3b6a60056
     # images for formula compatibility
-    kubernetes_hyperkube_image: ${_param:mcp_docker_registry}/mirantis/kubernetes/hyperkube-amd64:v1.13.5-3
+    kubernetes_hyperkube_image: ${_param:mcp_docker_registry}/mirantis/kubernetes/hyperkube-amd64:v1.13.6-4
     kubernetes_calico_cni_image: ${_param:mcp_docker_registry}/mirantis/projectcalico/calico/cni:v3.3.2
     kubernetes_calico_calicoctl_image: ${_param:mcp_docker_registry}/mirantis/projectcalico/calico/ctl:v3.3.2
     kubernetes_containerd_package: containerd=1.2.5-3~u16.04+mcp
diff --git a/opencontrail/control/analytics4_0.yml b/opencontrail/control/analytics4_0.yml
index 18c5a5f..19fefcc 100644
--- a/opencontrail/control/analytics4_0.yml
+++ b/opencontrail/control/analytics4_0.yml
@@ -91,6 +91,7 @@
               volumes:
                 - /etc/contrail:/etc/contrail
                 - /etc/redis/redis.conf:/etc/redis/redis.conf
+                - /var/crashes:/var/crashes
                 - /var/log/contrail:/var/log/contrail
                 - /var/log/journal/contrail-analytics:/var/log/journal
               env_file:
diff --git a/openssh/server/team/members/vstruk.yml b/openssh/server/team/members/vstruk.yml
new file mode 100644
index 0000000..7c4cd80
--- /dev/null
+++ b/openssh/server/team/members/vstruk.yml
@@ -0,0 +1,19 @@
+parameters:
+  linux:
+    system:
+      user:
+        vstruk:
+          email: vstruk@mirantis.com
+          enabled: true
+          full_name: Vyacheslav Struk
+          home: /home/vstruk
+          name: vstruk
+          sudo: ${_param:linux_system_user_sudo}
+  openssh:
+    server:
+      user:
+        vstruk:
+          enabled: true
+          public_keys:
+          - key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7deDL9nHfwLsFImanDqwTyD2R1gBtZKVX19rmxvEr51imZMgGtK8dzW9IARflnVjCnuSjT3+p/A1pqg5hU6/vEA5SparCHoJ7RipDkoGjpMtHvSdGOcVTtVvCShmJkPLa8+7cInX3xmuoZ5RBUYfRP2rOZ/2AhIMgQJCw1vA5QLyZr1Tm88r1sGjmv9z/ddOxnof8G9c4Ja+E7+VARawNaBsWMniPF9JN2p0ufY/1wiymdyK796rmvxXXbfgBRt5ZS3PKTsb6W/FBEu2UVovtGUUo/m0xFEiVsI/1Ps1umLvLeRwrouiisuxiQf/9NIraDKIpz3j9Rd/XaiLZ3/rh
+          user: ${linux:system:user:vstruk}
diff --git a/openssh/server/team/services.yml b/openssh/server/team/services.yml
index 9c74edb..955cbe9 100644
--- a/openssh/server/team/services.yml
+++ b/openssh/server/team/services.yml
@@ -26,6 +26,7 @@
 - system.openssh.server.team.members.cdodda
 - system.openssh.server.team.members.lmendes
 - system.openssh.server.team.members.kalmog
+- system.openssh.server.team.members.vstruk
 parameters:
   _param:
     linux_system_user_sudo: true
diff --git a/prometheus/elasticsearch_exporter/queries/compute.yml b/prometheus/elasticsearch_exporter/queries/compute.yml
index a17cb7f..d4bd84f 100644
--- a/prometheus/elasticsearch_exporter/queries/compute.yml
+++ b/prometheus/elasticsearch_exporter/queries/compute.yml
@@ -7,30 +7,16 @@
           #   - compute_instance_event_doc_count{event="example"}
           #   - compute_instance_event_sum_other_doc_count
           #   - compute_instance_event_doc_count_error_upper_bound
-          #   - compute_instance_event_host_doc_count{host="example01",event="example"}
-          #   - compute_instance_event_host_sum_other_doc_count{event="example"}
-          #   - compute_instance_event_host_doc_count_error_upper_bound{event="example"}
           #
           indices: '<notification-{now/d}>'
           interval: 600
           json: |
             {
               "size": 0,
-              "query": {
-                "match_all": {}
-              },
               "aggs": {
                 "event": {
                   "terms": {
                     "field": "event_type.keyword"
-                  },
-                  "aggs": {
-                    "host": {
-                      "terms": {
-                        "field": "Hostname.keyword",
-                        "min_doc_count": 0
-                      }
-                    }
                   }
                 }
               }
@@ -38,9 +24,9 @@
 
         compute_instance_create_start:
           # Produces metrics:
-          #   - compute_instance_create_start_host_doc_count{host="example01"}
-          #   - compute_instance_create_start_host_event_sum_other_doc_count
-          #   - compute_instance_create_start_host_doc_count_error_upper_bound
+          #   - compute_instance_create_start_event_doc_count
+          #   - compute_instance_create_start_event_sum_other_doc_count
+          #   - compute_instance_create_start_event_doc_count_error_upper_bound
           #   - compute_instance_create_start_hits
           #   - compute_instance_create_start_took_milliseconds
           #
@@ -49,16 +35,12 @@
           json: |
             {
               "size": 0,
-              "query": {
-                "term": {
-                  "event_type": "compute.instance.create.start"
-                }
-              },
               "aggs": {
-                "host": {
-                  "terms": {
-                    "field": "Hostname.keyword",
-                    "min_doc_count": 0
+                "event": {
+                  "filter": {
+                    "term": {
+                      "event_type.keyword": "compute.instance.create.start"
+                    }
                   }
                 }
               }
@@ -66,9 +48,9 @@
 
         compute_instance_create_end:
           # Produces metrics:
-          #   - compute_instance_create_end_host_doc_count{host="example01"}
-          #   - compute_instance_create_end_host_event_sum_other_doc_count
-          #   - compute_instance_create_end_host_doc_count_error_upper_bound
+          #   - compute_instance_create_end_event_doc_count
+          #   - compute_instance_create_end_event_sum_other_doc_count
+          #   - compute_instance_create_end_event_doc_count_error_upper_bound
           #   - compute_instance_create_end_hits
           #   - compute_instance_create_end_took_milliseconds
           #
@@ -77,16 +59,12 @@
           json: |
             {
               "size": 0,
-              "query": {
-                "term": {
-                  "event_type": "compute.instance.create.end"
-                }
-              },
               "aggs": {
-                "host": {
-                  "terms": {
-                    "field": "Hostname.keyword",
-                    "min_doc_count": 0
+                "event": {
+                  "filter": {
+                    "term": {
+                      "event_type.keyword": "compute.instance.create.end"
+                    }
                   }
                 }
               }
@@ -94,9 +72,9 @@
 
         compute_instance_create_error:
           # Produces metrics:
-          #   - compute_instance_create_error_host_doc_count{host="example01"}
-          #   - compute_instance_create_error_host_event_sum_other_doc_count
-          #   - compute_instance_create_error_host_doc_count_error_upper_bound
+          #   - compute_instance_create_error_event_doc_count
+          #   - compute_instance_create_error_event_sum_other_doc_count
+          #   - compute_instance_create_error_event_doc_count_error_upper_bound
           #   - compute_instance_create_error_hits
           #   - compute_instance_create_error_took_milliseconds
           #
@@ -105,18 +83,13 @@
           json: |
             {
               "size": 0,
-              "query": {
-                "term": {
-                  "event_type": "compute.instance.create.error"
-                }
-              },
               "aggs": {
-                "host": {
-                  "terms": {
-                    "field": "Hostname.keyword",
-                    "min_doc_count": 0
+                "event": {
+                  "filter": {
+                    "term": {
+                      "event_type.keyword": "compute.instance.create.error"
+                    }
                   }
                 }
               }
             }
-
diff --git a/prometheus/gainsight/query/openstack.yml b/prometheus/gainsight/query/openstack.yml
index 9ebf282..a826155 100644
--- a/prometheus/gainsight/query/openstack.yml
+++ b/prometheus/gainsight/query/openstack.yml
@@ -16,9 +16,9 @@
         keystone_api: "'Keystone API','avg(avg_over_time(openstack_api_check_status{name=\"keystone\"}[24h]))'"
         glance_api: "'Glance API','avg(avg_over_time(openstack_api_check_status{name=\"glance\"}[24h]))'"
         neutron_api: "'Neutron API','avg(avg_over_time(openstack_api_check_status{name=\"neutron\"}[24h]))'"
-        compute_instance_create_start: "'VM creation start','sum(compute_instance_create_start_host_doc_count)'"
-        compute_instance_create_end: "'VM creation end','sum(compute_instance_create_end_host_doc_count)'"
-        compute_instance_create_error: "'VM creation error','sum(compute_instance_create_error_host_doc_count)'"
+        compute_instance_create_start: "'VM creation start','sum(compute_instance_create_start_event_doc_count)'"
+        compute_instance_create_end: "'VM creation end','sum(compute_instance_create_end_event_doc_count)'"
+        compute_instance_create_error: "'VM creation error','sum(compute_instance_create_error_event_doc_count)'"
         nova_vm_all: "'Total VM number','avg_over_time(total:openstack_nova_instance_all[1d])'"
         nova_vm_failed: "'Failed VM number','avg_over_time(total:openstack_nova_instance_failed[1d])'"
         kpi_downtime: "'KPI Downtime','1 - avg_over_time(total:openstack_nova_instance_failed[1d]) / avg_over_time(total:openstack_nova_instance_all[1d])'"