[ARVADOS-DEV] updated: ace19590c487a5705fbeadd54c1bd4062cdd14fd

Git user git at public.arvados.org
Tue Apr 12 14:19:36 UTC 2022


Summary of changes:
 .licenseignore                                     |  7 ++
 jenkins/test-arvados-multinode/.gitignore          |  7 ++
 .../test-arvados-multinode/certs/collections.crt   | 25 ++++++
 .../test-arvados-multinode/certs/collections.key   | 28 +++++++
 .../test-arvados-multinode/certs/controller.crt    | 25 ++++++
 .../test-arvados-multinode/certs/controller.key    | 28 +++++++
 jenkins/test-arvados-multinode/certs/download.crt  | 25 ++++++
 jenkins/test-arvados-multinode/certs/download.key  | 28 +++++++
 jenkins/test-arvados-multinode/certs/keepproxy.crt | 25 ++++++
 jenkins/test-arvados-multinode/certs/keepproxy.key | 28 +++++++
 .../test-arvados-multinode/certs/snakeoil-ca.crt   | 22 +++++
 .../test-arvados-multinode/certs/snakeoil-ca.key   | 28 +++++++
 jenkins/test-arvados-multinode/certs/webshell.crt  | 25 ++++++
 jenkins/test-arvados-multinode/certs/webshell.key  | 28 +++++++
 jenkins/test-arvados-multinode/certs/websocket.crt | 25 ++++++
 jenkins/test-arvados-multinode/certs/websocket.key | 28 +++++++
 jenkins/test-arvados-multinode/certs/workbench.crt | 25 ++++++
 jenkins/test-arvados-multinode/certs/workbench.key | 28 +++++++
 .../test-arvados-multinode/certs/workbench2.crt    | 25 ++++++
 .../test-arvados-multinode/certs/workbench2.key    | 28 +++++++
 .../script_test.multinode.sh                       | 94 ++++++++++++++++++++++
 jenkins/test-arvados-multinode/terraform/main.tf   | 66 +++++++++++++++
 .../test-arvados-multinode/terraform/outputs.tf    | 20 +++++
 .../test-arvados-multinode/terraform/provider.tf   | 15 ++++
 .../terraform/terraform.tfvars                     |  7 ++
 .../test-arvados-multinode/terraform/variables.tf  | 17 ++++
 26 files changed, 707 insertions(+)
 create mode 100644 jenkins/test-arvados-multinode/.gitignore
 create mode 100644 jenkins/test-arvados-multinode/certs/collections.crt
 create mode 100644 jenkins/test-arvados-multinode/certs/collections.key
 create mode 100644 jenkins/test-arvados-multinode/certs/controller.crt
 create mode 100644 jenkins/test-arvados-multinode/certs/controller.key
 create mode 100644 jenkins/test-arvados-multinode/certs/download.crt
 create mode 100644 jenkins/test-arvados-multinode/certs/download.key
 create mode 100644 jenkins/test-arvados-multinode/certs/keepproxy.crt
 create mode 100644 jenkins/test-arvados-multinode/certs/keepproxy.key
 create mode 100644 jenkins/test-arvados-multinode/certs/snakeoil-ca.crt
 create mode 100644 jenkins/test-arvados-multinode/certs/snakeoil-ca.key
 create mode 100644 jenkins/test-arvados-multinode/certs/webshell.crt
 create mode 100644 jenkins/test-arvados-multinode/certs/webshell.key
 create mode 100644 jenkins/test-arvados-multinode/certs/websocket.crt
 create mode 100644 jenkins/test-arvados-multinode/certs/websocket.key
 create mode 100644 jenkins/test-arvados-multinode/certs/workbench.crt
 create mode 100644 jenkins/test-arvados-multinode/certs/workbench.key
 create mode 100644 jenkins/test-arvados-multinode/certs/workbench2.crt
 create mode 100644 jenkins/test-arvados-multinode/certs/workbench2.key
 create mode 100755 jenkins/test-arvados-multinode/script_test.multinode.sh
 create mode 100644 jenkins/test-arvados-multinode/terraform/main.tf
 create mode 100644 jenkins/test-arvados-multinode/terraform/outputs.tf
 create mode 100644 jenkins/test-arvados-multinode/terraform/provider.tf
 create mode 100644 jenkins/test-arvados-multinode/terraform/terraform.tfvars
 create mode 100644 jenkins/test-arvados-multinode/terraform/variables.tf

       via  ace19590c487a5705fbeadd54c1bd4062cdd14fd (commit)
       via  8b1ba5737dde1586d6d417b3c3dea467d4a205f2 (commit)
      from  2a31a90631cd9f94271bb2ae41ebddb6050bc0c0 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit ace19590c487a5705fbeadd54c1bd4062cdd14fd
Merge: 2a31a90 8b1ba57
Author: Javier Bértoli <jbertoli at curii.com>
Date:   Tue Apr 12 11:17:47 2022 -0300

    Merge branch '16375-arvados-multinode-testing'
    
    refs #16375
    Arvados-DCO-1.1-Signed-off-by: Javier Bértoli <jbertoli at curii.com>


commit 8b1ba5737dde1586d6d417b3c3dea467d4a205f2
Author: Javier Bértoli <jbertoli at curii.com>
Date:   Wed Apr 6 19:55:47 2022 -0300

    16375: add code to test arvados in multi-node
    
    Arvados-DCO-1.1-Signed-off-by: Javier Bértoli <jbertoli at curii.com>

diff --git a/.licenseignore b/.licenseignore
index 9db9a4b..f5ac2b6 100644
--- a/.licenseignore
+++ b/.licenseignore
@@ -1,6 +1,13 @@
 # Copyright (C) The Arvados Authors. All rights reserved.
 #
 # SPDX-License-Identifier: Apache-2.0
