Merge "Jenkins script approvals list extended"
diff --git a/.releasenotes/notes/add-fwaas-d4dea7f376eb3f83.yaml b/.releasenotes/notes/add-fwaas-d4dea7f376eb3f83.yaml
new file mode 100644
index 0000000..69c6ad2
--- /dev/null
+++ b/.releasenotes/notes/add-fwaas-d4dea7f376eb3f83.yaml
@@ -0,0 +1,19 @@
+---
+features:
+  - |
+    Add system level metadata class required to enable FWaaS in Neutron.
+
+    The Firewall-as-a-Service (FWaaS) plug-in applies firewalls to OpenStack
+    objects such as projects, routers, router ports, as well as to VM ports
+    and SFC ports in FWaaS V2.
+
+    To enable FWaaS add the ``system.neutron.fwaas`` class to nodes with
+    control, gateway and, if the Neutron DVR feature is enabled, compute roles.
+
+    By default the FWaaS V1 is installed. To install FWaaS V2 redefine the
+    ``fwaas_version`` parameter on the cluster level:
+
+    .. code-block:: yaml
+
+       fwaas_version: v2
+
diff --git a/.releasenotes/notes/add-influxdb-relay-dc8bd245bebec442.yaml b/.releasenotes/notes/add-influxdb-relay-dc8bd245bebec442.yaml
new file mode 100644
index 0000000..2ccc60c
--- /dev/null
+++ b/.releasenotes/notes/add-influxdb-relay-dc8bd245bebec442.yaml
@@ -0,0 +1,15 @@
+---
+features:
+  - |
+    Added system metadata classes to deploy the InfluxDB relay service.
+
+    The InfluxDB relay service replicates the InfluxDB data to a cluster of
+    InfluxDB servers for HA.
+
+    For more details about the service, see the `GitHub project
+    <https://github.com/influxdata/influxdb-relay>`_ page.
+
+    To enable it, add the ``system.influxdb.relay.cluster`` class to the
+    Telemetry nodes and change
+    ``system.haproxy.proxy.listen.stacklight.influxdb`` to
+    ``system.haproxy.proxy.listen.stacklight.influxdb_relay``.
diff --git a/devops_portal/service/jenkins.yml b/devops_portal/service/jenkins.yml
index 349a707..83d9d05 100644
--- a/devops_portal/service/jenkins.yml
+++ b/devops_portal/service/jenkins.yml
@@ -3,6 +3,7 @@
     config:
       service:
         jenkins:
+          configure_proxy: true
           endpoint:
             address: ${_param:haproxy_jenkins_bind_host}
             port: ${_param:haproxy_jenkins_bind_port}
diff --git a/docker/swarm/stack/elasticsearch.yml b/docker/swarm/stack/elasticsearch.yml
index 5ee295c..1c22e8f 100644
--- a/docker/swarm/stack/elasticsearch.yml
+++ b/docker/swarm/stack/elasticsearch.yml
@@ -4,6 +4,7 @@
     docker_image_elasticsearch: docker.elastic.co/elasticsearch/elasticsearch:5.4.1
     elasticsearch_cluster_name: oss-cluster
     elasticsearch_xpack_security_enabled: 'false'
+    elasticsearch_xpack_monitoring_enabled: 'false'
     elasticsearch_discovery_zen_minimum_master_nodes: 1
     elasticsearch_discovery_type: single-node
   docker:
@@ -13,6 +14,7 @@
           environment:
             cluster.name: ${_param:elasticsearch_cluster_name}
             xpack.security.enabled: ${_param:elasticsearch_xpack_security_enabled}
+            xpack.monitoring.enabled: ${_param:elasticsearch_xpack_monitoring_enabled}
             discovery.zen.minimum_master_nodes: ${_param:elasticsearch_discovery_zen_minimum_master_nodes}
             discovery.type: ${_param:elasticsearch_discovery_type}
           service:
