summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docker/LICENSE235
-rw-r--r--docker/README18
-rw-r--r--docker/csit/csit-shim/Dockerfile50
-rw-r--r--docker/csit/csit-shim/files/badkeypub1
-rw-r--r--docker/csit/csit-shim/files/sshconfig3
-rw-r--r--docker/csit/csit-shim/files/wrapdocker113
-rw-r--r--docker/csit/csit-sut/Dockerfile173
-rw-r--r--docker/csit/csit-sut/supervisord.conf24
-rw-r--r--docker/vpp/README18
-rw-r--r--docker/vpp/vpp-arm-centos8/files/badkey27
-rw-r--r--docker/vpp/vpp-arm-centos8/files/fdio-master.repo5
-rw-r--r--docker/vpp/vpp-arm-centos8/files/jenkins1
-rw-r--r--docker/vpp/vpp-arm-centos8/files/lf-update-java-alternatives57
-rw-r--r--docker/vpp/vpp-arm-centos8/files/sshconfig3
-rw-r--r--docker/vpp/vpp-arm-centos8/files/supervisord.conf23
-rw-r--r--docker/vpp/vpp-arm-ubuntu18/files/badkey27
-rw-r--r--docker/vpp/vpp-arm-ubuntu18/files/packagecloud1
-rw-r--r--docker/vpp/vpp-arm-ubuntu18/files/packagecloud_api3
-rw-r--r--docker/vpp/vpp-arm-ubuntu18/files/pc_push39
-rw-r--r--docker/vpp/vpp-arm-ubuntu18/files/sshconfig3
-rw-r--r--docker/vpp/vpp-centos/files/badkey27
-rw-r--r--docker/vpp/vpp-centos/files/fdio-master.repo5
-rw-r--r--docker/vpp/vpp-centos/files/jenkins1
-rw-r--r--docker/vpp/vpp-centos/files/lf-update-java-alternatives57
-rw-r--r--docker/vpp/vpp-centos/files/sshconfig3
-rw-r--r--docker/vpp/vpp-centos/files/supervisord.conf23
-rw-r--r--docker/vpp/vpp-centos8/files/CentOS-AppStream.repo19
-rw-r--r--docker/vpp/vpp-centos8/files/CentOS-Base.repo19
-rw-r--r--docker/vpp/vpp-centos8/files/badkey27
-rw-r--r--docker/vpp/vpp-centos8/files/epel.repo25
-rw-r--r--docker/vpp/vpp-centos8/files/fdio-master.repo5
-rw-r--r--docker/vpp/vpp-centos8/files/jenkins1
-rw-r--r--docker/vpp/vpp-centos8/files/lf-update-java-alternatives57
-rw-r--r--docker/vpp/vpp-centos8/files/sshconfig3
-rw-r--r--docker/vpp/vpp-centos8/files/supervisord.conf23
-rw-r--r--docker/vpp/vpp-ubuntu16/files/badkey27
-rw-r--r--docker/vpp/vpp-ubuntu16/files/lf-update-java-alternatives57
-rw-r--r--docker/vpp/vpp-ubuntu16/files/packagecloud1
-rw-r--r--docker/vpp/vpp-ubuntu16/files/packagecloud_api3
-rw-r--r--docker/vpp/vpp-ubuntu16/files/pc_push39
-rw-r--r--docker/vpp/vpp-ubuntu16/files/sshconfig3
-rw-r--r--docker/vpp/vpp-ubuntu18/files/badkey27
-rw-r--r--docker/vpp/vpp-ubuntu18/files/default-jdk-headless_1.8-59ubuntu2_amd64.debbin0 -> 1156 bytes
-rw-r--r--docker/vpp/vpp-ubuntu18/files/default-jre-headless_1.8-59ubuntu2_amd64.debbin0 -> 2168 bytes
-rw-r--r--docker/vpp/vpp-ubuntu18/files/jre10
-rw-r--r--docker/vpp/vpp-ubuntu18/files/lf-update-java-alternatives57
-rw-r--r--docker/vpp/vpp-ubuntu18/files/packagecloud1
-rw-r--r--docker/vpp/vpp-ubuntu18/files/packagecloud_api3
-rw-r--r--docker/vpp/vpp-ubuntu18/files/pc_push39
-rw-r--r--docker/vpp/vpp-ubuntu18/files/sshconfig3
-rw-r--r--docker/vpp/vpp-ubuntu20/files/badkey27
-rw-r--r--docker/vpp/vpp-ubuntu20/files/default-jdk-headless_1.8-59ubuntu2_amd64.debbin0 -> 1156 bytes
-rw-r--r--docker/vpp/vpp-ubuntu20/files/default-jre-headless_1.8-59ubuntu2_amd64.debbin0 -> 2168 bytes
-rw-r--r--docker/vpp/vpp-ubuntu20/files/jre10
-rw-r--r--docker/vpp/vpp-ubuntu20/files/lf-update-java-alternatives57
-rw-r--r--docker/vpp/vpp-ubuntu20/files/packagecloud1
-rw-r--r--docker/vpp/vpp-ubuntu20/files/packagecloud_api3
-rw-r--r--docker/vpp/vpp-ubuntu20/files/pc_push39
-rw-r--r--docker/vpp/vpp-ubuntu20/files/sshconfig3
m---------global-jjb0
-rw-r--r--jenkins-config/clouds/openstack/FDIOVEX-CI/centos7-builder-2c-2g.cfg2
-rw-r--r--jenkins-config/clouds/openstack/FDIOVEX-CI/centos7-builder-4c-4g.cfg2
-rw-r--r--jenkins-config/clouds/openstack/FDIOVEX-CI/centos7-builder-8c-8g.cfg2
-rw-r--r--jenkins-config/clouds/openstack/FDIOVEX-CI/centos7-docker-2c-2g.cfg4
-rw-r--r--jenkins-config/clouds/openstack/FDIOVEX-CI/centos7-docker-4c-4g.cfg4
-rw-r--r--jenkins-config/clouds/openstack/FDIOVEX-CI/cloud.cfg4
-rw-r--r--jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1604-builder-2c-2g.cfg2
-rw-r--r--jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1604-builder-4c-4g.cfg2
-rw-r--r--jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1604-builder-8c-32g.cfg2
-rw-r--r--jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1604-builder-8c-8g.cfg2
-rw-r--r--jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1604-docker-4c-4g.cfg6
-rw-r--r--jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1804-builder-2c-2g.cfg2
-rw-r--r--jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1804-builder-4c-4g.cfg2
-rw-r--r--jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1804-builder-8c-32g.cfg3
-rw-r--r--jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1804-builder-8c-8g.cfg2
-rw-r--r--jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1804-builder-arm64-4c-4g.cfg4
-rw-r--r--jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1804-docker-4c-4g.cfg2
-rw-r--r--jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1804arm-docker-4c-4g (renamed from jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1804-docker-arm64-4c-4g.cfg)5
-rw-r--r--jenkins-config/clouds/openstack/FDIOVEX/centos7-basebuild-4c-4g.cfg3
-rw-r--r--jenkins-config/clouds/openstack/FDIOVEX/cloud.cfg23
-rw-r--r--jenkins-config/clouds/openstack/FDIOVEX/ubuntu1404-basebuild-4c-4g.cfg3
-rw-r--r--jenkins-config/clouds/openstack/FDIOVEX/ubuntu1604-basebuild-4c-4g.cfg3
-rw-r--r--jenkins-config/clouds/openstack/FDIOVEX/ubuntu1604-basebuild-8c-32g.cfg3
-rw-r--r--jenkins-config/clouds/openstack/FDIOVEX/ubuntu1804-basebuild-4c-4g.cfg3
-rw-r--r--jenkins-config/global-vars-production.sh1
-rw-r--r--jenkins-config/global-vars-sandbox.sh1
-rw-r--r--jjb/ci-management/ci-management-jobs.yaml3
-rw-r--r--jjb/ci-management/package-list.sh50
-rw-r--r--jjb/ci-management/packagecloud-repo-cleanup.sh161
-rw-r--r--jjb/ci-management/packagecloud-repo-cleanup.yaml146
-rw-r--r--jjb/cicn/cicn.yaml6
-rw-r--r--jjb/csit/csit-perf.yaml355
-rw-r--r--jjb/global-defaults.yaml3
-rw-r--r--jjb/global-macros.yaml8
-rw-r--r--jjb/hicn/hicn.yaml16
-rw-r--r--jjb/scripts/setup_vpp_ubuntu_arm_test.sh60
-rw-r--r--jjb/scripts/setup_vpp_ubuntu_docker_test.sh2
-rw-r--r--jjb/scripts/vpp/api-checkstyle.sh30
-rw-r--r--jjb/scripts/vpp/arm-build-no-test.sh64
-rw-r--r--jjb/scripts/vpp/arm-build.sh72
-rw-r--r--jjb/scripts/vpp/build.sh21
-rw-r--r--jjb/scripts/vpp/debug-build.sh (renamed from jjb/scripts/vpp/clang-build.sh)17
-rw-r--r--jjb/scripts/vpp/parallel-vars.sh11
-rw-r--r--jjb/vpp/vpp.yaml64
104 files changed, 2369 insertions, 341 deletions
diff --git a/docker/LICENSE b/docker/LICENSE
new file mode 100644
index 00000000..20f96ba8
--- /dev/null
+++ b/docker/LICENSE
@@ -0,0 +1,235 @@
+-----------
+MIT License
+
+Copyright (c) 2019 snergfdio
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+-----------
+
+The above MIT license applies to all files and their contents at the time
+they were copied from
+ https://github.com/snergfdio/csit-shim
+ https://github.com/snergfdio/csit-sut
+
+All subsequent changes to the files and/or contents shall be subject to
+the Apache license below:
+
+-----------
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-----------
diff --git a/docker/README b/docker/README
new file mode 100644
index 00000000..2cbe9cd3
--- /dev/null
+++ b/docker/README
@@ -0,0 +1,18 @@
+This directory contains the docker image definitions for executor images
+which run CI jobs on the FD.io Nomad cluster.
+
+The files in the following repositories were originally created by Ed Kern
+for the Nomad container proof of concept build infrastructure for FD.io
+projects. The original source files and commit history can be found in the
+respective repositories at
+
+ https://github.com/snergfdio/csit-shim
+ https://github.com/snergfdio/csit-sut
+ https://github.com/snergfdio/vpp-arm-centos8
+ https://github.com/snergfdio/vpp-arm-ubuntu16
+ https://github.com/snergfdio/vpp-arm-ubuntu18
+ https://github.com/snergfdio/vpp-centos8
+ https://github.com/snergfdio/vpp-centos
+ https://github.com/snergfdio/vpp-ubuntu16
+ https://github.com/snergfdio/vpp-ubuntu18
+ https://github.com/snergfdio/vpp-ubuntu20
diff --git a/docker/csit/csit-shim/Dockerfile b/docker/csit/csit-shim/Dockerfile
new file mode 100644
index 00000000..288c49b1
--- /dev/null
+++ b/docker/csit/csit-shim/Dockerfile
@@ -0,0 +1,50 @@
+FROM ubuntu:18.04
+MAINTAINER Ed Kern <ejk@cisco.com>
+LABEL Description="CSIT shim container"
+LABEL Vendor="cisco.com"
+LABEL Version="1.2"
+
+# Setup the environment
+ENV DEBIAN_FRONTEND=noninteractive
+ENV NOTVISIBLE "in users profile"
+RUN echo "export VISIBLE=now" >> /etc/profile
+
+ADD files/wrapdocker /usr/local/bin/wrapdocker
+RUN chmod +x /usr/local/bin/wrapdocker
+
+# Install packages and Docker
+RUN apt-get -q update \
+ && apt-get install -y -qq \
+ bash \
+ curl \
+ iproute2 \
+ locales \
+ ssh \
+ sudo \
+ tzdata \
+ uuid-runtime \
+ && curl -fsSL https://get.docker.com | sh \
+ && rm -rf /var/lib/apt/lists/*
+
+# Configure locales
+RUN locale-gen en_US
+
+RUN mkdir /var/run/sshd
+RUN echo 'root:Csit1234' | chpasswd
+RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
+
+# SSH login fix. Otherwise user is kicked off after login
+RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
+
+# Need volume for sidecar docker launches
+VOLUME /var/lib/docker
+
+# SSH to listen on port 6022 in shim
+RUN echo 'Port 6022' >>/etc/ssh/sshd_config
+RUN echo 'Port 6023' >>/etc/ssh/sshd_config
+ADD files/badkeypub /root/.ssh/authorized_keys
+ADD files/sshconfig /root/.ssh/config
+
+# Start sshd by default
+EXPOSE 22
+CMD ["/usr/sbin/sshd", "-D"]
diff --git a/docker/csit/csit-shim/files/badkeypub b/docker/csit/csit-shim/files/badkeypub
new file mode 100644
index 00000000..57426845
--- /dev/null
+++ b/docker/csit/csit-shim/files/badkeypub
@@ -0,0 +1 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCyUNd/iRk5Ajw4ZBB0gXyjzecEzQHh/MctgvHGJjasqJDkwYyZBrunUorOZ3n82W8VGdd5+eNINCWOM/ERjuaHjnutfade+ocPgZRdk+kEgTvetDVNWIgBd0PMVcnp57jJfx7CZVqTNgGeVQ8OJ2RbJGeOb/EKApQI74IPkAfc0PSieSw5gC0eqEOHb39Awgp0ycrzsUHF/OEicfCmo+6vvrMGenDe7frKUoTKYMWs7l3DOyFC8NaOxhGD3J1Ne5u3A/r4w6mN1HVI0rFwIcoms+t0B4lb2ODWKZiZikQdn8/eqwsmbSEZZsWN3FkshgjPS83+dNqVwB6pPY5Yqte7 ejk@bhima.local
diff --git a/docker/csit/csit-shim/files/sshconfig b/docker/csit/csit-shim/files/sshconfig
new file mode 100644
index 00000000..85ad6f74
--- /dev/null
+++ b/docker/csit/csit-shim/files/sshconfig
@@ -0,0 +1,3 @@
+Host 172.17.0.*
+ StrictHostKeyChecking no
+ UserKnownHostsFile=/dev/null
diff --git a/docker/csit/csit-shim/files/wrapdocker b/docker/csit/csit-shim/files/wrapdocker
new file mode 100644
index 00000000..2ca579fd
--- /dev/null
+++ b/docker/csit/csit-shim/files/wrapdocker
@@ -0,0 +1,113 @@
+#!/bin/bash
+
+# Ensure that all nodes in /dev/mapper correspond to mapped devices currently loaded by the device-mapper kernel driver
+dmsetup mknodes
+
+# First, make sure that cgroups are mounted correctly.
+CGROUP=/sys/fs/cgroup
+: {LOG:=stdio}
+
+[ -d $CGROUP ] ||
+ mkdir $CGROUP
+
+mountpoint -q $CGROUP ||
+ mount -n -t tmpfs -o uid=0,gid=0,mode=0755 cgroup $CGROUP || {
+ echo "Could not make a tmpfs mount. Did you use --privileged?"
+ exit 1
+ }
+
+if [ -d /sys/kernel/security ] && ! mountpoint -q /sys/kernel/security
+then
+ mount -t securityfs none /sys/kernel/security || {
+ echo "Could not mount /sys/kernel/security."
+ echo "AppArmor detection and --privileged mode might break."
+ }
+fi
+
+# Mount the cgroup hierarchies exactly as they are in the parent system.
+for SUBSYS in $(cut -d: -f2 /proc/1/cgroup)
+do
+ [ -d $CGROUP/$SUBSYS ] || mkdir $CGROUP/$SUBSYS
+ mountpoint -q $CGROUP/$SUBSYS ||
+ mount -n -t cgroup -o $SUBSYS cgroup $CGROUP/$SUBSYS
+
+ # The two following sections address a bug which manifests itself
+ # by a cryptic "lxc-start: no ns_cgroup option specified" when
+ # trying to start containers withina container.
+ # The bug seems to appear when the cgroup hierarchies are not
+ # mounted on the exact same directories in the host, and in the
+ # container.
+
+ # Named, control-less cgroups are mounted with "-o name=foo"
+ # (and appear as such under /proc/<pid>/cgroup) but are usually
+ # mounted on a directory named "foo" (without the "name=" prefix).
+ # Systemd and OpenRC (and possibly others) both create such a
+ # cgroup. To avoid the aforementioned bug, we symlink "foo" to
+ # "name=foo". This shouldn't have any adverse effect.
+ echo $SUBSYS | grep -q ^name= && {
+ NAME=$(echo $SUBSYS | sed s/^name=//)
+ ln -s $SUBSYS $CGROUP/$NAME
+ }
+
+ # Likewise, on at least one system, it has been reported that
+ # systemd would mount the CPU and CPU accounting controllers
+ # (respectively "cpu" and "cpuacct") with "-o cpuacct,cpu"
+ # but on a directory called "cpu,cpuacct" (note the inversion
+ # in the order of the groups). This tries to work around it.
+ [ $SUBSYS = cpuacct,cpu ] && ln -s $SUBSYS $CGROUP/cpu,cpuacct
+done
+
+# Note: as I write those lines, the LXC userland tools cannot setup
+# a "sub-container" properly if the "devices" cgroup is not in its
+# own hierarchy. Let's detect this and issue a warning.
+grep -q :devices: /proc/1/cgroup ||
+ echo "WARNING: the 'devices' cgroup should be in its own hierarchy."
+grep -qw devices /proc/1/cgroup ||
+ echo "WARNING: it looks like the 'devices' cgroup is not mounted."
+
+# Now, close extraneous file descriptors.
+pushd /proc/self/fd >/dev/null
+for FD in *
+do
+ case "$FD" in
+ # Keep stdin/stdout/stderr
+ [012])
+ ;;
+ # Nuke everything else
+ *)
+ eval exec "$FD>&-"
+ ;;
+ esac
+done
+popd >/dev/null
+
+
+# If a pidfile is still around (for example after a container restart),
+# delete it so that docker can start.
+rm -rf /var/run/docker.pid
+
+# If we were given a PORT environment variable, start as a simple daemon;
+# otherwise, spawn a shell as well
+if [ "$PORT" ]
+then
+ exec dockerd -H 0.0.0.0:$PORT -H unix:///var/run/docker.sock \
+ $DOCKER_DAEMON_ARGS
+else
+ if [ "$LOG" == "file" ]
+ then
+ dockerd $DOCKER_DAEMON_ARGS &>/var/log/docker.log &
+ else
+ dockerd $DOCKER_DAEMON_ARGS &
+ fi
+ (( timeout = 60 + SECONDS ))
+ until docker info >/dev/null 2>&1
+ do
+ if (( SECONDS >= timeout )); then
+ echo 'Timed out trying to connect to internal docker host.' >&2
+ break
+ fi
+ sleep 1
+ done
+ [[ $1 ]] && exec "$@"
+ exec bash --login
+fi
diff --git a/docker/csit/csit-sut/Dockerfile b/docker/csit/csit-sut/Dockerfile
new file mode 100644
index 00000000..ba212dc9
--- /dev/null
+++ b/docker/csit/csit-sut/Dockerfile
@@ -0,0 +1,173 @@
+# Copyright (c) 2019 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+FROM ubuntu:18.04
+MAINTAINER csit-dev <csit-dev@lists.fd.io>
+LABEL Description="CSIT vpp-device ubuntu 18.04 SUT image"
+LABEL Version="0.7"
+
+# Setup the environment
+ENV DEBIAN_FRONTEND=noninteractive
+ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
+ENV NOTVISIBLE "in users profile"
+ENV VPP_PYTHON_PREFIX=/var/cache/vpp/python
+
+# Install packages and Docker
+RUN apt-get -q update \
+ && apt-get install -y -qq \
+ # general tools
+ apt-transport-https \
+ bridge-utils \
+ cloud-init \
+ curl \
+ gdb \
+ locales \
+ net-tools \
+ openssh-server \
+ pciutils \
+ rsyslog \
+ software-properties-common \
+ ssh \
+ sudo \
+ supervisor \
+ tar \
+ vim \
+ wget \
+ # csit requirements
+ cmake \
+ dkms \
+ gfortran \
+ libblas-dev \
+ libffi-dev \
+ liblapack-dev \
+ libpcap-dev \
+ libssl-dev \
+ python-all \
+ python-apt \
+ python-cffi \
+ python-cffi-backend \
+ python-dev \
+ python-enum34 \
+ python-pip \
+ python-setuptools \
+ python-virtualenv \
+ python3-all \
+ python3-apt \
+ python3-cffi \
+ python3-cffi-backend \
+ python3-dev \
+ python3-pip \
+ python3-setuptools \
+ python3-virtualenv \
+ qemu-system \
+ socat \
+ strongswan \
+ unzip \
+ tcpdump \
+ zlib1g-dev \
+ # vpp requirements
+ ca-certificates \
+ libapr1 \
+ libmbedcrypto1 \
+ libmbedtls10 \
+ libmbedx509-0 \
+ libnuma1 \
+ sshpass \
+ && curl -L https://packagecloud.io/fdio/master/gpgkey | sudo apt-key add - \
+ && curl -s https://packagecloud.io/install/repositories/fdio/master/script.deb.sh | sudo bash \
+ # temp hack due to build.sh
+ && apt-get install -y -qq vpp-ext-deps \
+ && curl -fsSL https://get.docker.com | sh \
+ && rm -rf /var/lib/apt/lists/*
+
+# Configure locales
+RUN locale-gen en_US.UTF-8 \
+ && dpkg-reconfigure locales
+
+# Fix permissions
+RUN chown root:syslog /var/log \
+ && chmod 755 /etc/default
+
+# Create directory structure
+RUN mkdir -p /tmp/dumps \
+ && mkdir -p /var/cache/vpp/python \
+ && mkdir -p /var/run/sshd
+
+# CSIT PIP pre-cache
+RUN pip3 install \
+ ecdsa==0.13.3 \
+ paramiko==2.6.0 \
+ pycrypto==2.6.1 \
+ pypcap==1.2.3 \
+ PyYAML==5.1.1 \
+ requests==2.22.0 \
+ robotframework==3.1.2 \
+ scapy==2.4.3 \
+ scp==0.13.2 \
+ ansible==2.7.8 \
+ dill==0.2.8.2 \
+ numpy==1.17.3 \
+ hdrhistogram==0.6.1 \
+ pandas==0.25.3 \
+ plotly==4.1.1 \
+ PTable==0.9.2 \
+ Sphinx==2.2.1 \
+ sphinx-rtd-theme==0.4.0 \
+ sphinxcontrib-programoutput==0.15 \
+ sphinxcontrib-robotdoc==0.11.0 \
+ alabaster==0.7.12 \
+ Babel==2.7.0 \
+ bcrypt==3.1.7 \
+ certifi==2019.9.11 \
+ cffi==1.13.2 \
+ chardet==3.0.4 \
+ cryptography==2.8 \
+ docutils==0.15.2 \
+ future==0.18.2 \
+ idna==2.8 \
+ imagesize==1.1.0 \
+ Jinja2==2.10.3 \
+ MarkupSafe==1.1.1 \
+ packaging==19.2 \
+ pbr==5.4.3 \
+ pycparser==2.19 \
+ Pygments==2.4.2 \
+ PyNaCl==1.3.0 \
+ pyparsing==2.4.4 \
+ python-dateutil==2.8.1 \
+ pytz==2019.3 \
+ retrying==1.3.3 \
+ six==1.13.0 \
+ snowballstemmer==2.0.0 \
+ sphinxcontrib-applehelp==1.0.1 \
+ sphinxcontrib-devhelp==1.0.1 \
+ sphinxcontrib-htmlhelp==1.0.2 \
+ sphinxcontrib-jsmath==1.0.1 \
+ sphinxcontrib-qthelp==1.0.2 \
+ sphinxcontrib-serializinghtml==1.1.3 \
+ urllib3==1.25.6
+
+# ARM workaround
+RUN pip3 install scipy==1.1.0
+
+# SSH settings
+RUN echo 'root:Csit1234' | chpasswd \
+ && sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config \
+ && sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd \
+ && echo "export VISIBLE=now" >> /etc/profile
+
+EXPOSE 2222
+
+COPY supervisord.conf /etc/supervisor/supervisord.conf
+
+CMD ["sh", "-c", "rm -f /dev/shm/db /dev/shm/global_vm /dev/shm/vpe-api; /usr/bin/supervisord -c /etc/supervisor/supervisord.conf; /usr/sbin/sshd -D -p 2222"]
diff --git a/docker/csit/csit-sut/supervisord.conf b/docker/csit/csit-sut/supervisord.conf
new file mode 100644
index 00000000..4a6fe965
--- /dev/null
+++ b/docker/csit/csit-sut/supervisord.conf
@@ -0,0 +1,24 @@
+[unix_http_server]
+file = /tmp/supervisor.sock
+chmod = 0777
+
+[rpcinterface:supervisor]
+supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
+
+[supervisorctl]
+serverurl = unix:///tmp/supervisor.sock
+
+[supervisord]
+pidfile = /tmp/supervisord.pid
+identifier = supervisor
+directory = /tmp
+logfile = /tmp/supervisord.log
+loglevel = debug
+nodaemon = false
+
+[program:vpp]
+command = /usr/bin/vpp -c /etc/vpp/startup.conf
+autostart = false
+autorestart = true
+redirect_stderr = true
+priority = 1
diff --git a/docker/vpp/README b/docker/vpp/README
deleted file mode 100644
index 2975df13..00000000
--- a/docker/vpp/README
+++ /dev/null
@@ -1,18 +0,0 @@
-This directory contains the docker image definitions for the
-VPP build images which are run on the Nomad cluster in the
-FD.io lab.
-
-The following Dockerfiles were originally created by Ed Kern
-for the Nomad container proof of concept build infrastructure
-for the VPP project. The original source files and commit
-history can be found in the respective repositories at
-https://github.com/snergfdio:
-
-vpp-arm-centos8/Dockerfile
-vpp-arm-ubuntu16/Dockerfile
-vpp-arm-ubuntu18/Dockerfile
-vpp-centos8/Dockerfile
-vpp-centos/Dockerfile
-vpp-ubuntu16/Dockerfile
-vpp-ubuntu18/Dockerfile
-vpp-ubuntu20/Dockerfile
diff --git a/docker/vpp/vpp-arm-centos8/files/badkey b/docker/vpp/vpp-arm-centos8/files/badkey
new file mode 100644
index 00000000..2270aff0
--- /dev/null
+++ b/docker/vpp/vpp-arm-centos8/files/badkey
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAslDXf4kZOQI8OGQQdIF8o83nBM0B4fzHLYLxxiY2rKiQ5MGM
+mQa7p1KKzmd5/NlvFRnXefnjSDQljjPxEY7mh457rX2nXvqHD4GUXZPpBIE73rQ1
+TViIAXdDzFXJ6ee4yX8ewmVakzYBnlUPDidkWyRnjm/xCgKUCO+CD5AH3ND0onks
+OYAtHqhDh29/QMIKdMnK87FBxfzhInHwpqPur76zBnpw3u36ylKEymDFrO5dwzsh
+QvDWjsYRg9ydTXubtwP6+MOpjdR1SNKxcCHKJrPrdAeJW9jg1imYmYpEHZ/P3qsL
+Jm0hGWbFjdxZLIYIz0vN/nTalcAeqT2OWKrXuwIDAQABAoIBAQCcj1g2FOR9ZlYD
+WPANqucJVy4/y9OcXHlwnyiyRjj47WOSRdGxRfUa2uEeikHT3ACo8TB8WwfQDGDw
+8u/075e+az5xvAJo5OQSnD3sz4Hmv6UWSvkFuPZo+xMe5C/M2/QljiQuoBifaeqP
+3rTCQ5ncYCFAMU7b8BmTot551Ybhu2jCbDMHU7nFHEFOvYinkwfVcaqkrVDUuH+D
+c3NkAEH9Jz2MEYA2Va4uqFpGt5lfGiED2kMenwPa8eS5LS5HJsxkfMHGlaHXHFUb
+D+dG/qJtSslVxdzVPgEGvzswo6TgtY1nZTQcB8U63rktFg38B7QGtOkvswAYzxyk
+HdMIiU3RAoGBAOdIEQRcAThj9eiIFywtBgLBOSg4SoOnvELLr6lgUg2+ICmx06LQ
+yaai1QRdOWw1VwZ6apNCD00kaUhBu+ou93yLSDnR2uYftkylhcnVuhDyIeNyb81V
+hV2z0WuNv3aKBFlBxaq391S7WW1XxhpAAagm8fZZur73wV390EVd/hZJAoGBAMVf
+negT2bg5PVKWvsiEU6eZ00W97tlEDLclkiZawXNnM2/c+2x1Tks6Yf1E/j2FFTB4
+r0fesbwN346hCejtq5Bup5YEdFA3KtwT5UyeQQLFGYlCtRmBtOd10wkRS93D0tpX
+iIqkf43Gpx6iFdvBWY5A7N+ZmojCy9zpL5TJ4G3jAoGADOGEoRuGrd9TWMoLkFhJ
+l2mvhz/rVn3HDGlPtT06FK3cGLZgtRavxGoZNw8CHbayzBeRS/ZH5+H5Qx72GkrX
+WcZgFWhMqrhlbMtjMiSHIl556LL86xCyRs+3ACh6211AdMAnBCUOz1dH2cEjtV6P
+ORBCNZg1wGEIEfYK3XIorpECgYBubXfQj8KhUs0fdx3Y3Ehdni/ZdlG7F1qx4YBq
+mx5e7d+Wd6Hn5Z3fcxO9+yrvypS3YN5YrJzuZSiuCSWdP9RcY7y5r1ZQRv1g0nTZ
+MDWZUiNea4cddTd8xKxFB3tV4SkIZi8LustuzDVWa0Mlh4EOmP6uf6c5WxtqRsEL
+UwORFwKBgEjZsfmZGBurjOtSrcsteulOB0D2nOqPVRWXmbSNJT/l73DkEllvVyA/
+wdW39nyFrA2Qw1K2F+l8DkzMd/WEjmioSWCsvTkXlvrqPfByKg01zCbYy/mhRW7d
+7sQrPOIl8ygsc3JrxmvzibdWmng1MehvpAM1ogWeTUa1lsDTNJ/6
+-----END RSA PRIVATE KEY-----
diff --git a/docker/vpp/vpp-arm-centos8/files/fdio-master.repo b/docker/vpp/vpp-arm-centos8/files/fdio-master.repo
new file mode 100644
index 00000000..b3b279fe
--- /dev/null
+++ b/docker/vpp/vpp-arm-centos8/files/fdio-master.repo
@@ -0,0 +1,5 @@
+[fdio-master]
+name=fd.io master branch latest merge
+baseurl=https://nexus.fd.io/content/repositories/fd.io.master.centos7
+enabled=1
+gpgcheck=0
diff --git a/docker/vpp/vpp-arm-centos8/files/jenkins b/docker/vpp/vpp-arm-centos8/files/jenkins
new file mode 100644
index 00000000..92f8a343
--- /dev/null
+++ b/docker/vpp/vpp-arm-centos8/files/jenkins
@@ -0,0 +1 @@
+jenkins ALL=(root) NOPASSWD:ALL
diff --git a/docker/vpp/vpp-arm-centos8/files/lf-update-java-alternatives b/docker/vpp/vpp-arm-centos8/files/lf-update-java-alternatives
new file mode 100644
index 00000000..8484a711
--- /dev/null
+++ b/docker/vpp/vpp-arm-centos8/files/lf-update-java-alternatives
@@ -0,0 +1,57 @@
+#!/bin/bash
+# SPDX-License-Identifier: EPL-1.0
+##############################################################################
+# Copyright (c) 2018 The Linux Foundation and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+##############################################################################
+
+# This script takes the java-version variable to set the proper alternative
+# for java, javac and java_sdk_openjdk for ubuntu or centos/fedora/redhat distros
+
+JAVA_ENV_FILE="/tmp/java.env"
+
+update-java-redhat() {
+ if [[ "${SET_JDK_VERSION//[a-zA-Z]/}" = "11" ]]; then
+ export JAVA_HOME="/usr/lib/jvm/java-11-openjdk"
+ else
+ export JAVA_HOME="/usr/lib/jvm/java-1.${SET_JDK_VERSION//[a-zA-Z:-]/}.0-openjdk"
+ fi
+ sudo /usr/sbin/alternatives --install /usr/bin/java java "${JAVA_HOME}/bin/java" 1
+ sudo /usr/sbin/alternatives --install /usr/bin/javac javac "${JAVA_HOME}/bin/javac" 1
+ sudo /usr/sbin/alternatives --install /usr/lib/jvm/java-openjdk java_sdk_openjdk "${JAVA_HOME}" 1
+ sudo /usr/sbin/alternatives --set java "${JAVA_HOME}/bin/java"
+ sudo /usr/sbin/alternatives --set javac "${JAVA_HOME}/bin/javac"
+ sudo /usr/sbin/alternatives --set java_sdk_openjdk "${JAVA_HOME}"
+ echo JAVA_HOME="$JAVA_HOME" > "$JAVA_ENV_FILE"
+}
+
+update-java-ubuntu() {
+ export JAVA_HOME="/usr/lib/jvm/java-${SET_JDK_VERSION//[a-zA-Z:-]/}-openjdk-amd64"
+ sudo /usr/bin/update-alternatives --install /usr/bin/java java "${JAVA_HOME}/bin/java" 1
+ sudo /usr/bin/update-alternatives --install /usr/bin/javac javac "${JAVA_HOME}/bin/javac" 1
+ sudo /usr/bin/update-alternatives --install /usr/lib/jvm/java-openjdk java_sdk_openjdk "${JAVA_HOME}" 1
+ sudo /usr/bin/update-alternatives --set java "${JAVA_HOME}/bin/java"
+ sudo /usr/bin/update-alternatives --set javac "${JAVA_HOME}/bin/javac"
+ sudo /usr/bin/update-alternatives --set java_sdk_openjdk "${JAVA_HOME}"
+ echo JAVA_HOME="$JAVA_HOME" > "$JAVA_ENV_FILE"
+}
+
+echo "---> Updating Java version"
+OS=$(facter operatingsystem | tr '[:upper:]' '[:lower:]')
+
+case "${OS}" in
+ fedora|centos|redhat)
+ echo "---> RedHat type system detected"
+ update-java-redhat
+ ;;
+ ubuntu)
+ echo "---> Ubuntu system detected"
+ update-java-ubuntu
+ ;;
+esac
+java -version
+echo JAVA_HOME="${JAVA_HOME}"
diff --git a/docker/vpp/vpp-arm-centos8/files/sshconfig b/docker/vpp/vpp-arm-centos8/files/sshconfig
new file mode 100644
index 00000000..8dd13540
--- /dev/null
+++ b/docker/vpp/vpp-arm-centos8/files/sshconfig
@@ -0,0 +1,3 @@
+Host *
+ StrictHostKeyChecking no
+ UserKnownHostsFile=/dev/null
diff --git a/docker/vpp/vpp-arm-centos8/files/supervisord.conf b/docker/vpp/vpp-arm-centos8/files/supervisord.conf
new file mode 100644
index 00000000..7e72d666
--- /dev/null
+++ b/docker/vpp/vpp-arm-centos8/files/supervisord.conf
@@ -0,0 +1,23 @@
+[unix_http_server]
+file = /run/supervisor.sock
+
+[rpcinterface:supervisor]
+supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
+
+[supervisorctl]
+serverurl = unix:///run/supervisor.sock
+
+[supervisord]
+pidfile = /run/supervisord.pid
+identifier = supervisor
+directory = /run
+logfile=/var/log/supervisord.log
+loglevel=debug
+nodaemon=false
+
+[program:vpp]
+command=/usr/bin/vpp -c /etc/vpp/startup.conf
+autostart=false
+autorestart=true
+redirect_stderr=true
+priority=1
diff --git a/docker/vpp/vpp-arm-ubuntu18/files/badkey b/docker/vpp/vpp-arm-ubuntu18/files/badkey
new file mode 100644
index 00000000..2270aff0
--- /dev/null
+++ b/docker/vpp/vpp-arm-ubuntu18/files/badkey
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAslDXf4kZOQI8OGQQdIF8o83nBM0B4fzHLYLxxiY2rKiQ5MGM
+mQa7p1KKzmd5/NlvFRnXefnjSDQljjPxEY7mh457rX2nXvqHD4GUXZPpBIE73rQ1
+TViIAXdDzFXJ6ee4yX8ewmVakzYBnlUPDidkWyRnjm/xCgKUCO+CD5AH3ND0onks
+OYAtHqhDh29/QMIKdMnK87FBxfzhInHwpqPur76zBnpw3u36ylKEymDFrO5dwzsh
+QvDWjsYRg9ydTXubtwP6+MOpjdR1SNKxcCHKJrPrdAeJW9jg1imYmYpEHZ/P3qsL
+Jm0hGWbFjdxZLIYIz0vN/nTalcAeqT2OWKrXuwIDAQABAoIBAQCcj1g2FOR9ZlYD
+WPANqucJVy4/y9OcXHlwnyiyRjj47WOSRdGxRfUa2uEeikHT3ACo8TB8WwfQDGDw
+8u/075e+az5xvAJo5OQSnD3sz4Hmv6UWSvkFuPZo+xMe5C/M2/QljiQuoBifaeqP
+3rTCQ5ncYCFAMU7b8BmTot551Ybhu2jCbDMHU7nFHEFOvYinkwfVcaqkrVDUuH+D
+c3NkAEH9Jz2MEYA2Va4uqFpGt5lfGiED2kMenwPa8eS5LS5HJsxkfMHGlaHXHFUb
+D+dG/qJtSslVxdzVPgEGvzswo6TgtY1nZTQcB8U63rktFg38B7QGtOkvswAYzxyk
+HdMIiU3RAoGBAOdIEQRcAThj9eiIFywtBgLBOSg4SoOnvELLr6lgUg2+ICmx06LQ
+yaai1QRdOWw1VwZ6apNCD00kaUhBu+ou93yLSDnR2uYftkylhcnVuhDyIeNyb81V
+hV2z0WuNv3aKBFlBxaq391S7WW1XxhpAAagm8fZZur73wV390EVd/hZJAoGBAMVf
+negT2bg5PVKWvsiEU6eZ00W97tlEDLclkiZawXNnM2/c+2x1Tks6Yf1E/j2FFTB4
+r0fesbwN346hCejtq5Bup5YEdFA3KtwT5UyeQQLFGYlCtRmBtOd10wkRS93D0tpX
+iIqkf43Gpx6iFdvBWY5A7N+ZmojCy9zpL5TJ4G3jAoGADOGEoRuGrd9TWMoLkFhJ
+l2mvhz/rVn3HDGlPtT06FK3cGLZgtRavxGoZNw8CHbayzBeRS/ZH5+H5Qx72GkrX
+WcZgFWhMqrhlbMtjMiSHIl556LL86xCyRs+3ACh6211AdMAnBCUOz1dH2cEjtV6P
+ORBCNZg1wGEIEfYK3XIorpECgYBubXfQj8KhUs0fdx3Y3Ehdni/ZdlG7F1qx4YBq
+mx5e7d+Wd6Hn5Z3fcxO9+yrvypS3YN5YrJzuZSiuCSWdP9RcY7y5r1ZQRv1g0nTZ
+MDWZUiNea4cddTd8xKxFB3tV4SkIZi8LustuzDVWa0Mlh4EOmP6uf6c5WxtqRsEL
+UwORFwKBgEjZsfmZGBurjOtSrcsteulOB0D2nOqPVRWXmbSNJT/l73DkEllvVyA/
+wdW39nyFrA2Qw1K2F+l8DkzMd/WEjmioSWCsvTkXlvrqPfByKg01zCbYy/mhRW7d
+7sQrPOIl8ygsc3JrxmvzibdWmng1MehvpAM1ogWeTUa1lsDTNJ/6
+-----END RSA PRIVATE KEY-----
diff --git a/docker/vpp/vpp-arm-ubuntu18/files/packagecloud b/docker/vpp/vpp-arm-ubuntu18/files/packagecloud
new file mode 100644
index 00000000..98322206
--- /dev/null
+++ b/docker/vpp/vpp-arm-ubuntu18/files/packagecloud
@@ -0,0 +1 @@
+{"url":"https://packagecloud.io","token":"$token"}
diff --git a/docker/vpp/vpp-arm-ubuntu18/files/packagecloud_api b/docker/vpp/vpp-arm-ubuntu18/files/packagecloud_api
new file mode 100644
index 00000000..9f537489
--- /dev/null
+++ b/docker/vpp/vpp-arm-ubuntu18/files/packagecloud_api
@@ -0,0 +1,3 @@
+machine packagecloud.io
+login $pclogin
+password
diff --git a/docker/vpp/vpp-arm-ubuntu18/files/pc_push b/docker/vpp/vpp-arm-ubuntu18/files/pc_push
new file mode 100644
index 00000000..3fdc8d37
--- /dev/null
+++ b/docker/vpp/vpp-arm-ubuntu18/files/pc_push
@@ -0,0 +1,39 @@
+#!/bin/bash
+# REPO is an Environment variable
+
+set -x
+
+echo "STARTING PACKAGECLOUD PUSH"
+
+sleep 10
+
+if [ -f /usr/bin/zypper ]; then
+ FACTER_OS="openSUSE"
+else
+ FACTER_OS=$(/usr/bin/facter operatingsystem)
+fi
+
+if [ -f ~/.packagecloud ]; then
+ case "$FACTER_OS" in
+ Ubuntu)
+ FACTER_LSBNAME=$(/usr/bin/facter lsbdistcodename)
+ DEBS=$(find . -type f -iname '*.deb')
+ package_cloud push "${REPO}/${STREAM}/ubuntu/${FACTER_LSBNAME}/main/" ${DEBS}
+ ;;
+ CentOS)
+ FACTER_OSMAJREL=$(/usr/bin/facter operatingsystemmajrelease)
+ FACTER_ARCH=$(/usr/bin/facter architecture)
+ RPMS=$(find . -type f -iregex '.*/.*\.\(s\)?rpm')
+ package_cloud push "${REPO}/${STREAM}/el/${FACTER_OSMAJREL}/os/${FACTER_ARCH}/" ${RPMS}
+ ;;
+ openSUSE)
+ # Use /etc/os-release on openSUSE to get $VERSION
+ . /etc/os-release
+ RPMS=$(find . -type f -iregex '.*/.*\.\(s\)?rpm' | grep -v 'vpp-ext-deps')
+ VPP_EXT_RPMS=$(find . -type f -iregex '.*/.*\.\(s\)?rpm' | grep 'vpp-ext-deps')
+ package_cloud push "${REPO}/${STREAM}/opensuse/${VERSION}/" ${RPMS}
+ # This file may have already been uploaded. Don't error out if it exists.
+ package_cloud push "${REPO}/${STREAM}/opensuse/${VERSION}/" ${VPP_EXT_RPMS} --skip-errors
+ ;;
+ esac
+fi
diff --git a/docker/vpp/vpp-arm-ubuntu18/files/sshconfig b/docker/vpp/vpp-arm-ubuntu18/files/sshconfig
new file mode 100644
index 00000000..8dd13540
--- /dev/null
+++ b/docker/vpp/vpp-arm-ubuntu18/files/sshconfig
@@ -0,0 +1,3 @@
+Host *
+ StrictHostKeyChecking no
+ UserKnownHostsFile=/dev/null
diff --git a/docker/vpp/vpp-centos/files/badkey b/docker/vpp/vpp-centos/files/badkey
new file mode 100644
index 00000000..2270aff0
--- /dev/null
+++ b/docker/vpp/vpp-centos/files/badkey
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAslDXf4kZOQI8OGQQdIF8o83nBM0B4fzHLYLxxiY2rKiQ5MGM
+mQa7p1KKzmd5/NlvFRnXefnjSDQljjPxEY7mh457rX2nXvqHD4GUXZPpBIE73rQ1
+TViIAXdDzFXJ6ee4yX8ewmVakzYBnlUPDidkWyRnjm/xCgKUCO+CD5AH3ND0onks
+OYAtHqhDh29/QMIKdMnK87FBxfzhInHwpqPur76zBnpw3u36ylKEymDFrO5dwzsh
+QvDWjsYRg9ydTXubtwP6+MOpjdR1SNKxcCHKJrPrdAeJW9jg1imYmYpEHZ/P3qsL
+Jm0hGWbFjdxZLIYIz0vN/nTalcAeqT2OWKrXuwIDAQABAoIBAQCcj1g2FOR9ZlYD
+WPANqucJVy4/y9OcXHlwnyiyRjj47WOSRdGxRfUa2uEeikHT3ACo8TB8WwfQDGDw
+8u/075e+az5xvAJo5OQSnD3sz4Hmv6UWSvkFuPZo+xMe5C/M2/QljiQuoBifaeqP
+3rTCQ5ncYCFAMU7b8BmTot551Ybhu2jCbDMHU7nFHEFOvYinkwfVcaqkrVDUuH+D
+c3NkAEH9Jz2MEYA2Va4uqFpGt5lfGiED2kMenwPa8eS5LS5HJsxkfMHGlaHXHFUb
+D+dG/qJtSslVxdzVPgEGvzswo6TgtY1nZTQcB8U63rktFg38B7QGtOkvswAYzxyk
+HdMIiU3RAoGBAOdIEQRcAThj9eiIFywtBgLBOSg4SoOnvELLr6lgUg2+ICmx06LQ
+yaai1QRdOWw1VwZ6apNCD00kaUhBu+ou93yLSDnR2uYftkylhcnVuhDyIeNyb81V
+hV2z0WuNv3aKBFlBxaq391S7WW1XxhpAAagm8fZZur73wV390EVd/hZJAoGBAMVf
+negT2bg5PVKWvsiEU6eZ00W97tlEDLclkiZawXNnM2/c+2x1Tks6Yf1E/j2FFTB4
+r0fesbwN346hCejtq5Bup5YEdFA3KtwT5UyeQQLFGYlCtRmBtOd10wkRS93D0tpX
+iIqkf43Gpx6iFdvBWY5A7N+ZmojCy9zpL5TJ4G3jAoGADOGEoRuGrd9TWMoLkFhJ
+l2mvhz/rVn3HDGlPtT06FK3cGLZgtRavxGoZNw8CHbayzBeRS/ZH5+H5Qx72GkrX
+WcZgFWhMqrhlbMtjMiSHIl556LL86xCyRs+3ACh6211AdMAnBCUOz1dH2cEjtV6P
+ORBCNZg1wGEIEfYK3XIorpECgYBubXfQj8KhUs0fdx3Y3Ehdni/ZdlG7F1qx4YBq
+mx5e7d+Wd6Hn5Z3fcxO9+yrvypS3YN5YrJzuZSiuCSWdP9RcY7y5r1ZQRv1g0nTZ
+MDWZUiNea4cddTd8xKxFB3tV4SkIZi8LustuzDVWa0Mlh4EOmP6uf6c5WxtqRsEL
+UwORFwKBgEjZsfmZGBurjOtSrcsteulOB0D2nOqPVRWXmbSNJT/l73DkEllvVyA/
+wdW39nyFrA2Qw1K2F+l8DkzMd/WEjmioSWCsvTkXlvrqPfByKg01zCbYy/mhRW7d
+7sQrPOIl8ygsc3JrxmvzibdWmng1MehvpAM1ogWeTUa1lsDTNJ/6
+-----END RSA PRIVATE KEY-----
diff --git a/docker/vpp/vpp-centos/files/fdio-master.repo b/docker/vpp/vpp-centos/files/fdio-master.repo
new file mode 100644
index 00000000..b3b279fe
--- /dev/null
+++ b/docker/vpp/vpp-centos/files/fdio-master.repo
@@ -0,0 +1,5 @@
+[fdio-master]
+name=fd.io master branch latest merge
+baseurl=https://nexus.fd.io/content/repositories/fd.io.master.centos7
+enabled=1
+gpgcheck=0
diff --git a/docker/vpp/vpp-centos/files/jenkins b/docker/vpp/vpp-centos/files/jenkins
new file mode 100644
index 00000000..92f8a343
--- /dev/null
+++ b/docker/vpp/vpp-centos/files/jenkins
@@ -0,0 +1 @@
+jenkins ALL=(root) NOPASSWD:ALL
diff --git a/docker/vpp/vpp-centos/files/lf-update-java-alternatives b/docker/vpp/vpp-centos/files/lf-update-java-alternatives
new file mode 100644
index 00000000..8484a711
--- /dev/null
+++ b/docker/vpp/vpp-centos/files/lf-update-java-alternatives
@@ -0,0 +1,57 @@
+#!/bin/bash
+# SPDX-License-Identifier: EPL-1.0
+##############################################################################
+# Copyright (c) 2018 The Linux Foundation and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+##############################################################################
+
+# This script takes the java-version variable to set the proper alternative
+# for java, javac and java_sdk_openjdk for ubuntu or centos/fedora/redhat distros
+
+JAVA_ENV_FILE="/tmp/java.env"
+
+update-java-redhat() {
+ if [[ "${SET_JDK_VERSION//[a-zA-Z]/}" = "11" ]]; then
+ export JAVA_HOME="/usr/lib/jvm/java-11-openjdk"
+ else
+ export JAVA_HOME="/usr/lib/jvm/java-1.${SET_JDK_VERSION//[a-zA-Z:-]/}.0-openjdk"
+ fi
+ sudo /usr/sbin/alternatives --install /usr/bin/java java "${JAVA_HOME}/bin/java" 1
+ sudo /usr/sbin/alternatives --install /usr/bin/javac javac "${JAVA_HOME}/bin/javac" 1
+ sudo /usr/sbin/alternatives --install /usr/lib/jvm/java-openjdk java_sdk_openjdk "${JAVA_HOME}" 1
+ sudo /usr/sbin/alternatives --set java "${JAVA_HOME}/bin/java"
+ sudo /usr/sbin/alternatives --set javac "${JAVA_HOME}/bin/javac"
+ sudo /usr/sbin/alternatives --set java_sdk_openjdk "${JAVA_HOME}"
+ echo JAVA_HOME="$JAVA_HOME" > "$JAVA_ENV_FILE"
+}
+
+update-java-ubuntu() {
+ export JAVA_HOME="/usr/lib/jvm/java-${SET_JDK_VERSION//[a-zA-Z:-]/}-openjdk-amd64"
+ sudo /usr/bin/update-alternatives --install /usr/bin/java java "${JAVA_HOME}/bin/java" 1
+ sudo /usr/bin/update-alternatives --install /usr/bin/javac javac "${JAVA_HOME}/bin/javac" 1
+ sudo /usr/bin/update-alternatives --install /usr/lib/jvm/java-openjdk java_sdk_openjdk "${JAVA_HOME}" 1
+ sudo /usr/bin/update-alternatives --set java "${JAVA_HOME}/bin/java"
+ sudo /usr/bin/update-alternatives --set javac "${JAVA_HOME}/bin/javac"
+ sudo /usr/bin/update-alternatives --set java_sdk_openjdk "${JAVA_HOME}"
+ echo JAVA_HOME="$JAVA_HOME" > "$JAVA_ENV_FILE"
+}
+
+echo "---> Updating Java version"
+OS=$(facter operatingsystem | tr '[:upper:]' '[:lower:]')
+
+case "${OS}" in
+ fedora|centos|redhat)
+ echo "---> RedHat type system detected"
+ update-java-redhat
+ ;;
+ ubuntu)
+ echo "---> Ubuntu system detected"
+ update-java-ubuntu
+ ;;
+esac
+java -version
+echo JAVA_HOME="${JAVA_HOME}"
diff --git a/docker/vpp/vpp-centos/files/sshconfig b/docker/vpp/vpp-centos/files/sshconfig
new file mode 100644
index 00000000..8dd13540
--- /dev/null
+++ b/docker/vpp/vpp-centos/files/sshconfig
@@ -0,0 +1,3 @@
+Host *
+ StrictHostKeyChecking no
+ UserKnownHostsFile=/dev/null
diff --git a/docker/vpp/vpp-centos/files/supervisord.conf b/docker/vpp/vpp-centos/files/supervisord.conf
new file mode 100644
index 00000000..7e72d666
--- /dev/null
+++ b/docker/vpp/vpp-centos/files/supervisord.conf
@@ -0,0 +1,23 @@
+[unix_http_server]
+file = /run/supervisor.sock
+
+[rpcinterface:supervisor]
+supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
+
+[supervisorctl]
+serverurl = unix:///run/supervisor.sock
+
+[supervisord]
+pidfile = /run/supervisord.pid
+identifier = supervisor
+directory = /run
+logfile=/var/log/supervisord.log
+loglevel=debug
+nodaemon=false
+
+[program:vpp]
+command=/usr/bin/vpp -c /etc/vpp/startup.conf
+autostart=false
+autorestart=true
+redirect_stderr=true
+priority=1
diff --git a/docker/vpp/vpp-centos8/files/CentOS-AppStream.repo b/docker/vpp/vpp-centos8/files/CentOS-AppStream.repo
new file mode 100644
index 00000000..16828095
--- /dev/null
+++ b/docker/vpp/vpp-centos8/files/CentOS-AppStream.repo
@@ -0,0 +1,19 @@
+# CentOS-AppStream.repo
+#
+# The mirror system uses the connecting IP address of the client and the
+# update status of each mirror to pick mirrors that are updated to and
+# geographically close to the client. You should use this for CentOS updates
+# unless you are manually picking other mirrors.
+#
+# If the mirrorlist= does not work for you, as a fall back you can try the
+# remarked out baseurl= line instead.
+#
+#
+
+[AppStream]
+name=CentOS-$releasever - AppStream
+mirrorlist=http://mirrorlist.centos.org/?release=8&arch=$basearch&repo=AppStream&infra=$infra
+#baseurl=http://mirror.centos.org/$contentdir/$releasever/AppStream/$basearch/os/
+gpgcheck=1
+enabled=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
diff --git a/docker/vpp/vpp-centos8/files/CentOS-Base.repo b/docker/vpp/vpp-centos8/files/CentOS-Base.repo
new file mode 100644
index 00000000..81df950b
--- /dev/null
+++ b/docker/vpp/vpp-centos8/files/CentOS-Base.repo
@@ -0,0 +1,19 @@
+# CentOS-Base.repo
+#
+# The mirror system uses the connecting IP address of the client and the
+# update status of each mirror to pick mirrors that are updated to and
+# geographically close to the client. You should use this for CentOS updates
+# unless you are manually picking other mirrors.
+#
+# If the mirrorlist= does not work for you, as a fall back you can try the
+# remarked out baseurl= line instead.
+#
+#
+
+[BaseOS]
+name=CentOS-$releasever - Base
+mirrorlist=http://mirrorlist.centos.org/?release=8&arch=$basearch&repo=BaseOS&infra=$infra
+#baseurl=http://mirror.centos.org/$contentdir/$releasever/BaseOS/$basearch/os/
+gpgcheck=1
+enabled=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
diff --git a/docker/vpp/vpp-centos8/files/badkey b/docker/vpp/vpp-centos8/files/badkey
new file mode 100644
index 00000000..2270aff0
--- /dev/null
+++ b/docker/vpp/vpp-centos8/files/badkey
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAslDXf4kZOQI8OGQQdIF8o83nBM0B4fzHLYLxxiY2rKiQ5MGM
+mQa7p1KKzmd5/NlvFRnXefnjSDQljjPxEY7mh457rX2nXvqHD4GUXZPpBIE73rQ1
+TViIAXdDzFXJ6ee4yX8ewmVakzYBnlUPDidkWyRnjm/xCgKUCO+CD5AH3ND0onks
+OYAtHqhDh29/QMIKdMnK87FBxfzhInHwpqPur76zBnpw3u36ylKEymDFrO5dwzsh
+QvDWjsYRg9ydTXubtwP6+MOpjdR1SNKxcCHKJrPrdAeJW9jg1imYmYpEHZ/P3qsL
+Jm0hGWbFjdxZLIYIz0vN/nTalcAeqT2OWKrXuwIDAQABAoIBAQCcj1g2FOR9ZlYD
+WPANqucJVy4/y9OcXHlwnyiyRjj47WOSRdGxRfUa2uEeikHT3ACo8TB8WwfQDGDw
+8u/075e+az5xvAJo5OQSnD3sz4Hmv6UWSvkFuPZo+xMe5C/M2/QljiQuoBifaeqP
+3rTCQ5ncYCFAMU7b8BmTot551Ybhu2jCbDMHU7nFHEFOvYinkwfVcaqkrVDUuH+D
+c3NkAEH9Jz2MEYA2Va4uqFpGt5lfGiED2kMenwPa8eS5LS5HJsxkfMHGlaHXHFUb
+D+dG/qJtSslVxdzVPgEGvzswo6TgtY1nZTQcB8U63rktFg38B7QGtOkvswAYzxyk
+HdMIiU3RAoGBAOdIEQRcAThj9eiIFywtBgLBOSg4SoOnvELLr6lgUg2+ICmx06LQ
+yaai1QRdOWw1VwZ6apNCD00kaUhBu+ou93yLSDnR2uYftkylhcnVuhDyIeNyb81V
+hV2z0WuNv3aKBFlBxaq391S7WW1XxhpAAagm8fZZur73wV390EVd/hZJAoGBAMVf
+negT2bg5PVKWvsiEU6eZ00W97tlEDLclkiZawXNnM2/c+2x1Tks6Yf1E/j2FFTB4
+r0fesbwN346hCejtq5Bup5YEdFA3KtwT5UyeQQLFGYlCtRmBtOd10wkRS93D0tpX
+iIqkf43Gpx6iFdvBWY5A7N+ZmojCy9zpL5TJ4G3jAoGADOGEoRuGrd9TWMoLkFhJ
+l2mvhz/rVn3HDGlPtT06FK3cGLZgtRavxGoZNw8CHbayzBeRS/ZH5+H5Qx72GkrX
+WcZgFWhMqrhlbMtjMiSHIl556LL86xCyRs+3ACh6211AdMAnBCUOz1dH2cEjtV6P
+ORBCNZg1wGEIEfYK3XIorpECgYBubXfQj8KhUs0fdx3Y3Ehdni/ZdlG7F1qx4YBq
+mx5e7d+Wd6Hn5Z3fcxO9+yrvypS3YN5YrJzuZSiuCSWdP9RcY7y5r1ZQRv1g0nTZ
+MDWZUiNea4cddTd8xKxFB3tV4SkIZi8LustuzDVWa0Mlh4EOmP6uf6c5WxtqRsEL
+UwORFwKBgEjZsfmZGBurjOtSrcsteulOB0D2nOqPVRWXmbSNJT/l73DkEllvVyA/
+wdW39nyFrA2Qw1K2F+l8DkzMd/WEjmioSWCsvTkXlvrqPfByKg01zCbYy/mhRW7d
+7sQrPOIl8ygsc3JrxmvzibdWmng1MehvpAM1ogWeTUa1lsDTNJ/6
+-----END RSA PRIVATE KEY-----
diff --git a/docker/vpp/vpp-centos8/files/epel.repo b/docker/vpp/vpp-centos8/files/epel.repo
new file mode 100644
index 00000000..9083b454
--- /dev/null
+++ b/docker/vpp/vpp-centos8/files/epel.repo
@@ -0,0 +1,25 @@
+[epel]
+name=Extra Packages for Enterprise Linux $releasever - $basearch
+#baseurl=https://download.fedoraproject.org/pub/epel/$releasever/Everything/$basearch
+metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-8&arch=$basearch&infra=$infra&content=$contentdir
+enabled=1
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8
+
+[epel-debuginfo]
+name=Extra Packages for Enterprise Linux $releasever - $basearch - Debug
+#baseurl=https://download.fedoraproject.org/pub/epel/$releasever/Everything/$basearch/debug
+metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-8&arch=$basearch&infra=$infra&cont
+ent=$contentdir
+enabled=0
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8
+gpgcheck=1
+
+[epel-source]
+name=Extra Packages for Enterprise Linux $releasever - $basearch - Source
+#baseurl=https://download.fedoraproject.org/pub/epel/$releasever/Everything/SRPMS
+metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-source-8&arch=$basearch&infra=$infra&con
+tent=$contentdir
+enabled=0
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8
+gpgcheck=1 \ No newline at end of file
diff --git a/docker/vpp/vpp-centos8/files/fdio-master.repo b/docker/vpp/vpp-centos8/files/fdio-master.repo
new file mode 100644
index 00000000..b3b279fe
--- /dev/null
+++ b/docker/vpp/vpp-centos8/files/fdio-master.repo
@@ -0,0 +1,5 @@
+[fdio-master]
+name=fd.io master branch latest merge
+baseurl=https://nexus.fd.io/content/repositories/fd.io.master.centos7
+enabled=1
+gpgcheck=0
diff --git a/docker/vpp/vpp-centos8/files/jenkins b/docker/vpp/vpp-centos8/files/jenkins
new file mode 100644
index 00000000..92f8a343
--- /dev/null
+++ b/docker/vpp/vpp-centos8/files/jenkins
@@ -0,0 +1 @@
+jenkins ALL=(root) NOPASSWD:ALL
diff --git a/docker/vpp/vpp-centos8/files/lf-update-java-alternatives b/docker/vpp/vpp-centos8/files/lf-update-java-alternatives
new file mode 100644
index 00000000..8484a711
--- /dev/null
+++ b/docker/vpp/vpp-centos8/files/lf-update-java-alternatives
@@ -0,0 +1,57 @@
+#!/bin/bash
+# SPDX-License-Identifier: EPL-1.0
+##############################################################################
+# Copyright (c) 2018 The Linux Foundation and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+##############################################################################
+
+# This script takes the java-version variable to set the proper alternative
+# for java, javac and java_sdk_openjdk for ubuntu or centos/fedora/redhat distros
+
+JAVA_ENV_FILE="/tmp/java.env"
+
+update-java-redhat() {
+ if [[ "${SET_JDK_VERSION//[a-zA-Z]/}" = "11" ]]; then
+ export JAVA_HOME="/usr/lib/jvm/java-11-openjdk"
+ else
+ export JAVA_HOME="/usr/lib/jvm/java-1.${SET_JDK_VERSION//[a-zA-Z:-]/}.0-openjdk"
+ fi
+ sudo /usr/sbin/alternatives --install /usr/bin/java java "${JAVA_HOME}/bin/java" 1
+ sudo /usr/sbin/alternatives --install /usr/bin/javac javac "${JAVA_HOME}/bin/javac" 1
+ sudo /usr/sbin/alternatives --install /usr/lib/jvm/java-openjdk java_sdk_openjdk "${JAVA_HOME}" 1
+ sudo /usr/sbin/alternatives --set java "${JAVA_HOME}/bin/java"
+ sudo /usr/sbin/alternatives --set javac "${JAVA_HOME}/bin/javac"
+ sudo /usr/sbin/alternatives --set java_sdk_openjdk "${JAVA_HOME}"
+ echo JAVA_HOME="$JAVA_HOME" > "$JAVA_ENV_FILE"
+}
+
+update-java-ubuntu() {
+ export JAVA_HOME="/usr/lib/jvm/java-${SET_JDK_VERSION//[a-zA-Z:-]/}-openjdk-amd64"
+ sudo /usr/bin/update-alternatives --install /usr/bin/java java "${JAVA_HOME}/bin/java" 1
+ sudo /usr/bin/update-alternatives --install /usr/bin/javac javac "${JAVA_HOME}/bin/javac" 1
+ sudo /usr/bin/update-alternatives --install /usr/lib/jvm/java-openjdk java_sdk_openjdk "${JAVA_HOME}" 1
+ sudo /usr/bin/update-alternatives --set java "${JAVA_HOME}/bin/java"
+ sudo /usr/bin/update-alternatives --set javac "${JAVA_HOME}/bin/javac"
+ sudo /usr/bin/update-alternatives --set java_sdk_openjdk "${JAVA_HOME}"
+ echo JAVA_HOME="$JAVA_HOME" > "$JAVA_ENV_FILE"
+}
+
+echo "---> Updating Java version"
+OS=$(facter operatingsystem | tr '[:upper:]' '[:lower:]')
+
+case "${OS}" in
+ fedora|centos|redhat)
+ echo "---> RedHat type system detected"
+ update-java-redhat
+ ;;
+ ubuntu)
+ echo "---> Ubuntu system detected"
+ update-java-ubuntu
+ ;;
+esac
+java -version
+echo JAVA_HOME="${JAVA_HOME}"
diff --git a/docker/vpp/vpp-centos8/files/sshconfig b/docker/vpp/vpp-centos8/files/sshconfig
new file mode 100644
index 00000000..8dd13540
--- /dev/null
+++ b/docker/vpp/vpp-centos8/files/sshconfig
@@ -0,0 +1,3 @@
+Host *
+ StrictHostKeyChecking no
+ UserKnownHostsFile=/dev/null
diff --git a/docker/vpp/vpp-centos8/files/supervisord.conf b/docker/vpp/vpp-centos8/files/supervisord.conf
new file mode 100644
index 00000000..7e72d666
--- /dev/null
+++ b/docker/vpp/vpp-centos8/files/supervisord.conf
@@ -0,0 +1,23 @@
+[unix_http_server]
+file = /run/supervisor.sock
+
+[rpcinterface:supervisor]
+supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
+
+[supervisorctl]
+serverurl = unix:///run/supervisor.sock
+
+[supervisord]
+pidfile = /run/supervisord.pid
+identifier = supervisor
+directory = /run
+logfile=/var/log/supervisord.log
+loglevel=debug
+nodaemon=false
+
+[program:vpp]
+command=/usr/bin/vpp -c /etc/vpp/startup.conf
+autostart=false
+autorestart=true
+redirect_stderr=true
+priority=1
diff --git a/docker/vpp/vpp-ubuntu16/files/badkey b/docker/vpp/vpp-ubuntu16/files/badkey
new file mode 100644
index 00000000..2270aff0
--- /dev/null
+++ b/docker/vpp/vpp-ubuntu16/files/badkey
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAslDXf4kZOQI8OGQQdIF8o83nBM0B4fzHLYLxxiY2rKiQ5MGM
+mQa7p1KKzmd5/NlvFRnXefnjSDQljjPxEY7mh457rX2nXvqHD4GUXZPpBIE73rQ1
+TViIAXdDzFXJ6ee4yX8ewmVakzYBnlUPDidkWyRnjm/xCgKUCO+CD5AH3ND0onks
+OYAtHqhDh29/QMIKdMnK87FBxfzhInHwpqPur76zBnpw3u36ylKEymDFrO5dwzsh
+QvDWjsYRg9ydTXubtwP6+MOpjdR1SNKxcCHKJrPrdAeJW9jg1imYmYpEHZ/P3qsL
+Jm0hGWbFjdxZLIYIz0vN/nTalcAeqT2OWKrXuwIDAQABAoIBAQCcj1g2FOR9ZlYD
+WPANqucJVy4/y9OcXHlwnyiyRjj47WOSRdGxRfUa2uEeikHT3ACo8TB8WwfQDGDw
+8u/075e+az5xvAJo5OQSnD3sz4Hmv6UWSvkFuPZo+xMe5C/M2/QljiQuoBifaeqP
+3rTCQ5ncYCFAMU7b8BmTot551Ybhu2jCbDMHU7nFHEFOvYinkwfVcaqkrVDUuH+D
+c3NkAEH9Jz2MEYA2Va4uqFpGt5lfGiED2kMenwPa8eS5LS5HJsxkfMHGlaHXHFUb
+D+dG/qJtSslVxdzVPgEGvzswo6TgtY1nZTQcB8U63rktFg38B7QGtOkvswAYzxyk
+HdMIiU3RAoGBAOdIEQRcAThj9eiIFywtBgLBOSg4SoOnvELLr6lgUg2+ICmx06LQ
+yaai1QRdOWw1VwZ6apNCD00kaUhBu+ou93yLSDnR2uYftkylhcnVuhDyIeNyb81V
+hV2z0WuNv3aKBFlBxaq391S7WW1XxhpAAagm8fZZur73wV390EVd/hZJAoGBAMVf
+negT2bg5PVKWvsiEU6eZ00W97tlEDLclkiZawXNnM2/c+2x1Tks6Yf1E/j2FFTB4
+r0fesbwN346hCejtq5Bup5YEdFA3KtwT5UyeQQLFGYlCtRmBtOd10wkRS93D0tpX
+iIqkf43Gpx6iFdvBWY5A7N+ZmojCy9zpL5TJ4G3jAoGADOGEoRuGrd9TWMoLkFhJ
+l2mvhz/rVn3HDGlPtT06FK3cGLZgtRavxGoZNw8CHbayzBeRS/ZH5+H5Qx72GkrX
+WcZgFWhMqrhlbMtjMiSHIl556LL86xCyRs+3ACh6211AdMAnBCUOz1dH2cEjtV6P
+ORBCNZg1wGEIEfYK3XIorpECgYBubXfQj8KhUs0fdx3Y3Ehdni/ZdlG7F1qx4YBq
+mx5e7d+Wd6Hn5Z3fcxO9+yrvypS3YN5YrJzuZSiuCSWdP9RcY7y5r1ZQRv1g0nTZ
+MDWZUiNea4cddTd8xKxFB3tV4SkIZi8LustuzDVWa0Mlh4EOmP6uf6c5WxtqRsEL
+UwORFwKBgEjZsfmZGBurjOtSrcsteulOB0D2nOqPVRWXmbSNJT/l73DkEllvVyA/
+wdW39nyFrA2Qw1K2F+l8DkzMd/WEjmioSWCsvTkXlvrqPfByKg01zCbYy/mhRW7d
+7sQrPOIl8ygsc3JrxmvzibdWmng1MehvpAM1ogWeTUa1lsDTNJ/6
+-----END RSA PRIVATE KEY-----
diff --git a/docker/vpp/vpp-ubuntu16/files/lf-update-java-alternatives b/docker/vpp/vpp-ubuntu16/files/lf-update-java-alternatives
new file mode 100644
index 00000000..8484a711
--- /dev/null
+++ b/docker/vpp/vpp-ubuntu16/files/lf-update-java-alternatives
@@ -0,0 +1,57 @@
+#!/bin/bash
+# SPDX-License-Identifier: EPL-1.0
+##############################################################################
+# Copyright (c) 2018 The Linux Foundation and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+##############################################################################
+
+# This script takes the java-version variable to set the proper alternative
+# for java, javac and java_sdk_openjdk for ubuntu or centos/fedora/redhat distros
+
+JAVA_ENV_FILE="/tmp/java.env"
+
+update-java-redhat() {
+ if [[ "${SET_JDK_VERSION//[a-zA-Z]/}" = "11" ]]; then
+ export JAVA_HOME="/usr/lib/jvm/java-11-openjdk"
+ else
+ export JAVA_HOME="/usr/lib/jvm/java-1.${SET_JDK_VERSION//[a-zA-Z:-]/}.0-openjdk"
+ fi
+ sudo /usr/sbin/alternatives --install /usr/bin/java java "${JAVA_HOME}/bin/java" 1
+ sudo /usr/sbin/alternatives --install /usr/bin/javac javac "${JAVA_HOME}/bin/javac" 1
+ sudo /usr/sbin/alternatives --install /usr/lib/jvm/java-openjdk java_sdk_openjdk "${JAVA_HOME}" 1
+ sudo /usr/sbin/alternatives --set java "${JAVA_HOME}/bin/java"
+ sudo /usr/sbin/alternatives --set javac "${JAVA_HOME}/bin/javac"
+ sudo /usr/sbin/alternatives --set java_sdk_openjdk "${JAVA_HOME}"
+ echo JAVA_HOME="$JAVA_HOME" > "$JAVA_ENV_FILE"
+}
+
+update-java-ubuntu() {
+ export JAVA_HOME="/usr/lib/jvm/java-${SET_JDK_VERSION//[a-zA-Z:-]/}-openjdk-amd64"
+ sudo /usr/bin/update-alternatives --install /usr/bin/java java "${JAVA_HOME}/bin/java" 1
+ sudo /usr/bin/update-alternatives --install /usr/bin/javac javac "${JAVA_HOME}/bin/javac" 1
+ sudo /usr/bin/update-alternatives --install /usr/lib/jvm/java-openjdk java_sdk_openjdk "${JAVA_HOME}" 1
+ sudo /usr/bin/update-alternatives --set java "${JAVA_HOME}/bin/java"
+ sudo /usr/bin/update-alternatives --set javac "${JAVA_HOME}/bin/javac"
+ sudo /usr/bin/update-alternatives --set java_sdk_openjdk "${JAVA_HOME}"
+ echo JAVA_HOME="$JAVA_HOME" > "$JAVA_ENV_FILE"
+}
+
+echo "---> Updating Java version"
+OS=$(facter operatingsystem | tr '[:upper:]' '[:lower:]')
+
+case "${OS}" in
+ fedora|centos|redhat)
+ echo "---> RedHat type system detected"
+ update-java-redhat
+ ;;
+ ubuntu)
+ echo "---> Ubuntu system detected"
+ update-java-ubuntu
+ ;;
+esac
+java -version
+echo JAVA_HOME="${JAVA_HOME}"
diff --git a/docker/vpp/vpp-ubuntu16/files/packagecloud b/docker/vpp/vpp-ubuntu16/files/packagecloud
new file mode 100644
index 00000000..98322206
--- /dev/null
+++ b/docker/vpp/vpp-ubuntu16/files/packagecloud
@@ -0,0 +1 @@
+{"url":"https://packagecloud.io","token":"$token"}
diff --git a/docker/vpp/vpp-ubuntu16/files/packagecloud_api b/docker/vpp/vpp-ubuntu16/files/packagecloud_api
new file mode 100644
index 00000000..9f537489
--- /dev/null
+++ b/docker/vpp/vpp-ubuntu16/files/packagecloud_api
@@ -0,0 +1,3 @@
+machine packagecloud.io
+login $pclogin
+password
diff --git a/docker/vpp/vpp-ubuntu16/files/pc_push b/docker/vpp/vpp-ubuntu16/files/pc_push
new file mode 100644
index 00000000..3fdc8d37
--- /dev/null
+++ b/docker/vpp/vpp-ubuntu16/files/pc_push
@@ -0,0 +1,39 @@
+#!/bin/bash
+# REPO is an Environment variable
+
+set -x
+
+echo "STARTING PACKAGECLOUD PUSH"
+
+sleep 10
+
+if [ -f /usr/bin/zypper ]; then
+ FACTER_OS="openSUSE"
+else
+ FACTER_OS=$(/usr/bin/facter operatingsystem)
+fi
+
+if [ -f ~/.packagecloud ]; then
+ case "$FACTER_OS" in
+ Ubuntu)
+ FACTER_LSBNAME=$(/usr/bin/facter lsbdistcodename)
+ DEBS=$(find . -type f -iname '*.deb')
+ package_cloud push "${REPO}/${STREAM}/ubuntu/${FACTER_LSBNAME}/main/" ${DEBS}
+ ;;
+ CentOS)
+ FACTER_OSMAJREL=$(/usr/bin/facter operatingsystemmajrelease)
+ FACTER_ARCH=$(/usr/bin/facter architecture)
+ RPMS=$(find . -type f -iregex '.*/.*\.\(s\)?rpm')
+ package_cloud push "${REPO}/${STREAM}/el/${FACTER_OSMAJREL}/os/${FACTER_ARCH}/" ${RPMS}
+ ;;
+ openSUSE)
+ # Use /etc/os-release on openSUSE to get $VERSION
+ . /etc/os-release
+ RPMS=$(find . -type f -iregex '.*/.*\.\(s\)?rpm' | grep -v 'vpp-ext-deps')
+ VPP_EXT_RPMS=$(find . -type f -iregex '.*/.*\.\(s\)?rpm' | grep 'vpp-ext-deps')
+ package_cloud push "${REPO}/${STREAM}/opensuse/${VERSION}/" ${RPMS}
+ # This file may have already been uploaded. Don't error out if it exists.
+ package_cloud push "${REPO}/${STREAM}/opensuse/${VERSION}/" ${VPP_EXT_RPMS} --skip-errors
+ ;;
+ esac
+fi
diff --git a/docker/vpp/vpp-ubuntu16/files/sshconfig b/docker/vpp/vpp-ubuntu16/files/sshconfig
new file mode 100644
index 00000000..8dd13540
--- /dev/null
+++ b/docker/vpp/vpp-ubuntu16/files/sshconfig
@@ -0,0 +1,3 @@
+Host *
+ StrictHostKeyChecking no
+ UserKnownHostsFile=/dev/null
diff --git a/docker/vpp/vpp-ubuntu18/files/badkey b/docker/vpp/vpp-ubuntu18/files/badkey
new file mode 100644
index 00000000..2270aff0
--- /dev/null
+++ b/docker/vpp/vpp-ubuntu18/files/badkey
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAslDXf4kZOQI8OGQQdIF8o83nBM0B4fzHLYLxxiY2rKiQ5MGM
+mQa7p1KKzmd5/NlvFRnXefnjSDQljjPxEY7mh457rX2nXvqHD4GUXZPpBIE73rQ1
+TViIAXdDzFXJ6ee4yX8ewmVakzYBnlUPDidkWyRnjm/xCgKUCO+CD5AH3ND0onks
+OYAtHqhDh29/QMIKdMnK87FBxfzhInHwpqPur76zBnpw3u36ylKEymDFrO5dwzsh
+QvDWjsYRg9ydTXubtwP6+MOpjdR1SNKxcCHKJrPrdAeJW9jg1imYmYpEHZ/P3qsL
+Jm0hGWbFjdxZLIYIz0vN/nTalcAeqT2OWKrXuwIDAQABAoIBAQCcj1g2FOR9ZlYD
+WPANqucJVy4/y9OcXHlwnyiyRjj47WOSRdGxRfUa2uEeikHT3ACo8TB8WwfQDGDw
+8u/075e+az5xvAJo5OQSnD3sz4Hmv6UWSvkFuPZo+xMe5C/M2/QljiQuoBifaeqP
+3rTCQ5ncYCFAMU7b8BmTot551Ybhu2jCbDMHU7nFHEFOvYinkwfVcaqkrVDUuH+D
+c3NkAEH9Jz2MEYA2Va4uqFpGt5lfGiED2kMenwPa8eS5LS5HJsxkfMHGlaHXHFUb
+D+dG/qJtSslVxdzVPgEGvzswo6TgtY1nZTQcB8U63rktFg38B7QGtOkvswAYzxyk
+HdMIiU3RAoGBAOdIEQRcAThj9eiIFywtBgLBOSg4SoOnvELLr6lgUg2+ICmx06LQ
+yaai1QRdOWw1VwZ6apNCD00kaUhBu+ou93yLSDnR2uYftkylhcnVuhDyIeNyb81V
+hV2z0WuNv3aKBFlBxaq391S7WW1XxhpAAagm8fZZur73wV390EVd/hZJAoGBAMVf
+negT2bg5PVKWvsiEU6eZ00W97tlEDLclkiZawXNnM2/c+2x1Tks6Yf1E/j2FFTB4
+r0fesbwN346hCejtq5Bup5YEdFA3KtwT5UyeQQLFGYlCtRmBtOd10wkRS93D0tpX
+iIqkf43Gpx6iFdvBWY5A7N+ZmojCy9zpL5TJ4G3jAoGADOGEoRuGrd9TWMoLkFhJ
+l2mvhz/rVn3HDGlPtT06FK3cGLZgtRavxGoZNw8CHbayzBeRS/ZH5+H5Qx72GkrX
+WcZgFWhMqrhlbMtjMiSHIl556LL86xCyRs+3ACh6211AdMAnBCUOz1dH2cEjtV6P
+ORBCNZg1wGEIEfYK3XIorpECgYBubXfQj8KhUs0fdx3Y3Ehdni/ZdlG7F1qx4YBq
+mx5e7d+Wd6Hn5Z3fcxO9+yrvypS3YN5YrJzuZSiuCSWdP9RcY7y5r1ZQRv1g0nTZ
+MDWZUiNea4cddTd8xKxFB3tV4SkIZi8LustuzDVWa0Mlh4EOmP6uf6c5WxtqRsEL
+UwORFwKBgEjZsfmZGBurjOtSrcsteulOB0D2nOqPVRWXmbSNJT/l73DkEllvVyA/
+wdW39nyFrA2Qw1K2F+l8DkzMd/WEjmioSWCsvTkXlvrqPfByKg01zCbYy/mhRW7d
+7sQrPOIl8ygsc3JrxmvzibdWmng1MehvpAM1ogWeTUa1lsDTNJ/6
+-----END RSA PRIVATE KEY-----
diff --git a/docker/vpp/vpp-ubuntu18/files/default-jdk-headless_1.8-59ubuntu2_amd64.deb b/docker/vpp/vpp-ubuntu18/files/default-jdk-headless_1.8-59ubuntu2_amd64.deb
new file mode 100644
index 00000000..32f73674
--- /dev/null
+++ b/docker/vpp/vpp-ubuntu18/files/default-jdk-headless_1.8-59ubuntu2_amd64.deb
Binary files differ
diff --git a/docker/vpp/vpp-ubuntu18/files/default-jre-headless_1.8-59ubuntu2_amd64.deb b/docker/vpp/vpp-ubuntu18/files/default-jre-headless_1.8-59ubuntu2_amd64.deb
new file mode 100644
index 00000000..bd66af50
--- /dev/null
+++ b/docker/vpp/vpp-ubuntu18/files/default-jre-headless_1.8-59ubuntu2_amd64.deb
Binary files differ
diff --git a/docker/vpp/vpp-ubuntu18/files/jre b/docker/vpp/vpp-ubuntu18/files/jre
new file mode 100644
index 00000000..2d856174
--- /dev/null
+++ b/docker/vpp/vpp-ubuntu18/files/jre
@@ -0,0 +1,10 @@
+Package: default-jdk-headless
+Pin: release a=now
+Priority: 1001
+Pin-Priority: 1001
+
+Package: default-jre-headless
+Pin: release a=now
+Priority: 1001
+Pin-Priority: 1001
+
diff --git a/docker/vpp/vpp-ubuntu18/files/lf-update-java-alternatives b/docker/vpp/vpp-ubuntu18/files/lf-update-java-alternatives
new file mode 100644
index 00000000..8484a711
--- /dev/null
+++ b/docker/vpp/vpp-ubuntu18/files/lf-update-java-alternatives
@@ -0,0 +1,57 @@
+#!/bin/bash
+# SPDX-License-Identifier: EPL-1.0
+##############################################################################
+# Copyright (c) 2018 The Linux Foundation and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+##############################################################################
+
+# This script takes the java-version variable to set the proper alternative
+# for java, javac and java_sdk_openjdk for ubuntu or centos/fedora/redhat distros
+
+JAVA_ENV_FILE="/tmp/java.env"
+
+update-java-redhat() {
+ if [[ "${SET_JDK_VERSION//[a-zA-Z]/}" = "11" ]]; then
+ export JAVA_HOME="/usr/lib/jvm/java-11-openjdk"
+ else
+ export JAVA_HOME="/usr/lib/jvm/java-1.${SET_JDK_VERSION//[a-zA-Z:-]/}.0-openjdk"
+ fi
+ sudo /usr/sbin/alternatives --install /usr/bin/java java "${JAVA_HOME}/bin/java" 1
+ sudo /usr/sbin/alternatives --install /usr/bin/javac javac "${JAVA_HOME}/bin/javac" 1
+ sudo /usr/sbin/alternatives --install /usr/lib/jvm/java-openjdk java_sdk_openjdk "${JAVA_HOME}" 1
+ sudo /usr/sbin/alternatives --set java "${JAVA_HOME}/bin/java"
+ sudo /usr/sbin/alternatives --set javac "${JAVA_HOME}/bin/javac"
+ sudo /usr/sbin/alternatives --set java_sdk_openjdk "${JAVA_HOME}"
+ echo JAVA_HOME="$JAVA_HOME" > "$JAVA_ENV_FILE"
+}
+
+update-java-ubuntu() {
+ export JAVA_HOME="/usr/lib/jvm/java-${SET_JDK_VERSION//[a-zA-Z:-]/}-openjdk-amd64"
+ sudo /usr/bin/update-alternatives --install /usr/bin/java java "${JAVA_HOME}/bin/java" 1
+ sudo /usr/bin/update-alternatives --install /usr/bin/javac javac "${JAVA_HOME}/bin/javac" 1
+ sudo /usr/bin/update-alternatives --install /usr/lib/jvm/java-openjdk java_sdk_openjdk "${JAVA_HOME}" 1
+ sudo /usr/bin/update-alternatives --set java "${JAVA_HOME}/bin/java"
+ sudo /usr/bin/update-alternatives --set javac "${JAVA_HOME}/bin/javac"
+ sudo /usr/bin/update-alternatives --set java_sdk_openjdk "${JAVA_HOME}"
+ echo JAVA_HOME="$JAVA_HOME" > "$JAVA_ENV_FILE"
+}
+
+echo "---> Updating Java version"
+OS=$(facter operatingsystem | tr '[:upper:]' '[:lower:]')
+
+case "${OS}" in
+ fedora|centos|redhat)
+ echo "---> RedHat type system detected"
+ update-java-redhat
+ ;;
+ ubuntu)
+ echo "---> Ubuntu system detected"
+ update-java-ubuntu
+ ;;
+esac
+java -version
+echo JAVA_HOME="${JAVA_HOME}"
diff --git a/docker/vpp/vpp-ubuntu18/files/packagecloud b/docker/vpp/vpp-ubuntu18/files/packagecloud
new file mode 100644
index 00000000..98322206
--- /dev/null
+++ b/docker/vpp/vpp-ubuntu18/files/packagecloud
@@ -0,0 +1 @@
+{"url":"https://packagecloud.io","token":"$token"}
diff --git a/docker/vpp/vpp-ubuntu18/files/packagecloud_api b/docker/vpp/vpp-ubuntu18/files/packagecloud_api
new file mode 100644
index 00000000..9f537489
--- /dev/null
+++ b/docker/vpp/vpp-ubuntu18/files/packagecloud_api
@@ -0,0 +1,3 @@
+machine packagecloud.io
+login $pclogin
+password
diff --git a/docker/vpp/vpp-ubuntu18/files/pc_push b/docker/vpp/vpp-ubuntu18/files/pc_push
new file mode 100644
index 00000000..3fdc8d37
--- /dev/null
+++ b/docker/vpp/vpp-ubuntu18/files/pc_push
@@ -0,0 +1,39 @@
+#!/bin/bash
+# REPO is an Environment variable
+
+set -x
+
+echo "STARTING PACKAGECLOUD PUSH"
+
+sleep 10
+
+if [ -f /usr/bin/zypper ]; then
+ FACTER_OS="openSUSE"
+else
+ FACTER_OS=$(/usr/bin/facter operatingsystem)
+fi
+
+if [ -f ~/.packagecloud ]; then
+ case "$FACTER_OS" in
+ Ubuntu)
+ FACTER_LSBNAME=$(/usr/bin/facter lsbdistcodename)
+ DEBS=$(find . -type f -iname '*.deb')
+ package_cloud push "${REPO}/${STREAM}/ubuntu/${FACTER_LSBNAME}/main/" ${DEBS}
+ ;;
+ CentOS)
+ FACTER_OSMAJREL=$(/usr/bin/facter operatingsystemmajrelease)
+ FACTER_ARCH=$(/usr/bin/facter architecture)
+ RPMS=$(find . -type f -iregex '.*/.*\.\(s\)?rpm')
+ package_cloud push "${REPO}/${STREAM}/el/${FACTER_OSMAJREL}/os/${FACTER_ARCH}/" ${RPMS}
+ ;;
+ openSUSE)
+ # Use /etc/os-release on openSUSE to get $VERSION
+ . /etc/os-release
+ RPMS=$(find . -type f -iregex '.*/.*\.\(s\)?rpm' | grep -v 'vpp-ext-deps')
+ VPP_EXT_RPMS=$(find . -type f -iregex '.*/.*\.\(s\)?rpm' | grep 'vpp-ext-deps')
+ package_cloud push "${REPO}/${STREAM}/opensuse/${VERSION}/" ${RPMS}
+ # This file may have already been uploaded. Don't error out if it exists.
+ package_cloud push "${REPO}/${STREAM}/opensuse/${VERSION}/" ${VPP_EXT_RPMS} --skip-errors
+ ;;
+ esac
+fi
diff --git a/docker/vpp/vpp-ubuntu18/files/sshconfig b/docker/vpp/vpp-ubuntu18/files/sshconfig
new file mode 100644
index 00000000..8dd13540
--- /dev/null
+++ b/docker/vpp/vpp-ubuntu18/files/sshconfig
@@ -0,0 +1,3 @@
+Host *
+ StrictHostKeyChecking no
+ UserKnownHostsFile=/dev/null
diff --git a/docker/vpp/vpp-ubuntu20/files/badkey b/docker/vpp/vpp-ubuntu20/files/badkey
new file mode 100644
index 00000000..2270aff0
--- /dev/null
+++ b/docker/vpp/vpp-ubuntu20/files/badkey
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAslDXf4kZOQI8OGQQdIF8o83nBM0B4fzHLYLxxiY2rKiQ5MGM
+mQa7p1KKzmd5/NlvFRnXefnjSDQljjPxEY7mh457rX2nXvqHD4GUXZPpBIE73rQ1
+TViIAXdDzFXJ6ee4yX8ewmVakzYBnlUPDidkWyRnjm/xCgKUCO+CD5AH3ND0onks
+OYAtHqhDh29/QMIKdMnK87FBxfzhInHwpqPur76zBnpw3u36ylKEymDFrO5dwzsh
+QvDWjsYRg9ydTXubtwP6+MOpjdR1SNKxcCHKJrPrdAeJW9jg1imYmYpEHZ/P3qsL
+Jm0hGWbFjdxZLIYIz0vN/nTalcAeqT2OWKrXuwIDAQABAoIBAQCcj1g2FOR9ZlYD
+WPANqucJVy4/y9OcXHlwnyiyRjj47WOSRdGxRfUa2uEeikHT3ACo8TB8WwfQDGDw
+8u/075e+az5xvAJo5OQSnD3sz4Hmv6UWSvkFuPZo+xMe5C/M2/QljiQuoBifaeqP
+3rTCQ5ncYCFAMU7b8BmTot551Ybhu2jCbDMHU7nFHEFOvYinkwfVcaqkrVDUuH+D
+c3NkAEH9Jz2MEYA2Va4uqFpGt5lfGiED2kMenwPa8eS5LS5HJsxkfMHGlaHXHFUb
+D+dG/qJtSslVxdzVPgEGvzswo6TgtY1nZTQcB8U63rktFg38B7QGtOkvswAYzxyk
+HdMIiU3RAoGBAOdIEQRcAThj9eiIFywtBgLBOSg4SoOnvELLr6lgUg2+ICmx06LQ
+yaai1QRdOWw1VwZ6apNCD00kaUhBu+ou93yLSDnR2uYftkylhcnVuhDyIeNyb81V
+hV2z0WuNv3aKBFlBxaq391S7WW1XxhpAAagm8fZZur73wV390EVd/hZJAoGBAMVf
+negT2bg5PVKWvsiEU6eZ00W97tlEDLclkiZawXNnM2/c+2x1Tks6Yf1E/j2FFTB4
+r0fesbwN346hCejtq5Bup5YEdFA3KtwT5UyeQQLFGYlCtRmBtOd10wkRS93D0tpX
+iIqkf43Gpx6iFdvBWY5A7N+ZmojCy9zpL5TJ4G3jAoGADOGEoRuGrd9TWMoLkFhJ
+l2mvhz/rVn3HDGlPtT06FK3cGLZgtRavxGoZNw8CHbayzBeRS/ZH5+H5Qx72GkrX
+WcZgFWhMqrhlbMtjMiSHIl556LL86xCyRs+3ACh6211AdMAnBCUOz1dH2cEjtV6P
+ORBCNZg1wGEIEfYK3XIorpECgYBubXfQj8KhUs0fdx3Y3Ehdni/ZdlG7F1qx4YBq
+mx5e7d+Wd6Hn5Z3fcxO9+yrvypS3YN5YrJzuZSiuCSWdP9RcY7y5r1ZQRv1g0nTZ
+MDWZUiNea4cddTd8xKxFB3tV4SkIZi8LustuzDVWa0Mlh4EOmP6uf6c5WxtqRsEL
+UwORFwKBgEjZsfmZGBurjOtSrcsteulOB0D2nOqPVRWXmbSNJT/l73DkEllvVyA/
+wdW39nyFrA2Qw1K2F+l8DkzMd/WEjmioSWCsvTkXlvrqPfByKg01zCbYy/mhRW7d
+7sQrPOIl8ygsc3JrxmvzibdWmng1MehvpAM1ogWeTUa1lsDTNJ/6
+-----END RSA PRIVATE KEY-----
diff --git a/docker/vpp/vpp-ubuntu20/files/default-jdk-headless_1.8-59ubuntu2_amd64.deb b/docker/vpp/vpp-ubuntu20/files/default-jdk-headless_1.8-59ubuntu2_amd64.deb
new file mode 100644
index 00000000..32f73674
--- /dev/null
+++ b/docker/vpp/vpp-ubuntu20/files/default-jdk-headless_1.8-59ubuntu2_amd64.deb
Binary files differ
diff --git a/docker/vpp/vpp-ubuntu20/files/default-jre-headless_1.8-59ubuntu2_amd64.deb b/docker/vpp/vpp-ubuntu20/files/default-jre-headless_1.8-59ubuntu2_amd64.deb
new file mode 100644
index 00000000..bd66af50
--- /dev/null
+++ b/docker/vpp/vpp-ubuntu20/files/default-jre-headless_1.8-59ubuntu2_amd64.deb
Binary files differ
diff --git a/docker/vpp/vpp-ubuntu20/files/jre b/docker/vpp/vpp-ubuntu20/files/jre
new file mode 100644
index 00000000..2d856174
--- /dev/null
+++ b/docker/vpp/vpp-ubuntu20/files/jre
@@ -0,0 +1,10 @@
+Package: default-jdk-headless
+Pin: release a=now
+Priority: 1001
+Pin-Priority: 1001
+
+Package: default-jre-headless
+Pin: release a=now
+Priority: 1001
+Pin-Priority: 1001
+
diff --git a/docker/vpp/vpp-ubuntu20/files/lf-update-java-alternatives b/docker/vpp/vpp-ubuntu20/files/lf-update-java-alternatives
new file mode 100644
index 00000000..8484a711
--- /dev/null
+++ b/docker/vpp/vpp-ubuntu20/files/lf-update-java-alternatives
@@ -0,0 +1,57 @@
+#!/bin/bash
+# SPDX-License-Identifier: EPL-1.0
+##############################################################################
+# Copyright (c) 2018 The Linux Foundation and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+##############################################################################
+
+# This script takes the java-version variable to set the proper alternative
+# for java, javac and java_sdk_openjdk for ubuntu or centos/fedora/redhat distros
+
+JAVA_ENV_FILE="/tmp/java.env"
+
+update-java-redhat() {
+ if [[ "${SET_JDK_VERSION//[a-zA-Z]/}" = "11" ]]; then
+ export JAVA_HOME="/usr/lib/jvm/java-11-openjdk"
+ else
+ export JAVA_HOME="/usr/lib/jvm/java-1.${SET_JDK_VERSION//[a-zA-Z:-]/}.0-openjdk"
+ fi
+ sudo /usr/sbin/alternatives --install /usr/bin/java java "${JAVA_HOME}/bin/java" 1
+ sudo /usr/sbin/alternatives --install /usr/bin/javac javac "${JAVA_HOME}/bin/javac" 1
+ sudo /usr/sbin/alternatives --install /usr/lib/jvm/java-openjdk java_sdk_openjdk "${JAVA_HOME}" 1
+ sudo /usr/sbin/alternatives --set java "${JAVA_HOME}/bin/java"
+ sudo /usr/sbin/alternatives --set javac "${JAVA_HOME}/bin/javac"
+ sudo /usr/sbin/alternatives --set java_sdk_openjdk "${JAVA_HOME}"
+ echo JAVA_HOME="$JAVA_HOME" > "$JAVA_ENV_FILE"
+}
+
+update-java-ubuntu() {
+ export JAVA_HOME="/usr/lib/jvm/java-${SET_JDK_VERSION//[a-zA-Z:-]/}-openjdk-amd64"
+ sudo /usr/bin/update-alternatives --install /usr/bin/java java "${JAVA_HOME}/bin/java" 1
+ sudo /usr/bin/update-alternatives --install /usr/bin/javac javac "${JAVA_HOME}/bin/javac" 1
+ sudo /usr/bin/update-alternatives --install /usr/lib/jvm/java-openjdk java_sdk_openjdk "${JAVA_HOME}" 1
+ sudo /usr/bin/update-alternatives --set java "${JAVA_HOME}/bin/java"
+ sudo /usr/bin/update-alternatives --set javac "${JAVA_HOME}/bin/javac"
+ sudo /usr/bin/update-alternatives --set java_sdk_openjdk "${JAVA_HOME}"
+ echo JAVA_HOME="$JAVA_HOME" > "$JAVA_ENV_FILE"
+}
+
+echo "---> Updating Java version"
+OS=$(facter operatingsystem | tr '[:upper:]' '[:lower:]')
+
+case "${OS}" in
+ fedora|centos|redhat)
+ echo "---> RedHat type system detected"
+ update-java-redhat
+ ;;
+ ubuntu)
+ echo "---> Ubuntu system detected"
+ update-java-ubuntu
+ ;;
+esac
+java -version
+echo JAVA_HOME="${JAVA_HOME}"
diff --git a/docker/vpp/vpp-ubuntu20/files/packagecloud b/docker/vpp/vpp-ubuntu20/files/packagecloud
new file mode 100644
index 00000000..98322206
--- /dev/null
+++ b/docker/vpp/vpp-ubuntu20/files/packagecloud
@@ -0,0 +1 @@
+{"url":"https://packagecloud.io","token":"$token"}
diff --git a/docker/vpp/vpp-ubuntu20/files/packagecloud_api b/docker/vpp/vpp-ubuntu20/files/packagecloud_api
new file mode 100644
index 00000000..9f537489
--- /dev/null
+++ b/docker/vpp/vpp-ubuntu20/files/packagecloud_api
@@ -0,0 +1,3 @@
+machine packagecloud.io
+login $pclogin
+password
diff --git a/docker/vpp/vpp-ubuntu20/files/pc_push b/docker/vpp/vpp-ubuntu20/files/pc_push
new file mode 100644
index 00000000..3fdc8d37
--- /dev/null
+++ b/docker/vpp/vpp-ubuntu20/files/pc_push
@@ -0,0 +1,39 @@
+#!/bin/bash
+# REPO is an Environment variable
+
+set -x
+
+echo "STARTING PACKAGECLOUD PUSH"
+
+sleep 10
+
+if [ -f /usr/bin/zypper ]; then
+ FACTER_OS="openSUSE"
+else
+ FACTER_OS=$(/usr/bin/facter operatingsystem)
+fi
+
+if [ -f ~/.packagecloud ]; then
+ case "$FACTER_OS" in
+ Ubuntu)
+ FACTER_LSBNAME=$(/usr/bin/facter lsbdistcodename)
+ DEBS=$(find . -type f -iname '*.deb')
+ package_cloud push "${REPO}/${STREAM}/ubuntu/${FACTER_LSBNAME}/main/" ${DEBS}
+ ;;
+ CentOS)
+ FACTER_OSMAJREL=$(/usr/bin/facter operatingsystemmajrelease)
+ FACTER_ARCH=$(/usr/bin/facter architecture)
+ RPMS=$(find . -type f -iregex '.*/.*\.\(s\)?rpm')
+ package_cloud push "${REPO}/${STREAM}/el/${FACTER_OSMAJREL}/os/${FACTER_ARCH}/" ${RPMS}
+ ;;
+ openSUSE)
+ # Use /etc/os-release on openSUSE to get $VERSION
+ . /etc/os-release
+ RPMS=$(find . -type f -iregex '.*/.*\.\(s\)?rpm' | grep -v 'vpp-ext-deps')
+ VPP_EXT_RPMS=$(find . -type f -iregex '.*/.*\.\(s\)?rpm' | grep 'vpp-ext-deps')
+ package_cloud push "${REPO}/${STREAM}/opensuse/${VERSION}/" ${RPMS}
+ # This file may have already been uploaded. Don't error out if it exists.
+ package_cloud push "${REPO}/${STREAM}/opensuse/${VERSION}/" ${VPP_EXT_RPMS} --skip-errors
+ ;;
+ esac
+fi
diff --git a/docker/vpp/vpp-ubuntu20/files/sshconfig b/docker/vpp/vpp-ubuntu20/files/sshconfig
new file mode 100644
index 00000000..8dd13540
--- /dev/null
+++ b/docker/vpp/vpp-ubuntu20/files/sshconfig
@@ -0,0 +1,3 @@
+Host *
+ StrictHostKeyChecking no
+ UserKnownHostsFile=/dev/null
diff --git a/global-jjb b/global-jjb
-Subproject 39abe0daab310c07b85f834d81f07c82218ef50
+Subproject 5fc616e4b1231808c1f11608608415312b08aa0
diff --git a/jenkins-config/clouds/openstack/FDIOVEX-CI/centos7-builder-2c-2g.cfg b/jenkins-config/clouds/openstack/FDIOVEX-CI/centos7-builder-2c-2g.cfg
index 3502922d..4f350de7 100644
--- a/jenkins-config/clouds/openstack/FDIOVEX-CI/centos7-builder-2c-2g.cfg
+++ b/jenkins-config/clouds/openstack/FDIOVEX-CI/centos7-builder-2c-2g.cfg
@@ -1,3 +1,3 @@
-IMAGE_NAME=ZZCI - CentOS 7 - builder - x86_64 - 20191215-024720.020
+IMAGE_NAME=ZZCI - CentOS 7 - builder - x86_64 - 20200115-151843.366
LABELS=centos7-builder-2c-2g
HARDWARE_ID=v2-highcpu-2
diff --git a/jenkins-config/clouds/openstack/FDIOVEX-CI/centos7-builder-4c-4g.cfg b/jenkins-config/clouds/openstack/FDIOVEX-CI/centos7-builder-4c-4g.cfg
index 7f269d69..916f7471 100644
--- a/jenkins-config/clouds/openstack/FDIOVEX-CI/centos7-builder-4c-4g.cfg
+++ b/jenkins-config/clouds/openstack/FDIOVEX-CI/centos7-builder-4c-4g.cfg
@@ -1,3 +1,3 @@
-IMAGE_NAME=ZZCI - CentOS 7 - builder - x86_64 - 20191215-024720.020
+IMAGE_NAME=ZZCI - CentOS 7 - builder - x86_64 - 20200115-151843.366
LABELS=centos7-builder-4c-4g
HARDWARE_ID=v2-highcpu-4
diff --git a/jenkins-config/clouds/openstack/FDIOVEX-CI/centos7-builder-8c-8g.cfg b/jenkins-config/clouds/openstack/FDIOVEX-CI/centos7-builder-8c-8g.cfg
index dfb2d1cf..b175a015 100644
--- a/jenkins-config/clouds/openstack/FDIOVEX-CI/centos7-builder-8c-8g.cfg
+++ b/jenkins-config/clouds/openstack/FDIOVEX-CI/centos7-builder-8c-8g.cfg
@@ -1,3 +1,3 @@
-IMAGE_NAME=ZZCI - CentOS 7 - builder - x86_64 - 20191215-024720.020
+IMAGE_NAME=ZZCI - CentOS 7 - builder - x86_64 - 20200115-151843.366
LABELS=centos7-builder-8c-8g
HARDWARE_ID=v2-highcpu-8
diff --git a/jenkins-config/clouds/openstack/FDIOVEX-CI/centos7-docker-2c-2g.cfg b/jenkins-config/clouds/openstack/FDIOVEX-CI/centos7-docker-2c-2g.cfg
new file mode 100644
index 00000000..1a2f361f
--- /dev/null
+++ b/jenkins-config/clouds/openstack/FDIOVEX-CI/centos7-docker-2c-2g.cfg
@@ -0,0 +1,4 @@
+IMAGE_NAME=ZZCI - CentOS 7 - docker - x86_64 - 20200405-094320.230
+LABELS=centos7-docker-2c-2g
+HARDWARE_ID=v2-standard-2
+VOLUME_SIZE=20
diff --git a/jenkins-config/clouds/openstack/FDIOVEX-CI/centos7-docker-4c-4g.cfg b/jenkins-config/clouds/openstack/FDIOVEX-CI/centos7-docker-4c-4g.cfg
index 4b215e56..b7887725 100644
--- a/jenkins-config/clouds/openstack/FDIOVEX-CI/centos7-docker-4c-4g.cfg
+++ b/jenkins-config/clouds/openstack/FDIOVEX-CI/centos7-docker-4c-4g.cfg
@@ -1,4 +1,4 @@
-IMAGE_NAME=ZZCI - CentOS 7 - docker - x86_64 - 20200105-094324.141
+IMAGE_NAME=ZZCI - CentOS 7 - docker - x86_64 - 20200405-094320.230
LABELS=centos7-docker-4c-4g
HARDWARE_ID=v2-standard-4
-VOLUME_SIZE=10
+VOLUME_SIZE=20
diff --git a/jenkins-config/clouds/openstack/FDIOVEX-CI/cloud.cfg b/jenkins-config/clouds/openstack/FDIOVEX-CI/cloud.cfg
index e8d47dd6..768da3bf 100644
--- a/jenkins-config/clouds/openstack/FDIOVEX-CI/cloud.cfg
+++ b/jenkins-config/clouds/openstack/FDIOVEX-CI/cloud.cfg
@@ -1,12 +1,12 @@
# Cloud Configuration
CLOUD_CREDENTIAL_ID=fdiovex-ci
-CLOUD_URL=https://auth.vexxhost.net/v3/
+CLOUD_URL=https://auth.vexxhost.net/v3
CLOUD_IGNORE_SSL=false
CLOUD_ZONE=ca-ymq-1
OS_CLOUD=vexci
# Default Template Configuration
-IMAGE_NAME=ZZCI - CentOS 7 - builder - x86_64 - 20191215-024720.020
+IMAGE_NAME=ZZCI - CentOS 7 - builder - x86_64 - 20200315-024729.521
HARDWARE_ID=v2-highcpu-2
NETWORK_ID=bcb9a62c-5a82-4293-a8c6-d73e8c2dbd03
USER_DATA_ID=jenkins-init-system
diff --git a/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1604-builder-2c-2g.cfg b/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1604-builder-2c-2g.cfg
index 59744901..2b95de24 100644
--- a/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1604-builder-2c-2g.cfg
+++ b/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1604-builder-2c-2g.cfg
@@ -1,3 +1,3 @@
-IMAGE_NAME=ZZCI - Ubuntu 16.04 - builder - x86_64 - 20191119-214815.550
+IMAGE_NAME=ZZCI - Ubuntu 16.04 - builder - x86_64 - 20200213-210225.109
LABELS=ubuntu1604-builder-2c-2g
HARDWARE_ID=v2-highcpu-2
diff --git a/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1604-builder-4c-4g.cfg b/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1604-builder-4c-4g.cfg
index b9ffedbf..56a4756c 100644
--- a/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1604-builder-4c-4g.cfg
+++ b/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1604-builder-4c-4g.cfg
@@ -1,3 +1,3 @@
-IMAGE_NAME=ZZCI - Ubuntu 16.04 - builder - x86_64 - 20191119-214815.550
+IMAGE_NAME=ZZCI - Ubuntu 16.04 - builder - x86_64 - 20200213-210225.109
LABELS=ubuntu1604-builder-4c-4g
HARDWARE_ID=v2-highcpu-4
diff --git a/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1604-builder-8c-32g.cfg b/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1604-builder-8c-32g.cfg
index 7d377054..47295370 100644
--- a/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1604-builder-8c-32g.cfg
+++ b/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1604-builder-8c-32g.cfg
@@ -1,3 +1,3 @@
-IMAGE_NAME=ZZCI - Ubuntu 16.04 - builder - x86_64 - 20191119-214815.550
+IMAGE_NAME=ZZCI - Ubuntu 16.04 - builder - x86_64 - 20200213-210225.109
LABELS=ubuntu1604-builder-8c-32g
HARDWARE_ID=v2-highcpu-32
diff --git a/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1604-builder-8c-8g.cfg b/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1604-builder-8c-8g.cfg
index 8bda8834..3ef5666a 100644
--- a/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1604-builder-8c-8g.cfg
+++ b/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1604-builder-8c-8g.cfg
@@ -1,3 +1,3 @@
-IMAGE_NAME=ZZCI - Ubuntu 16.04 - builder - x86_64 - 20191119-214815.550
+IMAGE_NAME=ZZCI - Ubuntu 16.04 - builder - x86_64 - 20200213-210225.109
LABELS=ubuntu1604-builder-8c-8g
HARDWARE_ID=v2-highcpu-8
diff --git a/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1604-docker-4c-4g.cfg b/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1604-docker-4c-4g.cfg
index 09d65e0f..597c0b4a 100644
--- a/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1604-docker-4c-4g.cfg
+++ b/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1604-docker-4c-4g.cfg
@@ -1,4 +1,4 @@
-IMAGE_NAME=ZZCI - Ubuntu 16.04 - docker - x86_64 - 20190810-225705.438
-LABELS=centos7-docker-4c-4g
+IMAGE_NAME=ZZCI - Ubuntu 16.04 - docker - x86_64 - 20200510-225624.603
+LABELS=ubuntu1604-docker-4c-4g
HARDWARE_ID=v2-standard-4
-VOLUME_SIZE=10
+VOLUME_SIZE=20
diff --git a/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1804-builder-2c-2g.cfg b/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1804-builder-2c-2g.cfg
index 2bb05981..c2c9c654 100644
--- a/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1804-builder-2c-2g.cfg
+++ b/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1804-builder-2c-2g.cfg
@@ -1,3 +1,3 @@
-IMAGE_NAME=ZZCI - Ubuntu 18.04 - builder - x86_64 - 20191226-084321.945
+IMAGE_NAME=ZZCI - Ubuntu 18.04 - builder - x86_64 - 20190410-150820.173
LABELS=ubuntu1804-builder-2c-2g.cfg
HARDWARE_ID=v2-highcpu-2
diff --git a/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1804-builder-4c-4g.cfg b/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1804-builder-4c-4g.cfg
index 8e24bd22..6ac6d7db 100644
--- a/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1804-builder-4c-4g.cfg
+++ b/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1804-builder-4c-4g.cfg
@@ -1,3 +1,3 @@
-IMAGE_NAME=ZZCI - Ubuntu 18.04 - builder - x86_64 - 20191226-084321.945
+IMAGE_NAME=ZZCI - Ubuntu 18.04 - builder - x86_64 - 20190410-150820.173
LABELS=ubuntu1804-builder-4c-4g
HARDWARE_ID=v2-highcpu-4
diff --git a/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1804-builder-8c-32g.cfg b/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1804-builder-8c-32g.cfg
deleted file mode 100644
index 883f7d5a..00000000
--- a/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1804-builder-8c-32g.cfg
+++ /dev/null
@@ -1,3 +0,0 @@
-IMAGE_NAME=ZZCI - Ubuntu 18.04 - builder - x86_64 - 20191226-084321.945
-LABELS=ubuntu1804-builder-8c-32g
-HARDWARE_ID=v2-highcpu-32
diff --git a/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1804-builder-8c-8g.cfg b/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1804-builder-8c-8g.cfg
index bcc7fd19..5ced41c2 100644
--- a/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1804-builder-8c-8g.cfg
+++ b/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1804-builder-8c-8g.cfg
@@ -1,3 +1,3 @@
-IMAGE_NAME=ZZCI - Ubuntu 18.04 - builder - x86_64 - 20191226-084321.945
+IMAGE_NAME=ZZCI - Ubuntu 18.04 - builder - x86_64 - 20190410-150820.173
LABELS=ubuntu1804-builder-8c-8g.cfg
HARDWARE_ID=v2-highcpu-8
diff --git a/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1804-builder-arm64-4c-4g.cfg b/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1804-builder-arm64-4c-4g.cfg
deleted file mode 100644
index 4f4cfa7d..00000000
--- a/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1804-builder-arm64-4c-4g.cfg
+++ /dev/null
@@ -1,4 +0,0 @@
-IMAGE_NAME=ZZCI - Ubuntu 18.04 - builder - arm64 - 20190820-203918.821
-LABELS=ubuntu1804-builder-arm64-4c-4g
-HARDWARE_ID=v2-highcpu-4
-VOLUME_SIZE=10
diff --git a/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1804-docker-4c-4g.cfg b/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1804-docker-4c-4g.cfg
index d76a2af2..d4be182b 100644
--- a/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1804-docker-4c-4g.cfg
+++ b/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1804-docker-4c-4g.cfg
@@ -1,4 +1,4 @@
IMAGE_NAME=ZZCI - Ubuntu 18.04 - docker - x86_64 - 20200107-191807.978
LABELS=ubuntu1804-docker-4c-4g
HARDWARE_ID=v2-standard-4
-VOLUME_SIZE=10
+VOLUME_SIZE=20
diff --git a/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1804-docker-arm64-4c-4g.cfg b/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1804arm-docker-4c-4g
index c46c1ecf..789129e0 100644
--- a/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1804-docker-arm64-4c-4g.cfg
+++ b/jenkins-config/clouds/openstack/FDIOVEX-CI/ubuntu1804arm-docker-4c-4g
@@ -1,4 +1,5 @@
IMAGE_NAME=ZZCI - Ubuntu 18.04 - docker - arm64 - 20191209-185146.016
-LABELS=ubuntu1804-docker-arm64-4c-4g
+LABELS=ubuntu1804arm-docker-4c-4g
HARDWARE_ID=v2-standard-4
-VOLUME_SIZE=10
+VOLUME_SIZE=20
+
diff --git a/jenkins-config/clouds/openstack/FDIOVEX/centos7-basebuild-4c-4g.cfg b/jenkins-config/clouds/openstack/FDIOVEX/centos7-basebuild-4c-4g.cfg
deleted file mode 100644
index 3348ca5d..00000000
--- a/jenkins-config/clouds/openstack/FDIOVEX/centos7-basebuild-4c-4g.cfg
+++ /dev/null
@@ -1,3 +0,0 @@
-IMAGE_NAME=CentOS 7 - basebuild - 20170322-1518
-LABELS=centos7-basebuild-4c-4g
-HARDWARE_ID=v1-standard-4
diff --git a/jenkins-config/clouds/openstack/FDIOVEX/cloud.cfg b/jenkins-config/clouds/openstack/FDIOVEX/cloud.cfg
deleted file mode 100644
index a21118e4..00000000
--- a/jenkins-config/clouds/openstack/FDIOVEX/cloud.cfg
+++ /dev/null
@@ -1,23 +0,0 @@
-# Cloud Configuration
-CLOUD_CREDENTIAL_ID=vexx-fdio
-CLOUD_URL=https://auth.vexxhost.net/v3/
-CLOUD_IGNORE_SSL=false
-CLOUD_ZONE=ca-ymq-1
-OS_CLOUD=vex
-
-# Default Template Configuration
-IMAGE_NAME=CentOS 7 - basebuild - 20170322-1518
-HARDWARE_ID=v1-standard-1
-NETWORK_ID=1b9e78ec-b49b-4ebe-9e16-0ae9baddb754
-USER_DATA_ID=jenkins-init-system
-INSTANCE_CAP=20
-SANDBOX_CAP=5
-FLOATING_IP_POOL=
-SECURITY_GROUPS=default
-AVAILABILITY_ZONE=ca-ymq-2
-STARTUP_TIMEOUT=600000
-KEY_PAIR_NAME=jenkins
-NUM_EXECUTORS=1
-JVM_OPTIONS=
-FS_ROOT=/w
-RETENTION_TIME=1
diff --git a/jenkins-config/clouds/openstack/FDIOVEX/ubuntu1404-basebuild-4c-4g.cfg b/jenkins-config/clouds/openstack/FDIOVEX/ubuntu1404-basebuild-4c-4g.cfg
deleted file mode 100644
index abb6cae9..00000000
--- a/jenkins-config/clouds/openstack/FDIOVEX/ubuntu1404-basebuild-4c-4g.cfg
+++ /dev/null
@@ -1,3 +0,0 @@
-IMAGE_NAME=Ubuntu 14.04 - basebuild - 20170331-2223
-LABELS=ubuntu1404-basebuild-4c-4g
-HARDWARE_ID=v1-standard-4
diff --git a/jenkins-config/clouds/openstack/FDIOVEX/ubuntu1604-basebuild-4c-4g.cfg b/jenkins-config/clouds/openstack/FDIOVEX/ubuntu1604-basebuild-4c-4g.cfg
deleted file mode 100644
index 9744affe..00000000
--- a/jenkins-config/clouds/openstack/FDIOVEX/ubuntu1604-basebuild-4c-4g.cfg
+++ /dev/null
@@ -1,3 +0,0 @@
-IMAGE_NAME=Ubuntu 16.04 - basebuild - 20180406-1741
-LABELS=ubuntu1604-basebuild-4c-4g
-HARDWARE_ID=v1-standard-4
diff --git a/jenkins-config/clouds/openstack/FDIOVEX/ubuntu1604-basebuild-8c-32g.cfg b/jenkins-config/clouds/openstack/FDIOVEX/ubuntu1604-basebuild-8c-32g.cfg
deleted file mode 100644
index 2d0ec0be..00000000
--- a/jenkins-config/clouds/openstack/FDIOVEX/ubuntu1604-basebuild-8c-32g.cfg
+++ /dev/null
@@ -1,3 +0,0 @@
-IMAGE_NAME=Ubuntu 16.04 - basebuild - 20171103-2145
-LABELS=ubuntu1604-basebuild-8c-32g
-HARDWARE_ID=v2-standard-8
diff --git a/jenkins-config/clouds/openstack/FDIOVEX/ubuntu1804-basebuild-4c-4g.cfg b/jenkins-config/clouds/openstack/FDIOVEX/ubuntu1804-basebuild-4c-4g.cfg
deleted file mode 100644
index 5b588572..00000000
--- a/jenkins-config/clouds/openstack/FDIOVEX/ubuntu1804-basebuild-4c-4g.cfg
+++ /dev/null
@@ -1,3 +0,0 @@
-IMAGE_NAME=Ubuntu 18.04 - basebuild - 20180523-2109
-LABELS=ubuntu1804-basebuild-4c-4g
-HARDWARE_ID=v2-highcpu-4
diff --git a/jenkins-config/global-vars-production.sh b/jenkins-config/global-vars-production.sh
index 46047500..69a55139 100644
--- a/jenkins-config/global-vars-production.sh
+++ b/jenkins-config/global-vars-production.sh
@@ -8,5 +8,6 @@ NEXUS_URL=https://nexus.fd.io
NEXUSPROXY=https://nexus.fd.io
PACKAGECLOUDPROXY=https://packagecloud.io/fdio
PCIO_CO=fdio
+S3_BUCKET=
SIGUL_KEY=fdio-release-2018
SILO=production
diff --git a/jenkins-config/global-vars-sandbox.sh b/jenkins-config/global-vars-sandbox.sh
index 05c4418b..79f2eb4c 100644
--- a/jenkins-config/global-vars-sandbox.sh
+++ b/jenkins-config/global-vars-sandbox.sh
@@ -8,5 +8,6 @@ NEXUS_URL=https://nexus.fd.io
NEXUSPROXY=https://nexus.fd.io
PACKAGECLOUDPROXY=https://packagecloud.io/fdio
PCIO_CO=fdio
+S3_BUCKET=
SIGUL_KEY=fdio-sandbox
SILO=sandbox
diff --git a/jjb/ci-management/ci-management-jobs.yaml b/jjb/ci-management/ci-management-jobs.yaml
index b071cb95..e99855eb 100644
--- a/jjb/ci-management/ci-management-jobs.yaml
+++ b/jjb/ci-management/ci-management-jobs.yaml
@@ -3,6 +3,7 @@
name: ci-management-ci-jobs
jobs:
- gerrit-jenkins-cfg-verify
+ - gerrit-jenkins-cfg-merge
- gerrit-jenkins-sandbox-cleanup
- gerrit-jjb-deploy-job
- gerrit-jjb-merge
@@ -11,7 +12,7 @@
project: ci-management
project-name: ci-management
build-node: centos7-builder-4c-4g
- build-timeout: 30
+ build-timeout: 60
jjb-version: 2.6.0
- project:
diff --git a/jjb/ci-management/package-list.sh b/jjb/ci-management/package-list.sh
new file mode 100644
index 00000000..6172b7b5
--- /dev/null
+++ b/jjb/ci-management/package-list.sh
@@ -0,0 +1,50 @@
+#!/bin/bash
+
+export PACKAGE_LIST_COMMON="libhicnctrl \
+libhicnctrl-memif \
+hicn-collectd-plugins \
+hicn-apps \
+hicn-light \
+hicn-apps-memif \
+libhicntransport-memif \
+libhicn \
+libhicntransport \
+hicn-plugin \
+facemgr \
+hicn-utils-memif \
+hicn-utils \
+hicn-sysrepo-plugin \
+hicn-extra-plugin \
+libparc \
+libparc-doc \
+longbow \
+longbow-doc"
+
+export PACKAGE_LIST_UBUNTU="libhicnctrl-dev \
+libhicn-ctrl-dev \
+libhicnctrl-memif-dev \
+libhicntransport-memif-dev \
+libhicn-dev \
+libhicntransport-dev \
+hicn-plugin-dev \
+libdash \
+libdash-dev \
+libdash-doc \
+libparc-dev \
+libmemif-dev \
+longbow-dev"
+
+export PACKAGE_LIST_CENTOS="libhicnctrl-devel \
+libhicnctrl-memif-devel \
+libhicntransport-memif-devel \
+libhicn-devel \
+libhicntransport-devel \
+hicn-plugin-devel \
+libparc-devel \
+libmemif-devel \
+longbow-devel"
+
+export VERSION_WHITELIST="19.01-227 \
+19.08-289 \
+20.01-73 \
+20.01-114"
diff --git a/jjb/ci-management/packagecloud-repo-cleanup.sh b/jjb/ci-management/packagecloud-repo-cleanup.sh
new file mode 100644
index 00000000..8fdfe118
--- /dev/null
+++ b/jjb/ci-management/packagecloud-repo-cleanup.sh
@@ -0,0 +1,161 @@
+#!/bin/bash
+set -euo pipefail
+
+# Number of packages to keep.
+N_PACKAGES=5
+
+PACKAGECLOUD_REPO_DEB="https://packagecloud.io/install/repositories/fdio/${STREAM}/script.deb.sh"
+PACKAGECLOUD_REPO_RPM="https://packagecloud.io/install/repositories/fdio/${STREAM}/script.rpm.sh"
+
+FACTER_OS=$(/usr/bin/facter operatingsystem)
+PACKAGE_LIST=""
+VERSION_REGEX="[0-9]+.[0-9]+[-_][0-9]+[-_]release(-1)?|[0-9]+.[0-9]+[-_][0-9]+~g[[:graph:]]+"
+
+declare -A FUNCTIONS
+
+echo_err () {
+ >&2 echo ${@}
+ exit 1
+}
+
+contains() {
+ [[ ${1} =~ (^|[[:space:]])${2}($|[[:space:]]) ]] && return 1 || return 0
+}
+
+check_version_whitelist() {
+ if [[ ${1} =~ ([0-9]+).([0-9]+)[-_]([0-9]+).+ ]]; then
+ MAJOR=${BASH_REMATCH[1]}
+ MINOR=${BASH_REMATCH[2]}
+ REVISION=${BASH_REMATCH[3]}
+ VER="${MAJOR}.${MINOR}-${REVISION}"
+
+ if contains "${VERSION_WHITELIST}" ${VER}; then
+ return 1;
+ fi
+ fi
+
+ return 0
+}
+
+# Params
+# $1: Package list
+build_package_blacklist_ubuntu () {
+ PACKAGE_LIST=${@}
+ OUTPUT_LIST=""
+ ARCH=$(dpkg --print-architecture)
+
+ for package in ${PACKAGE_LIST}; do
+ OUTPUT=$(apt-cache policy ${package} 2> /dev/null)
+
+ if [[ ${?} -ne 0 || -z "${OUTPUT}" ]]; then
+ continue
+ fi
+
+ # N_PACKAGES + 2 is justified by the fact thathe output of apt-cache policy is in the form:
+ # apt-cache policy libhicn
+ # libhicn:
+ # Installed: (none)
+ # Candidate: 20.05-11-release
+ # Version table:
+ # 20.05-11-release 500
+ #
+ # The first version candidate is printed twice.
+ # So we need to exclude the "Candidate: 20.05-11-release" (+1).
+ # Also `tail -n +M` starts to print from the Mth line, being 1 the first line.
+ # So to exclude the Mth line an additional +1 is needed.
+ VERSIONS="$(echo ${OUTPUT} | grep -E -o ${VERSION_REGEX} | tail -n +$((N_PACKAGES + 2)))"
+
+ for version in ${VERSIONS}; do
+ if ! check_version_whitelist ${version}; then
+ OUTPUT_LIST+="${package}_${version}_${ARCH}.deb "
+ fi
+ done
+ done
+
+ echo ${OUTPUT_LIST}
+}
+
+# Params
+# $1: Package list
+build_package_blacklist_centos () {
+ PACKAGE_LIST=${@}
+ OUTPUT_LIST=""
+ VERSIONS=""
+ ARCH=$(uname -m)
+
+ for package in ${PACKAGE_LIST}; do
+ OUTPUT=$(yum --showduplicates list ${package} 2> /dev/null)
+ if [[ ${?} -ne 0 || -z "${OUTPUT}" ]]; then
+ continue
+ fi
+
+ VERSIONS="$(echo ${OUTPUT} | grep -Eo "${VERSION_REGEX}" | head -n -${N_PACKAGES})"
+
+ for version in ${VERSIONS}; do
+ if ! check_version_whitelist ${version}; then
+ OUTPUT_LIST+="${package}-${version}.${ARCH}.rpm "
+ fi
+ done
+ done
+
+ echo ${OUTPUT_LIST}
+}
+
+promote_attic_repo_centos () {
+ FACTER_OSMAJREL=$(/usr/bin/facter operatingsystemmajrelease)
+ FACTER_ARCH=$(/usr/bin/facter architecture)
+
+ for package in ${@}; do
+ echo package_cloud promote \
+ ${PCIO_CO}/${STREAM}/el/${FACTER_OSMAJREL}/os/${FACTER_ARCH}/ \
+ ${package} ${PCIO_CO}/attic/el/${FACTER_OSMAJREL}/os/${FACTER_ARCH}/
+ package_cloud promote \
+ ${PCIO_CO}/${STREAM}/el/${FACTER_OSMAJREL}/os/${FACTER_ARCH}/ \
+ ${package} ${PCIO_CO}/attic/el/${FACTER_OSMAJREL}/os/${FACTER_ARCH}/
+ done
+}
+
+promote_attic_repo_ubuntu () {
+ FACTER_LSBNAME=$(/usr/bin/facter lsbdistcodename)
+
+ for package in ${@}; do
+ echo package_cloud promote ${PCIO_CO}/${STREAM}/ubuntu/${FACTER_LSBNAME}/main/ \
+ ${package} ${PCIO_CO}/attic/ubuntu/${FACTER_LSBNAME}/main/
+ package_cloud promote ${PCIO_CO}/${STREAM}/ubuntu/${FACTER_LSBNAME}/main/ \
+ ${package} ${PCIO_CO}/attic/ubuntu/${FACTER_LSBNAME}/main/
+ done
+}
+
+promote_to_attic_repo () {
+ ${FUNCTIONS["promote_attic_repo"]} ${@}
+}
+
+setup_fdio_repo () {
+ case "${FACTER_OS}" in
+ Ubuntu)
+ curl -s ${PACKAGECLOUD_REPO_DEB} | sudo bash
+ FUNCTIONS["package_blacklist"]="build_package_blacklist_ubuntu"
+ FUNCTIONS["promote_attic_repo"]="promote_attic_repo_ubuntu"
+ PACKAGE_LIST="${PACKAGE_LIST_COMMON} ${PACKAGE_LIST_UBUNTU}"
+ ;;
+ CentOS)
+ curl -s ${PACKAGECLOUD_REPO_RPM} | sudo bash
+ FUNCTIONS["package_blacklist"]="build_package_blacklist_centos"
+ FUNCTIONS["promote_attic_repo"]="promote_attic_repo_centos"
+ PACKAGE_LIST="${PACKAGE_LIST_COMMON} ${PACKAGE_LIST_CENTOS}"
+ ;;
+ *)
+ echo_err "Distribution ${FACTER_OS} is not supported."
+ ;;
+ esac
+}
+
+# Params
+# $1: Package list
+build_package_blacklist () {
+ ${FUNCTIONS["package_blacklist"]} ${@}
+}
+
+setup_fdio_repo
+PACKAGES_TO_PROMOTE=$(build_package_blacklist ${PACKAGE_LIST})
+promote_to_attic_repo ${PACKAGES_TO_PROMOTE} \ No newline at end of file
diff --git a/jjb/ci-management/packagecloud-repo-cleanup.yaml b/jjb/ci-management/packagecloud-repo-cleanup.yaml
new file mode 100644
index 00000000..c64e24a0
--- /dev/null
+++ b/jjb/ci-management/packagecloud-repo-cleanup.yaml
@@ -0,0 +1,146 @@
+- project:
+ name: packagecloud-repo-cleanup
+ jobs:
+ - 'packagecloud-repo-cleanup-release-{os}'
+ - 'packagecloud-repo-cleanup-hicn-{os}'
+ project: 'ci-management'
+ os:
+ - ubuntu1804:
+ repo-os-part: 'ubuntu.bionic.main'
+ - ubuntu1804arm:
+ repo-os-part: 'ubuntu-arm.bionic.main'
+ - ubuntu1604:
+ repo-os-part: 'ubuntu.xenial.main'
+ - centos7:
+ repo-os-part: 'centos7'
+
+- project:
+ name: packagecloud-view
+ views:
+ - project-view
+ project-name: packagecloud
+
+- job-template:
+ name: 'packagecloud-repo-cleanup-release-{os}'
+
+ project-type: freestyle
+ node: '{os}-us'
+ concurrent: true
+
+ build-discarder:
+ daysToKeep: '{build-days-to-keep}'
+ numToKeep: 100
+ artifactDaysToKeep: '{build-artifact-days-to-keep}'
+ artifactNumToKeep: '{build-artifact-num-to-keep}'
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ - gerrit-parameter:
+ branch: '{branch}'
+ - os-parameter:
+ os: '{os}'
+ - stream-parameter:
+ stream: 'release'
+ - string:
+ name: ARCHIVE_ARTIFACTS
+ default: '{archive-artifacts}'
+ description: Artifacts to archive to the logs server.
+
+ wrappers:
+ - fdio-infra-wrappers:
+ build-timeout: 120
+
+ triggers:
+ - gerrit:
+ server-name: 'Primary'
+ trigger-on:
+ - comment-added-contains-event:
+ comment-contains-value: 'release-cleanup'
+ projects:
+ - project-compare-type: 'ANT'
+ project-pattern: '{project}'
+ branches:
+ - branch-compare-type: 'ANT'
+ branch-pattern: '**/{branch}'
+
+ builders:
+ - config-file-provider:
+ files:
+ - file-id: '.packagecloud'
+ target: '/root/.packagecloud'
+ - config-file-provider:
+ files:
+ - file-id: 'packagecloud_api'
+ target: '/root/packagecloud_api'
+ - shell:
+ !include-raw-escape:
+ - package-list.sh
+ - packagecloud-repo-cleanup.sh
+
+ publishers:
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn36'
+
+- job-template:
+ name: 'packagecloud-repo-cleanup-hicn-{os}'
+
+ project-type: freestyle
+ node: '{os}-us'
+ concurrent: true
+
+ build-discarder:
+ daysToKeep: '{build-days-to-keep}'
+ numToKeep: 100
+ artifactDaysToKeep: '{build-artifact-days-to-keep}'
+ artifactNumToKeep: '{build-artifact-num-to-keep}'
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ - gerrit-parameter:
+ branch: '{branch}'
+ - os-parameter:
+ os: '{os}'
+ - stream-parameter:
+ stream: 'hicn'
+ - string:
+ name: ARCHIVE_ARTIFACTS
+ default: '{archive-artifacts}'
+ description: Artifacts to archive to the logs server.
+
+ wrappers:
+ - fdio-infra-wrappers:
+ build-timeout: 120
+
+ triggers:
+ - timed: '@weekly'
+ - gerrit:
+ server-name: 'Primary'
+ trigger-on:
+ - comment-added-contains-event:
+ comment-contains-value: 'release-cleanup'
+ projects:
+ - project-compare-type: 'ANT'
+ project-pattern: '{project}'
+ branches:
+ - branch-compare-type: 'ANT'
+ branch-pattern: '**/{branch}'
+
+ builders:
+ - config-file-provider:
+ files:
+ - file-id: '.packagecloud'
+ target: '/root/.packagecloud'
+ - config-file-provider:
+ files:
+ - file-id: 'packagecloud_api'
+ target: '/root/packagecloud_api'
+ - shell:
+ !include-raw-escape:
+ - package-list.sh
+ - packagecloud-repo-cleanup.sh
+
+ publishers:
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn36'
diff --git a/jjb/cicn/cicn.yaml b/jjb/cicn/cicn.yaml
index 07a4ac3e..c19a06aa 100644
--- a/jjb/cicn/cicn.yaml
+++ b/jjb/cicn/cicn.yaml
@@ -91,7 +91,7 @@
- repo-name-parameter:
repo-name: '{repo-stream-part}.{repo-os-part}'
- stream-parameter:
- stream: 'release'
+ stream: 'hicn'
- string:
name: ARCHIVE_ARTIFACTS
default: '{archive-artifacts}'
@@ -371,7 +371,7 @@
- repo-name-parameter:
repo-name: '{repo-stream-part}.{repo-os-part}'
- stream-parameter:
- stream: 'release'
+ stream: 'hicn'
- string:
name: ARCHIVE_ARTIFACTS
default: '{archive-artifacts}'
@@ -501,7 +501,7 @@
- repo-name-parameter:
repo-name: '{repo-stream-part}.{repo-os-part}'
- stream-parameter:
- stream: 'release'
+ stream: 'hicn'
- string:
name: ARCHIVE_ARTIFACTS
default: '{archive-artifacts}'
diff --git a/jjb/csit/csit-perf.yaml b/jjb/csit/csit-perf.yaml
index f4622dfb..1b43e3ea 100644
--- a/jjb/csit/csit-perf.yaml
+++ b/jjb/csit/csit-perf.yaml
@@ -64,17 +64,17 @@
- 'csit-vpp-perf-mrr-daily-master{node-arch}':
node-arch:
- '':
- periodicity: '0 14 * * *'
+ periodicity: '0 2,14 * * *'
- -2n-clx:
- periodicity: '0 14 * * *'
+ periodicity: '0 2,14 * * *'
- -2n-skx:
- periodicity: '0 14 * * 1,4'
+ periodicity: '0 2,14 * * *'
- -2n-dnv:
- periodicity: '0 14 * * *'
+ periodicity: '0 2,14 * * *'
- -3n-skx:
- periodicity: '0 14 * * 1,4'
+ periodicity: '0 2,14 * * *'
- -3n-dnv:
- periodicity: '0 14 * * *'
+ periodicity: '0 2,14 * * *'
- -3n-tsh:
executor: 'ubuntu1804arm-us'
periodicity: '0 14 * * *'
@@ -98,7 +98,37 @@
- 3n-skx
- 3n-hsw
periodicity: '0 0 * * 6'
- - 'csit-vpp-perf-report-iterative-{stream}-{node-arch}':
+ - 'csit-vpp-perf-report-iterative-{stream_report}-{node-arch}':
+ node-arch:
+ - 2n-clx
+ - 2n-skx
+ - 2n-dnv
+ - 3n-skx
+ - 3n-hsw
+ - 3n-dnv
+ - 3n-tsh:
+ executor: 'ubuntu1804arm-us'
+ - 'csit-dpdk-perf-report-iterative-{stream_report}-{node-arch}':
+ node-arch:
+ - 2n-clx
+ - 2n-skx
+ - 2n-dnv
+ - 3n-skx
+ - 3n-hsw
+ - 3n-dnv
+ - 3n-tsh:
+ executor: 'ubuntu1804arm-us'
+ - 'csit-vpp-perf-report-coverage-{stream_report}-{node-arch}':
+ node-arch:
+ - 2n-clx
+ - 2n-skx
+ - 2n-dnv
+ - 3n-skx
+ - 3n-hsw
+ - 3n-dnv
+ - 3n-tsh:
+ executor: 'ubuntu1804arm-us'
+ - 'csit-dpdk-perf-report-coverage-{stream_report}-{node-arch}':
node-arch:
- 2n-clx
- 2n-skx
@@ -108,10 +138,6 @@
- 3n-dnv
- 3n-tsh:
executor: 'ubuntu1804arm-us'
- stream:
- - '2005':
- branch: 'rls2005'
- branch-id: 'oper-rls2005'
project: 'csit'
executor: 'ubuntu1804-us'
@@ -132,6 +158,10 @@
- '2005':
branch: 'rls2005'
branch-id: 'oper-rls2005'
+ stream_report:
+ - '2005':
+ branch: 'rls2005'
+ branch-id: 'oper-rls2005'
build-artifact-num-to-keep: 10
@@ -640,7 +670,7 @@
maven-version: 'mvn33-new'
- job-template:
- name: 'csit-vpp-perf-report-iterative-{stream}-{node-arch}'
+ name: 'csit-vpp-perf-report-iterative-{stream_report}-{node-arch}'
description: |
<ul>
@@ -651,9 +681,13 @@
<li>job
<ul>
<li>name:
- <b>csit-vpp-perf-report-iterative-{stream}-{node-arch}</b>
+ <b>csit-vpp-perf-report-iterative-{stream_report}-
+ {node-arch}</b>
<li>trigger: keyword in comment to csit patch:
- <b>csit-report-iter-{node-arch}-perftest</b>
+ <b>csit-vpp-report-iter-{node-arch}-perftest
+ test_set_id</b>
+ <li>trigger example:
+ csit-vpp-report-iter-{node-arch}-perftest vpp-00
</ul>
<li>executor
<ul>
@@ -662,7 +696,8 @@
<li>perf test-cases selection
<ul>
<li>test-cases selected by tags defined in
- <i>csit/docs/job_specs/report-iter-{node-arch}.md</i>
+ <i>csit/docs/job_specs/report_iterative/{node-arch}/
+ test_set_id.md</i>
</ul>
<li>results
@@ -713,7 +748,295 @@
- gerrit-trigger-csit-perftest:
project: '{project}'
branch: '{branch}'
- trigger-word: 'csit-report-iter-{node-arch}-perftest'
+ trigger-word: 'csit-vpp-report-iter-{node-arch}-perftest'
+ skip-vote: false
+
+ builders:
+ - shell:
+ !include-raw-escape:
+ - ../scripts/csit/perf-verify.sh
+
+ publishers:
+ - robot:
+ output-path: archive
+ other-files:
+ - '*.*'
+
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
+
+- job-template:
+ name: 'csit-dpdk-perf-report-iterative-{stream_report}-{node-arch}'
+
+ description: |
+ <ul>
+ <li>objective
+ <ul>
+ <li>get dpdk performance iterative data for csit report
+ </ul>
+ <li>job
+ <ul>
+ <li>name:
+ <b>csit-dpdk-perf-report-iterative-{stream_report}-
+ {node-arch}</b>
+ <li>trigger: keyword in comment to csit patch:
+ <b>csit-dpdk-report-iter-{node-arch}-perftest
+ test_set_id</b>
+ <li>trigger example:
+ csit-dpdk-report-iter-{node-arch}-perftest dpdk-00
+ </ul>
+ <li>executor
+ <ul>
+ <li>{executor}
+ </ul>
+ <li>perf test-cases selection
+ <ul>
+ <li>test-cases selected by tags defined in
+ <i>csit/docs/job_specs/report_iterative/{node-arch}/
+ test_set_id.md</i>
+ </ul>
+
+ <li>results
+ <ul>
+ <li>jjb verify: PASS/FAIL
+ <li>present: dpdk performance
+ <li>analyse: dpdk performance
+ </ul>
+ </ul>
+
+ project-type: freestyle
+ node: '{executor}'
+ concurrent: true
+ archive-artifacts: 'archive/*.*'
+ latest-only: false
+
+ build-discarder:
+ daysToKeep: '{build-days-to-keep}'
+ numToKeep: '{build-num-to-keep}'
+ artifactDaysToKeep: '{build-artifact-days-to-keep}'
+ artifactNumToKeep: '{build-artifact-num-to-keep}'
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ - gerrit-parameter:
+ branch: '{branch}'
+ - csit-perf-trial-duration-parameter:
+ csit-perf-trial-duration: "{csit-perf-trial-duration}"
+ - csit-perf-trial-multiplicity-parameter:
+ csit-perf-trial-multiplicity: "{csit-perf-trial-multiplicity}"
+ - string:
+ name: ARCHIVE_ARTIFACTS
+ default: '{archive-artifacts}'
+ description: Artifacts to archive to the logs server.
+
+ scm:
+ - gerrit-trigger-scm:
+ credentials-id: 'jenkins-gerrit-credentials'
+ refspec: '$GERRIT_REFSPEC'
+ choosing-strategy: 'gerrit'
+
+ wrappers:
+ - fdio-infra-wrappers-non-activity-timeout:
+ build-timeout: '{build-timeout}'
+
+ triggers:
+ - gerrit-trigger-csit-perftest:
+ project: '{project}'
+ branch: '{branch}'
+ trigger-word: 'csit-dpdk-report-iter-{node-arch}-perftest'
+ skip-vote: false
+
+ builders:
+ - shell:
+ !include-raw-escape:
+ - ../scripts/csit/perf-verify.sh
+
+ publishers:
+ - robot:
+ output-path: archive
+ other-files:
+ - '*.*'
+
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
+
+- job-template:
+ name: 'csit-vpp-perf-report-coverage-{stream_report}-{node-arch}'
+
+ description: |
+ <ul>
+ <li>objective
+ <ul>
+ <li>get vpp performance coverage data for csit report
+ </ul>
+ <li>job
+ <ul>
+ <li>name:
+ <b>csit-vpp-perf-report-coverage-{stream_report}-
+ {node-arch}</b>
+ <li>trigger: keyword in comment to csit patch:
+ <b>csit-vpp-report-cov-{node-arch}-perftest
+ test_set_id</b>
+ <li>trigger example:
+ csit-vpp-report-cov-{node-arch}-perftest ip4-00
+ </ul>
+ <li>executor
+ <ul>
+ <li>{executor}
+ </ul>
+ <li>perf test-cases selection
+ <ul>
+ <li>test-cases selected by tags defined in
+ <i>csit/docs/job_specs/report_coverage/{node-arch}/
+ test_set_id.md</i>
+ </ul>
+
+ <li>results
+ <ul>
+ <li>jjb verify: PASS/FAIL
+ <li>present: vpp performance
+ <li>analyse: vpp performance
+ </ul>
+ </ul>
+
+ project-type: freestyle
+ node: '{executor}'
+ concurrent: true
+ archive-artifacts: 'archive/*.*'
+ latest-only: false
+
+ build-discarder:
+ daysToKeep: '{build-days-to-keep}'
+ numToKeep: '{build-num-to-keep}'
+ artifactDaysToKeep: '{build-artifact-days-to-keep}'
+ artifactNumToKeep: '{build-artifact-num-to-keep}'
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ - gerrit-parameter:
+ branch: '{branch}'
+ - csit-perf-trial-duration-parameter:
+ csit-perf-trial-duration: "{csit-perf-trial-duration}"
+ - csit-perf-trial-multiplicity-parameter:
+ csit-perf-trial-multiplicity: "{csit-perf-trial-multiplicity}"
+ - string:
+ name: ARCHIVE_ARTIFACTS
+ default: '{archive-artifacts}'
+ description: Artifacts to archive to the logs server.
+
+ scm:
+ - gerrit-trigger-scm:
+ credentials-id: 'jenkins-gerrit-credentials'
+ refspec: '$GERRIT_REFSPEC'
+ choosing-strategy: 'gerrit'
+
+ wrappers:
+ - fdio-infra-wrappers-non-activity-timeout:
+ build-timeout: '{build-timeout}'
+
+ triggers:
+ - gerrit-trigger-csit-perftest:
+ project: '{project}'
+ branch: '{branch}'
+ trigger-word: 'csit-vpp-report-cov-{node-arch}-perftest'
+ skip-vote: false
+
+ builders:
+ - shell:
+ !include-raw-escape:
+ - ../scripts/csit/perf-verify.sh
+
+ publishers:
+ - robot:
+ output-path: archive
+ other-files:
+ - '*.*'
+
+ - fdio-infra-shiplogs:
+ maven-version: 'mvn33-new'
+
+- job-template:
+ name: 'csit-dpdk-perf-report-coverage-{stream_report}-{node-arch}'
+
+ description: |
+ <ul>
+ <li>objective
+ <ul>
+ <li>get dpdk performance coverage data for csit report
+ </ul>
+ <li>job
+ <ul>
+ <li>name:
+ <b>csit-dpdk-perf-report-coverage-{stream_report}-
+ {node-arch}</b>
+ <li>trigger: keyword in comment to csit patch:
+ <b>csit-dpdk-report-cov-{node-arch}-perftest
+ test_set_id</b>
+ <li>trigger example:
+ csit-dpdk-report-cov-{node-arch}-perftest dpdk-00
+ </ul>
+ <li>executor
+ <ul>
+ <li>{executor}
+ </ul>
+ <li>perf test-cases selection
+ <ul>
+ <li>test-cases selected by tags defined in
+ <i>csit/docs/job_specs/report_coverage/{node-arch}/
+ test_set_id.md</i>
+ </ul>
+
+ <li>results
+ <ul>
+ <li>jjb verify: PASS/FAIL
+ <li>present: dpdk performance
+ <li>analyse: dpdk performance
+ </ul>
+ </ul>
+
+ project-type: freestyle
+ node: '{executor}'
+ concurrent: true
+ archive-artifacts: 'archive/*.*'
+ latest-only: false
+
+ build-discarder:
+ daysToKeep: '{build-days-to-keep}'
+ numToKeep: '{build-num-to-keep}'
+ artifactDaysToKeep: '{build-artifact-days-to-keep}'
+ artifactNumToKeep: '{build-artifact-num-to-keep}'
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ - gerrit-parameter:
+ branch: '{branch}'
+ - csit-perf-trial-duration-parameter:
+ csit-perf-trial-duration: "{csit-perf-trial-duration}"
+ - csit-perf-trial-multiplicity-parameter:
+ csit-perf-trial-multiplicity: "{csit-perf-trial-multiplicity}"
+ - string:
+ name: ARCHIVE_ARTIFACTS
+ default: '{archive-artifacts}'
+ description: Artifacts to archive to the logs server.
+
+ scm:
+ - gerrit-trigger-scm:
+ credentials-id: 'jenkins-gerrit-credentials'
+ refspec: '$GERRIT_REFSPEC'
+ choosing-strategy: 'gerrit'
+
+ wrappers:
+ - fdio-infra-wrappers-non-activity-timeout:
+ build-timeout: '{build-timeout}'
+
+ triggers:
+ - gerrit-trigger-csit-perftest:
+ project: '{project}'
+ branch: '{branch}'
+ trigger-word: 'csit-dpdk-report-cov-{node-arch}-perftest'
skip-vote: false
builders:
diff --git a/jjb/global-defaults.yaml b/jjb/global-defaults.yaml
index cba706d7..d77b53d7 100644
--- a/jjb/global-defaults.yaml
+++ b/jjb/global-defaults.yaml
@@ -24,6 +24,9 @@
# voting
skip-vote: false
+ # build
+ make-parallel-jobs: 4
+
# CSIT
csit-perf-trial-duration: 1.0
csit-perf-trial-multiplicity: 1
diff --git a/jjb/global-macros.yaml b/jjb/global-macros.yaml
index 066e0f75..66a70ba4 100644
--- a/jjb/global-macros.yaml
+++ b/jjb/global-macros.yaml
@@ -33,6 +33,14 @@
description: "CC parameter, can be gnu or clang"
- parameter:
+ name: make-parallel-jobs-parameter
+ parameters:
+ - string:
+ name: MAKE_PARALLEL_JOBS
+ default: '{make-parallel-jobs}'
+ description: "The number of cores to use for builds."
+
+- parameter:
name: csit-fail-on-crc-mismatch-parameter
parameters:
- string:
diff --git a/jjb/hicn/hicn.yaml b/jjb/hicn/hicn.yaml
index 055ee860..4f6f18f9 100644
--- a/jjb/hicn/hicn.yaml
+++ b/jjb/hicn/hicn.yaml
@@ -8,8 +8,6 @@
os:
- ubuntu1804:
repo-os-part: 'ubuntu.bionic.main'
- - ubuntu1604:
- repo-os-part: 'ubuntu.xenial.main'
- centos7:
repo-os-part: 'centos7'
@@ -34,8 +32,6 @@
os:
- ubuntu1804:
repo-os-part: 'ubuntu.bionic.main'
- - ubuntu1604:
- repo-os-part: 'ubuntu.xenial.main'
- centos7:
repo-os-part: 'centos7'
@@ -112,8 +108,6 @@
os:
- ubuntu1804:
repo-os-part: 'ubuntu.bionic.main'
- - ubuntu1604:
- repo-os-part: 'ubuntu.xenial.main'
- centos7:
repo-os-part: 'centos7'
@@ -175,7 +169,7 @@
- os-parameter:
os: '{os}'
- repo-name-parameter:
- repo-name: '{repo-stream-part}.ubuntu.xenial.main'
+ repo-name: '{repo-stream-part}.ubuntu.bionic.main'
- string:
name: ARCHIVE_ARTIFACTS
default: '{archive-artifacts}'
@@ -382,7 +376,7 @@
- maven-exec:
maven-version: 'mvn33-new'
- stream-parameter:
- stream: 'release'
+ stream: 'hicn'
- repo-name-parameter:
repo-name: '{repo-stream-part}.{repo-os-part}'
- string:
@@ -470,7 +464,7 @@
- maven-exec:
maven-version: 'mvn33-new'
- stream-parameter:
- stream: 'release'
+ stream: 'hicn'
- repo-name-parameter:
repo-name: '{repo-stream-part}.{repo-os-part}'
- string:
@@ -637,7 +631,7 @@
- maven-exec:
maven-version: 'mvn33-new'
- stream-parameter:
- stream: 'release'
+ stream: 'hicn'
- repo-name-parameter:
repo-name: '{repo-stream-part}.{repo-os-part}'
- string:
@@ -794,7 +788,7 @@
- maven-exec:
maven-version: 'mvn33-new'
- stream-parameter:
- stream: 'release'
+ stream: 'hicn'
- repo-name-parameter:
repo-name: '{repo-stream-part}.{repo-os-part}'
- string:
diff --git a/jjb/scripts/setup_vpp_ubuntu_arm_test.sh b/jjb/scripts/setup_vpp_ubuntu_arm_test.sh
deleted file mode 100644
index 45226d30..00000000
--- a/jjb/scripts/setup_vpp_ubuntu_arm_test.sh
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/bin/bash
-##############################################################################
-# Copyright (c) 2018 The Linux Foundation and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-##############################################################################
-set -e -o pipefail
-
-OS_ID=$(grep '^ID=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g')
-
-if ! [ -z ${DOCKER_TEST} ] ; then
- mount -o remount /dev/shm -o size=2G || true
- echo "/dev/shm remounted"
-fi
-
-##container server node detection
-grep search /etc/resolv.conf || true
-
-if [ "${OS_ID}" == "ubuntu" ]; then
- dpkg-query -W -f='${binary:Package}\t${Version}\n' || true
- echo "************************************************************************"
- echo "pip list:"
- pip list || true
- echo "************************************************************************"
- echo "Contents of /var/cache/vpp/python/virtualenv/lib/python2.7/site-packages:"
- ls -lth /var/cache/vpp/python/virtualenv/lib/python2.7/site-packages || true
- echo "************************************************************************"
- echo "Contents of br Downloads:"
- ls -lth /w/Downloads || true
- echo "************************************************************************"
- echo "Contents of /w/dpdk for test folks:"
- echo "************************************************************************"
- ls -lth /w/dpdk || true
-elif [ "${OS_ID}" == "centos" ]; then
- yum list installed || true
- pip list || true
-elif [ "${OS_ID}" == "opensuse" ]; then
- yum list installed || true
- pip list || true
-fi
-
-##This will remove any previously installed dpdk for old branch builds
-
-if [ "${GERRIT_BRANCH}" != "master" ]; then
- if [ "${OS_ID}" == "ubuntu" ]; then
- apt-get -y remove vpp-dpdk-dev || true
- apt-get -y remove vpp-dpdk-dkms || true
- apt-get -y remove vpp-ext-deps || true
- elif [ "${OS_ID}" == "centos" ]; then
- yum -y erase vpp-dpdk-devel || true
- yum -y erase vpp-ext-deps || true
- yum clean all || true
- elif [ "${OS_ID}" == "opensuse" ]; then
- yum -y erase vpp-dpdk-devel || true
- yum -y erase vpp-ext-deps || true
- fi
-fi
diff --git a/jjb/scripts/setup_vpp_ubuntu_docker_test.sh b/jjb/scripts/setup_vpp_ubuntu_docker_test.sh
index fe6a0fcb..bdc1257f 100644
--- a/jjb/scripts/setup_vpp_ubuntu_docker_test.sh
+++ b/jjb/scripts/setup_vpp_ubuntu_docker_test.sh
@@ -16,7 +16,7 @@ if ! [ -z ${DOCKER_TEST} ] ; then
# framework.VppTestCase.MIN_REQ_SHM + (num_cores * framework.VppTestCase.SHM_PER_PROCESS)
# 1073741824 == 1024M (1073741824 >> 20)
MEM=1024M
- if [[ $(uname -m) == 'aarch64' ]]
+ if [[ ${MAKE_PARALLEL_JOBS} == '16' ]]
then
# arm build are running with 16 cores, empirical evidence shows
# that 2048M is enough
diff --git a/jjb/scripts/vpp/api-checkstyle.sh b/jjb/scripts/vpp/api-checkstyle.sh
new file mode 100644
index 00000000..90740337
--- /dev/null
+++ b/jjb/scripts/vpp/api-checkstyle.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+VPP_CRC_CHECKER="extras/scripts/crcchecker.py"
+VPP_CRC_CHECKER_CMD="$VPP_CRC_CHECKER --check-patchset"
+
+send_notify() {
+ # 'roomId' field from the response of:
+ # curl https://api.ciscospark.com/v1/memberships -H "Authorization: Bearer ${SECRET_WEBEX_TEAMS_ACCESS_TOKEN}"
+ WEBEX_TEAMS_ROOM_ID='Y2lzY29zcGFyazovL3VzL1JPT00vMzUzZmI3OTAtYTVjNS0xMWVhLWI4ZjYtMDUxN2I4NzFmOWU5'
+ curl https://api.ciscospark.com/v1/messages -X POST -H "Authorization: Bearer ${SECRET_WEBEX_TEAMS_ACCESS_TOKEN}" -H "Content-Type: application/json" --data '{"roomId":"'${WEBEX_TEAMS_ROOM_ID}'", "markdown": "'"${WEBEX_TEAMS_MESSAGE}"'" }' || true
+}
+
+if [ -f $VPP_CRC_CHECKER ]; then
+ echo "Running $VPP_CRC_CHECKER_CMD"
+ if $VPP_CRC_CHECKER_CMD; then
+ echo "API check successful"
+
+ # for now - notify the same room during the monitoring period about the successes as well
+ WEBEX_TEAMS_MESSAGE="API check successful for $GERRIT_REFSPEC - see $BUILD_URL"
+ send_notify
+ else
+ RET_CODE=$?
+ echo "API check failed: ret code $RET_CODE; please read https://wiki.fd.io/view/VPP/ApiChangeProcess and discuss with ayourtch@gmail.com if unsure how to proceed"
+ WEBEX_TEAMS_MESSAGE="API check FAILED for $GERRIT_REFSPEC - see $BUILD_URL"
+ send_notify
+ exit $RET_CODE
+ fi
+else
+ echo "Cannot find $VPP_CRC_CHECKER - skipping API compatibility check"
+fi
diff --git a/jjb/scripts/vpp/arm-build-no-test.sh b/jjb/scripts/vpp/arm-build-no-test.sh
deleted file mode 100644
index ae5aa34d..00000000
--- a/jjb/scripts/vpp/arm-build-no-test.sh
+++ /dev/null
@@ -1,64 +0,0 @@
-#!/bin/bash
-
-# This script wants environment variables
-# set by parallel-vars.sh script.
-# Otherwise "make test" is not parallelized,
-# possibly leading to jobs overstepping their time limit.
-
-# basic build script example
-set -xe -o pipefail
-
-OS_ID=$(grep '^ID=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g')
-OS_VERSION_ID=$(grep '^VERSION_ID=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g')
-
-echo OS_ID: $OS_ID
-echo OS_VERSION_ID: $OS_VERSION_ID
-
-# do nothing but print the current slave hostname
-hostname
-export CCACHE_DIR=/tmp/ccache
-if [ -d $CCACHE_DIR ];then
- echo $CCACHE_DIR exists
- du -sk $CCACHE_DIR
-else
- echo $CCACHE_DIR does not exist. This must be a new slave.
-fi
-
-echo "cat /etc/bootstrap.sha"
-if [ -f /etc/bootstrap.sha ];then
- cat /etc/bootstrap.sha
-else
- echo "Cannot find cat /etc/bootstrap.sha"
-fi
-
-echo "cat /etc/bootstrap-functions.sha"
-if [ -f /etc/bootstrap-functions.sha ];then
- cat /etc/bootstrap-functions.sha
-else
- echo "Cannot find cat /etc/bootstrap-functions.sha"
-fi
-
-echo "sha1sum of this script: ${0}"
-sha1sum $0
-
-echo "CC=${CC}"
-
-make UNATTENDED=yes install-dep
-make UNATTENDED=yes dpdk-install-dev
-make UNATTENDED=yes -C build-root PLATFORM=vpp TAG=vpp wipe-all install-packages
-make UNATTENDED=yes -C build-root PLATFORM=vpp TAG=vpp sample-plugin-install
-make UNATTENDED=yes -C build-root PLATFORM=vpp TAG=vpp libmemif-install
-make UNATTENDED=yes pkg-deb
-
-if [ "x${VPP_REPO}" == "x1" ]; then
- if [ "x${REBASE_NEEDED}" == "x1" ]; then
- echo "This patch to vpp is based on an old point in the tree that is likely"
- echo "to fail verify."
- echo "PLEASE REBASE PATCH ON THE CURRENT HEAD OF THE VPP REPO"
- exit 1
- fi
-fi
-
-echo "*******************************************************************"
-echo "* VPP ARM BUILD SUCCESSFULLY COMPLETED"
-echo "*******************************************************************"
diff --git a/jjb/scripts/vpp/arm-build.sh b/jjb/scripts/vpp/arm-build.sh
deleted file mode 100644
index 2abe6105..00000000
--- a/jjb/scripts/vpp/arm-build.sh
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/bin/bash
-
-# This script wants environment variables
-# set by parallel-vars.sh script.
-# Otherwise "make test" is not parallelized,
-# possibly leading to jobs overstepping their time limit.
-
-# basic build script example
-set -xe -o pipefail
-
-OS_ID=$(grep '^ID=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g')
-OS_VERSION_ID=$(grep '^VERSION_ID=' /etc/os-release | cut -f2- -d= | sed -e 's/\"//g')
-
-echo OS_ID: $OS_ID
-echo OS_VERSION_ID: $OS_VERSION_ID
-
-# do nothing but print the current slave hostname
-hostname
-export CCACHE_DIR=/tmp/ccache
-if [ -d $CCACHE_DIR ];then
- echo $CCACHE_DIR exists
- du -sk $CCACHE_DIR
-else
- echo $CCACHE_DIR does not exist. This must be a new slave.
-fi
-
-echo "cat /etc/bootstrap.sha"
-if [ -f /etc/bootstrap.sha ];then
- cat /etc/bootstrap.sha
-else
- echo "Cannot find cat /etc/bootstrap.sha"
-fi
-
-echo "cat /etc/bootstrap-functions.sha"
-if [ -f /etc/bootstrap-functions.sha ];then
- cat /etc/bootstrap-functions.sha
-else
- echo "Cannot find cat /etc/bootstrap-functions.sha"
-fi
-
-echo "sha1sum of this script: ${0}"
-sha1sum $0
-
-echo "CC=${CC}"
-echo "IS_CSIT_VPP_JOB=${IS_CSIT_VPP_JOB}"
-# If and only if we are doing verify *after* make verify was made to work
-# and we are not a CSIT job just building packages, then use make verify,
-# else use the old build-root/vagrant/build.sh
-if (git log --oneline | grep 37682e1 > /dev/null 2>&1) && \
- [ "x${IS_CSIT_VPP_JOB}" != "xTrue" ]
-then
- echo "Building using \"make verify\""
- [ "x${DRYRUN}" == "xTrue" ] || make UNATTENDED=yes verify SKIP_AARCH64=yes
-else
- echo "Building using \"make build-root/vagrant/build.sh\""
- [ "x${DRYRUN}" == "xTrue" ] || make UNATTENDED=yes install-dep
- [ "x${DRYRUN}" == "xTrue" ] || make UNATTENDED=yes dpdk-install-dev
- [ "x${DRYRUN}" == "xTrue" ] || build-root/vagrant/build.sh
-fi
-
-if [ "x${VPP_REPO}" == "x1" ]; then
- if [ "x${REBASE_NEEDED}" == "x1" ]; then
- echo "This patch to vpp is based on an old point in the tree that is likely"
- echo "to fail verify."
- echo "PLEASE REBASE PATCH ON THE CURRENT HEAD OF THE VPP REPO"
- exit 1
- fi
-fi
-
-echo "*******************************************************************"
-echo "* VPP ARM BUILD SUCCESSFULLY COMPLETED"
-echo "*******************************************************************"
diff --git a/jjb/scripts/vpp/build.sh b/jjb/scripts/vpp/build.sh
index 6fdaec13..c6ab0d65 100644
--- a/jjb/scripts/vpp/build.sh
+++ b/jjb/scripts/vpp/build.sh
@@ -40,11 +40,26 @@ echo "IS_CSIT_VPP_JOB=${IS_CSIT_VPP_JOB}"
# If and only if we are doing verify *after* make verify was made to work
# and we are not a CSIT job just building packages, then use make verify,
# else use make pkg-verify.
+if [ "x${MAKE_PARALLEL_JOBS}" != "x" ]
+then
+ echo "Building with MAKE_PARALLEL_JOBS=${MAKE_PARALLEL_JOBS}"
+ export TEST_JOBS="${MAKE_PARALLEL_JOBS}"
+else
+ export TEST_JOBS="auto"
+fi
+
+if [ "x${MAKE_PARALLEL_FLAGS}" != "x" ]
+then
+ echo "Building with MAKE_PARALLEL_FLAGS=${MAKE_PARALLEL_FLAGS}"
+fi
+
+echo "Building with TEST_JOBS=${TEST_JOBS}"
+
if (git log --oneline | grep 37682e1 > /dev/null 2>&1) && \
[ "x${IS_CSIT_VPP_JOB}" != "xTrue" ]
then
echo "Building using \"make verify\""
- [ "x${DRYRUN}" == "xTrue" ] || make UNATTENDED=yes TEST_JOBS=auto verify
+ [ "x${DRYRUN}" == "xTrue" ] || make UNATTENDED=yes verify
else
echo "Building using \"make pkg-verify\""
[ "x${DRYRUN}" == "xTrue" ] || make UNATTENDED=yes pkg-verify
@@ -59,6 +74,8 @@ if [ "x${VPP_REPO}" == "x1" ]; then
fi
fi
+local_arch=$(uname -m)
+
echo "*******************************************************************"
-echo "* VPP BUILD SUCCESSFULLY COMPLETED"
+echo "* VPP ${local_arch^^} BUILD SUCCESSFULLY COMPLETED"
echo "*******************************************************************"
diff --git a/jjb/scripts/vpp/clang-build.sh b/jjb/scripts/vpp/debug-build.sh
index b1bed417..cdf1d076 100644
--- a/jjb/scripts/vpp/clang-build.sh
+++ b/jjb/scripts/vpp/debug-build.sh
@@ -28,13 +28,22 @@ fi
echo "sha1sum of this script: ${0}"
sha1sum $0
+
+# run with ASAN on
+# export VPP_EXTRA_CMAKE_ARGS='-DVPP_ENABLE_SANITIZE_ADDR=ON'
+
+# clang is not working with ASAN right now - see change 27268
+# apparently gcc neither...
+# export CC=gcc
+
+
+
make UNATTENDED=yes install-dep
make UNATTENDED=yes install-ext-deps
-make UNATTENDED=yes -C build-root PLATFORM=vpp TAG=vpp_clang CC=clang CXX=clang install-packages
-make UNATTENDED=yes -C build-root PLATFORM=vpp TAG=vpp_clang CC=clang CXX=clang sample-plugin-install
-make UNATTENDED=yes -C build-root PLATFORM=vpp TAG=vpp_clang CC=clang CXX=clang libmemif-install
+make UNATTENDED=yes build
+make UNATTENDED=yes TEST_JOBS=auto test-debug
echo "*******************************************************************"
-echo "* VPP CLANG BUILD SUCCESSFULLY COMPLETED"
+echo "* VPP debug/asan test BUILD SUCCESSFULLY COMPLETED"
echo "*******************************************************************"
diff --git a/jjb/scripts/vpp/parallel-vars.sh b/jjb/scripts/vpp/parallel-vars.sh
deleted file mode 100644
index 1a5de149..00000000
--- a/jjb/scripts/vpp/parallel-vars.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-CORES=4
-if [[ $(uname -m) == 'aarch64' ]]
-then
- CORES=16
-fi
-
-echo "Using MAKE_PARALLEL_FLAGS='-j $CORES' TEST_JOBS=$CORES for parallel build/test"
-
-export MAKE_PARALLEL_FLAGS="-j $CORES"
-export TEST_JOBS=$CORES
diff --git a/jjb/vpp/vpp.yaml b/jjb/vpp/vpp.yaml
index 70c0ddaa..0bad3f1a 100644
--- a/jjb/vpp/vpp.yaml
+++ b/jjb/vpp/vpp.yaml
@@ -3,6 +3,7 @@
name: vpp
jobs:
- 'vpp-verify-{stream}-{os}'
+ - 'vpp-verify-{stream}-debug'
- 'vpp-merge-{stream}-{os}'
project: 'vpp'
@@ -49,7 +50,6 @@
- project:
name: vpp-clang
jobs:
- - 'vpp-verify-{stream}-clang'
- 'vpp-coverity-{stream}'
project: 'vpp'
@@ -95,7 +95,8 @@
- project:
name: vpp-perpatch
jobs:
- - 'vpp-csit-verify-device-{stream}-{device-node-arch}'
+ - 'vpp-csit-verify-device-{stream}-{device-node-arch}':
+ make-parallel-jobs: '32'
- 'vpp-csit-verify-perf-{stream}-{node-arch}'
project: 'vpp'
os: ubuntu1804
@@ -133,6 +134,7 @@
- 3n-dnv
- 3n-tsh:
executor: 'ubuntu1804arm-s'
+ make-parallel-jobs: '16'
exclude:
- stream: '1904'
os: 'ubuntu1804'
@@ -189,6 +191,7 @@
os:
- ubuntu1804:
repo-os-part: 'ubuntu-arm.bionic.main'
+ make-parallel-jobs: '16'
# TODO: Merge with (e.g.) vpp-perpatch or similar,
# when number of stable branches supported matches.
@@ -257,6 +260,8 @@
name: ARCHIVE_ARTIFACTS
default: '{archive-artifacts}'
description: Artifacts to archive to the logs server.
+ - make-parallel-jobs-parameter:
+ make-parallel-jobs: '{make-parallel-jobs}'
scm:
- gerrit-trigger-scm:
@@ -314,6 +319,8 @@
name: ARCHIVE_ARTIFACTS
default: '{archive-artifacts}'
description: Artifacts to archive to the logs server.
+ - make-parallel-jobs-parameter:
+ make-parallel-jobs: '{make-parallel-jobs}'
scm:
- gerrit-trigger-scm:
@@ -388,6 +395,9 @@
name: ARCHIVE_ARTIFACTS
default: '{archive-artifacts}'
description: Artifacts to archive to the logs server.
+ - make-parallel-jobs-parameter:
+ make-parallel-jobs: '{make-parallel-jobs}'
+ - gerrit-refspec-parameter
scm:
- gerrit-trigger-scm:
@@ -407,15 +417,13 @@
builders:
- shell:
!include-raw-escape:
- - ../scripts/setup_vpp_ubuntu_arm_test.sh
+ - ../scripts/setup_vpp_ubuntu_docker_test.sh
- shell:
!include-raw-escape:
- ../scripts/setup_vpp_dpdk_dev_env.sh
- shell:
!include-raw-escape:
- - ../scripts/vpp/parallel-vars.sh
- # Do not split, the line below wants env vars from the line above.
- - ../scripts/vpp/arm-build.sh
+ - ../scripts/vpp/build.sh
publishers:
- fdio-infra-shiplogs:
@@ -425,7 +433,7 @@
name: 'vpp-arm-merge-{stream}-{os}'
project-type: freestyle
- node: '{os}arm-m'
+ node: '{os}arm-us'
build-discarder:
daysToKeep: '{build-days-to-keep}'
@@ -452,6 +460,9 @@
name: ARCHIVE_ARTIFACTS
default: '{archive-artifacts}'
description: Artifacts to archive to the logs server.
+ - make-parallel-jobs-parameter:
+ make-parallel-jobs: '{make-parallel-jobs}'
+ - gerrit-refspec-parameter
scm:
- gerrit-trigger-scm:
@@ -479,15 +490,16 @@
target: '/root'
- shell:
!include-raw-escape:
- - ../scripts/setup_vpp_ubuntu_arm_test.sh
+ - ../scripts/vpp/checkstyle.sh
+ - shell:
+ !include-raw-escape:
+ - ../scripts/setup_vpp_ubuntu_docker_test.sh
- shell:
!include-raw-escape:
- ../scripts/setup_vpp_dpdk_dev_env.sh
- shell:
!include-raw-escape:
- - ../scripts/vpp/parallel-vars.sh
- # Do not split, the line below wants env vars from the line above.
- - ../scripts/vpp/arm-build-no-test.sh
+ - ../scripts/vpp/build.sh
- provide-maven-settings:
settings-file: 'vpp-settings'
@@ -523,6 +535,7 @@
os: '{os}'
- repo-name-parameter:
repo-name: '{repo-stream-part}.ubuntu.bionic.main'
+ - gerrit-refspec-parameter
scm:
- gerrit-trigger-scm:
@@ -533,6 +546,11 @@
wrappers:
- fdio-infra-wrappers:
build-timeout: '{build-timeout}'
+ - credentials-binding:
+ - text:
+ credential-id: VppApiCompatNotify
+ variable: SECRET_WEBEX_TEAMS_ACCESS_TOKEN
+
triggers:
- gerrit:
@@ -594,6 +612,9 @@
- ../scripts/vpp/test-checkstyle.sh
- shell:
!include-raw-escape:
+ - ../scripts/vpp/api-checkstyle.sh
+ - shell:
+ !include-raw-escape:
- ../scripts/vpp/commitmsg.sh
publishers:
@@ -629,6 +650,8 @@
name: ARCHIVE_ARTIFACTS
default: '{archive-artifacts}'
description: Artifacts to archive to the logs server.
+ - make-parallel-jobs-parameter:
+ make-parallel-jobs: '{make-parallel-jobs}'
scm:
- gerrit-trigger-scm:
@@ -690,6 +713,9 @@
name: ARCHIVE_ARTIFACTS
default: '{archive-artifacts}'
description: Artifacts to archive to the logs server.
+ - make-parallel-jobs-parameter:
+ make-parallel-jobs: '{make-parallel-jobs}'
+ - gerrit-refspec-parameter
scm:
- gerrit-trigger-scm:
@@ -722,7 +748,7 @@
maven-version: 'mvn36'
- job-template:
- name: 'vpp-verify-{stream}-clang'
+ name: 'vpp-verify-{stream}-debug'
project-type: freestyle
node: 'ubuntu1804-us'
@@ -746,6 +772,9 @@
repo-name: '{repo-stream-part}.ubuntu.bionic.main'
- stream-parameter:
stream: '{stream}'
+ - make-parallel-jobs-parameter:
+ make-parallel-jobs: '{make-parallel-jobs}'
+ - gerrit-refspec-parameter
scm:
- gerrit-trigger-scm:
@@ -771,7 +800,7 @@
- ../scripts/setup_vpp_dpdk_dev_env.sh
- shell:
!include-raw-escape:
- - ../scripts/vpp/clang-build.sh
+ - ../scripts/vpp/debug-build.sh
publishers:
- fdio-infra-shiplogs:
@@ -907,6 +936,9 @@
name: ARCHIVE_ARTIFACTS
default: '{archive-artifacts}'
description: Artifacts to archive to the logs server.
+ - make-parallel-jobs-parameter:
+ make-parallel-jobs: '{make-parallel-jobs}'
+ - gerrit-refspec-parameter
scm:
- gerrit-trigger-scm:
@@ -986,6 +1018,8 @@
name: ARCHIVE_ARTIFACTS
default: '{archive-artifacts}'
description: Artifacts to archive to the logs server.
+ - make-parallel-jobs-parameter:
+ make-parallel-jobs: '{make-parallel-jobs}'
scm:
- gerrit-trigger-scm:
@@ -1076,6 +1110,8 @@
name: ARCHIVE_ARTIFACTS
default: '{archive-artifacts}'
description: Artifacts to archive to the logs server.
+ - make-parallel-jobs-parameter:
+ make-parallel-jobs: '{make-parallel-jobs}'
scm:
- gerrit-trigger-scm:
@@ -1162,6 +1198,8 @@
name: ARCHIVE_ARTIFACTS
default: '{archive-artifacts}'
description: Artifacts to archive to the logs server.
+ - make-parallel-jobs-parameter:
+ make-parallel-jobs: '{make-parallel-jobs}'
scm:
- gerrit-trigger-scm: