Merge "Bump kubernetes components (k8s 1.13.6)"
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/jenkins/client/job/deploy/update/update_glusterfs_cluster_op_version.yml b/jenkins/client/job/deploy/update/update_glusterfs_cluster_op_version.yml
index e35e4fa..24b1217 100644
--- a/jenkins/client/job/deploy/update/update_glusterfs_cluster_op_version.yml
+++ b/jenkins/client/job/deploy/update/update_glusterfs_cluster_op_version.yml
@@ -29,11 +29,9 @@
                 ---
                 SALT_MASTER_URL: "${_param:jenkins_salt_api_url}"
                 SALT_MASTER_CREDENTIALS: "salt"
-                # Salt compound target to match nodes to be updated [*, G@osfamily:debian].
-                TARGET_SERVERS: "I@glusterfs:server:role:primary"
                 # GlusterFS cluster.op-verion option to set. Leave it empty to get proper version from cluster.max-op-version if available.
                 CLUSTER_OP_VERSION: ''
-                # Does not validate that all clients have been updated
-                IGNORE_CLIENT_VERSION: false
                 # Does not validate that all servers have been updated
                 IGNORE_SERVER_VERSION: false
+                # Does not validate that all clients have been updated
+                IGNORE_CLIENT_VERSION: false
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])'"