diff --git a/haproxy/proxy/listen/stacklight/influxdb_relay.yml b/haproxy/proxy/listen/stacklight/influxdb_relay.yml
new file mode 100644
index 0000000..bb3dd81
--- /dev/null
+++ b/haproxy/proxy/listen/stacklight/influxdb_relay.yml
@@ -0,0 +1,53 @@
+parameters:
+  _param:
+    cluster_influxdb_port: 8086
+  haproxy:
+    proxy:
+      listen:
+        influxdb_relay:
+          mode: http
+          format: end
+          binds:
+            - address: ${_param:cluster_vip_address}
+              port: ${_param:cluster_influxdb_port}
+          acls:
+            - name: influxdb
+              conditions:
+                - type:  path_beg
+                  condition: /query
+                  # InfluxDB backends for read requests
+              options:
+                - "httpchk GET /ping"
+                - httplog
+                - dontlog-normal
+              servers:
+                - name: ${_param:cluster_node01_hostname}
+                  host: ${_param:cluster_node01_address}
+                  port: 8086
+                  params: 'check'
+                - name: ${_param:cluster_node02_hostname}
+                  host: ${_param:cluster_node02_address}
+                  port: 8086
+                  params: 'check'
+                - name: ${_param:cluster_node03_hostname}
+                  host: ${_param:cluster_node03_address}
+                  port: 8086
+                  params: 'check'
+          options:
+            - "httpchk GET /ping"
+            - httplog
+            - dontlog-normal
+          # InfluxDB relay backends for write requests
+          servers:
+            - name: ${_param:cluster_node01_hostname}
+              host: ${_param:cluster_node01_address}
+              port: 9096
+              params: 'check'
+            - name: ${_param:cluster_node02_hostname}
+              host: ${_param:cluster_node02_address}
+              port: 9096
+              params: 'check'
+            - name: ${_param:cluster_node03_hostname}
+              host: ${_param:cluster_node03_address}
+              port: 9096
+              params: 'check'
diff --git a/influxdb/relay/cluster.yml b/influxdb/relay/cluster.yml
new file mode 100644
index 0000000..03639e1
--- /dev/null
+++ b/influxdb/relay/cluster.yml
@@ -0,0 +1,2 @@
+classes:
+- service.influxdb.relay.cluster
diff --git a/jenkins/client/job/deploy/lab/deploy.yml b/jenkins/client/job/deploy/lab/deploy.yml
index 75bab43..54a13ad 100644
--- a/jenkins/client/job/deploy/lab/deploy.yml
+++ b/jenkins/client/job/deploy/lab/deploy.yml
@@ -135,7 +135,7 @@
                 default: "http://127.0.0.1:8080"
               TEST_K8S_CONFORMANCE_IMAGE:
                 type: string
-                default: "docker-dev-virtual.docker.mirantis.net/mirantis/kubernetes/k8s-conformance:v1.5.1-3_1482332392819"
+                default: "docker-dev-virtual.docker.mirantis.net/mirantis/kubernetes/k8s-conformance:v1.7.3-1_1503652362277"
 
               TEST_TEMPEST_IMAGE:
                 type: string
diff --git a/jenkins/client/job/deploy/lab/init.yml b/jenkins/client/job/deploy/lab/init.yml
index 860e55f..0fce66b 100644
--- a/jenkins/client/job/deploy/lab/init.yml
+++ b/jenkins/client/job/deploy/lab/init.yml
@@ -8,6 +8,7 @@
   - system.jenkins.client.job.deploy.lab.release.mcp11
   - system.jenkins.client.job.deploy.lab.component.aaa
   - system.jenkins.client.job.deploy.lab.component.ceph
+  - system.jenkins.client.job.deploy.lab.component.drivetrain
   - system.jenkins.client.job.deploy.lab.component.kubernetes
   - system.jenkins.client.job.deploy.lab.component.openstack
   - system.jenkins.client.job.deploy.lab.component.stacklight
diff --git a/jenkins/client/job/deploy/lab/release/mcp05.yml b/jenkins/client/job/deploy/lab/release/mcp05.yml
index 05e74d9..61d5399 100644
--- a/jenkins/client/job/deploy/lab/release/mcp05.yml
+++ b/jenkins/client/job/deploy/lab/release/mcp05.yml
@@ -3,8 +3,8 @@
 parameters:
   _param:
     jenkins_deploy_jobs:
-      - stack_name: virtual_mcp05_dvr
-        stack_env: devcloud
+      - stack_name: virtual_mcp05_ovs_dvr
+        stack_env: devcloud_virtual_mcp05_dvr
         stack_install: core,openstack,dvr
         stack_type: heat
         stack_test: ""
diff --git a/jenkins/client/job/deploy/lab/release/mcp10.yml b/jenkins/client/job/deploy/lab/release/mcp10.yml
index a692378..34fb940 100644
--- a/jenkins/client/job/deploy/lab/release/mcp10.yml
+++ b/jenkins/client/job/deploy/lab/release/mcp10.yml
@@ -31,19 +31,19 @@
 
       # virtual
       - stack_name: virtual_mcp10_contrail