+jenkins/test-arvados-multinode/.gitignore
+jenkins/test-arvados-multinode/terraform/outputs.tf
+jenkins/test-arvados-multinode/terraform/variables.tf
+jenkins/test-arvados-multinode/terraform/terraform.tfvars
+jenkins/test-arvados-multinode/terraform/provider.tf
+jenkins/test-arvados-multinode/terraform/main.tf
+jenkins/test-arvados-multinode/certs/*
 jenkins/packer-images/.gitignore
 jenkins/packer-images/*.json
 jenkins/packer-images/1078ECD7.asc
diff --git a/jenkins/test-arvados-multinode/.gitignore b/jenkins/test-arvados-multinode/.gitignore
new file mode 100644
index 0000000..d39539c
--- /dev/null
+++ b/jenkins/test-arvados-multinode/.gitignore
@@ -0,0 +1,7 @@
+.DS_Store
+.terraform
+examples
+*backup
+*disabled
+.terraform.*
+terraform.tfstate*
diff --git a/jenkins/test-arvados-multinode/certs/collections.crt b/jenkins/test-arvados-multinode/certs/collections.crt
new file mode 100644
index 0000000..f4bd6d2
--- /dev/null
+++ b/jenkins/test-arvados-multinode/certs/collections.crt
@@ -0,0 +1,25 @@
+-----BEGIN CERTIFICATE-----
+MIIEMDCCAxigAwIBAgIEYegcXTANBgkqhkiG9w0BAQsFADB4MQswCQYDVQQGEwJD
+QzETMBEGA1UECAwKU29tZSBTdGF0ZTEYMBYGA1UECgwPQXJ2YWRvcyBGb3JtdWxh
+MRgwFgYDVQQLDA9hcnZhZG9zLWZvcm11bGExIDAeBgNVBAMMF3NuYWtlb2lsLWNh
+LWhhcnBvLmxvY2FsMB4XDTIyMDExOTE0MTI0NVoXDTIzMDExOTE0MTI0NVowggEG
+MQswCQYDVQQGEwJDQzETMBEGA1UECAwKU29tZSBTdGF0ZTEWMBQGA1UEBwwNU29t
+ZSBMb2NhdGlvbjFDMEEGA1UECgw6QXJ2YWRvcyBQcm92aXNpb24gRXhhbXBsZSBT
+aW5nbGUgSG9zdCAvIE11bHRpcGxlIEhvc3RuYW1lczFBMD8GA1UECww4YXJ2YWRv
+cy1wcm92aXNpb24tZXhhbXBsZS1zaW5nbGVfaG9zdF9tdWx0aXBsZV9ob3N0bmFt
+ZXMxIDAeBgNVBAMMF2NvbGxlY3Rpb25zLmhhcnBvLmxvY2FsMSAwHgYJKoZIhvcN
+AQkBFhFhZG1pbkBoYXJwby5sb2NhbDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
+AQoCggEBALiA/dzt2blk5H5me/FUiVt74usiv3/hXBNU78jM96L3yzNV/5XTODGK
+NxqVSYsofkxZ6UBegk6nSzY7NlH4CEsZcskwUsPcfGJjFIFRnAznWgZuF6VeRlUk
+LnUALH/a/dA7fQtKJ1ysaVlQn6+zjIYiv8zVC7kTGdZuxmo/WjXSGFBzT5gt1R5O
+Cw7WXltE2g2DcM970wT3y1Ny42ReyVAEn+8fVqEPe+dYgeOnNivFuM8Za/Du/Cfu
+pCL4IzjQ5ZWBzfI8kGzIjoWQd8/OP69FKgu+OOjxDmviGTuiLxbMmB5WkLF6j9t5
+QG14FlL8zbuqehJRQ4XpBtK10R17FOsCAwEAAaMyMDAwLgYDVR0RBCcwJYcECgAC
+D4cEfwAAAYIXY29sbGVjdGlvbnMuaGFycG8ubG9jYWwwDQYJKoZIhvcNAQELBQAD
+ggEBADPfVZklhruW3FyiFxTWIV8Xok54lxR2i1wC5GCyfIuJYlvYGp8PMU+YCNwE
+jUpmVOZy5kWdQkyEeiuzUGJUfDmH+9J1M/o/KLcCcL/j3DnuyyE4N9oYeVhKY0ZX
+v09YPR++bQUfDWbfnptg0DXdjplRt5KZYkTpFDYv34R8AYMZAzCaiEXK0W+yMpYk
+tw/HT6kph3ifTCyNwaF+8LZzLqRMg4DfkHWx6OBGSbjhlcY5me0MhFNZ0VvA8JPH
+w/h0QZVcd/ScJSVNmRdImG4au6txH3lL1L4pgdqDkaloLhJMYAUZh33rbqpS8L7E
+bidwGsNxUhM53eaDR7Vs11KuaAk=
+-----END CERTIFICATE-----
diff --git a/jenkins/test-arvados-multinode/certs/collections.key b/jenkins/test-arvados-multinode/certs/collections.key
new file mode 100644
index 0000000..70fb472
--- /dev/null
+++ b/jenkins/test-arvados-multinode/certs/collections.key
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC4gP3c7dm5ZOR+
+ZnvxVIlbe+LrIr9/4VwTVO/IzPei98szVf+V0zgxijcalUmLKH5MWelAXoJOp0s2
+OzZR+AhLGXLJMFLD3HxiYxSBUZwM51oGbhelXkZVJC51ACx/2v3QO30LSidcrGlZ
+UJ+vs4yGIr/M1Qu5ExnWbsZqP1o10hhQc0+YLdUeTgsO1l5bRNoNg3DPe9ME98tT
+cuNkXslQBJ/vH1ahD3vnWIHjpzYrxbjPGWvw7vwn7qQi+CM40OWVgc3yPJBsyI6F
+kHfPzj+vRSoLvjjo8Q5r4hk7oi8WzJgeVpCxeo/beUBteBZS/M27qnoSUUOF6QbS
+tdEdexTrAgMBAAECggEBAKPNoZSrdkkqUdIGmrM/IlOeQXAQgYO/SEfBeMEFeDWv
+WTBSgX867wDMfO+U6p4pbTfL+1Gylm3OCPA00Z0kX/iMt2P3CwPolGWlIWdOVQT/
+wOVEiKnAcSDV5ojphphcjEp7BiEnzJpyV3V8JsmO1ouf/jiUTLwbQS0nW/CoHib4
+xZHZo1EIAIHbDUqawu9RUp7wP5vJnCZjyr8O8aS1We8k2vLYzpUB8/Vhr2CpvUcS
+WcXiULNIpHqzwYR7DPIt3Z/5Q83SkNUze5MvpBwLFOXZi+QT4oMpQDApdEOFjRVc
+4pU4k6KF0SaZ4uFw3TNjXuy6qct/ztp+ZDtIHqdZykECgYEA4I25xXXs0feN8ej5
+j9caxhKDZ0fgqkTxnzLszOJAIBZlI9pfTMyZAVLFa/gerSZBTFlBBVOnAd4PgZGl
+kzHu8bjzAHj3Br4070lna2puuDt/1ibQKRBZzClV0dvJ/rq51Ie/SxpVhSQCJbdG
+h3FYoGo8XZqYRs4sJbABOFE/rNcCgYEA0ld6VdEbPMNwcocUv4w0xRldLehKn/fQ
+dEWUnzQxvqQsulBKL9qnybW9+Mzn076p+hlKPVY+i6T2+y3mviY7drRdpg4iT1LU
+dF5uAXfbJIoy/8elRvis7S2z/6cdI/T3u06qhZFmotNvUaRm2ttNk/4AlFPHF2xj
+ug7DjDvzYg0CgYAOfldNPW1JqBbLVGQ3OoUJ38wHcIY5tzV5Nwo9tyS4bXmdtMyN
+4m7FvRfs/hjMyDlSujgOJfYTksehb0smkwR/KZbVovkewEweXbiFIFuBHKYFpn+t
+Btck7E4Tu4HwJRE1fIWGTW7Tpx1UXd35hAFaaUD4MbA+cbQ7wn5xqhzYBQKBgGr3
+cY8St/c+rICRkUuX0X4qV+hwqQKQ08FNYTdVI7b/Zn+ZNSEA4TMC6YkNKxfTbj1x
+fv+STFxXmAJEZYNtje/f6X/40Bnm1YQYQXkdqqP6Y9UPgk2FSOuUwmTQZ1FR0mm+
+p5klSDylqYarRGMoA1uvYDwOHsEardyAhZFbK3pBAoGBAJnb3Pl5nIhdVA5695ya
+lp6KHyrRdfSrRPb2YX6c+9j6nu/FlcC16tLcc4H3jjTbnlI6GtVcnVRG7ENB9Ddu
+Qj78Rxd4+/Ya4bb8a/boRFjhX4DXbmdInRopyYhN9giohilVok8N0FG3EJjQZzsS
+zTipHFbZiLkWEHrg0aYfxlBC
+-----END PRIVATE KEY-----
diff --git a/jenkins/test-arvados-multinode/certs/controller.crt b/jenkins/test-arvados-multinode/certs/controller.crt
new file mode 100644
index 0000000..680000f
--- /dev/null
+++ b/jenkins/test-arvados-multinode/certs/controller.crt
@@ -0,0 +1,25 @@
+-----BEGIN CERTIFICATE-----
+MIIEOzCCAyOgAwIBAgIEYegcXDANBgkqhkiG9w0BAQsFADB4MQswCQYDVQQGEwJD
+QzETMBEGA1UECAwKU29tZSBTdGF0ZTEYMBYGA1UECgwPQXJ2YWRvcyBGb3JtdWxh
+MRgwFgYDVQQLDA9hcnZhZG9zLWZvcm11bGExIDAeBgNVBAMMF3NuYWtlb2lsLWNh
+LWhhcnBvLmxvY2FsMB4XDTIyMDExOTE0MTI0NFoXDTIzMDExOTE0MTI0NFowggEF
+MQswCQYDVQQGEwJDQzETMBEGA1UECAwKU29tZSBTdGF0ZTEWMBQGA1UEBwwNU29t
+ZSBMb2NhdGlvbjFDMEEGA1UECgw6QXJ2YWRvcyBQcm92aXNpb24gRXhhbXBsZSBT
+aW5nbGUgSG9zdCAvIE11bHRpcGxlIEhvc3RuYW1lczFBMD8GA1UECww4YXJ2YWRv
+cy1wcm92aXNpb24tZXhhbXBsZS1zaW5nbGVfaG9zdF9tdWx0aXBsZV9ob3N0bmFt
+ZXMxHzAdBgNVBAMMFmNvbnRyb2xsZXIuaGFycG8ubG9jYWwxIDAeBgkqhkiG9w0B
+CQEWEWFkbWluQGhhcnBvLmxvY2FsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEAxf6WRzj1LqLL3RCzVTL08mCjw696Uwu62HjmGzy+2hvRxXBAJhtMG5hN
+jwGyLZQlGhPgpCXC8eBiJXKcDOch7RO2WBvnB/rDbBM7JaJByvmJV+/SSldtlzDb
+z1LZavofZwj0ddFDsJgbDT0hzL//71+LIYj0uVyNmIRd6XmfRGdvteqoEWD7DwzM
+6naQ7OYx6PpudGjv3cqWsbMfJ7s29iGQYw3Ln/GAbmKF8UZOUciy4Drs8qQdjRRv
+Q3sVvn+x7uhJa0sPmKeqcmI8WYwieP7Y2Lx1/iMGAoTXYthIqnOMQWpS7d+YZseu
+vgs3tBTZjex1BZc/eQLSNQVlQOqGCwIDAQABoz4wPDA6BgNVHREEMzAxhwQKAAIP
+hwR/AAABghZjb250cm9sbGVyLmhhcnBvLmxvY2FsggtoYXJwby5sb2NhbDANBgkq
+hkiG9w0BAQsFAAOCAQEAfqTJkKwd0mxFgUsNtGllDyAJCp9bvMxDLJVA9Y9dMr1f
+kPM1TzQBtHoaYr/C3XfTK0kLSNUfRBQbJwrtW+uHtzU0FXMr8qPZNfloWRRcPXb9
+oGsCfUHb93HTSHn7ItZg+qRpaOwiGbyAo6YmzvozvE6nhC221CjT5skS9jJXi0Um
+HyKWOPOk3xhESUnKukIIkVncSt2SHo3gMqKZyraVZdQ/eUF6L81rUybyjveduicr
+mWoJPM6a6FVo68lWngWCw4HyeTgG2wwfPQuxnnsp2pPtu4yfl8e4o+bqQjiRZ7T7
+DcVx8OPDj9y9gn5NDy1DwKX5cF56vQh7/Sb/SbVFfQ==
+-----END CERTIFICATE-----
diff --git a/jenkins/test-arvados-multinode/certs/controller.key b/jenkins/test-arvados-multinode/certs/controller.key
new file mode 100644
index 0000000..89aa8e6
--- /dev/null
+++ b/jenkins/test-arvados-multinode/certs/controller.key
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDF/pZHOPUuosvd
+ELNVMvTyYKPDr3pTC7rYeOYbPL7aG9HFcEAmG0wbmE2PAbItlCUaE+CkJcLx4GIl
+cpwM5yHtE7ZYG+cH+sNsEzslokHK+YlX79JKV22XMNvPUtlq+h9nCPR10UOwmBsN
+PSHMv//vX4shiPS5XI2YhF3peZ9EZ2+16qgRYPsPDMzqdpDs5jHo+m50aO/dypax
+sx8nuzb2IZBjDcuf8YBuYoXxRk5RyLLgOuzypB2NFG9DexW+f7Hu6ElrSw+Yp6py
+YjxZjCJ4/tjYvHX+IwYChNdi2Eiqc4xBalLt35hmx66+Cze0FNmN7HUFlz95AtI1
+BWVA6oYLAgMBAAECggEAYQm9rXqE8C5prBcbTY6D7qbenHHMihcdpCrc3EyRXWR1
+E0dIqWSHkJ68pHI4WY5aAMXtO4YmXVWTxLa/NLOzNPaMT/Kc8JQ+YyGpw3Aavtg+
+MBMiBb2DwK35jUsVtBCSg3UoGvZNLqfd2kcz4Z3YWgGBtxXgm1h5LV7yiBNLs8IB
+kvZN/lgGrlmXImVFeRLkivbf8n3P5solWPBwaXPEOSYUg6Sf17GnP2Nb02vi4Ojp
+TyAC3H0Q6vzwDP0lO8FEUP+dKE4RbujK7L8RNU62ZuWm8WuY7V6VMYgtVvUfCfKO
+IJ3KeOoVjLtiuO816BANCggSUkQgPLjjFjT1xG86QQKBgQDj0Mz4MlBiXZu881lW
+1jUWZaJG6q7qTRCQejCArAGFrh+7dR6KqVQCIf02+UoqHSaZ+meU6eSa/WROsnz4
+zVc8C1iWgYMOrr4nBeOaEBFlG7lC0rB5T39kz/2pLfDdNfO/Vhy9NEFqglJk/3t/
+i/D7mH2dKG0LGDEZU2TkEzCmBQKBgQDefVBu3KhfAKFpxcq4qs4zkWiEjeOTJEDI
+JyQtrNoJra/7PGpI1dSHBn42nysVP1CX2GzdQjJ917Duj/6rUBwnceh3/7B2QgMR
+HsEWzpziz6BmFTOgquGVuDEcvjmv8RNHYOkjB4+nbhxIPlKlShPCNMVEr2WcHERt
++DKtOe2ozwKBgEO/+tTtEZ7PO9uLe0wp1AvfGc2BSZeAZ6avz/DUNnes+t7iy7xs
+8wDXXtiUdovjs3EjWN6eWFAHf2cwCZ5sYr8GmMfZqEIbkY1FYRSWJrYs8oF+6uCI
+1dgDSuqfMPx4aQ7D6zQRcEreiuZiXDXoRjhsdx7fwN4FycRAWsbBNjyJAoGBANJi
+JvOd3exvuTI+oRH8GZ3zqqRlU0Oo7UUWlgRGxaqPPbBREaOr5xqDDkfyPJgL1daw
+BUk3tmz+z0TWjpdJ2kWGVa9a7W71vtaqgSVi3EEw2diNxdLwov2jPXWTfxMa4AMH
+5YyFMta8rSu3GwlHQeXLZporTObQZ/ig0LKy60NLAoGAXpA0UShuXX/ilVh0UujO
++dYyeC1PYkaUYybCTtjJv1vI8GmzDTADkfDN7aUu2MlrPkPOXH+MZ+0vrbQ5q/R1
+F4Jwbjwe2t3qvgmA9ZY+uZQl7hzyBff5xGzHXtKd5qC25ez0i/QsSn0adhYmOleP
+ALbb4qmOrn9uyscaiFvKXx0=
+-----END PRIVATE KEY-----
diff --git a/jenkins/test-arvados-multinode/certs/download.crt b/jenkins/test-arvados-multinode/certs/download.crt
new file mode 100644
index 0000000..8516ad0
--- /dev/null
+++ b/jenkins/test-arvados-multinode/certs/download.crt
@@ -0,0 +1,25 @@
+-----BEGIN CERTIFICATE-----
+MIIEKjCCAxKgAwIBAgIEYegcXTANBgkqhkiG9w0BAQsFADB4MQswCQYDVQQGEwJD
+QzETMBEGA1UECAwKU29tZSBTdGF0ZTEYMBYGA1UECgwPQXJ2YWRvcyBGb3JtdWxh
+MRgwFgYDVQQLDA9hcnZhZG9zLWZvcm11bGExIDAeBgNVBAMMF3NuYWtlb2lsLWNh
+LWhhcnBvLmxvY2FsMB4XDTIyMDExOTE0MTI0NVoXDTIzMDExOTE0MTI0NVowggED
+MQswCQYDVQQGEwJDQzETMBEGA1UECAwKU29tZSBTdGF0ZTEWMBQGA1UEBwwNU29t
+ZSBMb2NhdGlvbjFDMEEGA1UECgw6QXJ2YWRvcyBQcm92aXNpb24gRXhhbXBsZSBT
+aW5nbGUgSG9zdCAvIE11bHRpcGxlIEhvc3RuYW1lczFBMD8GA1UECww4YXJ2YWRv
+cy1wcm92aXNpb24tZXhhbXBsZS1zaW5nbGVfaG9zdF9tdWx0aXBsZV9ob3N0bmFt
+ZXMxHTAbBgNVBAMMFGRvd25sb2FkLmhhcnBvLmxvY2FsMSAwHgYJKoZIhvcNAQkB
+FhFhZG1pbkBoYXJwby5sb2NhbDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBAKcELG+s1qGz3J+SqigcnRDgzVQKA1JXENnXGXbuB4OLwVeyoMznwf7ki6qQ
+VM9doR4oJOeynIvvGzvY9NMldwSPAyC37RtQ2gOPJIted8DhhxK3KKKnJcsDTM/K
+JGbr+vqIj6J6RjWULS7NH4jgygIcI0f/GVMuupfCUlhwKxXcIsA1lfxjYzj/jbM7
+X6cvuEk4E29L11tVpYlnbD0TRmKsm1bHT39Vgn4UUqOg4Kf1/+UU7KKpxZaHu7P1
+YWoqhHjyQ3LUg4BjF1Y2QMXY84grVLJtOHmAVGV5c/fRK/ZhvxE9LNcxiQieASQm
+6PwGziBUbvTiPWGQ9imBQsbnXysCAwEAAaMvMC0wKwYDVR0RBCQwIocECgACD4cE
+fwAAAYIUZG93bmxvYWQuaGFycG8ubG9jYWwwDQYJKoZIhvcNAQELBQADggEBAIFh
+1eYAeIlXwZ202wZPMUr/YUDeI6PyjxEA8V4UGZ/xh0WxnxqwbfTPODnHVmgqxfDu
+W3ov4bS46PYYh54oHOjGypxtPCD5Pc+gaEDmg9ns/LR+mK8xGsHmce3pVn9k6/3u
+0F65pslDgQbBVScPceMXDQr0bFkK0rSx6RA29auzGqoiJ5uIN3fm0vZd8aQO/cSp
+sHCIDSl78ICEKqnmEjtPeqzTSzIbRJWyFcsighdBw8SGXiOGAIMEsbYusPMwAzk/
+YRaJdEVtGTi3kbDhJUNUh99Gz9cbcmdtPywbNw6rnrYz43cgfnAa3hge92Lyq4la
+r+lxWkWLTVC9DRd2Z3M=
+-----END CERTIFICATE-----
diff --git a/jenkins/test-arvados-multinode/certs/download.key b/jenkins/test-arvados-multinode/certs/download.key
new file mode 100644
index 0000000..0dc8c28
--- /dev/null
+++ b/jenkins/test-arvados-multinode/certs/download.key
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCnBCxvrNahs9yf
+kqooHJ0Q4M1UCgNSVxDZ1xl27geDi8FXsqDM58H+5IuqkFTPXaEeKCTnspyL7xs7
+2PTTJXcEjwMgt+0bUNoDjySLXnfA4YcStyiipyXLA0zPyiRm6/r6iI+iekY1lC0u
+zR+I4MoCHCNH/xlTLrqXwlJYcCsV3CLANZX8Y2M4/42zO1+nL7hJOBNvS9dbVaWJ
+Z2w9E0ZirJtWx09/VYJ+FFKjoOCn9f/lFOyiqcWWh7uz9WFqKoR48kNy1IOAYxdW
+NkDF2POIK1SybTh5gFRleXP30Sv2Yb8RPSzXMYkIngEkJuj8Bs4gVG704j1hkPYp
+gULG518rAgMBAAECggEAIpUIpm8BWiYl7pytwvR5yT7jBR21pl0EzjZtvWR4BdLw
+S7pe9U6fqqmkCcMs7GsUq2vgiGFBbPArkW7Q8s91H2qFWUb8P4W0Prxq8riyzytj
+joqCTXuSpcCfLP9MHkuKgkm4hAoRc5Kk8GXku7Df4yP0Yjn+Am1QkY/ZARrosPO4
+SRuw+MepYB/mnQUr1+Y749R8D8I7+SAtn5Numv4qa5SSWbk9I+XP4xh3R0vy6PrW
+lV1al2cXr1RLRJkNOBzDAyGWEDfh4PxygHgQaN1I3YXRvJxgpJSHTOGRelo9gRxh
+TNGkKoA7IgGIWU+IxShgAeTIxSTp/Yty4iv9qLbzQQKBgQDVqxKE63yetFPvW+6E
+yHK1y7nFQlY3Zf91jlyjwHvpa8BACSdmJ7tSUqNnbs6xVT0Yi85Ocq4xwwn+jUK7
+vVMbUnsDpvBBait0FeH/AVqsie5l020lv2Tw70JxXrLpn6M/Ubo5SjP9Etcjxs0l
+5/bh3jzyQz/DJzH84pHpce+wewKBgQDIGvxQ7zvsBqCMtB7rwMdtYP/8hc8IJMxr
+hg7uGIQYEuaCf9n2TMsg3y53+4X3PQg4lAXpS04vrpdiWvLBHvAtptAehaOMgyN2
+Lx0KeaRj13A49xuXtUsLTBdsUeOECh249lqGDgVAJ8tsYl73n6SFP9nJGVx3Y7vl
+NjQ1vSrFEQKBgBah/l4yC4tMErACDuvlx7DWGaF5e2R22256W/nEg9uf3EdsMM4z
+WzZHJqPoKuDB5Kza8kmBAE6pGD/seqskTM9SF1G1tzFWq6+qObwnSpGIMsZ6dM9Q
+zMJwtZsIqu7wR/yHDbDP2V3vRva1MjnXrmESh2YqFXD4j+T3ovkVZoxNAoGADCiH
+mCtRCsBEVQhEsLJf66dvJlrC/42s1gOpOJJIxGWxl9BI4Aw+c1rcKfIga6tLqpRj
+347xyzfiftlj0pQcp8lw78nS7CCzsOSf8Rj/Agn/CZcKGCetzZvr+GrpVgZ/U9O0
+IF0NuJ4yX/2CI62Rg38jrnJaCe8HZZ/rgDBkPuECgYAS1cn1USjGkkrVkwY95MTX
+tlnVZiS1/sjGkwol+xvQ70AZiTQZqEDgXwF5r6AlZspVAs4a9dLjkY9TExo7Vr8w
+enLfAAyJdQTkXWSs7Xt2j/OMhROxrSsIjwICgBUuO3BqXP3Fvxoti6RrUzIcALDH
+SqsPDdxW2DibuIThvgJOcw==
+-----END PRIVATE KEY-----
diff --git a/jenkins/test-arvados-multinode/certs/keepproxy.crt b/jenkins/test-arvados-multinode/certs/keepproxy.crt
new file mode 100644
index 0000000..860cffd
--- /dev/null
+++ b/jenkins/test-arvados-multinode/certs/keepproxy.crt
@@ -0,0 +1,25 @@
+-----BEGIN CERTIFICATE-----
+MIIEPjCCAyagAwIBAgIEYegcXTANBgkqhkiG9w0BAQsFADB4MQswCQYDVQQGEwJD
+QzETMBEGA1UECAwKU29tZSBTdGF0ZTEYMBYGA1UECgwPQXJ2YWRvcyBGb3JtdWxh
+MRgwFgYDVQQLDA9hcnZhZG9zLWZvcm11bGExIDAeBgNVBAMMF3NuYWtlb2lsLWNh
+LWhhcnBvLmxvY2FsMB4XDTIyMDExOTE0MTI0NVoXDTIzMDExOTE0MTI0NVowggEE
+MQswCQYDVQQGEwJDQzETMBEGA1UECAwKU29tZSBTdGF0ZTEWMBQGA1UEBwwNU29t
+ZSBMb2NhdGlvbjFDMEEGA1UECgw6QXJ2YWRvcyBQcm92aXNpb24gRXhhbXBsZSBT
+aW5nbGUgSG9zdCAvIE11bHRpcGxlIEhvc3RuYW1lczFBMD8GA1UECww4YXJ2YWRv
+cy1wcm92aXNpb24tZXhhbXBsZS1zaW5nbGVfaG9zdF9tdWx0aXBsZV9ob3N0bmFt
+ZXMxHjAcBgNVBAMMFWtlZXBwcm94eS5oYXJwby5sb2NhbDEgMB4GCSqGSIb3DQEJ
+ARYRYWRtaW5AaGFycG8ubG9jYWwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQDUwFZeshUdkov9N1zE/2j4IY2HTvsp8lBKcB0/CJoJPU8ZPZO78XGGuhlo
+u2yPYXgqAWy13VO3N+/ZVRcbNi2y2YGjRQtpG2SK4WeaP/lInqLbIUtSpVzTA5tG
+78KpBMPwyDrFSUTJfIoEUsuQgxeiWSAzzkpKv4lXqzmS5ndaqMKnxtdAGUIbJTka
+QKqEtPmX/E/RFlWqX50HpLyI+s2QASRyJPJdnz2zaf7u0yxJ+JjIELbnO2dy87fU
+d+t6dMt7WFZhbtuq9eo77G8qCXSitsYyyGOKnyFvzfTBnI5/KpGlUVAqLw++P2uO
+h0nSXfogrEGCO+W8OeIEHP0V35WtAgMBAAGjQjBAMD4GA1UdEQQ3MDWHBAoAAg+H
+BH8AAAGCFWtlZXBwcm94eS5oYXJwby5sb2NhbIIQa2VlcC5oYXJwby5sb2NhbDAN
+BgkqhkiG9w0BAQsFAAOCAQEAulis0kP7PDmnnnw6JgoEhywq+txR7fFm2b3Hjfiu
+IK+Z0ZgDK/uphk3XV1VBZlMZRcW92f3hdPIM0sO6QYIPU+FZU7rtvtiwnU7gAif6
+2R4uRLKrjA62gTj46p1aeQyhbDhxiGtoLavi/OZ1r5ZkabEorBgplkxrGT6NPGV6
+asVpXyvUVGDlY8vwqR3S+mDSwTDO39f/RT8jJWNneG/4ZBWLWRyiDzDvrBb9Tbvm
+SE+Mw2TqB2nafLAQDke2ktaKU1GzgK/PgOjdPTMqBXepPWBrS44/5zzsQqCByaIb
+aWPlJlFPmqbr9uheCAgN6vAPKowZBOrUBtUPiIGYFHX0cw==
+-----END CERTIFICATE-----
diff --git a/jenkins/test-arvados-multinode/certs/keepproxy.key b/jenkins/test-arvados-multinode/certs/keepproxy.key
new file mode 100644
index 0000000..f5a9304
--- /dev/null
+++ b/jenkins/test-arvados-multinode/certs/keepproxy.key
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDUwFZeshUdkov9
+N1zE/2j4IY2HTvsp8lBKcB0/CJoJPU8ZPZO78XGGuhlou2yPYXgqAWy13VO3N+/Z
+VRcbNi2y2YGjRQtpG2SK4WeaP/lInqLbIUtSpVzTA5tG78KpBMPwyDrFSUTJfIoE
+UsuQgxeiWSAzzkpKv4lXqzmS5ndaqMKnxtdAGUIbJTkaQKqEtPmX/E/RFlWqX50H
+pLyI+s2QASRyJPJdnz2zaf7u0yxJ+JjIELbnO2dy87fUd+t6dMt7WFZhbtuq9eo7
+7G8qCXSitsYyyGOKnyFvzfTBnI5/KpGlUVAqLw++P2uOh0nSXfogrEGCO+W8OeIE
+HP0V35WtAgMBAAECggEAWRZtVFv38ZkzG4Z6R1e4aecK77UIAYmhS3plFMcSUXol
+zCj32wSAiG0XRL7u959WBSjxj7otWxSGUBiMg22Nd04TNf4siAfbczht/K57QYiE
+I4RumR37n7Tr6aludv4y2nnN+lzy+/g1hxfwfAQY+nedv3PLsj9AUMC3bCcrpX8v
+yGhkPj8smSwINsSAhUELhtTppMXJf2Qxv8oOR70Fl5fU88WwH+igNKZBIoBkf75w
+j0Mn6HxfVLXAOSDtX5BM0a1THOtvER2gOlv33ff5Hk0Txx043iC5Qb1GjHv/iYHk
+/Rhlhojv5YxKOLoF3CsOF7t0Upxazjv4r2ufWhhGtQKBgQD1eCmK439k0e3Pzt9D
+vwu8mDM5AQLUg+3WC3I2Dlr7MJ3EQK6v0U0RGLTdl22XbgbdCecOhPkGHkpc6bH2
+HUI1XWmTjMtTJhDBWJ8za5zMRGaZlchsTTFy1KpMDKdzGaStdXSXFFT+qPiqW7GZ
+E0Do2OhYRjkOTvJNDD8DsbCe5wKBgQDd4NpYxZtzoQdDgcIuYlFBLfA+00pcyUss
+yVJrJgzLGZuL5CkfyOu4FJRCReRKG/TdaXHSJCXklLWygLeM+XFFFMLwJVV7gppt
+LnMdLzwOR2aW+WXeozu+T44v2/3nTUsGPF4245+OCGkmls4hAMbx7fIyvecyj2Ls
+nU3JbV24SwKBgDTZYChU/rKYOBlLsuoFEePS6QRW4WMb3HL/F+HniVMXjoAYZQPZ
+jjwmE5q55ZB60eN5JFQN8QeOMfh7ICOa/Qw8RmTMJWKLiYP3Lp+Fhca821Ip23Ll
+08WjX97rwomXdcsaxLVaXUpO2urivwP0Dz+So8ONqu8XtDc+cbq74Qj1AoGADpoS
+pI70qQpq6PVsKxNLV6fHTMso9KxGpz7kjqqlYuRfiThNwIq/gJDSJP5mhL4MQloD
+JJo+aCmlP4cbDUsJOkugfJ9oXcV9ljvdVYlbQXFPfhYRrzI850xjBiFLN2Kt0k48
+wQ3/3SAOk3yPOjrL3PYU32QCCCDJmNrNWLk61rsCgYAhY+TgVs2o5JPzm3rqJxQq
+FOXOalDIUpod6sCuBTnTVwTZo3/hTXbUdaFsEc6zt3qdvesQd8OIJgPkKzGQxhIE
+7MFu2RblsJkso3FtdMKURFyzP8LrVgJ5e1lWYmIxLPujxmE9zhqjgvRqxGkJaK9S
++DnKhytzOI1IoEuWwwobIw==
+-----END PRIVATE KEY-----
diff --git a/jenkins/test-arvados-multinode/certs/snakeoil-ca.crt b/jenkins/test-arvados-multinode/certs/snakeoil-ca.crt
new file mode 100644
index 0000000..e623bc5
--- /dev/null
+++ b/jenkins/test-arvados-multinode/certs/snakeoil-ca.crt
@@ -0,0 +1,22 @@
+-----BEGIN CERTIFICATE-----
+MIIDpDCCAoygAwIBAgIUPN5xhyf2X+0JULhdVYeNbYk0H5swDQYJKoZIhvcNAQEL
+BQAweDELMAkGA1UEBhMCQ0MxEzARBgNVBAgMClNvbWUgU3RhdGUxGDAWBgNVBAoM
+D0FydmFkb3MgRm9ybXVsYTEYMBYGA1UECwwPYXJ2YWRvcy1mb3JtdWxhMSAwHgYD
+VQQDDBdzbmFrZW9pbC1jYS1oYXJwby5sb2NhbDAeFw0yMjAxMTkxNDEyNDRaFw0y
+MzAxMTkxNDEyNDRaMHgxCzAJBgNVBAYTAkNDMRMwEQYDVQQIDApTb21lIFN0YXRl
+MRgwFgYDVQQKDA9BcnZhZG9zIEZvcm11bGExGDAWBgNVBAsMD2FydmFkb3MtZm9y
+bXVsYTEgMB4GA1UEAwwXc25ha2VvaWwtY2EtaGFycG8ubG9jYWwwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC/HtbpdDB+xQ6/KAhyKYZGODxGPXddYe/J
+kcNogvQaeMel5GEqXkCNb7qkklawG5/1RAA0fUVMXVmAZi6UR6xdikRQch7O+ZpO
+nlCbwSdwzuQnPxzI1lBZY8USunUeImK2weAaF85q47rF9w5NZD7XCQGQ2rsjybmy
+/2cEggcI/3QHAMnFDxqYPCoOwNnL03ESown6kTeycUH8xZhFvL/CHhgHusgQQJrC
+wYPC0s7ANp/odNmIsnnmnaIOi7BmAAceEVMD8KriAmoBJFxlf3DW3TskyvYJNk6a
+r//lGS9wcRQ9UgFkEK8SlKE7k0708E+L49sDKOAMX4cDwAI8ERtfAgMBAAGjJjAk
+MBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB
+CwUAA4IBAQADfyT3g6giUZrEZN7ke1AGeaPR/xTKJ5OsJWrH6krupvAd3bMvI0BO
+1SJ6gG+5WeO37Wd3I+2nxeovndvvdEAg//lkQz8cIxPNq7YrSEykFE88Q8Qo81Zk
+c7TV5+xeERKRSPNgNVWZMfPTwEs0CdklNvZ7uS8X25ajF0NBwk68hcV4o7RBNhuA
+wjxg2OSqYEsYtpuDnSpULOLFfF2ZTPbtjDlUNFAbhtPuLuDtOv3mJuJLnIXM+mqp
+nHA+E3w8qCFHB/C8oM1tWGQ6xcs0oTjXdIox3IfvXjhShkBUAFAL9Qh5RjO+Yzr9
+eC3iqVTsBQvjKZVGQ2/LHZPuDzRE/l1B
+-----END CERTIFICATE-----
diff --git a/jenkins/test-arvados-multinode/certs/snakeoil-ca.key b/jenkins/test-arvados-multinode/certs/snakeoil-ca.key
new file mode 100644
index 0000000..cb1ec5d
--- /dev/null
+++ b/jenkins/test-arvados-multinode/certs/snakeoil-ca.key
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC/HtbpdDB+xQ6/
+KAhyKYZGODxGPXddYe/JkcNogvQaeMel5GEqXkCNb7qkklawG5/1RAA0fUVMXVmA
+Zi6UR6xdikRQch7O+ZpOnlCbwSdwzuQnPxzI1lBZY8USunUeImK2weAaF85q47rF
+9w5NZD7XCQGQ2rsjybmy/2cEggcI/3QHAMnFDxqYPCoOwNnL03ESown6kTeycUH8
+xZhFvL/CHhgHusgQQJrCwYPC0s7ANp/odNmIsnnmnaIOi7BmAAceEVMD8KriAmoB
+JFxlf3DW3TskyvYJNk6ar//lGS9wcRQ9UgFkEK8SlKE7k0708E+L49sDKOAMX4cD
+wAI8ERtfAgMBAAECggEBAL5n7xyukRH7KPHw5Fk4XXnf1Mz1t9HlHIvpGJEqxh8J
+bX4sxVD8jbtbMMt8r7jMDNTBZqLkmwG1jtGI+6bmsSaP9fdfeqohqkXhG9XQ3YZZ
+2JvxGLBOM8aay2AZO01GXKpPBQF57kA3mYBY3nrkAGcjpde20vKYqtVV9kBber7O
+ZjR/lVCej0spDOujKGGYphlbK8+bbbynWV6LUKhjQnTJSntqxFrM9Qxt8yW0+zHw
+RMUAoeHWUaN726bd0zeVEj0k7D/rbWoKlK2m+//6GnHt+nZ8/Q4cj3xLZlasaijG
+1e6HjrAPuEZdOE77370TnSD+5FHcguqLMZr4tnNYsWECgYEA941X1qE35Ao7ZYYo
+sbxtJId+s0al1Lh7NTZ/ov5lgFjzErcdjwUMVEK+OTFPUlvQAWb4d6FHv120TK0+
+e74JRleLx9931JAcwnejs+rPs+wYeoXBEbfKJnkfUuyLV9V8n5GHYQN7i3v+4CoI
+IR/3KrdkC7t3ht502g1hfDjShdMCgYEAxaR//kpD9ksIl+lgUtNoFo2tfEDujKWY
+jaMz2NCCEWE/ucfpriU/yZ+aZwT5Z+HuzZkZfMKLYi7mCxvJeQO16SbKIyB9XU0V
+EgLAj7wkBVPAZBJcW1/MPh2qEotK8wPjecdLWdm+NmZuXNnR4oA5A4AfXgsCreuh
+YvWrif77YMUCgYA2TGty6YPf4hqrJyUv7xulgo7Y9esT4K8tudl/P/u1jk0q0r2K
+DFpq9QTSeK1kbD0QwaxIWTjqkbwlgW6OJ93S7wr6+VpIZp/YS/O9WAjc9zFbVpFF
+uKF/lNu5Dad2yZ3/RiWCswfbTYRXWQDVezR0yysHo8QQ8iSBW6QBYllS/wKBgFJb
+Ws5uyeUenSUYJYA+AbisLueA8yZ+dpRGtnsZX6m4WWKj8DcV5H+y1xcolnj4R5c6
+vckkFArEui1U1d5scmgGNuLuTe8MCMSpiu4aGvRxUtEgaYXV5HjZyZ3Sl1eufiKn
+rjlxp3ZptoFQbsowXhGcWPXKJsKsVmKzNljZfIx1AoGBAM4oJf8sLC0xcd8t98Ex
+XJmcckNTjdgPiVSAZpw70piZiHAjH7GwQcHOzl0TyVZV8wJhDfwObX3sy4npY9ke
+KZUY28Umg9TZhPhbJlMk8kFlpJyzTHro1hH9fPBnIft1tbg+J+S6XmcFDVH1VOKt
+IJHv853fFWlYNhWxiFHkd7XN
+-----END PRIVATE KEY-----
diff --git a/jenkins/test-arvados-multinode/certs/webshell.crt b/jenkins/test-arvados-multinode/certs/webshell.crt
new file mode 100644
index 0000000..9a6beb1
--- /dev/null
+++ b/jenkins/test-arvados-multinode/certs/webshell.crt
@@ -0,0 +1,25 @@
+-----BEGIN CERTIFICATE-----
+MIIEKjCCAxKgAwIBAgIEYegcXTANBgkqhkiG9w0BAQsFADB4MQswCQYDVQQGEwJD
+QzETMBEGA1UECAwKU29tZSBTdGF0ZTEYMBYGA1UECgwPQXJ2YWRvcyBGb3JtdWxh
+MRgwFgYDVQQLDA9hcnZhZG9zLWZvcm11bGExIDAeBgNVBAMMF3NuYWtlb2lsLWNh
+LWhhcnBvLmxvY2FsMB4XDTIyMDExOTE0MTI0NVoXDTIzMDExOTE0MTI0NVowggED
+MQswCQYDVQQGEwJDQzETMBEGA1UECAwKU29tZSBTdGF0ZTEWMBQGA1UEBwwNU29t
+ZSBMb2NhdGlvbjFDMEEGA1UECgw6QXJ2YWRvcyBQcm92aXNpb24gRXhhbXBsZSBT
+aW5nbGUgSG9zdCAvIE11bHRpcGxlIEhvc3RuYW1lczFBMD8GA1UECww4YXJ2YWRv
+cy1wcm92aXNpb24tZXhhbXBsZS1zaW5nbGVfaG9zdF9tdWx0aXBsZV9ob3N0bmFt
+ZXMxHTAbBgNVBAMMFHdlYnNoZWxsLmhhcnBvLmxvY2FsMSAwHgYJKoZIhvcNAQkB
+FhFhZG1pbkBoYXJwby5sb2NhbDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBAMlV48wRtJUm9aygMzSTIJR2WzaW2MkhfY/oieVZAxdysprgtHGRBEKt4A8F
+1dE5fR4+8GeERdFOOIpV9eVES+csO08z/JdGABl7w/CTbEMTG1vMrixkvo2FM1v/
+lYeNL3emPzq6MUr9fjVrORMaYMpg2IW88raOMCAMQ6Nmbh9YKjRSAV5K4xgDaqGv
+EwAGJHlA36ItxDaE+2a0dth4WYNsDxCQYdW1v56CyzMl6j6wxvRZuCbE6dbgV0Y1
+BVXz7QQc1EyGRdhAg1EyOlqIv1WNeOc2lF+tIitv4kael+sthpNBdm9Hj/7+9tVc
+C7KcQa3O3NFTRhxLVHQSWbvUfZkCAwEAAaMvMC0wKwYDVR0RBCQwIocECgACD4cE
+fwAAAYIUd2Vic2hlbGwuaGFycG8ubG9jYWwwDQYJKoZIhvcNAQELBQADggEBAIAc
+kVQsRzcdz4sOUjvXVgTFMu28bhSmaskL0Rdt4OqJ49TfMCDVlBZXw+RPpZB6o3wV
++I6pva/H+JWDkJxuoZITCD8ScH8gMBhEHOvzX+4FqFYfxWXb8f5hLuwP9D4u7+9Y
+9eePCXqdxd+5Z3Ea8s86SKtsfywZgzYW08MKDLGtQOoSxYq96o21xoIejwFrxdkF
+cmo+Mx6yRy3YB6JerhIt1qiA8rvoppEmiu/apwK/JBoldUokh+XD8gqTRRCgquWV
+7tlEbjDqBFsiNHdcSs4lwy+/z3rspvOB5EQIacdnB8cVngVfe5b4keFuFVdJsQ5b
++n3GjziRBYKq06fvsps=
+-----END CERTIFICATE-----
diff --git a/jenkins/test-arvados-multinode/certs/webshell.key b/jenkins/test-arvados-multinode/certs/webshell.key
new file mode 100644
index 0000000..b9c9b77
--- /dev/null
+++ b/jenkins/test-arvados-multinode/certs/webshell.key
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDJVePMEbSVJvWs
+oDM0kyCUdls2ltjJIX2P6InlWQMXcrKa4LRxkQRCreAPBdXROX0ePvBnhEXRTjiK
+VfXlREvnLDtPM/yXRgAZe8Pwk2xDExtbzK4sZL6NhTNb/5WHjS93pj86ujFK/X41
+azkTGmDKYNiFvPK2jjAgDEOjZm4fWCo0UgFeSuMYA2qhrxMABiR5QN+iLcQ2hPtm
+tHbYeFmDbA8QkGHVtb+egsszJeo+sMb0WbgmxOnW4FdGNQVV8+0EHNRMhkXYQINR
+MjpaiL9VjXjnNpRfrSIrb+JGnpfrLYaTQXZvR4/+/vbVXAuynEGtztzRU0YcS1R0
+Elm71H2ZAgMBAAECggEANIq8oxHvzYjYTk+UbWED/JqSnUFqm7qouPiXnAnJu8HM
+CI0hqg2NThVwRptgPHTDSTRlqq4jRkcijD94p3dWU6MAa2AGyDeVaREahlsCwtJm
+rmNRBPbZn7cmOxkNHc3jmFcDY0EaAhb7a9dqkqisn8P8XZJ8yNV8i7CHqknd7UGv
+SFlpsuKZXV48F2FwNabgWv63Oc7AbA2dXQ1H0SLph+BsfqpflwaIT0bwnEbkty7K
+O0Zhk8WI+FohWk/IVFy3i+mFZmBaEHP3F5YJazDeWd9spKRQigyo1W/1id+xn5ux
+otY3aQpAZeUS73m9iIgKzvs0USna4y3UmQk9o6pr8QKBgQDuJdvGMKBtXM7BL2kO
+PvaIPZtSTONS+bOZNOgH9dTJBXklfpvL+/vpENAquGbwhPduUv5OV8Wj6+ejWW5f
+l5DhsF9b2abPv2B39IKBxmkgGoR0uAmcTo49PLQM7RGP8G8m+SPDxTtA9Sbf21EW
+9yt8nOK+8e7BfOUAlQzDQGTl1QKBgQDYbZbBlnfg+ntk+RGPt4o6qFvzUXWTuiFt
+SnisZencGWTE+MIvDu+RlUw/G8fWNHhZLuL3iiCJQtzlfiT7Y6Jn3ZxPuNKcsBzd
+4W/WQctjYH0lePBzO/TdkRifCG9jBq73s0PCF7HZiVIVJHPOwQPXclWyi6xdRVsL
+hGg7kS8GtQKBgHA9l5+JO5NPsoKKfdEhC8CaiKH5awqodWU38kQOMQOteLObQIKb
+eNcX/YSk9J9Xi+aLZyA1bgkcHkh21fZn0PkNz2PS6TPw1t6ydvADO3jOBq+cLatl
+utRRz+pnsWdNwpVzxs92Hb83y+Kl00onpG9O4e9sx0KaQrRLi4Ba0TMhAoGAOyEN
+rAwg6l1ksvx9OMeLQ2VV4c8ikV6r3UEYYPljABgL+OiBnPu2pg6lCyTa3wHs02jE
+555cL0QON8DT976L01avavRyzg4rhM8fj+jf2WG2LzOwdbsutg37LQ/P5r0ftlrK
+q09v7p/exhn0bcs78nOxSBty1vSo4Cenloae03UCgYBRxqZvoC0Zg1T4dGFJ3xxw
+Hqj8FM37rzH/AqaXdi1yF3ZbtamDNWu4dcdTBq7WBHwrvw8nRog8WQGqmTX+uClQ
+UBvu7aCybophhL+TQnXcRP0lkG0cF+3DFx5Yvus4gUcj+qCQI1WKrggteRscXqOG
+yX6cjVqVoVbKaUSjqagv6Q==
+-----END PRIVATE KEY-----
diff --git a/jenkins/test-arvados-multinode/certs/websocket.crt b/jenkins/test-arvados-multinode/certs/websocket.crt
new file mode 100644
index 0000000..1141021
--- /dev/null
+++ b/jenkins/test-arvados-multinode/certs/websocket.crt
@@ -0,0 +1,25 @@
+-----BEGIN CERTIFICATE-----
+MIIEPDCCAySgAwIBAgIEYegcXDANBgkqhkiG9w0BAQsFADB4MQswCQYDVQQGEwJD
+QzETMBEGA1UECAwKU29tZSBTdGF0ZTEYMBYGA1UECgwPQXJ2YWRvcyBGb3JtdWxh
+MRgwFgYDVQQLDA9hcnZhZG9zLWZvcm11bGExIDAeBgNVBAMMF3NuYWtlb2lsLWNh
+LWhhcnBvLmxvY2FsMB4XDTIyMDExOTE0MTI0NFoXDTIzMDExOTE0MTI0NFowggEE
+MQswCQYDVQQGEwJDQzETMBEGA1UECAwKU29tZSBTdGF0ZTEWMBQGA1UEBwwNU29t
+ZSBMb2NhdGlvbjFDMEEGA1UECgw6QXJ2YWRvcyBQcm92aXNpb24gRXhhbXBsZSBT
+aW5nbGUgSG9zdCAvIE11bHRpcGxlIEhvc3RuYW1lczFBMD8GA1UECww4YXJ2YWRv
+cy1wcm92aXNpb24tZXhhbXBsZS1zaW5nbGVfaG9zdF9tdWx0aXBsZV9ob3N0bmFt
+ZXMxHjAcBgNVBAMMFXdlYnNvY2tldC5oYXJwby5sb2NhbDEgMB4GCSqGSIb3DQEJ
+ARYRYWRtaW5AaGFycG8ubG9jYWwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQDqhx0uOs7JCnpRF6D2Ua28YaDyNIHpiuM+SIyy7MhMPZji30fPdzoMx+PE
+pGwNJZu0eS3h76su1SilITS5sM5K495Edvq2EUuVtSygYIdfRbgbeG/GDGT8uHFy
+cxKndeCwhKffHvr1Dwh1PcxW/qOzB6Cdi+YL2mJS3QquMmp5Qj/hdgp+HI0pxhG3
+xmuM4r/NrKS0YhX+pLiF1qOij1fob5WJ98gfN5jccKL3tdFyWWEGJhXlRFc2ctFw
+JYnzEXYOUf02FlsTPz6jfp7h/fHql9xhvmJmDrQjowGId3XFLtuOJ2LuRoUwONYo
+1pbO4OPRXmZkWT8gwyyoI2GqWBWJAgMBAAGjQDA+MDwGA1UdEQQ1MDOHBAoAAg+H
+BH8AAAGCFXdlYnNvY2tldC5oYXJwby5sb2NhbIIOd3MuaGFycG8ubG9jYWwwDQYJ
+KoZIhvcNAQELBQADggEBAIb5EQ00vCOxFMuhazauI3wi/Egk4HenbwKT1hfJtInM
+XpmSmDeujKwZXtrcNyvsI0EIDUQ/3sPKVGJApXn3ZNbAJ2yNyFNLhblSKzKMdIDh
+fF+NpqbqfBoDq4AwoKQ31jBGjifDZE810pqElQQaIzku8ZYthD3tFVMjawhnmp7K
+dbbP7mIIEYrixTpcwqNhQI4csT1KIXuVzKPhQWUnoOq3pAkVnntAQnyQO0HyHvxz
+UkAKsEw0y2IbNmV9MQH9Nn4+7VCB8V/O1SXcGkEdx2Ysp8z6L/w0Chrs1kCZTu6C
+NTmCoe6oiV74/z74/K/WP+UFa1WJ6e9UQIHiFbz/7/Q=
+-----END CERTIFICATE-----
diff --git a/jenkins/test-arvados-multinode/certs/websocket.key b/jenkins/test-arvados-multinode/certs/websocket.key
new file mode 100644
index 0000000..1aefe6d
--- /dev/null
+++ b/jenkins/test-arvados-multinode/certs/websocket.key
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDqhx0uOs7JCnpR
+F6D2Ua28YaDyNIHpiuM+SIyy7MhMPZji30fPdzoMx+PEpGwNJZu0eS3h76su1Sil
+ITS5sM5K495Edvq2EUuVtSygYIdfRbgbeG/GDGT8uHFycxKndeCwhKffHvr1Dwh1
+PcxW/qOzB6Cdi+YL2mJS3QquMmp5Qj/hdgp+HI0pxhG3xmuM4r/NrKS0YhX+pLiF
+1qOij1fob5WJ98gfN5jccKL3tdFyWWEGJhXlRFc2ctFwJYnzEXYOUf02FlsTPz6j
+fp7h/fHql9xhvmJmDrQjowGId3XFLtuOJ2LuRoUwONYo1pbO4OPRXmZkWT8gwyyo
+I2GqWBWJAgMBAAECggEAEdxOVZn264qXvBs/j+Kyh3kr56YmCqIgIjsmM+4iZuP+
+A7EbZ+pdimGir/QRooKts/XSj7VP5RYorUK1IDsdyshFwhMJjtoMVo9goaoYRSIr
+HjRy1rNU8YYeZafr0MMCZI8FtdFHLWiCrWMSb8Get+Cp07W2xEpSWJsq2A9Q2oES
+wF/nF44e4JayZ19O5h/N+kOI/OUeWgh5WurJInZVs6J2tObAtvxYfJIIhT9uY9fR
+qf4xyOHzcusrskuMQOkKdaLx+ttv2hDtToqZdw9WLIwPKXo43tMjGmOprrVunsXN
+xgfgHP26c2tm7KlZBjCBmAcsjBD7hxK7cBjOi7TPvQKBgQD/HEC5wmuV6tNuh5k6
+IafgOR/B/Pq4+2RRIIFwtNcEfNtMYW5pERzOGQYUUOKtFV1YaRRqjYcIdCkO44h4
+c2bJ+ZKSlEK6eJ95pGXoFDCKterlETIxggZzB9/j4Z2OGn9pSDcxspDfdXkZ9Hvm
+AfTureqmU84Ghr4h3IW4Ay9t6wKBgQDrWHx8NKCvF64COrTLyV3ZeRUoCqVP0qKo
++ojzQxkA5Hd+R0nW/W56Fba4v4zWvm3gaPaZLmlTOmIKfQ83iLr21JyOs2YH1GP+
+rSLen82lydJfg1vN8gjfoEMjRl1MjFmOFQX78oYGgrGp1q417YQ0TaBYVtakQul4
+04CZKWxJWwKBgQCRvVI8zRUpUD35pv2ieBevwPKjoCKcCwIEVs2b1bQAnFOsDv1E
+iMIr+5+9e3gD6XCqUV2YgcHi0nmiR9pu9X6DZFCX7JsybDavB3wwWVhh5guLUYeb
+QOzuSlFdnkakJ/8h5l+hxKF/B11ntoQRooyKzlB/NOE+WTvFnHXH6gnugQKBgQDp
+usyPEjlPC0Zuwl0SUt9Y/07KoKADQZ74ETF33vhzEXO3PxePY8yXhP8eRmaaUy+O
+gs/928EQvlfmMMOvFKUSRJ9jfbnkJsRUhyCtVqoHcAP1heDkDO9RILnsy5IXVwAO
+AsUZrof66UuG8EW+GzCEPV/0u/GZ2zZCIFOESUZZJwKBgQCW9F+FZKBVzPLLW1wU
+XZJ5eg5N1biLV/hcZEK99GSL7HpHzu2psk5/JJukhxNhFVZe4tDq0xhxLylD3MIp
+V9BKy9kMBkZOrLXLH/VnWs+r6mIvYrsFchBcktJODV2BgikKu2aNrydckpEjkweI
+O0D1PCDroe11Rk0Y/Wpd6pDARA==
+-----END PRIVATE KEY-----
diff --git a/jenkins/test-arvados-multinode/certs/workbench.crt b/jenkins/test-arvados-multinode/certs/workbench.crt
new file mode 100644
index 0000000..6b54e98
--- /dev/null
+++ b/jenkins/test-arvados-multinode/certs/workbench.crt
@@ -0,0 +1,25 @@
+-----BEGIN CERTIFICATE-----
+MIIELDCCAxSgAwIBAgIEYegcXTANBgkqhkiG9w0BAQsFADB4MQswCQYDVQQGEwJD
+QzETMBEGA1UECAwKU29tZSBTdGF0ZTEYMBYGA1UECgwPQXJ2YWRvcyBGb3JtdWxh
+MRgwFgYDVQQLDA9hcnZhZG9zLWZvcm11bGExIDAeBgNVBAMMF3NuYWtlb2lsLWNh
+LWhhcnBvLmxvY2FsMB4XDTIyMDExOTE0MTI0NVoXDTIzMDExOTE0MTI0NVowggEE
+MQswCQYDVQQGEwJDQzETMBEGA1UECAwKU29tZSBTdGF0ZTEWMBQGA1UEBwwNU29t
+ZSBMb2NhdGlvbjFDMEEGA1UECgw6QXJ2YWRvcyBQcm92aXNpb24gRXhhbXBsZSBT
+aW5nbGUgSG9zdCAvIE11bHRpcGxlIEhvc3RuYW1lczFBMD8GA1UECww4YXJ2YWRv
+cy1wcm92aXNpb24tZXhhbXBsZS1zaW5nbGVfaG9zdF9tdWx0aXBsZV9ob3N0bmFt
+ZXMxHjAcBgNVBAMMFXdvcmtiZW5jaC5oYXJwby5sb2NhbDEgMB4GCSqGSIb3DQEJ
+ARYRYWRtaW5AaGFycG8ubG9jYWwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQDFehrmlOAcESjhlRc9wxH/SGootA2woq3RfEVAgrNJq2w9ApP8l0R054PY
+Xe3OF409D1PNghl/CXV6hFFQndrYa5rF2ZTY+UfakCc+T0z9etxtKjZarlBujiWi
+93E00d6pwRzPAsFky8L3OtG3nasSnF1y48DyQdIqwpT6nVjjvyeqvKhUF76ydJi0
+A/n/YdEKvvOqLT+dpth1SmGPZPKKUwpWp5Seb+/hoLYqQu1mTTJDdi6uU575qRxT
++NUNyZRq/avilYBmCR2IgkZYs3uTjbrJe/pQD7xc3AWF0kL7/JtMMgpPf0EbFUET
+x69J6oebC4gZgKmSdpMlhyrR8rUVAgMBAAGjMDAuMCwGA1UdEQQlMCOHBAoAAg+H
+BH8AAAGCFXdvcmtiZW5jaC5oYXJwby5sb2NhbDANBgkqhkiG9w0BAQsFAAOCAQEA
+bDGWNlruQ/A4VFWZkmYBPily+uLUD+bG6vVTbYhj64/t3h7si6yjYKIlbuos1OXa
+W5kt45stbfsI0Dj4GCp84gcZ4+Ke/rXUUfS3U7sjlb9iyZwQ2bSfKz5faDFEzZSg
+dB9G3PBcrLmtKHbNR5RxZld1ktyWxhBA5Df+mKwKL+Zst/4x5pU4JLXczz/1wfEm
+orY4VepDgPdT5gXaRFnmrFuGCXuZTnpHqyWX0R+gEstxw83NVZaPjoGlFyVz9JE9
+7IaFE1bnFyAR8rvjNGpCNdX8EJGd4OY0pcvRk8uwl++nI/zASnnk4kNBE7vvk478
+PlE88gIUKEhDv9QvJiE4MQ==
+-----END CERTIFICATE-----
diff --git a/jenkins/test-arvados-multinode/certs/workbench.key b/jenkins/test-arvados-multinode/certs/workbench.key
new file mode 100644
index 0000000..0490347
--- /dev/null
+++ b/jenkins/test-arvados-multinode/certs/workbench.key
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDFehrmlOAcESjh
+lRc9wxH/SGootA2woq3RfEVAgrNJq2w9ApP8l0R054PYXe3OF409D1PNghl/CXV6
+hFFQndrYa5rF2ZTY+UfakCc+T0z9etxtKjZarlBujiWi93E00d6pwRzPAsFky8L3
+OtG3nasSnF1y48DyQdIqwpT6nVjjvyeqvKhUF76ydJi0A/n/YdEKvvOqLT+dpth1
+SmGPZPKKUwpWp5Seb+/hoLYqQu1mTTJDdi6uU575qRxT+NUNyZRq/avilYBmCR2I
+gkZYs3uTjbrJe/pQD7xc3AWF0kL7/JtMMgpPf0EbFUETx69J6oebC4gZgKmSdpMl
+hyrR8rUVAgMBAAECggEAekqQqCSf2KHDyFb0ypmn5ohovYYrSCymKamklTubXc7b
+u7iB/pWKnj7VBkO8xbkODTcVtZmQwnwQFWwlkx/+a7HPaiDBLdDJ747/znV7fyn7
+oVrXyDZUtvIuWoqTv5sMIeHmPkg9jXcl6MazIttwGplcwY5LaXrbdQGFEuIoLviU
+Z956FdOMYV3zw+fAtwJukId/3t/qnHfQr3RgElfZc8Xhf8vJn87OYqLPWUq5fIDo
+9beN4p5mXGqroaNkXsmGy932F4S+nJNekJjVwKzbtkK9WTKP6hiZNDN+VvvlwssJ
+BSYX5IaoZLkynM6Quy+DWFbFt2suZP7pdJ/7BhM6gQKBgQD83UaVfxUqy89DSWI1
+1/PUv11SldomBkb85Un5qRn5WL38HGjPdjGk09p8g7P5wc3hl8fsxIDe5Q0Ed+/E
+phead+ArjhlDrFYaYkpG1Nn0OmSIwXE8kDx3dPOaYyRExLUmsIvqIZ42IawwMwGT
+MT/5lnOTg4SjkFqZvncnDFgGIQKBgQDH7QAumMxxfiMPEssQwb9vEgzBhI2tTcKk
+cZXSDFQ/QZh0KA7ip6AoHMXdoe2U/K73nSaUjnDq0RDwCWgqfIljfQrBQkt3AcjK
+xVXjaSoBv9klcQj2MxPFM1Glsy0TrUXuIca0eHIgvwdJknFv/BP10BmI/+x7e46G
+wx13DurodQKBgQDWBrjKqqEQ8ydATam550pz5XGpCDt3+dI2FiESF0Zr3egYrzcr
+emA0ojiJMbSxDpAjhSPsTLrDbt4gzR99tBPAY/yzAPhzZjgO5uj1oQ3GAXK8qfcd
+ivwTJENYhtfY+SJXWBFlIAVYzhF/TnzjyEjdCbJTxnsLMpDtFuClhXYv4QKBgFYI
+TO3AXynvp9KSucPKPEDluYuFKRqMvdfZ8SjkmVRnO92wZ0dt7uOUDimjxwM4AWsY
+u0NuUHUb5ngE9EhkMxMW+gvUJXle0TNA3AbyeFssXZtZGwwnSrivrtDpW9p90/v3
+mPSMaEBjNBWa6SnRhh1fob1stC0nLFwdlo5nYvsJAoGBANHK+mvwbMxV379KzbCO
+9UwcSQS26CU2XrMHlls7K/mR/wOn7htGtjUxjpxFlUpKzKlNFQFvYM8xA/8ZX9C5
+V0smgQLBXbodwHnswKeBem/TbFDDjZ6DjWmSLz2008Hg3ECo6gqdrojMnfRDqyUa
+K7R0hiApz37T/aUItIJu2A5W
+-----END PRIVATE KEY-----
diff --git a/jenkins/test-arvados-multinode/certs/workbench2.crt b/jenkins/test-arvados-multinode/certs/workbench2.crt
new file mode 100644
index 0000000..4d48a0d
--- /dev/null
+++ b/jenkins/test-arvados-multinode/certs/workbench2.crt
@@ -0,0 +1,25 @@
+-----BEGIN CERTIFICATE-----
+MIIELjCCAxagAwIBAgIEYegcXTANBgkqhkiG9w0BAQsFADB4MQswCQYDVQQGEwJD
+QzETMBEGA1UECAwKU29tZSBTdGF0ZTEYMBYGA1UECgwPQXJ2YWRvcyBGb3JtdWxh
+MRgwFgYDVQQLDA9hcnZhZG9zLWZvcm11bGExIDAeBgNVBAMMF3NuYWtlb2lsLWNh
+LWhhcnBvLmxvY2FsMB4XDTIyMDExOTE0MTI0NVoXDTIzMDExOTE0MTI0NVowggEF
+MQswCQYDVQQGEwJDQzETMBEGA1UECAwKU29tZSBTdGF0ZTEWMBQGA1UEBwwNU29t
+ZSBMb2NhdGlvbjFDMEEGA1UECgw6QXJ2YWRvcyBQcm92aXNpb24gRXhhbXBsZSBT
+aW5nbGUgSG9zdCAvIE11bHRpcGxlIEhvc3RuYW1lczFBMD8GA1UECww4YXJ2YWRv
+cy1wcm92aXNpb24tZXhhbXBsZS1zaW5nbGVfaG9zdF9tdWx0aXBsZV9ob3N0bmFt
+ZXMxHzAdBgNVBAMMFndvcmtiZW5jaDIuaGFycG8ubG9jYWwxIDAeBgkqhkiG9w0B
+CQEWEWFkbWluQGhhcnBvLmxvY2FsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEA5JbIUlfejpmC6wjc/kZ9opzVbHUv1lwpnJNGmRlJsVVbpvQwHmhcgGKe
+EeksYwX2TBtNto/eAleMWc+idPb/SJt9HNANX4RQnZ25RAzmB+uZ4eFrs7vr4bFp
+MKbQaILaDlTpyewdRBZxLPZFrievW1f7mykYdgzXUMaXa3H0i43BofdM04LAthtr
+Who5nwklstfylz0W4ItNYY0V3ph7dr9p0w1Dg+0BsYOdnBybJI+1HueeCRNddDnP
+fPaKkdH5kRa82p4VWXvNgKchpSRHlSiZe2D/lsuMHmfxYb5VvQThaqdjfkZgui7/
+a6daLV9HHNaclZPSZhAW377xOlWNhQIDAQABozEwLzAtBgNVHREEJjAkhwQKAAIP
+hwR/AAABghZ3b3JrYmVuY2gyLmhhcnBvLmxvY2FsMA0GCSqGSIb3DQEBCwUAA4IB
+AQBdEllDsZtv8Zxe5yKa1ICRbucBxDSlJ+mw8oiRU4oI2GzJ864LAQEW7ism3DcY
+mi/3U96UIlUKZg3NESVU2Pdp7rjKO9tfUmfynV9CnjHXR+IxyE9MSflwnPugltY/
+Lh/dtE30ngKb1hQ8fsilr/EC/wl0FESImEvvnHYndbJ+0EJgYCq773bvo/Fyh1PQ
+iXL4QIb0t5xPqaQDTsDoH1HsCNorKUqNXZJXbPyuZga1XHKddVj1tDfOY4Y9f7yx
+35Y0/V5hLeibMHReDpvMZSPf1hn+tubPSLdB98qkq3co2/cCb6srEt5J34SiOHs2
+tG+Bjoj7EbW62HDgb3O1v40X
+-----END CERTIFICATE-----
diff --git a/jenkins/test-arvados-multinode/certs/workbench2.key b/jenkins/test-arvados-multinode/certs/workbench2.key
new file mode 100644
index 0000000..6168952
--- /dev/null
+++ b/jenkins/test-arvados-multinode/certs/workbench2.key
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDklshSV96OmYLr
+CNz+Rn2inNVsdS/WXCmck0aZGUmxVVum9DAeaFyAYp4R6SxjBfZMG022j94CV4xZ
+z6J09v9Im30c0A1fhFCdnblEDOYH65nh4Wuzu+vhsWkwptBogtoOVOnJ7B1EFnEs
+9kWuJ69bV/ubKRh2DNdQxpdrcfSLjcGh90zTgsC2G2taGjmfCSWy1/KXPRbgi01h
+jRXemHt2v2nTDUOD7QGxg52cHJskj7Ue554JE110Oc989oqR0fmRFrzanhVZe82A
+pyGlJEeVKJl7YP+Wy4weZ/FhvlW9BOFqp2N+RmC6Lv9rp1otX0cc1pyVk9JmEBbf
+vvE6VY2FAgMBAAECggEBAJJal9dguvXCA7hH7HZA25+Jmnvea8prJ5lAEitjrXME
+m7HBFi3h05e/jEUbbXfZEWCY+qCwbAxD0XCPKAyLN9dc9jXEX0uQg6zmlv+i4oSf
+q96bXUGuR9AwrpCfvT+sx7/1TdoienplhACtjN98OSHaqxUksqyifBkTjU8VnuTZ
+oCPKle3W1pfzwLl16e3Qf8GmoHcul+siXHYAgRbCwo8Ya58HdvL1jPZqUXKnIRg+
+ULBCn2oiYoRy4I6VcsoH9FhCtG0qmqZprjOujgbYzWotkDMXy0CeBMbyoWzhAjkN
++se80q0eM5eKy0T0v+QMfAr6mAEcAeKdt/mQbcPJ+QECgYEA8nH7JhQxKVDDLA8p
+jQR2HufmEs3JE3j/gV6//8851iuUNo4xGnMeOimAvdOgxhNxzYCBtZCqbd6YwmdL
+Ek7Jgl6kjQI5HDXtwy0/R1PkkNKoVh7SPSLOzKsu3/I33bBTLzpkLsLLRVR1N/uX
+8p6X0T9JS1HB3AmyP9rVRQjVUa0CgYEA8V57lF5Or0VDZuSx4s6jV+YwlH0r4Ubh
+Hc/EHGjcXjegkV/6iBSvWOhECMB5wm0G0A2QOhkG/3RPEj/aOEb4RWlDf1rde3N6
+ADCThqB416/viCDp8Zl24eDmI+/gYSVXVA0S9/Q9XC4LkJQhJCYCeB0oXQ3QSNr6
+WkTyadZHljkCgYAjEtw7eQZXrMhfcl4XeYLBG9lL9RtWxtVn2NY74rXCRxGtBssR
+wX+o+GIYlCoZHa0EBsg9BQ2y0VYWIa1Zm65JPvndMGokq6SW7M/PuNJDJUaXFuRh
+VczHDSi92yO73YtbNL5TiXiwsfQ3Qh2MSuc5rUckL1K1S23PERBzaUC7DQKBgF6p
+pqAG6Kc26/tjwBxq3IcxwWXLPbVpngqaHJjjy2GsQW4ijVhnfGnLFju0eUx2hBB+
+8UzH2gXAMO7AWi5uLxrR8OX21hx/qp5+bq2DLEGzP6dM+VOG06g9EyWPA5o2Eezl
+/8V9Zb9MU77NSb4qphdDoDv2mfSo5T0YA1bc8lCJAoGAS0zjuCzzSjzsHB2i8PAZ
+xP0jq19ktM7n86fHnSDwrN4p67U24wK7n1MRwRy70s4/KpYZY1pQ5X8lrP8FoQZV
+0rmN+LI0zchwsxYWZX+Qj6Reo7vajrTVt7oM9AuifzZmrPEe1sn2IQkUE+kjakjT
+Rw/pRQaep46Ju57WC+8AlO4=
+-----END PRIVATE KEY-----
diff --git a/jenkins/test-arvados-multinode/script_test.multinode.sh b/jenkins/test-arvados-multinode/script_test.multinode.sh
new file mode 100755
index 0000000..66ba8ee
--- /dev/null
+++ b/jenkins/test-arvados-multinode/script_test.multinode.sh
@@ -0,0 +1,94 @@
+#!/bin/bash
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
+WORKSPACE=${1}
+ARVADOS_FORMULA_BRANCH=${2}
+RELEASE=${3}
+VERSION=${4}
+GIT_COMMIT=${5}
+BUILD_TAG=${6}
+
+### SCRIPT
+_exit_handler() {
+  local rc="$?"
+  trap - EXIT
+  if [ "$rc" -ne 0 ]; then
+    echo "Error occurred ($rc) while running $0 at line $1 : $BASH_COMMAND"
+  fi
+  exit "$rc"
+}
+
+# trap '_exit_handler $LINENO' EXIT ERR
+
+cd terraform || exit 1
+
+NODE_A_EXT=$(terraform output -json public_ip | jq -r .[0])
+NODE_B_EXT=$(terraform output -json public_ip | jq -r .[1])
+NODE_A_INT=$(terraform output -json private_ip | jq -r .[0])
+NODE_B_INT=$(terraform output -json private_ip | jq -r .[1])
+CLUSTER_NAME=$(terraform output -json cluster_name | jq -r .)
+
+echo "   + Waiting 10 seconds for nodes to be up"
+sleep 10
+
+cd $WORKSPACE/tools/salt-install || exit 1
+mkdir ${GIT_COMMIT}
+
+echo "== Preparing config files"
+cp -vr ./config_examples/multi_host/aws ${GIT_COMMIT}/local_config_dir
+### FIXME!!!! The multi-host arvados' configuration requires a LOT of env-dependent changes
+### which are a bit hard to modify in a script.
+### Using a modified version of the single_host/single_hostname file
+echo "== Copying a custom-made arvados pillar for this test case"
+cp -v ./config_examples/multi_host/aws/pillars/arvados_development.sls ${GIT_COMMIT}/local_config_dir/pillars/arvados.sls
+
+sed "s#cluster_fixme_or_this_wont_work#${CLUSTER_NAME}#g;
+     s#domain_fixme_or_this_wont_work#testing.arvados#g;
+     s#HOSTNAME_EXT=\"hostname_ext_fixme_or_this_wont_work\"#HOSTNAME_EXT=\"${CLUSTER_NAME}.testing.arvados\"#g;
+     s#IP_INT=\"ip_int_fixme_or_this_wont_work\"#IP_INT=\"127.0.0.1\"#g;
+     s#CLUSTER_INT_CIDR=10.0.0.0/16#CLUSTER_INT_CIDR=10.0.0.0/8#g;
+     s#CONTROLLER_INT_IP=.*#CONTROLLER_INT_IP=${NODE_A_INT}#g;
+     s#WEBSOCKET_INT_IP=.*#WEBSOCKET_INT_IP=${NODE_A_INT}#g;
+     s#KEEP_INT_IP=.*#KEEP_INT_IP=${NODE_A_INT}#g;
+     s#KEEPWEB_INT_IP=.*#KEEPWEB_INT_IP=${NODE_A_INT}#g;
+     s#KEEPSTORE0_INT_IP=.*#KEEPSTORE0_INT_IP=${NODE_A_INT}#g;
+     s#KEEPSTORE1_INT_IP=.*#KEEPSTORE1_INT_IP=${NODE_B_INT}#g;
+     s#WORKBENCH1_INT_IP=.*#WORKBENCH1_INT_IP=${NODE_A_INT}#g;
+     s#WORKBENCH2_INT_IP=.*#WORKBENCH2_INT_IP=${NODE_A_INT}#g;
+     s#WEBSHELL_INT_IP=.*#WEBSHELL_INT_IP=${NODE_A_INT}#g;
+     s#DATABASE_INT_IP=.*#DATABASE_INT_IP=${NODE_A_INT}#g;
+     s#SHELL_INT_IP=.*#SHELL_INT_IP=${NODE_B_INT}#g;
+     s#RELEASE=\"production\"#RELEASE=\"${RELEASE}\"#g;
+     s#SSL_MODE=\"lets-encrypt\"#SSL_MODE=\"bring-your-own\"#g;
+     s/# BRANCH=\"main\"/BRANCH=${ARVADOS_FORMULA_BRANCH}/g;
+     s/# VERSION=.*$/VERSION=\"${VERSION}\"/g" \
+     local.params.example.multiple_hosts > ${GIT_COMMIT}/debian11-local.params.example.multiple_hosts
+
+cp -vr /usr/local/arvados-dev/jenkins/test-arvados-multinode/certs tests provision.sh ${GIT_COMMIT}
+
+echo "== Setting up NODE_A with database,api,controller,keepstore,websocket,workbench2,keepbalance,keepproxy,workbench,dispatcher"
+
+echo "   + Copying files to NODE_A"
+scp -o "StrictHostKeyChecking=no" -r ${GIT_COMMIT}/* admin@${NODE_A_EXT}:
+
+echo "   + Installing NODE_A"
+ssh -o "StrictHostKeyChecking=no" admin@${NODE_A_EXT} sudo ./provision.sh \
+    --debug \
+    --roles database,api,controller,keepstore,websocket,workbench2,keepbalance,keepproxy,workbench \
+    --config debian11-local.params.example.multiple_hosts \
+    --development
+
+echo "== Setting up NODE_B with keepstore,keepweb,webshell,shell"
+
+echo "   + Copying files to NODE_B"
+scp -o "StrictHostKeyChecking=no" -r ${GIT_COMMIT}/* admin@${NODE_B_EXT}:
+
+echo "   + Installing NODE_B"
+ssh -o "StrictHostKeyChecking=no" admin@${NODE_B_EXT} sudo ./provision.sh \
+    --debug \
+    --roles keepstore,keepweb,webshell,shell,dispatcher \
+    --config debian11-local.params.example.multiple_hosts \
+    --development \
+    --test
diff --git a/jenkins/test-arvados-multinode/terraform/main.tf b/jenkins/test-arvados-multinode/terraform/main.tf
new file mode 100644
index 0000000..e764929
--- /dev/null
+++ b/jenkins/test-arvados-multinode/terraform/main.tf
@@ -0,0 +1,66 @@
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
+data "aws_ami" "debian" {
+  most_recent = true
+
+  filter {
+    name   = "name"
+    values = ["debian-11-amd64-*"]
+  }
+
+  filter {
+    name   = "architecture"
+    values = ["x86_64"]
+  }
+
+  # Debian's
+  owners = ["136693071363"]
+}
+
+resource "random_password" "cluster_name" {
+  length  = 5
+  upper   = false
+  special = false
+}
+
+module "ec2_cluster" {
+  source  = "terraform-aws-modules/ec2-instance/aws"
+  version = "~> 3.5"
+
+  count = var.instances_count
+
+  name = "${var.instance_name_prefix}-${count.index}"
+
+  ami                         = data.aws_ami.debian.id
+  instance_type               = "t3.medium"
+  associate_public_ip_address = true
+  ebs_optimized               = true
+
+  root_block_device = [{
+    encrypted             = true,
+    volume_size           = 50,
+    delete_on_termination = true,
+  }]
+
+  key_name   = var.user_key
+  monitoring = false
+  # These are tordo's SGs
+  vpc_security_group_ids = [
+    "sg-07a8d44b8d75ab8de",
+    "sg-0b36cbad0a62e6154",
+    "sg-0fdce93c95877be0b",
+    "sg-0e8fdd7632926eac6"
+  ]
+  subnet_id = "subnet-05b635657ce13d74e"
+
+  tags = {
+    Name        = "${var.instance_name_prefix}-${count.index}"
+    Terraform   = "true"
+    Environment = "dev"
+    Owner       = "jenkins"
+    Ticket      = var.jenkins_build_tag
+    Cluster     = random_password.cluster_name.result
+  }
+}
diff --git a/jenkins/test-arvados-multinode/terraform/outputs.tf b/jenkins/test-arvados-multinode/terraform/outputs.tf
new file mode 100644
index 0000000..385b76f
--- /dev/null
+++ b/jenkins/test-arvados-multinode/terraform/outputs.tf
@@ -0,0 +1,20 @@
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
+output "id" {
+  value = module.ec2_cluster.*.id
+}
+output "private_dns_names" {
+  value = module.ec2_cluster.*.private_dns
+}
+output "public_ip" {
+  value = module.ec2_cluster.*.public_ip
+}
+output "private_ip" {
+  value = module.ec2_cluster.*.private_ip
+}
+output "cluster_name" {
+  sensitive = true
+  value     = random_password.cluster_name.result
+}
diff --git a/jenkins/test-arvados-multinode/terraform/provider.tf b/jenkins/test-arvados-multinode/terraform/provider.tf
new file mode 100644
index 0000000..a2826e3
--- /dev/null
+++ b/jenkins/test-arvados-multinode/terraform/provider.tf
@@ -0,0 +1,15 @@
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: Apache-2.0
+
+provider "aws" {
+  region  = "us-east-1"
+}
+
+terraform {
+  required_providers {
+    aws = {
+      version = "~> 4.8.0"
+    }
+  }
+}
diff --git a/jenkins/test-arvados-multinode/terraform/terraform.tfvars b/jenkins/test-arvados-multinode/terraform/terraform.tfvars
new file mode 100644
index 0000000..1805eef
--- /dev/null
+++ b/jenkins/test-arvados-multinode/terraform/terraform.tfvars
@@ -0,0 +1,7 @@
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
+instance_name_prefix = "__BUILD_TAG__"
+jenkins_build_tag    = "__BUILD_TAG__"
+user_key = "jenkins"
diff --git a/jenkins/test-arvados-multinode/terraform/variables.tf b/jenkins/test-arvados-multinode/terraform/variables.tf
new file mode 100644
index 0000000..9272eb1
--- /dev/null
+++ b/jenkins/test-arvados-multinode/terraform/variables.tf
@@ -0,0 +1,17 @@
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
+variable "jenkins_build_tag" {
+  type = string
+}
+variable "instance_name_prefix" {
+  type = string
+}
+variable "instances_count" {
+  type    = number
+  default = 2
+}
+variable "user_key" {
+  type = string
+}

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list