Merge "Add k8s-test-pipeline."
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/docker/swarm/stack/jenkins/master.yml b/docker/swarm/stack/jenkins/master.yml
index c8c6b64..33ade24 100644
--- a/docker/swarm/stack/jenkins/master.yml
+++ b/docker/swarm/stack/jenkins/master.yml
@@ -10,6 +10,7 @@
           service:
             master:
               environment:
+                JENKINS_HOME: /var/jenkins_home
                 JAVA_OPTS: " -server -XX:+AlwaysPreTouch -Xloggc:$JENKINS_HOME/gc-%t.log -XX:NumberOfGCLogFiles=5 -XX:+UseGCLogFileRotation -XX:GCLogFileSize=20m -XX:+PrintGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintHeapAtGC -XX:+PrintGCCause -XX:+PrintTenuringDistribution -XX:+PrintReferenceGC -XX:+PrintAdaptiveSizePolicy -XX:+UseG1GC -XX:+ExplicitGCInvokesConcurrent -XX:+ParallelRefProcEnabled -XX:+UseStringDeduplication -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=20 -XX:+UnlockDiagnosticVMOptions -XX:G1SummarizeRSetStatsPeriod=1 -Djenkins.install.runSetupWizard=false -Dhudson.DNSMultiCast.disabled=true -Dhudson.udp=-1 -Dhudson.footerURL=https://www.mirantis.com ${_param:jenkins_master_extra_opts}"
                 JENKINS_NUM_EXECUTORS: ${_param:jenkins_master_executors_num}
               deploy:
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/approved_scripts.yml b/jenkins/client/approved_scripts.yml
index b187e26..62bab8d 100644
--- a/jenkins/client/approved_scripts.yml
+++ b/jenkins/client/approved_scripts.yml
@@ -129,3 +129,4 @@
         - method org.jenkinsci.plugins.workflow.steps.FlowInterruptedException getCauses
         - method org.jenkinsci.plugins.workflow.support.steps.build.RunWrapper getRawBuild
         - method hudson.model.Actionable getAction java.lang.Class
+        - staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods toSorted java.lang.Iterable
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/image/centos.yml b/jenkins/client/job/image/centos.yml
index 2524163..d478ccc 100644
--- a/jenkins/client/job/image/centos.yml
+++ b/jenkins/client/job/image/centos.yml
@@ -38,7 +38,7 @@
               default: ""
             UPLOAD_URL:
               type: string
-              default: "http://jenkins:eyoocaiG3ADireK3Eef8gae1roh5oox010.10.100.85:8088/"
+              default: "${_param:jenkins_packer_upload_url}"
             SKIP_UPLOAD:
               type: boolean
               default: "false"
diff --git a/jenkins/client/job/image/debian.yml b/jenkins/client/job/image/debian.yml
index 2c92f80..31c46b3 100644
--- a/jenkins/client/job/image/debian.yml
+++ b/jenkins/client/job/image/debian.yml
@@ -38,7 +38,7 @@
               default: ""
             UPLOAD_URL:
               type: string
-              default: "http://jenkins:eyoocaiG3ADireK3Eef8gae1roh5oox0@10.10.100.85:8088/"
+              default: "${_param:jenkins_packer_upload_url}"
             SKIP_UPLOAD:
               type: boolean
               default: "false"
diff --git a/jenkins/client/job/image/ubuntu.yml b/jenkins/client/job/image/ubuntu.yml
index c5b43d6..fa84813 100644
--- a/jenkins/client/job/image/ubuntu.yml
+++ b/jenkins/client/job/image/ubuntu.yml
@@ -111,7 +111,7 @@
               default: ""
             UPLOAD_URL:
               type: string
-              default: "http://jenkins:eyoocaiG3ADireK3Eef8gae1roh5oox0@10.10.100.85:8088/"
+              default: "${_param:jenkins_packer_upload_url}"
             SKIP_UPLOAD:
               type: boolean
               default: "false"