-        stack_env: devcloud
+        stack_env: devcloud_virtual_mcp10_contrail
         stack_install: core,openstack,contrail
         stack_type: heat
         stack_test: ""
         job_timer: "H H(0-6) * * *"
-      - stack_name: virtual_mcp10_dvr
-        stack_env: devcloud
+      - stack_name: virtual_mcp10_ovs_dvr
+        stack_env: devcloud_virtual_mcp10_dvr
         stack_install: core,openstack,dvr
         stack_type: heat
         stack_test: ""
         job_timer: "H H(0-6) * * *"
       - stack_name: virtual_mcp10_ovs
-        stack_env: devcloud
+        stack_env: devcloud_virtual_mcp10_ovs
         stack_install: core,openstack,ovs
         stack_type: heat
         stack_test: ""
diff --git a/jenkins/client/job/deploy/lab/release/mcp11.yml b/jenkins/client/job/deploy/lab/release/mcp11.yml
index b147427..0a3127c 100644
--- a/jenkins/client/job/deploy/lab/release/mcp11.yml
+++ b/jenkins/client/job/deploy/lab/release/mcp11.yml
@@ -4,19 +4,19 @@
   _param:
     jenkins_deploy_jobs:
       - stack_name: virtual_mcp11_contrail
-        stack_env: devcloud
+        stack_env: devcloud_virtual_mcp11_contrail
         stack_install: core,openstack,contrail
         stack_type: heat
         stack_test: ""
         job_timer: ""
-      - stack_name: virtual_mcp11_dvr
-        stack_env: devcloud
+      - stack_name: virtual_mcp11_ovs_dvr
+        stack_env: devcloud_virtual_mcp11_dvr
         stack_install: core,openstack,dvr
         stack_type: heat
         stack_test: ""
         job_timer: ""
       - stack_name: virtual_mcp11_ovs
-        stack_env: devcloud
+        stack_env: devcloud_virtual_mcp11_ovs
         stack_install: core,openstack,ovs
         stack_type: heat
         stack_test: ""
@@ -46,13 +46,13 @@
         stack_test: k8s
         job_timer: "H H(0-6) * * *"
       - stack_name: virtual_mcp11_contrail_nfv
-        stack_env: devcloud
+        stack_env: devcloud_virtual_mcp11_contrail_nfv
         stack_install: core,openstack,contrail
         stack_type: heat
         stack_test: ""
         job_timer: "H H(0-6) * * *"
       - stack_name: virtual_mcp11_ovs_dpdk
-        stack_env: devcloud
+        stack_env: devcloud_virtual_mcp11_ovs_dpdk
         stack_install: core,openstack,ovs
         stack_type: heat
         stack_test: ""
diff --git a/jenkins/client/job/deploy/lab/release/mk.yml b/jenkins/client/job/deploy/lab/release/mk.yml
index 4968285..453e632 100644
--- a/jenkins/client/job/deploy/lab/release/mk.yml
+++ b/jenkins/client/job/deploy/lab/release/mk.yml
@@ -5,26 +5,26 @@
     jenkins_deploy_jobs:
       # mk20
       - stack_name: virtual_mk20_advanced
-        stack_env: devcloud
+        stack_env: devcloud_virtual_mk20_advanced
         stack_install: core,openstack
         stack_type: heat
         stack_test: ""
         job_timer: ""
       - stack_name: virtual_mk20_basic
-        stack_env: devcloud
+        stack_env: devcloud_virtual_mk20_basic
         stack_install: core,openstack
         stack_type: heat
         stack_test: ""
         job_timer: ""
       # mk22
       - stack_name: virtual_mk22_advanced
-        stack_env: devcloud
+        stack_env: devcloud_virtual_mk22_advanced
         stack_install: core,openstack
         stack_type: heat
         stack_test: ""
         job_timer: ""
       - stack_name: virtual_mk22_basic
-        stack_env: devcloud
+        stack_env: devcloud_virtual_mk22_basic
         stack_install: core,openstack
         stack_type: heat
         stack_test: ""
diff --git a/jenkins/client/job/deploy/rollout.yml b/jenkins/client/job/deploy/rollout.yml
index 3f2f835..06aab0a 100644
--- a/jenkins/client/job/deploy/rollout.yml
+++ b/jenkins/client/job/deploy/rollout.yml
@@ -51,7 +51,7 @@
               default: "http://127.0.0.1:8080"
             TEST_K8S_CONFORMANCE_IMAGE:
               type: string
-              default: "docker-dev-virtual.docker.mirantis.net/mirantis/kubernetes/k8s-conformance:v1.5.1-3_1482332392819"
+              default: "docker-dev-virtual.docker.mirantis.net/mirantis/kubernetes/k8s-conformance:v1.7.3-1_1503652362277"
             TEST_TEMPEST_IMAGE:
               type: string
               description: "Tempest docker image"
diff --git a/jenkins/client/job/deploy/test.yml b/jenkins/client/job/deploy/test.yml
index 0b5d541..0f9b202 100644
--- a/jenkins/client/job/deploy/test.yml
+++ b/jenkins/client/job/deploy/test.yml
@@ -31,7 +31,7 @@
               default: "http://127.0.0.1:8080"
             TEST_K8S_CONFORMANCE_IMAGE:
               type: string
-              default: "docker-dev-virtual.docker.mirantis.net/mirantis/kubernetes/k8s-conformance:v1.5.1-3_1482332392819"
+              default: "docker-dev-virtual.docker.mirantis.net/mirantis/kubernetes/k8s-conformance:v1.7.3-1_1503652362277"
 
             TEST_TEMPEST_IMAGE:
               type: string
diff --git a/jenkins/client/job/salt-formulas/tests.yml b/jenkins/client/job/salt-formulas/tests.yml
index fe95493..448c421 100644
--- a/jenkins/client/job/salt-formulas/tests.yml
+++ b/jenkins/client/job/salt-formulas/tests.yml
@@ -156,8 +156,42 @@
               DEFAULT_GIT_REF:
                 type: string
                 default: master
-              KITCHEN_TESTS_PARALLEL:
-                type: boolean
-                default: 'false'
               CUSTOM_KITCHEN_ENVS:
                 type: text
+              PARALLEL_GROUP_SIZE:
+                type: string
+                default: "8"
+      job:
+        test-salt-formulas-env:
+          name: test-salt-formulas-env
+          discard:
+            build:
+              keep_num: 500
+            artifact:
+              keep_num: 10
+          type: workflow-scm
+          concurrent: true
+          scm:
+            type: git
+            url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+            credentials: "gerrit"
+            script: test-salt-formulas-env.groovy
+          param:
+            SALT_VERSION:
+              type: string
+              default: "latest"
+            SALT_OPTS:
+              type: string
+              default: "--force-color"
+            CREDENTIALS_ID:
+              type: string
+              default: "gerrit"
+            DEFAULT_GIT_URL:
+              type: string
+              description: "Run against alternate system reclass"
+              default: "${_param:jenkins_gerrit_url}/salt-formulas/{{name}}"
+            DEFAULT_GIT_REF:
+              type: string
+              default: master
+            KITCHEN_ENV:
+              type: text
diff --git a/jenkins/client/job/validate.yml b/jenkins/client/job/validate.yml
index 6f22a0c..7be935b 100644
--- a/jenkins/client/job/validate.yml
+++ b/jenkins/client/job/validate.yml
@@ -55,4 +55,25 @@
               default: "http://127.0.0.1:8080"
             TEST_K8S_CONFORMANCE_IMAGE:
               type: string
-              default: "docker-dev-virtual.docker.mirantis.net/mirantis/kubernetes/k8s-conformance:v1.5.1-3_1482332392819"
+              default: "docker-dev-virtual.docker.mirantis.net/mirantis/kubernetes/k8s-conformance:v1.7.3-1_1503652362277"
+            RUN_SPT_TESTS:
+              type: boolean
+              default: 'true'
+            SPT_SSH_USER:
+              type: string
+              default: "root"
+            SPT_FLOATING_NETWORK:
+              type: string
+              default: ""
+            SPT_IMAGE:
+              type: string
+              default: ""
+            SPT_USER:
+              type: string
+              default: ""
+            SPT_FLAVOR:
+              type: string
+              default: ""
+            SPT_AVAILABILITY_ZONE:
+              type: string
+              default: "nova"
diff --git a/linux/network/dynamic_hosts.yml b/linux/network/dynamic_hosts.yml
new file mode 100644
index 0000000..fc1ef68
--- /dev/null
+++ b/linux/network/dynamic_hosts.yml
@@ -0,0 +1,13 @@
+parameters:
+  linux:
+    network:
+      purge_hosts: true
+      mine_dns_records: true
+      host:
+        localhost_hostname:
+          address: ${_param:single_address}
+          grain: true
+          names:
+          - ${linux:network:fqdn}
+          - ${linux:network:hostname}
+
diff --git a/neutron/fwaas.yml b/neutron/fwaas.yml
new file mode 100644
index 0000000..79c6439
--- /dev/null
+++ b/neutron/fwaas.yml
@@ -0,0 +1,8 @@
+classes:
+- service.neutron.fwaas
+parameters:
+  _param:
+    fwaas_version: v1
+  neutron:
+    fwaas:
+      api_version: ${_param:fwaas_version}
diff --git a/nova/client/flavor/default.yml b/nova/client/flavor/default.yml
index 492530d..1d374c5 100644
--- a/nova/client/flavor/default.yml
+++ b/nova/client/flavor/default.yml
@@ -61,4 +61,4 @@
             m1.large100:
               ram: 8096
               disk: 100
-            	vcpus: 4
+              vcpus: 4
diff --git a/openssh/server/team/support.yml b/openssh/server/team/support.yml
index d4afcf5..fae16a6 100644
--- a/openssh/server/team/support.yml
+++ b/openssh/server/team/support.yml
@@ -44,7 +44,7 @@
 - system.openssh.server.team.members.pmichalec
 parameters:
   _param:
-    linux_system_user_sudo: false
+    linux_system_user_sudo: true
   linux:
     system:
       group:
diff --git a/openssh/server/team/tcpcloud.yml b/openssh/server/team/tcpcloud.yml
index bcd9327..5f9af00 100644
--- a/openssh/server/team/tcpcloud.yml
+++ b/openssh/server/team/tcpcloud.yml
@@ -21,7 +21,6 @@
 - system.openssh.server.team.members.vmikes
 - system.openssh.server.team.members.psvimbersky
 - system.openssh.server.team.members.chnyda
-
 parameters:
   _param:
     linux_system_user_sudo: true
diff --git a/prometheus/server/alert/labels_add/route.yml b/prometheus/server/alert/labels_add/route.yml
index 47d9eea..651dab7 100644
--- a/prometheus/server/alert/labels_add/route.yml
+++ b/prometheus/server/alert/labels_add/route.yml
@@ -1,6 +1,6 @@
 parameters:
   _param:
-    prometheus_server_alert_label_route: mail
+    prometheus_server_alert_label_route: email
   prometheus:
     server:
       config:
diff --git a/salt/master/formula/git/ceph.yml b/salt/master/formula/git/ceph.yml
new file mode 100644
index 0000000..10c3ca0
--- /dev/null
+++ b/salt/master/formula/git/ceph.yml
@@ -0,0 +1,10 @@
+parameters:
+  salt:
+    master:
+      environment:
+        dev:
+          formula:
+            ceph:
+              source: git
+              address: '${_param:salt_master_environment_repository}/salt-formula-ceph.git'
+              revision: ${_param:salt_master_environment_revision}
diff --git a/salt/master/formula/pkg/ceph.yml b/salt/master/formula/pkg/ceph.yml
new file mode 100644
index 0000000..461f5c5
--- /dev/null
+++ b/salt/master/formula/pkg/ceph.yml
@@ -0,0 +1,9 @@
+parameters:
+  salt:
+    master:
+      environment:
+        prd:
+          formula:
+            ceph:
+              source: pkg
+              name: salt-formula-ceph
diff --git a/salt/master/git.yml b/salt/master/git.yml
index 4562a74..7f09ed9 100644
--- a/salt/master/git.yml
+++ b/salt/master/git.yml
@@ -9,6 +9,7 @@
 - system.salt.master.formula.git.stacklight
 - system.salt.master.formula.git.monitoring
 - system.salt.master.formula.git.helm
+- system.salt.master.formula.git.ceph
 parameters:
   _param:
     salt_master_environment_repository: "https://github.com/salt-formulas"
diff --git a/salt/master/pkg.yml b/salt/master/pkg.yml
index 62854f1..dba30d0 100644
--- a/salt/master/pkg.yml
+++ b/salt/master/pkg.yml
@@ -9,4 +9,5 @@
 - system.salt.master.formula.pkg.stacklight
 - system.salt.master.formula.pkg.monitoring
 - system.salt.master.formula.pkg.helm
+- system.salt.master.formula.pkg.ceph
 - system.linux.system.repo.mcp.salt