summaryrefslogtreecommitdiffstats
path: root/docker
diff options
context:
space:
mode:
Diffstat (limited to 'docker')
-rw-r--r--docker/LICENSE32
-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/scripts/README.md271
-rwxr-xr-xdocker/scripts/build_executor_docker_image.sh151
-rwxr-xr-xdocker/scripts/dbld_csit_find_ansible_packages.py91
-rwxr-xr-xdocker/scripts/dbld_csit_install_packages.sh60
-rwxr-xr-xdocker/scripts/dbld_dump_build_logs.sh55
-rwxr-xr-xdocker/scripts/dbld_lfit_requirements.sh58
-rwxr-xr-xdocker/scripts/dbld_vpp_install_packages.sh79
-rw-r--r--docker/scripts/lib_apt.sh352
-rw-r--r--docker/scripts/lib_common.sh271
-rw-r--r--docker/scripts/lib_csit.sh390
-rw-r--r--docker/scripts/lib_vpp.sh102
-rwxr-xr-xdocker/scripts/update_dockerhub_prod_tags.sh402
-rw-r--r--docker/vpp/vpp-arm-centos8/Dockerfile367
-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-ubuntu16/Dockerfile179
-rw-r--r--docker/vpp/vpp-arm-ubuntu18/Dockerfile325
-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/Dockerfile367
-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/Dockerfile387
-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/Dockerfile248
-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/Dockerfile342
-rw-r--r--docker/vpp/vpp-ubuntu18/files/badkey27
-rw-r--r--docker/vpp/vpp-ubuntu18/files/default-jdk-headless_1.8-59ubuntu2_amd64.debbin1156 -> 0 bytes
-rw-r--r--docker/vpp/vpp-ubuntu18/files/default-jre-headless_1.8-59ubuntu2_amd64.debbin2168 -> 0 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/Dockerfile339
-rw-r--r--docker/vpp/vpp-ubuntu20/files/badkey27
-rw-r--r--docker/vpp/vpp-ubuntu20/files/default-jdk-headless_1.8-59ubuntu2_amd64.debbin1156 -> 0 bytes
-rw-r--r--docker/vpp/vpp-ubuntu20/files/default-jre-headless_1.8-59ubuntu2_amd64.debbin2168 -> 0 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
78 files changed, 2282 insertions, 3862 deletions
diff --git a/docker/LICENSE b/docker/LICENSE
index 20f96ba86..e2c1e1a09 100644
--- a/docker/LICENSE
+++ b/docker/LICENSE
@@ -1,36 +1,4 @@
-----------
-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/
diff --git a/docker/README b/docker/README
deleted file mode 100644
index 2cbe9cd3f..000000000
--- a/docker/README
+++ /dev/null
@@ -1,18 +0,0 @@
-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
deleted file mode 100644
index 288c49b19..000000000
--- a/docker/csit/csit-shim/Dockerfile
+++ /dev/null
@@ -1,50 +0,0 @@
-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
deleted file mode 100644
index 574268450..000000000
--- a/docker/csit/csit-shim/files/badkeypub
+++ /dev/null
@@ -1 +0,0 @@
-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
deleted file mode 100644
index 85ad6f74a..000000000
--- a/docker/csit/csit-shim/files/sshconfig
+++ /dev/null
@@ -1,3 +0,0 @@
-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
deleted file mode 100644
index 2ca579fdf..000000000
--- a/docker/csit/csit-shim/files/wrapdocker
+++ /dev/null
@@ -1,113 +0,0 @@
-#!/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
deleted file mode 100644
index ba212dc96..000000000
--- a/docker/csit/csit-sut/Dockerfile
+++ /dev/null
@@ -1,173 +0,0 @@
-# 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
deleted file mode 100644
index 4a6fe9656..000000000
--- a/docker/csit/csit-sut/supervisord.conf
+++ /dev/null
@@ -1,24 +0,0 @@
-[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/scripts/README.md b/docker/scripts/README.md
new file mode 100644
index 000000000..5fb4cee40
--- /dev/null
+++ b/docker/scripts/README.md
@@ -0,0 +1,271 @@
+# Automated Building Of FD.io CI Executor Docker Images
+
+This collection of bash scripts and libraries is used to automate the process
+of building FD.io docker 'builder' images (aka Nomad executors). The goal is to
+create a completely automated CI/CD pipeline. The bash code is designed to be
+run in a regular Linux bash shell in order to bootstrap the CI/CD pipeline
+as well as in a docker 'builder' image started by a ci-management jenkins job.
+The Dockerfile is generated prior to executing 'docker build' based on the os
+parameter specified. The project git repos are also copied into the docker
+container and retained for optimization of git object retrieval by the Jenkins
+jobs running the CI/CD tasks.
+
+## Image Builder Algorithm
+
+The general algorithm to automate the generation of the docker images such that
+the downloadable requirements for each project are pre-installed or cached in
+the executor image is as follows:
+
+1. Run the docker image builder on a host of the target architecture. Bootstrap
+ images will be built 'by hand' on target hosts until such a time when the
+ CI is capable of executing the docker image builder scripts inside docker
+ images running on Nomad instances via jenkins jobs.
+
+2. For each OS package manager, there is a bash function which generates the
+ Dockerfile for the specified OS which uses said package manager. For example,
+ lib_apt.sh contains 'generate_apt_dockerfile()' which is executed for Ubuntu
+ and debian OS's.
+
+3. The Dockerfiles contain the following sections:
+ - a. Environment setup and copying of project workspace git repos
+ - b. Installation of OS package pre-requisites
+ - c. Docker install and project requirements installation (more on this below)
+ - d. Working environment setup
+ - e. Build cleanup
+
+4. The Project installation section (c.) above is where all of the packages
+ for each of the supported project branches are installed or cached to
+ save time and bandwidth when the CI jobs are run. Each project script
+ defines the branches supported for each OS and iterates over them from
+ oldest to newest using the dependency and requirements files or build
+ targets in each supported project branch.
+
+5. `docker build` is run on the generated Dockerfile.
+
+## Bash Libraries (lib_*.sh)
+
+The bash libraries are designed to be sourced both inside of the docker build
+environment (e.g. from a script invoked in a Dockerfile RUN statement) as well
+as in a normal Linux shell. These scripts create environment variables and
+bash functions for use by the operational scripts.
+
+- `lib_apt.sh`: Dockerfile generation functions for apt package manager.
+
+- `lib_common.sh`: Common utility functions and environment variables
+
+- `lib_csit.sh`: CSIT specific functions and environment variables
+
+- `lib_vpp.sh`: VPP specific functions and environment variables
+
+
+## Bash Scripts
+
+There are two types of bash scripts, those intended to be run solely inside
+the docker build execution environment, the other run either inside or
+outside of it.
+
+### Docker Build (dbld_*.sh) Scripts
+
+These scripts run inside the 'docker build' environment are either per-project
+scripts that install OS and python packages or scripts that install other docker
+image runtime requirements.
+
+Python packages are not retained because they are typically installed in virtual
+environments. However installing the python packages in the Docker Build scripts
+populates the pip/http caches. Therefore packages are installed from the cache
+files during CI job execution instead of being downloaded from the Internet.
+
+- `dbld_csit_find_ansible_packages.sh`: Script to find OS packages installed by
+CSIT using ansible.
+
+- `dbld_csit_install_packages.sh`: Install OS and python packages for CSIT
+branches
+
+- `dbld_dump_build_logs.sh`: Find warnings/errors in the build logs and dump
+the build_executor_docker_image.sh execution log.
+
+- `dbld_install_docker.sh`: Install docker ce
+
+- `dbld_lfit_requirements.sh`: Install requirements for LFIT global-jjb
+macros / scripts
+
+- `dbld_vpp_install_packages.sh`: Install OS and python packages for VPP
+branches
+
+### Executor Docker Image Management Bash Scripts
+
+These scripts are used to build executor docker images, inspect the results, and
+manage the docker image tags in the Docker Hub fdiotools repositories.
+
+- `build_executor_docker_image.sh`: Build script to create one or more executor
+docker images.
+
+- `update_dockerhub_prod_tags.sh`: Inspect/promote/revert production docker tag
+in the Docker Hub fdiotools repositories.
+
+## Running The Scripts
+
+### Bootstrapping The Builder Images
+
+The following commands are useful to build the initial builder images:
+
+`cd <ci-managment repository directory>`
+
+`sudo ./docker/scripts/build_executor_docker_image.sh ubuntu-20.04 2>&1 | tee u2004-$(uname -m).log | grep -ve '^+'`
+
+`sudo ./docker/scripts/build_executor_docker_image.sh -apr sandbox 2>&1 | tee all-sandbox-$(uname -m).log | grep -ve '^+'`
+
+Note: The initial population of a Docker Hub repository is performed manually by
+tagging and pushing the verified sandbox image as 'prod-<arch>' and
+'prod-prev-<arch>' as the update_dockerhub_prod_tags.sh script assumes that
+both labels exist in the repo. After the intial images have been pushed to the
+Docker Hub respository, the update script is used to prevent inadvertently
+applying the wrong tags to images in the repository.
+
+### Building in a Builder Image
+
+By running the docker image with docker socket mounted in the container,
+the docker build environment runs on the host's docker daemon. This
+avoids the pitfalls encountered with Docker-In-Docker environments:
+
+`sudo docker run -it -v /var/run/docker.sock:/var/run/docker.sock <docker-image>`
+
+The environment in the docker shell contains all of the necessary
+environment variable definitions so the docker scripts can be run
+directly on the cli. Here is an example command that would be used in a CI job
+which automates the generation and testing of a new ubuntu-20.04 docker image
+and push it to Docker Hub fdiotools/builder-ubuntu2004:test-<arch>:
+
+`build_executor_docker_image.sh -pr test ubuntu-20.04`
+
+In the future, a fully automated CI/CD pipeline may be created for production
+docker images.
+
+# Docker Image Script Workflow
+
+This section describes the current workflow used for managing the CI/CD pipeline
+for the Docker Images used by the FD.io CI Jobs.
+
+Note: all operations that push images or image tags to Docker Hub require an
+account with management privileges of the fdiotools repositories.
+
+## Update Production Docker Images
+
+Note: Presently only the 'builder' class executor docker images are supported.
+The others will be supported in the near future.
+
+### Build Docker Images and Push to Docker Hub with Sandbox CI Tag
+
+For each hardware architecture, the build_executor_docker_image.sh script is
+used to build all variants of the each executor class:
+
+1. `git clone https://gerrit.fd.io/r/ci-management && cd ci-management`
+
+2. `sudo ./docker/scripts/build_executor_docker_image.sh -p -r sandbox -a | tee builder-all-sandbox-$(uname -m).log | grep -ve '^+'``
+
+3. `Inspect the build log for Errors and other build anomalies`
+
+This step will take a very long time so best to do it overnight. There is not
+currently an option to automatically run builds in parallel, so if optimizing
+build times is important, then run the jobs in separate shells for each OS.
+The aarch64 builds are particularly slow, thus may benefit from being run on
+separate hosts in parallel.
+
+Note: the 'prod' role is disallowed in the build script to prevent accidental
+deployment of untested docker images to production.
+
+### Test Docker Images in the Jenkins Sandbox
+
+In the future, this step will be automated using the role 'test' and associated
+tags, but for now testing is a manual operation.
+
+1. `git clone https://gerrit.fd.io/r/vpp ../vpp && source ../vpp/extras/bash/functions.sh`
+
+2. Edit jjb/vpp/vpp.yam (or other project yaml file) and replace '-prod-' with '-sandbox-' for all of the docker image
+
+3. `jjb-sandbox-env`
+
+4. For each job using one of the docker images:
+
+ a. `jjsb-update <job name(s)>` # bash function created by jjb-sandbox-env to
+ push job to the sandbox
+
+ b. manually run the job in https://jenkins.fd.io/sandbox
+
+ c. Inspect the console output of each job for unnecessary downloads & errors.
+
+### Promote Docker Images to Production
+
+Once all of the docker images have been tested, promote each one to production:
+
+`sudo ./docker/scripts/update_dockerhub_prod_tags.sh promote <image name>`
+
+Note: this script currently requires human acceptance via the terminal to ensure
+correctness.
+It pulls all tags from the Docker Hub repos, does an Inspect action (displaying
+the current state of 'prod' & 'prod-prev' tags) and local Promotion action (i.e.
+tags local images with 'prod-<arch>' and 'prod-prev-<arch>') with a required
+confirmation to continue the promotion by pushing the tags to Docker Hub. If
+'no' is specified, it restores the previous local tags so they match the state
+of Docker Hub and does a new Inspect action for verification. If 'yes' is
+specified, it prints out the command to use to restore the existing state of the
+production tags on Docker Hub in case the script is terminated prior to
+completion. If necessary, the restore command can be repeated multiple times
+until it completes successfully since it promotes the 'prod-prev-<arch>' image,
+then the 'prod-<arch>' image in succession.
+
+## Other Docker Hub Operations
+
+### Inspect Production Docker Image Tags
+
+Inspect the current production docker image tags:
+
+`sudo ./docker/scripts/update_dockerhub_prod_tags.sh inspect fdiotools/<class>-<os name>:prod-$(uname -m)`
+
+### Revert Production Docker Image To Previous Docker Image
+
+Inspect the current production docker image tags:
+
+`sudo ./docker/scripts/update_dockerhub_prod_tags.sh revert fdiotools/<class>-<os name>:prod-$(uname -m)`
+
+### Restoring Previous Production Image State
+
+Assuming that the images still exist in the Docker Hub repository, any previous
+state of the production image tags can be restored by executing the 'restore
+command' as output by the build_executor_docker_image.sh script. This script
+writes a copy of all of the terminal output to a log file in
+/tmp/build_executor_docker_image.sh.<date>.log thus providing a history of the
+restore commands. When the building of executor docker images is peformed by a
+CI job, the logging can be removed since the job execution will be captured in
+the Jenkins console output log.
+
+### Docker Image Garbage Collection
+
+Presently, cleaning up the Docker Hub repositories of old images/tags is a
+manual process using the Docker Hub WebUI. In the future, a garbage collection
+script will be written to automate the process.
+
+# DockerHub Repository & Docker Image Tag Nomenclature:
+
+## DockerHub Repositories
+
+- fdiotools/builder-debian11
+- fdiotools/builder-ubuntu2004
+- fdiotools/builder-ubuntu2204
+- fdiotools/csit_dut-ubuntu2004
+- fdiotools/csit_shim-ubuntu2004
+
+## Docker Image Tags
+
+- prod-x86_64: Tag used to select the x86_64 production image by the associated
+Jenkins-Nomad Label.
+- prod-prev-x86_64: Tag of the previous x86_64 production image used to revert
+a production image to the previous image used in production.
+- prod-aarch64: Tag used to select the aarch64 production image by the
+associated Jenkins-Nomad Label.
+- prod-prev-aarch64 Tag of the previous aarch64 production image used to revert
+a production image to the previous image used in production.
+- sandbox-x86_64: Tag used to select the x86_64 sandbox image by the associated
+Jenkins-Nomad Label.
+- sandbox-aarch64: Tag used to select the aarch64 sandbox image by the
+associated Jenkins-Nomad Label.
diff --git a/docker/scripts/build_executor_docker_image.sh b/docker/scripts/build_executor_docker_image.sh
new file mode 100755
index 000000000..7a731956e
--- /dev/null
+++ b/docker/scripts/build_executor_docker_image.sh
@@ -0,0 +1,151 @@
+#! /bin/bash
+
+# Copyright (c) 2021 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.
+
+set -euxo pipefail
+
+# Log all output to stdout & stderr to a log file
+export DOCKER_DATE=${DOCKER_DATE:-"$(date -u +%Y_%m_%d_%H%M%S_UTC)"}
+logname="/tmp/$(basename $0).${DOCKER_DATE}.log"
+echo -e "\n*** Logging output to $logname ***\n\n"
+exec > >(tee -a $logname) 2>&1
+
+export CIMAN_DOCKER_SCRIPTS=${CIMAN_DOCKER_SCRIPTS:-"$(dirname $BASH_SOURCE)"}
+. "$CIMAN_DOCKER_SCRIPTS/lib_vpp.sh"
+. "$CIMAN_DOCKER_SCRIPTS/lib_csit.sh"
+. "$CIMAN_DOCKER_SCRIPTS/lib_apt.sh"
+
+all_os_names=""
+ci_tag=""
+ci_image=""
+os_names=""
+push_to_docker_hub=""
+dump_dockerfile=""
+
+usage() {
+ set +x
+ echo
+ echo "Usage: $0 [-c <class>] [-p] [-r <role>] -a | <os name> [... <os name>]"
+ echo " -a Run all OS's supported on class $EXECUTOR_CLASS & arch $OS_ARCH"
+ echo " -c <class> Default is '$EXECUTOR_DEFAULT_CLASS'"
+ executor_list_classes
+ echo " -d Generate Dockerfile, dump it to stdout, and exit"
+ echo " -p Push docker images to Docker Hub"
+ echo " -r <role> Add a role based tag (e.g. sandbox-x86_64):"
+ executor_list_roles
+ executor_list_os_names
+ exit 1
+}
+
+must_be_run_as_root_or_docker_group
+while getopts ":ac:dhpr:" opt; do
+ case "$opt" in
+ a) all_os_names="1" ;;
+ c) if executor_verify_class "$OPTARG" ; then
+ EXECUTOR_CLASS="$OPTARG"
+ EXECUTOR_CLASS_ARCH="$EXECUTOR_CLASS-$OS_ARCH"
+ else
+ echo "ERROR: Invalid executor class '$OPTARG'!"
+ usage
+ fi ;;
+ d) dump_dockerfile="1"; set +x ;;
+ h) usage ;;
+ p) push_to_docker_hub="1" ;;
+ r) if executor_verify_role "$OPTARG" ; then
+ ci_tag="${OPTARG}-$OS_ARCH"
+ else
+ echo "ERROR: Invalid executor role: '$OPTARG'!"
+ usage
+ fi ;;
+ \?)
+ echo "ERROR: Invalid option: -$OPTARG" >&2
+ usage ;;
+ :)
+ echo "ERROR: Option -$OPTARG requires an argument." >&2
+ usage ;;
+ esac
+done
+shift $(( $OPTIND-1 ))
+
+if [ -n "$all_os_names" ] ; then
+ os_names="${EXECUTOR_CLASS_ARCH_OS_NAMES[$EXECUTOR_CLASS_ARCH]}"
+else
+ os_names="$@"
+fi
+
+# Validate arguments
+if [ -z "$os_names" ] ; then
+ echo "ERROR: Missing executor OS name(s) for class '$EXECUTOR_CLASS'!"
+ usage
+fi
+for executor_os_name in $os_names ; do
+ if ! executor_verify_os_name "$executor_os_name" ; then
+ set_opts="$-"
+ set +x # disable trace output
+ echo "ERROR: Invalid executor OS name for class '$EXECUTOR_CLASS': $executor_os_name!"
+ executor_list_os_names
+ echo
+ exit 1
+ fi
+done
+
+# Build the specified docker images
+docker_build_setup_ciman
+docker_build_setup_vpp
+docker_build_setup_csit
+for executor_os_name in $os_names ; do
+ docker_from_image="$(echo $executor_os_name | sed -e 's/-/:/')"
+ # Remove '-' and '.' from executor_os_name in Docker Hub repo name
+ os_name="${executor_os_name//-}"
+ repository="fdiotools/${EXECUTOR_CLASS}-${os_name//.}"
+ executor_docker_image="$repository:$DOCKER_TAG"
+
+ case "$executor_os_name" in
+ ubuntu*)
+ generate_apt_dockerfile "$EXECUTOR_CLASS" "$executor_os_name" \
+ "$docker_from_image" "$executor_docker_image" ;;
+ debian*)
+ generate_apt_dockerfile "$EXECUTOR_CLASS" "$executor_os_name" \
+ "$docker_from_image" "$executor_docker_image" ;;
+ *)
+ echo "ERROR: Don't know how to generate dockerfile for OS $executor_os_name!"
+ usage ;;
+ esac
+
+ if [ -n "$dump_dockerfile" ] ; then
+ line="==========================================================================="
+ echo -e "\nDockerfile for '$EXECUTOR_CLASS' executor docker image on OS '$executor_os_name':\n$line"
+ cat "$DOCKERFILE"
+ echo -e "$line\n"
+ else
+ docker build -t "$executor_docker_image" "$DOCKER_BUILD_DIR"
+ rm -f "$DOCKERFILE"
+ if [ -n "$ci_tag" ] ; then
+ ci_image="$repository:$ci_tag"
+ echo -e "\nAdding docker tag $ci_image to $executor_docker_image"
+ docker tag "$executor_docker_image" "$ci_image"
+ fi
+ if [ -n "$push_to_docker_hub" ] ; then
+ echo -e "\nPushing $executor_docker_image to Docker Hub..."
+ docker login
+ docker push "$executor_docker_image"
+ if [ -n "$ci_image" ] ; then
+ echo -e "\nPushing $ci_image to Docker Hub..."
+ docker push "$ci_image"
+ fi
+ fi
+ fi
+done
+
+echo -e "\n$(basename $BASH_SOURCE) COMPLETE\nHave a great day! :D"
diff --git a/docker/scripts/dbld_csit_find_ansible_packages.py b/docker/scripts/dbld_csit_find_ansible_packages.py
new file mode 100755
index 000000000..52ed4c3b0
--- /dev/null
+++ b/docker/scripts/dbld_csit_find_ansible_packages.py
@@ -0,0 +1,91 @@
+#! /usr/bin/env python3
+
+# Copyright (c) 2021 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.
+
+import os
+import pprint
+import sys
+from typing import List
+import yaml
+import logging
+
+logging.basicConfig(format='%(message)s')
+log = logging.getLogger(__name__)
+
+def print_yaml_struct(yaml_struct, depth=0):
+ indent = " " * depth
+ for k,v in sorted(yaml_struct.items(), key=lambda x: x[0]):
+ if isinstance(v, dict):
+ log.warning(f"{indent}{k}")
+ print_yaml_struct(v, depth+1)
+ else:
+ log.warning(f"{indent}{k} {v}")
+
+class CsitAnsibleYamlStruct:
+ def __init__(self, **entries):
+ self.__dict__.update(entries)
+
+def packages_in_csit_ansible_yaml_file(yamlfile: str, distro, arch) -> list:
+ with open(yamlfile) as yf:
+ csit_ansible_yaml = yaml.safe_load(yf)
+ if csit_ansible_yaml is None:
+ return ""
+ cays = CsitAnsibleYamlStruct(**csit_ansible_yaml)
+ try:
+ packages = [pkg for pkg in cays.packages_base if type(pkg) is str]
+ except AttributeError:
+ return ""
+ if arch in [*cays.packages_by_arch]:
+ packages += [pkg for pkg in cays.packages_by_arch[arch]
+ if type(pkg) is str]
+ if distro in [*cays.packages_by_distro]:
+ packages += [pkg for pkg in cays.packages_by_distro[distro]
+ if type(pkg) is str]
+ return packages
+
+def is_csit_ansible_yaml_file(filename: str):
+ (root,ext) = os.path.splitext(filename)
+ if ext == '.yaml' \
+ and filename.find('csit/') >= 0 \
+ and filename.find('ansible/') > 0 \
+ and os.path.isfile(filename):
+ return True
+ else:
+ return False
+
+def main(args: List[str]) -> None:
+ if len(args) < 1:
+ log.warning('Must have at least 1 file name')
+ return
+ pkg_list = []
+ distro = 'ubuntu'
+ arch = 'x86_64'
+
+ for arg in args:
+ if arg.lower() == '--ubuntu':
+ distro = 'ubuntu'
+ elif arg.lower() == '--x86_64':
+ arch = 'x86_64'
+ elif arg.lower() == '--aarch64':
+ arch = 'aarch64'
+ elif is_csit_ansible_yaml_file(arg):
+ pkg_list += packages_in_csit_ansible_yaml_file(arg, distro, arch)
+ else:
+ log.warning(f'Invalid CSIT Ansible YAML file: {arg}')
+ pkg_list = list(set(pkg_list))
+ pkg_list.sort()
+ print(" ".join(pkg_list))
+
+if __name__ == "__main__":
+ main(sys.argv[1:])
diff --git a/docker/scripts/dbld_csit_install_packages.sh b/docker/scripts/dbld_csit_install_packages.sh
new file mode 100755
index 000000000..e303ce28e
--- /dev/null
+++ b/docker/scripts/dbld_csit_install_packages.sh
@@ -0,0 +1,60 @@
+#! /bin/bash
+
+# Copyright (c) 2021 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.
+
+set -euxo pipefail
+
+export CIMAN_DOCKER_SCRIPTS=${CIMAN_DOCKER_SCRIPTS:-"$(dirname $BASH_SOURCE)"}
+. "$CIMAN_DOCKER_SCRIPTS/lib_csit.sh"
+. "$CIMAN_DOCKER_SCRIPTS/lib_vpp.sh"
+
+must_be_run_in_docker_build
+
+echo_log
+
+if ! csit_supported_executor_class "$FDIOTOOLS_EXECUTOR_CLASS" ; then
+ echo_log "CSIT is not supported on executor class '$FDIOTOOLS_EXECUTOR_CLASS'. Skipping $(basename $0)..."
+ exit 0
+elif ! csit_supported_os "$OS_NAME" ; then
+ echo_log "CSIT is not supported on OS '$OS_NAME'. Skipping $(basename $0)..."
+ exit 0
+else
+ echo_log "Starting $(basename $0)"
+fi
+
+do_git_config csit
+for vpp_branch in ${VPP_BRANCHES[$OS_NAME]} ; do
+ # Returns checked out branch in csit_branch
+ csit_checkout_branch_for_vpp "$vpp_branch"
+
+ # Install csit OS packages
+ csit_install_packages "$csit_branch"
+
+ # Install/cache python packages
+ csit_install_hugo "$csit_branch"
+
+ # Install/cache python packages
+ csit_pip_cache "$csit_branch"
+done
+
+# Install csit OS packages
+csit_install_packages "master"
+
+# Install/cache python packages
+csit_install_hugo "master"
+
+# Install/cache python packages
+csit_pip_cache "master"
+
+echo_log -e "Completed $(basename $0)!\n\n=========="
diff --git a/docker/scripts/dbld_dump_build_logs.sh b/docker/scripts/dbld_dump_build_logs.sh
new file mode 100755
index 000000000..443d538c8
--- /dev/null
+++ b/docker/scripts/dbld_dump_build_logs.sh
@@ -0,0 +1,55 @@
+#! /bin/bash
+
+# Copyright (c) 2021 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.
+
+set -euxo pipefail
+
+export CIMAN_DOCKER_SCRIPTS=${CIMAN_DOCKER_SCRIPTS:-"$(dirname $BASH_SOURCE)"}
+export CIMAN_ROOT=${CIMAN_ROOT:-"$(dirname $(dirname $CIMAN_DOCKER_SCRIPTS))"}
+. "$CIMAN_DOCKER_SCRIPTS/lib_common.sh"
+
+must_be_run_in_docker_build
+
+dump_build_logs() {
+ local set_opts="$-"
+ set +e # disable exit on errors
+
+ # Find errors
+ local found="$(grep -nisH error $DOCKER_BUILD_LOG_DIR/*-bld.log)"
+ if [ -n "$found" ] ; then
+ echo -e "\nErrors found in build log files:\n$found\n"
+ else
+ echo -e "\nNo errors found in build logs\n"
+ fi
+
+ # Find warnings
+ found="$(grep -nisH warning $DOCKER_BUILD_LOG_DIR/*-bld.log)"
+ if [ -n "$found" ] ; then
+ echo -e "\nWarnings found in build log files:\n$found\n"
+ else
+ echo -e "\nNo warnings found in build logs\n"
+ fi
+
+ grep -q e <<< "$set_opts" && set -e # re-enable exit on errors
+}
+
+dump_cache_files() {
+ local cache_files_log="$DOCKER_BUILD_LOG_DIR/cached_files.json"
+ tree -a --timefmt "+%Y-%m-%d %H:%M:%S" --prune /root
+ tree -afJ --timefmt "+%Y-%m-%d %H:%M:%S" --prune -o "$cache_files_log" /root
+}
+
+dump_cache_files
+dump_build_logs
+dump_echo_log
diff --git a/docker/scripts/dbld_lfit_requirements.sh b/docker/scripts/dbld_lfit_requirements.sh
new file mode 100755
index 000000000..ca54edd89
--- /dev/null
+++ b/docker/scripts/dbld_lfit_requirements.sh
@@ -0,0 +1,58 @@
+#! /bin/bash
+
+# Copyright (c) 2021 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.
+
+set -euxo pipefail
+
+export CIMAN_DOCKER_SCRIPTS=${CIMAN_DOCKER_SCRIPTS:-"$(dirname $BASH_SOURCE)"}
+. "$CIMAN_DOCKER_SCRIPTS/lib_common.sh"
+
+must_be_run_in_docker_build
+
+# Add packagecloud files
+cat <<EOF >/root/.packagecloud
+{"url":"https://packagecloud.io","token":"\$token"}
+EOF
+cat <<EOF >/root/packagecloud_api
+machine packagecloud.io
+login \$pclogin
+password
+EOF
+
+# Copy lf-env.sh for LF Releng scripts
+lf_env_sh="/root/lf-env.sh"
+cp "$DOCKER_CIMAN_ROOT/global-jjb/jenkins-init-scripts/lf-env.sh" "$lf_env_sh"
+chmod 644 "$lf_env_sh"
+cat <<EOF >>"$lf_env_sh"
+
+# When running in CI docker image, use the pre-installed venv
+# instead of installing python packages every job run.
+#
+unset -f lf-activate-venv
+lf-activate-venv() {
+ echo "\${FUNCNAME[0]}(): INFO: Adding $LF_VENV/bin to PATH"
+ PATH="\$LF_VENV/bin:\$PATH"
+ return 0
+}
+EOF
+
+# Install lftools & boto3 for log / artifact upload.
+python3 -m pip install boto3
+mkdir -p "$LF_VENV"
+OLD_PATH="$PATH"
+python3 -m venv "$LF_VENV"
+PATH="$LF_VENV/bin:$PATH"
+python3 -m pip install pip --upgrade
+python3 -m pip install --upgrade --upgrade-strategy eager lftools
+PATH="$OLD_PATH"
diff --git a/docker/scripts/dbld_vpp_install_packages.sh b/docker/scripts/dbld_vpp_install_packages.sh
new file mode 100755
index 000000000..5e1e0f8f0
--- /dev/null
+++ b/docker/scripts/dbld_vpp_install_packages.sh
@@ -0,0 +1,79 @@
+#! /bin/bash
+
+# Copyright (c) 2021 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.
+
+set -euxo pipefail
+
+export CIMAN_DOCKER_SCRIPTS=${CIMAN_DOCKER_SCRIPTS:-"$(dirname $BASH_SOURCE)"}
+. "$CIMAN_DOCKER_SCRIPTS/lib_vpp.sh"
+. "$CIMAN_DOCKER_SCRIPTS/lib_apt.sh"
+
+must_be_run_in_docker_build
+
+echo_log
+if ! vpp_supported_executor_class "$FDIOTOOLS_EXECUTOR_CLASS" ; then
+ echo_log "VPP is not supported on executor class '$FDIOTOOLS_EXECUTOR_CLASS'. Skipping $(basename $0)..."
+ exit 0
+else
+ echo_log "Starting $(basename $0)"
+fi
+
+do_git_config vpp
+for branch in ${VPP_BRANCHES[$OS_NAME]} ; do
+ do_git_branch "$branch"
+
+ # Install OS packages
+ make_vpp "install-dep" "$branch"
+
+ # Download, build, and cache external deps packages
+ make_vpp "install-ext-deps" "$branch"
+ vpp_ext_dir="$DOCKER_VPP_DIR/build/external"
+ rsync -ac $vpp_ext_dir/downloads/. $DOCKER_DOWNLOADS_DIR || true
+ if which apt >/dev/null ; then
+ vpp_ext_deps_pkg=$vpp_ext_dir/$(dpkg -l vpp-ext-deps 2>/dev/null | mawk '/vpp-ext-deps/{print $2"_"$3"_"$4".deb"}')
+ else
+ echo "ERROR: Package Manager not installed!"
+ exit 1
+ fi
+ if [ -f "$vpp_ext_deps_pkg" ] ; then
+ cp -f $vpp_ext_deps_pkg $DOCKER_DOWNLOADS_DIR
+ else
+ echo "ERROR: Missing VPP external deps package: '$vpp_ext_deps_pkg'"
+ exit 1
+ fi
+ # TODO: remove this after all supported VPP branches have removed
+ # python3-virtualenv & virtualenv from install-deps which are no longer
+ # used in vpp repo. These packages can mess up csit virtualenv
+ # installation which uses pip3
+ sudo apt remove -y --purge --autoremove python3-virtualenv virtualenv || true
+
+ # Install/cache python packages
+ make_vpp_test "test-dep" "$branch"
+ if [ "$OS_ID" = "ubuntu" ] ; then
+ make_vpp test-wipe "$branch"
+ fi
+ # Clean up virtual environment
+ git checkout -q -- .
+ git clean -qfdx
+
+ # Dump packages installed
+ case "$DOCKERFILE_FROM" in
+ *ubuntu*)
+ dump_apt_package_list "$branch" ;;
+ *debian*)
+ dump_apt_package_list "$branch" ;;
+ esac
+done
+
+echo_log -e "Completed $(basename $0)!\n\n=========="
diff --git a/docker/scripts/lib_apt.sh b/docker/scripts/lib_apt.sh
new file mode 100644
index 000000000..6cf37ae76
--- /dev/null
+++ b/docker/scripts/lib_apt.sh
@@ -0,0 +1,352 @@
+# lib_apt.sh - Docker build script apt library.
+# For import only.
+
+# Copyright (c) 2023 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.
+
+# Don't import more than once.
+if [ -n "$(alias lib_apt_imported 2> /dev/null)" ] ; then
+ return 0
+fi
+alias lib_apt_imported=true
+
+export CIMAN_DOCKER_SCRIPTS=${CIMAN_DOCKER_SCRIPTS:-"$(dirname $BASH_SOURCE)"}
+. "$CIMAN_DOCKER_SCRIPTS/lib_common.sh"
+. "$CIMAN_DOCKER_SCRIPTS/lib_csit.sh"
+
+dump_apt_package_list() {
+ branchname="$(echo $branch | sed -e 's,/,_,')"
+ dpkg -l > \
+ "$DOCKER_BUILD_LOG_DIR/$FDIOTOOLS_IMAGENAME-$branchname-apt-packages.log"
+}
+
+apt_install_packages() {
+ apt-get install -y --allow-downgrades --allow-remove-essential \
+ --allow-change-held-packages $@
+}
+
+generate_apt_dockerfile_common() {
+ local executor_class="$1"
+ local executor_image="$2"
+ local dpkg_arch="$(dpkg --print-architecture)"
+
+ cat <<EOF >>"$DOCKERFILE"
+
+# Create download dir to cache external tarballs
+WORKDIR $DOCKER_DOWNLOADS_DIR
+
+# Copy-in temporary build tree containing
+# ci-management, vpp, & csit git repos
+WORKDIR $DOCKER_BUILD_DIR
+COPY . .
+
+# Build Environment Variables
+ENV DEBIAN_FRONTEND="noninteractive"
+ENV FDIOTOOLS_IMAGE="$executor_image"
+ENV FDIOTOOLS_EXECUTOR_CLASS="$executor_class"
+ENV CIMAN_ROOT="$DOCKER_CIMAN_ROOT"
+ENV PATH="\$PATH:$DOCKER_CIMAN_ROOT/docker/scripts"
+
+# Configure locales
+RUN apt-get update -qq \\
+ && apt-get install -y \\
+ apt-utils \\
+ locales \\
+ && sed -i 's/# \(en_US\.UTF-8 .*\)/\1/' /etc/locale.gen \\
+ && locale-gen en_US.UTF-8 \\
+ && dpkg-reconfigure --frontend=noninteractive locales \\
+ && update-locale LANG=en_US.UTF-8 \\
+ && TZ=Etc/UTC && ln -snf /usr/share/zoneinfo/\$TZ /etc/localtime && echo \$TZ > /etc/timezone \\
+ && rm -r /var/lib/apt/lists/*
+ENV LANG="en_US.UTF-8" LANGUAGE="en_US" LC_ALL="en_US.UTF-8"
+
+# Install baseline packages (minimum build & utils).
+#
+# ci-management global-jjb requirements:
+# facter
+# python3-pip
+# python3-venv
+# for lftools:
+# xmlstarlet
+# libxml2-dev
+# libxslt-dev
+# from packer/provision/baseline.sh:
+# unzip
+# xz-utils
+# git
+# git-review
+# libxml2-dev
+# libxml-xpath-perl
+# libxslt-dev
+# make
+# wget
+# jq
+#
+# Python build from source requirements:
+# build-essential
+#
+# TODO: Fix broken project requirement install targets
+# graphviz for doxygen (HICN)
+# doxygen for doxygen (HICN)
+# libffi-dev for python cffi install (Ubuntu20.04/VPP/aarch64)
+# liblapack-dev for python numpy/scipy (CSIT/aarch64)
+# libopenblas-dev for python numpy/scipy (CSIT/aarch64)
+# libpcap-dev for python pypcap install (CSIT)
+# sshpass for CSIT jobs
+#
+RUN apt-get update -qq \\
+ && apt-get install -y \\
+ apt-transport-https \\
+ curl \\
+ ca-certificates \\
+ default-jdk \\
+ default-jre \\
+ dnsutils \\
+ doxygen \\
+ emacs \\
+ facter \\
+ gawk \\
+ gdb \\
+ gfortran \\
+ git \\
+ git-review \\
+ gnupg-agent \\
+ graphviz \\
+ iproute2 \\
+ iputils-clockdiff \\
+ iputils-ping \\
+ iputils-tracepath \\
+ jq \\
+ libffi-dev \\
+ liblapack-dev \\
+ libopenblas-dev \\
+ libpcap-dev \\
+ libxml-xpath-perl \\
+ make \\
+ python3-pip \\
+ python3-venv \\
+ rsync \\
+ ruby-dev \\
+ software-properties-common \\
+ sshpass \\
+ sysstat \\
+ sudo \\
+ traceroute \\
+ tree \\
+ vim \\
+ wget \\
+ xmlstarlet \\
+ xz-utils \\
+ && curl -L https://packagecloud.io/fdio/master/gpgkey | apt-key add - \\
+ && curl -s https://packagecloud.io/install/repositories/fdio/master/script.deb.sh | bash \\
+ && rm -r /var/lib/apt/lists/*
+
+# Install terraform for CSIT
+#
+RUN wget https://releases.hashicorp.com/terraform/1.7.3/terraform_1.7.3_linux_$dpkg_arch.zip \\
+ && unzip terraform_1.7.3_linux_$dpkg_arch.zip \\
+ && mv terraform /usr/bin \\
+ && rm -f terraform_1.7.3_linux_$dpkg_arch.zip
+
+# Install packages for all project branches
+#
+RUN apt-get update -qq \\
+ && dbld_vpp_install_packages.sh \\
+ && dbld_csit_install_packages.sh \\
+ && rm -r /var/lib/apt/lists/*
+EOF
+}
+
+generate_apt_dockerfile_clean() {
+ cat <<EOF >>"$DOCKERFILE"
+
+# Clean up copy-in build tree
+RUN dbld_dump_build_logs.sh \\
+ && rm -rf "/tmp/*" "$DOCKER_BUILD_FILES_DIR" "/root/.ccache"
+EOF
+}
+
+# Generate 'builder' class apt dockerfile
+builder_generate_apt_dockerfile() {
+ local executor_class="$1"
+ local executor_os_name="$2"
+ local executor_image="$3"
+ local vpp_install_skip_sysctl_envvar="";
+
+ generate_apt_dockerfile_common $executor_class $executor_image
+ csit_builder_generate_docker_build_files
+ cat <<EOF >>"$DOCKERFILE"
+
+# Install LF-IT requirements
+ENV LF_VENV="/root/lf-venv"
+RUN apt-get update -qq \\
+ && dbld_lfit_requirements.sh \\
+ && rm -r /var/lib/apt/lists/*
+
+# Install packagecloud requirements
+RUN gem install rake package_cloud \\
+ && curl -s https://packagecloud.io/install/repositories/fdio/master/script.deb.sh | bash
+
+# Install CSIT ssh requirements
+# TODO: Verify why badkey is required & figure out how to avoid it.
+COPY files/badkey /root/.ssh/id_rsa
+COPY files/sshconfig /root/.ssh/config
+
+# CI Runtime Environment
+WORKDIR /
+$vpp_install_skip_sysctl_envvar
+ENV VPP_ZOMBIE_NOCHECK="1"
+ENV CCACHE_DIR="/scratch/ccache"
+ENV CCACHE_MAXSIZE="10G"
+EOF
+ generate_apt_dockerfile_clean
+}
+
+# Generate 'csit_dut' class apt dockerfile
+csit_dut_generate_apt_dockerfile() {
+ local executor_class="$1"
+ local executor_os_name="$2"
+ local executor_image="$3"
+
+ csit_dut_generate_docker_build_files
+ generate_apt_dockerfile_common "$executor_class" "$executor_image"
+ cat <<EOF >>"$DOCKERFILE"
+
+# Install csit_dut specific packages
+RUN apt-get update -qq \\
+ && apt-get install -y \\
+ net-tools \\
+ openssh-server \\
+ pciutils \\
+ rsyslog \\
+ supervisor \\
+ && rm -r /var/lib/apt/lists/*
+
+# Fix permissions
+RUN chown root:syslog /var/log \\
+ && chmod 755 /etc/default
+
+# Create directory structure
+RUN mkdir -p /var/run/sshd
+
+# 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
+
+EXPOSE 2222
+
+COPY files/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"]
+EOF
+ generate_apt_dockerfile_clean
+}
+
+# Generate 'csit_shim' class apt dockerfile
+csit_shim_generate_apt_dockerfile() {
+ local executor_class="$1"
+ local executor_os_name="$2"
+ local executor_image="$3"
+
+ csit_shim_generate_docker_build_files
+ cat <<EOF >>"$DOCKERFILE"
+
+# Copy-in temporary build tree containing
+# ci-management, vpp, & csit git repos
+WORKDIR $DOCKER_BUILD_DIR
+COPY . .
+
+# Build Environment Variables
+ENV DEBIAN_FRONTEND="noninteractive"
+ENV FDIOTOOLS_IMAGE="$executor_image"
+ENV FDIOTOOLS_EXECUTOR_CLASS="$executor_class"
+ENV CIMAN_ROOT="$DOCKER_CIMAN_ROOT"
+ENV PATH="\$PATH:$DOCKER_CIMAN_ROOT/docker/scripts"
+
+# Configure locales & timezone
+RUN apt-get update -qq \\
+ && apt-get install -y \\
+ apt-utils \\
+ locales \\
+ && sed -i 's/# \(en_US\.UTF-8 .*\)/\1/' /etc/locale.gen \\
+ && locale-gen en_US.UTF-8 \\
+ && dpkg-reconfigure --frontend=noninteractive locales \\
+ && update-locale LANG=en_US.UTF-8 \\
+ && TZ=Etc/UTC && ln -snf /usr/share/zoneinfo/\$TZ /etc/localtime && echo \$TZ > /etc/timezone \\
+ && rm -r /var/lib/apt/lists/*
+ENV LANG=en_US.UTF-8 LANGUAGE=en_US LC_ALL=en_US.UTF-8
+
+COPY files/wrapdocker /usr/local/bin/wrapdocker
+RUN chmod +x /usr/local/bin/wrapdocker
+
+# Install packages and Docker
+RUN apt-get update -qq \\
+ && apt-get install -y \\
+ bash \\
+ curl \\
+ iproute2 \\
+ locales \\
+ ssh \\
+ sudo \\
+ tzdata \\
+ uuid-runtime \\
+ && curl -fsSL https://get.docker.com | sh \\
+ && rm -rf /var/lib/apt/lists/*
+
+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
+
+# TODO: Verify why badkeypub is required & figure out how to avoid it.
+COPY files/badkeypub /root/.ssh/authorized_keys
+COPY files/sshconfig /root/.ssh/config
+
+# Clean up copy-in build tree
+RUN rm -rf /tmp/* $DOCKER_BUILD_FILES_DIR
+
+# Start sshd by default
+EXPOSE 22
+CMD ["/usr/sbin/sshd", "-D"]
+EOF
+}
+
+generate_apt_dockerfile() {
+ local executor_class="$1"
+ local executor_os_name="$2"
+ local from_image="$3"
+ local executor_image="$4"
+
+ cat <<EOF >"$DOCKERIGNOREFILE"
+**/__pycache__
+*.pyc
+EOF
+ cat <<EOF >"$DOCKERFILE"
+FROM $from_image AS ${executor_class}-executor-image
+LABEL Description="FD.io CI '$executor_class' executor docker image for $executor_os_name/$OS_ARCH"
+LABEL Vendor="fd.io"
+LABEL Version="$DOCKER_TAG"
+EOF
+ ${executor_class}_generate_apt_dockerfile "$executor_class" \
+ "$executor_os_name" "$executor_image"
+}
diff --git a/docker/scripts/lib_common.sh b/docker/scripts/lib_common.sh
new file mode 100644
index 000000000..150441bb7
--- /dev/null
+++ b/docker/scripts/lib_common.sh
@@ -0,0 +1,271 @@
+# lib_common.sh - Docker build script common library.
+# For import only.
+
+# Copyright (c) 2022 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.
+
+# Don't import more than once.
+if [ -n "$(alias lib_common_imported 2> /dev/null)" ] ; then
+ return 0
+fi
+alias lib_common_imported="true"
+
+export CIMAN_DOCKER_SCRIPTS=${CIMAN_DOCKER_SCRIPTS:-"$(dirname $BASH_SOURCE)"}
+export CIMAN_ROOT="$(dirname $(dirname $CIMAN_DOCKER_SCRIPTS))"
+
+must_be_run_as_root_or_docker_group() {
+ set_opts="$-"
+ set +e # disable exit on errors
+
+ # test if the user is root or id is in the 'docker' group
+ if [ "${EUID:-$(id -u)}" -eq "0" ] || grep -q "docker" <<< "$(id)" ; then
+ grep -q e <<< "$set_opts" && set -e # re-enable exit on errors
+ else
+ set +x
+ echo -e "\nERROR: Must be run as root or '$USER' must be in the group 'docker'!"
+ if [ -n "$(declare -f usage)" ] ; then
+ usage
+ fi
+ grep -q e <<< "$set_opts" && set -e # re-enable exit on errors
+ exit 1
+ fi
+}
+
+must_be_run_in_docker_build() {
+ if [ -z "$(alias running_in_docker_build 2> /dev/null)" ] ; then
+ set +x
+ echo -e "\nERROR: $(basename $0) must be run in 'docker build'\n"
+ exit 1
+ fi
+}
+
+echo_log() {
+ if [ "$#" -eq "0" ] ; then
+ if [ -z "$(alias running_in_docker_build 2> /dev/null)" ] ; then
+ echo
+ else
+ echo | tee -a "$FDIOTOOLS_IMAGE_BUILD_LOG" 1>&2
+ fi
+ return 0
+ fi
+
+ local echo_opts=""
+ case "$1" in
+ -[en])
+ echo_opts="$1 "
+ shift
+ ;;
+ esac
+ if [ -z "$(alias running_in_docker_build 2> /dev/null)" ] ; then
+ echo ${echo_opts}"####> $@"
+ else
+ echo ${echo_opts}"####> $(date -u): $@" | tee -a $FDIOTOOLS_IMAGE_BUILD_LOG 1>&2
+ fi
+}
+
+dump_echo_log() {
+ [ -z "$(alias running_in_docker_build 2> /dev/null)" ] && return 0
+ echo -e "\n\n####> $(date -u) Build log ($FDIOTOOLS_IMAGE_BUILD_LOG):"
+ cat "$FDIOTOOLS_IMAGE_BUILD_LOG"
+}
+
+do_git_config() {
+ if [ "$#" -ne "1" ] ; then
+ echo_log "ERROR: do_git_config(): Invalid number of arguments ($#)!"
+ return 1
+ fi
+ cd "$DOCKER_BUILD_DIR/$1"
+
+ # Add user to git config so git commands don't fail
+ local git_config_list="$(git config -l)"
+ if [ -z "$(grep 'user\.email' <<<$git_config_list)" ] ; then
+ git config user.email "ci-management-dev@lists.fd.io"
+ fi
+ if [ -z "$(grep 'user\.name' <<<$git_config_list)" ] ; then
+ git config user.name "ci-management"
+ fi
+}
+
+do_git_branch() {
+ local branch="$1"
+
+ echo_log " Checking out '$branch' in $(pwd)"
+ if [ -n "$(git branch | grep $branch)" ] ; then
+ git checkout "$branch"
+ else
+ git checkout -b "$branch" --track "origin/$branch"
+ fi
+ git pull -q
+ echo_log -e " 'git log --oneline | head':\n----- %< -----\n$(git log --oneline | head)\n----- %< -----"
+}
+
+clean_git_repo() {
+ pushd "$1" >& /dev/null
+ git clean -qfdx
+ git checkout -q master
+ git pull -q
+ popd >& /dev/null
+}
+
+remove_pyc_files_and_pycache_dirs() {
+ find . -type f -name '*.pyc' -exec rm -f {} \; 2>/dev/null || true
+ find . -type d -name __pycache__ -exec echo -n "Removing " \; \
+ -print -exec rm -rf {} \; 2>/dev/null || true
+}
+
+# OS type variables
+export OS_ID="$(grep '^ID=' /etc/os-release | cut -d= -f2 | sed -e 's/\"//g')"
+export OS_VERSION_ID="$(grep '^VERSION_ID=' /etc/os-release | cut -d= -f2 | sed -e 's/\"//g')"
+export OS_CODENAME="$(grep 'VERSION_CODENAME=' /etc/os-release | cut -d= -f2)"
+export OS_NAME="${OS_ID}-${OS_VERSION_ID}"
+export OS_ARCH="$(uname -m)"
+case "$OS_ARCH" in
+ x86_64)
+ export DEB_ARCH="amd64"
+ ;;
+ aarch64)
+ export DEB_ARCH="arm64"
+ ;;
+ *)
+ echo "ERROR: Unsupported OS architecture '$OS_ARCH'!"
+ return 1
+ ;;
+esac
+
+# Executor attribute variables
+# Note: the role 'prod' is only applied and uploaded using the script
+# update_dockerhub_prod_tags.sh to avoid accidentally pushing
+# an untested docker image into production.
+export EXECUTOR_ROLES="sandbox test"
+export EXECUTOR_DEFAULT_CLASS="builder"
+export EXECUTOR_CLASS=${EXECUTOR_CLASS:-"$EXECUTOR_DEFAULT_CLASS"}
+export EXECUTOR_CLASS_ARCH="$EXECUTOR_DEFAULT_CLASS-$OS_ARCH"
+export EXECUTOR_CLASSES="$EXECUTOR_DEFAULT_CLASS csit_dut csit_shim"
+export EXECUTOR_ARCHS="aarch64 x86_64"
+declare -A EXECUTOR_CLASS_ARCH_OS_NAMES
+EXECUTOR_CLASS_ARCH_OS_NAMES["builder-aarch64"]="ubuntu-20.04 ubuntu-22.04"
+EXECUTOR_CLASS_ARCH_OS_NAMES["builder-x86_64"]="debian-11 ubuntu-20.04 ubuntu-22.04"
+EXECUTOR_CLASS_ARCH_OS_NAMES["csit_dut-aarch64"]="ubuntu-22.04"
+EXECUTOR_CLASS_ARCH_OS_NAMES["csit_dut-x86_64"]="ubuntu-22.04"
+EXECUTOR_CLASS_ARCH_OS_NAMES["csit_shim-aarch64"]="ubuntu-22.04"
+EXECUTOR_CLASS_ARCH_OS_NAMES["csit_shim-x86_64"]="ubuntu-22.04"
+export EXECUTOR_CLASS_ARCH_OS_NAMES
+
+executor_list_roles() {
+ local set_opts="$-"
+ set +u # disable undefined variable check
+ local indent=${1:-" "}
+ grep -q u <<< "$set_opts" && set -u # re-enable undefined variable check
+
+ for role in $EXECUTOR_ROLES ; do
+ echo -e "${indent}$role"
+ done
+}
+
+executor_verify_role() {
+ for role in $EXECUTOR_ROLES ; do
+ if [ "$role" = "$1" ] ; then
+ return 0
+ fi
+ done
+ return 1
+}
+
+executor_list_classes() {
+ local set_opts="$-"
+ set +u # disable undefined variable check
+ local indent=${1:-" "}
+ grep -q u <<< "$set_opts" && set -u # re-enable undefined variable check
+
+ for class in $EXECUTOR_CLASSES ; do
+ echo -e "${indent}$class"
+ done
+}
+
+executor_verify_class() {
+ for class in $EXECUTOR_CLASSES ; do
+ if [ "$class" = "$1" ] ; then
+ return 0
+ fi
+ done
+ return 1
+}
+
+executor_list_os_names() {
+ local set_opts="$-"
+ set +u # disable undefined variable check
+ local indent=${1:-" "}
+ grep -q u <<< "$set_opts" && set -u # re-enable undefined variable check
+
+ echo
+ echo "Valid executor OS names for class '$EXECUTOR_CLASS':"
+ for os in ${EXECUTOR_CLASS_ARCH_OS_NAMES[$EXECUTOR_CLASS_ARCH]} ; do
+ echo "${indent}$os"
+ done | sort
+}
+
+executor_verify_os_name() {
+ for os in ${EXECUTOR_CLASS_ARCH_OS_NAMES[$EXECUTOR_CLASS_ARCH]} ; do
+ if [ "$os" = "$1" ] ; then
+ return 0
+ fi
+ done
+ return 1
+}
+
+# Docker variables
+export DOCKER_DATE=${DOCKER_DATE:-"$(date -u +%Y_%m_%d_%H%M%S_UTC)"}
+export DOCKER_BUILD_DIR="/scratch/docker-build"
+export DOCKER_CIMAN_ROOT="$DOCKER_BUILD_DIR/ci-management"
+export DOCKERFILE="$DOCKER_BUILD_DIR/Dockerfile"
+export DOCKERIGNOREFILE="$DOCKER_BUILD_DIR/.dockerignore"
+export DOCKERFILE_FROM=${DOCKERFILE_FROM:="${OS_ID}:${OS_VERSION_ID}"}
+export DOCKER_TAG="$DOCKER_DATE-$OS_ARCH"
+export DOCKER_VPP_DIR="$DOCKER_BUILD_DIR/vpp"
+export DOCKER_CSIT_DIR="$DOCKER_BUILD_DIR/csit"
+export DOCKER_DOWNLOADS_DIR="/root/Downloads"
+export DOCKER_BUILD_FILES_DIR="$DOCKER_BUILD_DIR/files"
+
+docker_build_setup_ciman() {
+ if [ "$(dirname $CIMAN_ROOT)" != "$DOCKER_BUILD_DIR" ] ; then
+ echo_log "Updating $CIMAN_ROOT git submodules..."
+ pushd "$CIMAN_ROOT"
+ git submodule update --init --recursive
+ popd
+ if [ -d "$DOCKER_BUILD_DIR" ] ; then
+ echo_log "Removing existing DOCKER_BUILD_DIR: $DOCKER_BUILD_DIR..."
+ local sudo_cmd=""
+ if [ "$(whoami)" != "$(stat -c %U $DOCKER_BUILD_DIR)" ] ; then
+ sudo_cmd="sudo"
+ fi
+ ${sudo_cmd} rm -rf "$DOCKER_BUILD_DIR"
+ fi
+ echo_log "Syncing $CIMAN_ROOT into $DOCKER_CIMAN_ROOT..."
+ mkdir -p "$DOCKER_BUILD_DIR"
+ rsync -a "$CIMAN_ROOT/." "$DOCKER_CIMAN_ROOT"
+ else
+ mkdir -p "$DOCKER_BUILD_DIR"
+ fi
+}
+
+# Variables used in docker build environment
+set_opts="$-"
+set +u # disable undefined variable check
+if [ -n "$FDIOTOOLS_IMAGE" ] ; then
+ alias running_in_docker_build=true
+ export DOCKER_BUILD_LOG_DIR="$DOCKER_BUILD_DIR/logs"
+ export FDIOTOOLS_IMAGENAME="$(echo $FDIOTOOLS_IMAGE | sed -e 's/:/-/' -e 's,/,_,g')"
+ export FDIOTOOLS_IMAGE_BUILD_LOG="$DOCKER_BUILD_LOG_DIR/$FDIOTOOLS_IMAGENAME.log"
+ mkdir -p $DOCKER_BUILD_LOG_DIR
+fi
+grep -q u <<< "$set_opts" && set -u # re-enable undefined variable check
diff --git a/docker/scripts/lib_csit.sh b/docker/scripts/lib_csit.sh
new file mode 100644
index 000000000..2e877f803
--- /dev/null
+++ b/docker/scripts/lib_csit.sh
@@ -0,0 +1,390 @@
+# lib_csit.sh - Docker build script CSIT library.
+# For import only.
+
+# Copyright (c) 2023 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.
+
+# Don't import more than once.
+if [ -n "$(alias lib_csit_imported 2> /dev/null)" ] ; then
+ return 0
+fi
+alias lib_csit_imported=true
+
+export CIMAN_DOCKER_SCRIPTS="${CIMAN_DOCKER_SCRIPTS:-$(dirname ${BASH_SOURCE[0]})}"
+. "$CIMAN_DOCKER_SCRIPTS/lib_common.sh"
+. "$CIMAN_DOCKER_SCRIPTS/lib_apt.sh"
+
+CSIT_SUPPORTED_EXECUTOR_CLASSES="builder csit_dut"
+csit_supported_executor_class() {
+ if ! grep -q "${1:-}" <<< "$CSIT_SUPPORTED_EXECUTOR_CLASSES" ; then
+ return 1
+ fi
+ return 0
+}
+
+csit_supported_os() {
+ case "$1" in
+ ubuntu-22.04) return 0 ;;
+ *) ;;
+ esac
+ return 1
+}
+
+csit_checkout_branch_for_vpp() {
+ local vpp_branch="$1"
+ local csit_dir="$DOCKER_CSIT_DIR"
+ local csit_bash_function_dir="$csit_dir/resources/libraries/bash/function"
+
+ # import checkout_csit_for_vpp() if not defined
+ set +e && [ -z "$(declare -f checkout_csit_for_vpp)" ] \
+ && source "$csit_bash_function_dir/branch.sh"
+ CSIT_DIR="$csit_dir" checkout_csit_for_vpp "$vpp_branch"
+
+ # shellcheck disable=SC2034,SC2063
+ csit_branch="$(git branch | grep -e '^*' | mawk '{print $2}')"
+}
+
+csit_install_packages() {
+ local branch="$1"
+ local branchname
+ branchname="$(echo $branch | sed -e 's,/,_,')"
+ local csit_dir="$DOCKER_CSIT_DIR"
+ local csit_ansible_dir="$csit_dir/fdio.infra.ansible"
+ if [ ! -d "$csit_ansible_dir" ] ; then
+ csit_ansible_dir="$csit_dir/resources/tools/testbed-setup/ansible"
+ fi
+ local bld_log="$DOCKER_BUILD_LOG_DIR/$FDIOTOOLS_IMAGENAME"
+ bld_log="${bld_log}-$branchname-csit_install_packages-bld.log"
+
+ git clean -qfdx
+ python3 -m pip install pyyaml
+
+ local exclude_roles="-e calibration -e kernel -e mellanox -e nomad -e consul -e aws -e vpp"
+ [ "$OS_ARCH" = "aarch64" ] && exclude_roles="$exclude_roles -e iperf"
+
+ # Not in double quotes to let bash remove newline characters
+ local yaml_files
+ yaml_files="$(grep -r packages_by $csit_ansible_dir | cut -d: -f1 | sort -u | grep -v $exclude_roles)"
+ packages="$(dbld_csit_find_ansible_packages.py --$OS_ID --$OS_ARCH $yaml_files)"
+ packages="${packages/jammy /}"
+ packages="${packages/focal /}"
+ packages="${packages/libmbedcrypto1/libmbedcrypto3}"
+ packages="${packages/libmbedtls10/libmbedtls12}"
+ packages="$(echo ${packages//python\-/python3\-} | tr ' ' '\n' | sort -u | xargs)"
+
+ if [ -n "$packages" ] ; then
+ case "$OS_NAME" in
+ ubuntu*)
+ apt_install_packages "$packages" 2>&1 | tee -a "$bld_log"
+ ;;
+ debian*)
+ apt_install_packages "$packages" 2>&1 | tee -a "$bld_log"
+ ;;
+ *)
+ echo "Unsupported OS ($OS_ID): CSIT packages NOT INSTALLED!"
+ ;;
+ esac
+ fi
+}
+
+csit_install_hugo() {
+ local branch="$1"
+ CSIT_DIR="$DOCKER_CSIT_DIR"
+
+ if [ -f "$CSIT_DIR/VPP_REPO_URL" ] \
+ && [ -f "$CSIT_DIR/requirements.txt" ]; then
+
+ local branchname
+ # use bash variable substitution to replace '/' with '_' to convert from
+ # vpp to csit branch name nomenclature
+ branchname="${branch////_}"
+ local csit_bash_function_dir="$CSIT_DIR/resources/libraries/bash/function"
+ local bld_log="$DOCKER_BUILD_LOG_DIR"
+ bld_log="${bld_log}/$FDIOTOOLS_IMAGENAME-$branchname-csit_install_hugo-bld.log"
+
+ description="Install CSIT hugo packages from $branch branch"
+ echo_log " Starting $description..."
+ git clean -qfdx
+
+ source "$csit_bash_function_dir"/hugo.sh
+ go_install 2>&1 | tee -a "$bld_log"
+ hugo_install 2>&1 | tee -a "$bld_log"
+
+ else
+ echo_log "ERROR: Missing or invalid CSIT_DIR: '$CSIT_DIR'!"
+ return 1
+ fi
+}
+
+csit_pip_cache() {
+ local branch="$1"
+ # ensure PS1 is defined (used by virtualenv activate script)
+ PS1=${PS1:-"#"}
+ CSIT_DIR="$DOCKER_CSIT_DIR"
+
+ if [ -f "$CSIT_DIR/VPP_REPO_URL" ] \
+ && [ -f "$CSIT_DIR/requirements.txt" ]; then
+
+ local branchname
+ # use bash variable substitution to replace '/' with '_' to convert from
+ # vpp to csit branch name nomenclature
+ branchname="${branch////_}"
+ local csit_bash_function_dir="$CSIT_DIR/resources/libraries/bash/function"
+ local bld_log="$DOCKER_BUILD_LOG_DIR"
+ bld_log="${bld_log}/$FDIOTOOLS_IMAGENAME-$branchname-csit_pip_cache-bld.log"
+ export PYTHONPATH=$CSIT_DIR
+
+ description="Install CSIT python packages from $branch branch"
+ echo_log " Starting $description..." 2>&1 | tee -a "$bld_log"
+ git clean -qfdx 2>&1 | tee -a "$bld_log"
+ rm -rf "$PYTHONPATH/env"
+
+ # Activate / install CSIT python virtualenv ($CSIT_DIR/requirements.txt)
+ local common_sh="$csit_bash_function_dir/common.sh"
+ # shellcheck disable=1090
+ source "$common_sh"
+ activate_virtualenv "${CSIT_DIR}" "${CSIT_DIR}/requirements.txt" 2>&1 | tee -a "$bld_log"
+
+ # Install tox python requirements
+ activate_virtualenv "${CSIT_DIR}" "${CSIT_DIR}/tox-requirements.txt" 2>&1 |\
+ tee -a "$bld_log"
+
+ # Clean up virtualenv directories
+ git checkout -q -- .
+ git clean -qfdx
+ echo_log " Completed $description!" 2>&1 | tee -a "$bld_log"
+ else
+ echo_log "ERROR: Missing or invalid CSIT_DIR: '$CSIT_DIR'!"
+ return 1
+ fi
+}
+
+docker_build_setup_csit() {
+ if csit_supported_executor_class "$EXECUTOR_CLASS" ; then
+ if [ ! -d "$DOCKER_CSIT_DIR" ] ; then
+ echo_log "Cloning CSIT into $DOCKER_CSIT_DIR..."
+ git clone -q https://gerrit.fd.io/r/csit "$DOCKER_CSIT_DIR"
+ fi
+ clean_git_repo "$DOCKER_CSIT_DIR"
+ fi
+}
+
+csit_dut_generate_docker_build_files() {
+ local build_files_dir="$DOCKER_BUILD_FILES_DIR"
+
+ mkdir -p "$build_files_dir"
+ cat <<EOF >"$build_files_dir/supervisord.conf"
+[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
+EOF
+}
+
+csit_builder_generate_docker_build_files() {
+ local build_files_dir="$DOCKER_BUILD_FILES_DIR"
+ local dashes="-----"
+ local dbeg="${dashes}BEGIN"
+ local dend="${dashes}END"
+ local pvt="PRIVATE"
+ local kd="KEY$dashes"
+
+ # TODO: Verify why badkey is required & figure out how to avoid it.
+ mkdir -p "$build_files_dir"
+ cat <<EOF >"$build_files_dir/badkey"
+$dbeg RSA $pvt $kd
+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
+$dend RSA $pvt $kd
+EOF
+ chmod 600 "$build_files_dir/badkey"
+ cat <<EOF >"$build_files_dir/sshconfig"
+Host 172.17.0.*
+ StrictHostKeyChecking no
+ UserKnownHostsFile=/dev/null
+EOF
+}
+
+csit_shim_generate_docker_build_files() {
+ local build_files_dir="$DOCKER_BUILD_FILES_DIR"
+ # TODO: Verify why badkey is required & figure out how to avoid it.
+ local badkey='AAAAB3NzaC1yc2EAAAADAQABAAABAQCyUNd/iRk5Ajw4ZBB0gXyjzecEzQHh/MctgvHGJjasqJDkwYyZBrunUorOZ3n82W8VGdd5+eNINCWOM/ERjuaHjnutfade+ocPgZRdk+kEgTvetDVNWIgBd0PMVcnp57jJfx7CZVqTNgGeVQ8OJ2RbJGeOb/EKApQI74IPkAfc0PSieSw5gC0eqEOHb39Awgp0ycrzsUHF/OEicfCmo+6vvrMGenDe7frKUoTKYMWs7l3DOyFC8NaOxhGD3J1Ne5u3A/r4w6mN1HVI0rFwIcoms+t0B4lb2ODWKZiZikQdn8/eqwsmbSEZZsWN3FkshgjPS83+dNqVwB6pPY5Yqte7'
+
+ mkdir -p "$build_files_dir"
+ # TODO: Verify why badkeypub is required & figure out how to avoid it.
+ echo "ssh-rsa $badkey ejk@bhima.local" >"$build_files_dir/badkeypub"
+
+ cat <<EOF >"$build_files_dir/sshconfig"
+Host 172.17.0.*
+ StrictHostKeyChecking no
+ UserKnownHostsFile=/dev/null
+EOF
+ cat <<EOF >"$build_files_dir/wrapdocker"
+#!/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
+EOF
+}
diff --git a/docker/scripts/lib_vpp.sh b/docker/scripts/lib_vpp.sh
new file mode 100644
index 000000000..39e2ca192
--- /dev/null
+++ b/docker/scripts/lib_vpp.sh
@@ -0,0 +1,102 @@
+# lib_vpp.sh - Docker build script VPP library.
+# For import only.
+
+# Copyright (c) 2023 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.
+
+# Don't import more than once.
+if [ -n "$(alias lib_vpp_imported 2> /dev/null)" ] ; then
+ return 0
+fi
+alias lib_vpp_imported=true
+
+export CIMAN_DOCKER_SCRIPTS=${CIMAN_DOCKER_SCRIPTS:-"$(dirname $BASH_SOURCE)"}
+. $CIMAN_DOCKER_SCRIPTS/lib_common.sh
+
+
+VPP_SUPPORTED_EXECUTOR_CLASSES="builder"
+vpp_supported_executor_class() {
+ if ! grep -q "${1:-}" <<< $VPP_SUPPORTED_EXECUTOR_CLASSES ; then
+ return 1
+ fi
+ return 0
+}
+
+make_vpp() {
+ local target=$1
+ local branch=${2:-"master"}
+ local branchname="$(echo $branch | sed -e 's,/,_,')"
+ local bld_log="$DOCKER_BUILD_LOG_DIR"
+ bld_log="${bld_log}/$FDIOTOOLS_IMAGENAME-$branchname"
+ bld_log="${bld_log}-make_vpp_${target}-bld.log"
+
+ makefile_target="^${target}:"
+ if [ -z "$(grep $makefile_target Makefile)" ] ; then
+ echo "Make target '$target' does not exist in VPP branch '$branch'!"
+ return
+ fi
+ git clean -qfdx
+ description="'make UNATTENDED=yes $target' in $(pwd) ($branch)"
+ echo_log -e " Starting $description..."
+ make UNATTENDED=yes $target 2>&1 | tee -a "$bld_log"
+ git checkout -q -- .
+ echo_log " Completed $description!"
+}
+
+make_vpp_test() {
+ local target=$1
+ local branch=${2:-"master"}
+ local branchname="$(echo $branch | sed -e 's,/,_,')"
+ local bld_log="$DOCKER_BUILD_LOG_DIR"
+ bld_log="${bld_log}/$FDIOTOOLS_IMAGENAME-$branchname"
+ bld_log="${bld_log}-make_vpp_test_${target}-bld.log"
+
+ makefile_target="^${target}:"
+ if [ -z "$(grep -e $makefile_target test/Makefile)" ] ; then
+ echo "Make test target '$target' does not exist in VPP branch '$branch'!"
+ return
+ fi
+ git clean -qfdx
+ description="'make -C test $target' in $(pwd) ($branch)"
+ echo_log " Starting $description..."
+ make WS_ROOT="$DOCKER_VPP_DIR" BR="$DOCKER_VPP_DIR/build-root" \
+ TEST_DIR="$DOCKER_VPP_DIR/test" -C test $target 2>&1 | tee -a $bld_log
+ remove_pyc_files_and_pycache_dirs
+ git checkout -q -- .
+ echo_log " Completed $description!"
+}
+
+docker_build_setup_vpp() {
+ if vpp_supported_executor_class "$EXECUTOR_CLASS" ; then
+ if [ ! -d "$DOCKER_VPP_DIR" ] ; then
+ echo_log "Cloning VPP into $DOCKER_VPP_DIR..."
+ git clone -q https://gerrit.fd.io/r/vpp $DOCKER_VPP_DIR
+ fi
+ clean_git_repo $DOCKER_VPP_DIR
+ fi
+}
+
+# Branches must be listed in chronological order -- oldest stable branch
+# first and master last.
+#
+# Note: CI Jobs for each architecture are maintained in
+# .../ci-management/jjb/vpp/vpp.yaml
+# All OS's and branches are included in the 'os' and 'stream'
+# definitions respectively, then the exclude list maintained
+# to create an enumerated set of jobs jobs that match the
+# definitions here.
+declare -A VPP_BRANCHES
+VPP_BRANCHES["debian-11"]="stable/2310 stable/2402 master"
+VPP_BRANCHES["ubuntu-20.04"]="stable/2310 stable/2402 master"
+VPP_BRANCHES["ubuntu-22.04"]="stable/2310 stable/2402 master"
+export VPP_BRANCHES
diff --git a/docker/scripts/update_dockerhub_prod_tags.sh b/docker/scripts/update_dockerhub_prod_tags.sh
new file mode 100755
index 000000000..01dac644c
--- /dev/null
+++ b/docker/scripts/update_dockerhub_prod_tags.sh
@@ -0,0 +1,402 @@
+#! /bin/bash
+
+# Copyright (c) 2022 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.
+
+set -euo pipefail
+shopt -s extglob
+
+# Log all output to stdout & stderr to a log file
+logname="/tmp/$(basename $0).$(date -u +%Y_%m_%d_%H%M%S).log"
+echo -e "\n*** Logging output to $logname ***\n"
+exec > >(tee -a $logname) 2>&1
+
+export CIMAN_DOCKER_SCRIPTS=${CIMAN_DOCKER_SCRIPTS:-"$(dirname $BASH_SOURCE)"}
+. "$CIMAN_DOCKER_SCRIPTS/lib_common.sh"
+
+# Global variables
+long_bar="################################################################"
+short_bar="-----"
+image_not_found=""
+image_user=""
+image_repo=""
+image_version=""
+image_arch=""
+image_name_prod=""
+image_name_prev=""
+image_name_new=""
+image_realname=""
+image_realname_prod=""
+image_realname_prev=""
+image_tags=""
+image_tags_prod=""
+image_tags_prev=""
+image_tags_new=""
+docker_id_prod=""
+docker_id_prev=""
+docker_id_new=""
+digest_prod=""
+digest_prev=""
+digest_new=""
+restore_cmd=""
+
+usage() {
+ local script="$(basename $0)"
+ echo
+ echo "Usage: $script r[evert] <prod image>"
+ echo " $script p[romote] <new image> [<new image>]"
+ echo " $script i[nspect] <prod image>"
+ echo
+ echo " revert: swaps 'prod-<arch>' and 'prod-prev-<arch>' images"
+ echo " <prod image>: e.g. fdiotools/builder-ubuntu2204:prod-x86_64"
+ echo
+ echo " promote: moves 'prod-<arch>' image to 'prod-prev-<arch>' tag and"
+ echo " tags <new image> with 'prod-<arch>'"
+ echo " <new image>: e.g. fdiotools/builder-ubuntu2204:2022_07_23_151655-x86_64"
+ echo " inspect: prints out all tags for prod-<arch> and prod-prev-<arch>"
+ echo
+ exit 1
+}
+
+echo_restore_cmd() {
+ echo -e "\n$long_bar\n"
+ echo "To restore tags to original state, issue the following command:"
+ echo -e "\n$restore_cmd\n\n$long_bar\n"
+}
+
+push_to_dockerhub() {
+ echo_restore_cmd
+ for image in "$@" ; do
+ set +e
+ echo "Pushing '$image' to docker hub..."
+ if ! docker push "$image" ; then
+ echo "ERROR: 'docker push $image' failed!"
+ exit 1
+ fi
+ done
+}
+
+parse_image_name() {
+ image_user="$(echo $1 | cut -d'/' -f1)"
+ image_repo="$(echo $1 | cut -d'/' -f2 | cut -d':' -f1)"
+ local tag="$(echo $1 | cut -d':' -f2)"
+ image_version="$(echo $tag | cut -d'-' -f1)"
+ image_arch="$(echo $tag | sed -e s/$image_version-//)"
+ image_name_new="${image_user}/${image_repo}:${image_version}-${image_arch}"
+ if [ "$1" != "$image_name_new" ] ; then
+ echo "ERROR: Image name parsing failed: $1 != '$image_name_new'"
+ usage
+ fi
+ if [[ "$image_version" =~ "prod" ]] ; then
+ image_name_new=""
+ fi
+ image_name_prod="${image_user}/${image_repo}:prod-${image_arch}"
+ image_name_prev="${image_user}/${image_repo}:prod-prev-${image_arch}"
+}
+
+format_image_tags() {
+ # Note: 'grep $image_arch' & grep -v 'prod-curr' is required due to a
+ # bug in docker hub which returns old tags which were deleted via
+ # the webUI, but are still retrieved by 'docker pull -a'
+ image_tags="$(docker images | grep $1 | grep $image_arch | grep -v prod-curr | sort -r | mawk '{print $1":"$2}' | tr '\n' ' ')"
+ image_realname="$(docker images | grep $1 | grep $image_arch | sort -r | grep -v prod | mawk '{print $1":"$2}' || true)"
+ if [ -z "${image_realname:-}" ] ; then
+ image_realname="$image_tags"
+ fi
+}
+
+get_image_id_tags() {
+ for image in "$image_name_new" "$image_name_prod" "$image_name_prev" ; do
+ if [ -z "$image" ] ; then
+ continue
+ fi
+ # ensure image exists
+ set +e
+ local image_found="$(docker images | mawk '{print $1":"$2}' | grep $image)"
+ set -e
+ if [ -z "$image_found" ] ; then
+ if [ "$image" = "$image_name_prev" ] ; then
+ if [ "$action" = "revert" ] ; then
+ echo "ERROR: Image '$image' not found!"
+ echo "Unable to revert production image '$image_name_prod'!"
+ usage
+ else
+ continue
+ fi
+ else
+ echo "ERROR: Image '$image' not found!"
+ usage
+ fi
+ fi
+ set +e
+ local id="$(docker image inspect $image | mawk -F':' '/Id/{print $3}')"
+ local digest="$(docker image inspect $image | grep -A1 RepoDigests | grep -v RepoDigests | mawk -F':' '{print $2}')"
+ local retval="$?"
+ set -e
+ if [ "$retval" -ne "0" ] ; then
+ echo "ERROR: Docker ID not found for '$image'!"
+ usage
+ fi
+ if [ "$image" = "$image_name_prod" ] ; then
+ docker_id_prod="${id::12}"
+ digest_prod="${digest::12}"
+ format_image_tags "$docker_id_prod"
+ image_tags_prod="$image_tags"
+ if [ -z "$image_realname_prod" ] ; then
+ image_realname_prod="$image_realname"
+ fi
+ elif [ "$image" = "$image_name_prev" ] ; then
+ docker_id_prev="${id::12}"
+ digest_prev="${digest::12}"
+ format_image_tags "$docker_id_prev"
+ image_tags_prev="$image_tags"
+ if [ -z "$image_realname_prev" ] ; then
+ image_realname_prev="$image_realname"
+ fi
+ else
+ docker_id_new="${id::12}"
+ digest_new="${digest::12}"
+ format_image_tags "$docker_id_new" "NEW"
+ image_tags_new="$image_tags"
+ fi
+ done
+ if [ -z "$restore_cmd" ] ; then
+ restore_cmd="sudo $0 p $image_realname_prev $image_realname_prod"
+ fi
+}
+
+get_all_tags_from_dockerhub() {
+ local dh_repo="$image_user/$image_repo"
+ echo -e "Pulling all tags from docker hub repo '$dh_repo':\n$long_bar"
+ if ! docker pull -a "$dh_repo" ; then
+ echo "ERROR: Repository '$dh_repo' not found on docker hub!"
+ usage
+ fi
+ echo "$long_bar"
+}
+
+verify_image_version_date_format() {
+ version="$1"
+ local ver_regex="^[0-9]{4}_[0-1][0-9]_[0-3][0-9]_[0-2][0-9][0-5][0-9][0-5][0-9]_UTC$"
+ if [[ "$version" =~ $ver_regex ]]; then
+ return 0
+ fi
+ return 1
+}
+
+verify_image_name() {
+ image_not_found=""
+ # Invalid user
+ if [ "$image_user" != "fdiotools" ] ; then
+ image_not_found="true"
+ echo "ERROR: invalid user '$image_user' in '$image_name_new'!"
+ fi
+ # Invalid version
+ if [ -z "$image_not_found" ] \
+ && [ "$image_version" != "prod" ] \
+ && ! verify_image_version_date_format "$image_version" ]] ; then
+ image_not_found="true"
+ echo "ERROR: invalid version '$image_version' in '$image_name_new'!"
+ fi
+ # Invalid arch
+ if [ -z "$image_not_found" ] \
+ && ! [[ "$EXECUTOR_ARCHS" =~ .*"$image_arch".* ]] ; then
+ image_not_found="true"
+ echo "ERROR: invalid arch '$image_arch' in '$image_name_new'!"
+ fi
+ if [ -n "$image_not_found" ] ; then
+ echo "ERROR: Invalid image '$image_name_new'!"
+ usage
+ fi
+}
+
+docker_tag_image() {
+ echo ">>> docker tag $1 $2"
+ set +e
+ docker tag "$1" "$2"
+ local retval="$?"
+ set -e
+ if [ "$retval" -ne "0" ] ; then
+ echo "WARNING: 'docker tag $1 $2' failed!"
+ fi
+}
+
+docker_rmi_tag() {
+ set +e
+ echo ">>> docker rmi $1"
+ docker rmi "$1"
+ local retval="$?"
+ set -e
+ if [ "$retval" -ne "0" ] ; then
+ echo "WARNING: 'docker rmi $1' failed!"
+ fi
+}
+
+print_image_list() {
+ if [ -z "$2" ] ; then
+ echo "$1 Image Not Found"
+ return
+ fi
+ echo "$1 (Id $2, Digest $3):"
+ for image in $4 ; do
+ echo -e "\t$image"
+ done
+}
+
+inspect_images() {
+ echo -e "\n${1}Production Docker Images:"
+ echo "$short_bar"
+ if [ -n "$image_tags_new" ] ; then
+ print_image_list "NEW" "$docker_id_new" "$digest_new" "$image_tags_new"
+ echo
+ fi
+ print_image_list "prod-$image_arch" "$docker_id_prod" "$digest_prod" \
+ "$image_tags_prod"
+ echo
+ print_image_list "prod-prev-$image_arch" "$docker_id_prev" "$digest_prev" \
+ "$image_tags_prev"
+ echo -e "$short_bar\n"
+}
+
+revert_prod_image() {
+ inspect_images "EXISTING "
+ docker_tag_image "$docker_id_prod" "$image_name_prev"
+ docker_tag_image "$docker_id_prev" "$image_name_prod"
+ get_image_id_tags
+ inspect_images "REVERTED "
+
+ local yn=""
+ while true; do
+ read -p "Push Reverted tags to '$image_user/$image_repo' (yes/no)? " yn
+ case ${yn:0:1} in
+ y|Y )
+ break ;;
+ n|N )
+ echo -e "\nABORTING REVERT!\n"
+ docker_tag_image $docker_id_prev $image_name_prod
+ docker_tag_image $docker_id_prod $image_name_prev
+ get_image_id_tags
+ inspect_images "RESTORED LOCAL "
+ exit 1 ;;
+ * )
+ echo "Please answer yes or no." ;;
+ esac
+ done
+ echo
+ push_to_dockerhub $image_name_prev $image_name_prod
+ inspect_images ""
+ echo_restore_cmd
+}
+
+promote_new_image() {
+ inspect_images "EXISTING "
+ docker_tag_image "$docker_id_prod" "$image_name_prev"
+ docker_tag_image "$docker_id_new" "$image_name_prod"
+ get_image_id_tags
+ inspect_images "PROMOTED "
+
+ local yn=""
+ while true; do
+ read -p "Push promoted tags to '$image_user/$image_repo' (yes/no)? " yn
+ case "${yn:0:1}" in
+ y|Y )
+ break ;;
+ n|N )
+ echo -e "\nABORTING PROMOTION!\n"
+ docker_tag_image "$docker_id_prev" "$image_name_prod"
+ local restore_both="$(echo $restore_cmd | mawk '{print $5}')"
+ if [[ -n "$restore_both" ]] ; then
+ docker_tag_image "$image_realname_prev" "$image_name_prev"
+ else
+ docker_rmi_tag "$image_name_prev"
+ image_name_prev=""
+ docker_id_prev=""
+ fi
+ get_image_id_tags
+ inspect_images "RESTORED "
+ exit 1 ;;
+ * )
+ echo "Please answer yes or no." ;;
+ esac
+ done
+ echo
+ push_to_dockerhub "$image_name_new" "$image_name_prev" "$image_name_prod"
+ inspect_images ""
+ echo_restore_cmd
+}
+
+must_be_run_as_root_or_docker_group
+
+# Validate arguments
+num_args="$#"
+if [ "$num_args" -lt "1" ] ; then
+ usage
+fi
+action=""
+case "$1" in
+ r?(evert))
+ action="revert"
+ if [ "$num_args" -ne "2" ] ; then
+ echo "ERROR: Invalid number of arguments: $#"
+ usage
+ fi ;;
+ p?(romote))
+ if [ "$num_args" -eq "2" ] || [ "$num_args" -eq "3" ] ; then
+ action="promote"
+ else
+ echo "ERROR: Invalid number of arguments: $#"
+ usage
+ fi ;;
+ i?(nspect))
+ action="inspect"
+ if [ "$num_args" -ne "2" ] ; then
+ echo "ERROR: Invalid number of arguments: $#"
+ usage
+ fi ;;
+ *)
+ echo "ERROR: Invalid option '$1'!"
+ usage ;;
+esac
+shift
+docker login >& /dev/null
+
+# Update local tags
+tags_to_push=""
+for image in "$@" ; do
+ parse_image_name "$image"
+ verify_image_name "$image"
+ get_all_tags_from_dockerhub
+ get_image_id_tags
+ if [ "$action" = "promote" ] ; then
+ if [ -n "$image_name_new" ] ; then
+ promote_new_image
+ else
+ echo "ERROR: No new image specified to promote!"
+ usage
+ fi
+ elif [ "$action" = "revert" ] ; then
+ if [ "$image_version" = "prod" ] ; then
+ revert_prod_image
+ else
+ echo "ERROR: Non-production image '$image' specified!"
+ usage
+ fi
+ else
+ if [ "$image_version" = "prod" ] ; then
+ inspect_images ""
+ else
+ echo "ERROR: Non-production image '$image' specified!"
+ usage
+ fi
+ fi
+done
diff --git a/docker/vpp/vpp-arm-centos8/Dockerfile b/docker/vpp/vpp-arm-centos8/Dockerfile
deleted file mode 100644
index 5f1036a50..000000000
--- a/docker/vpp/vpp-arm-centos8/Dockerfile
+++ /dev/null
@@ -1,367 +0,0 @@
-FROM centos:8
-MAINTAINER Ed Kern <ejk@cisco.com>
-LABEL Description="VPP centos8 OS build image"
-LABEL Vendor="cisco.com"
-LABEL Version="0.01"
-
-# Setup the environment
-
-RUN mkdir /workspace && mkdir -p /etc/ssh && mkdir -p /var/ccache
-
-ENV CCACHE_DIR=/var/ccache
-ENV MAKE_PARALLEL_FLAGS -j 4
-ENV VPP_ZOMBIE_NOCHECK=1
-ENV DPDK_DOWNLOAD_DIR=/w/Downloads
-ENV VPP_PYTHON_PREFIX=/var/cache/vpp/python
-ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
-ENV NOTVISIBLE "in users profile"
-
-#SSH timeout
-#RUN touch /etc/ssh/ssh_config
-RUN echo "TCPKeepAlive true" | tee -a /etc/ssh/ssh_config #>/dev/null 2>&1
-RUN echo "ServerAliveCountMax 30" | tee -a /etc/ssh/ssh_config #>/dev/null 2>&1
-RUN echo "ServerAliveInterval 10" | tee -a /etc/ssh/ssh_config #>/dev/null 2>&1
-
-# Configure locales
-#RUN localectl set-locale "en_US.UTF-8" \
-# && localectl status
-
-#module
-RUN echo uio_pci_generic >> /etc/modules
-
-
-#RUN yum update -y && yum install -y deltarpm && yum clean all
-#RUN yum update -y && yum install -y @base https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm && yum clean all
-RUN yum update -y && yum install -y epel-release && yum clean all
-RUN yum update -y && yum install -y --enablerepo=epel \
- chrpath \
- git \
-# git-review \
- java-*-openjdk-devel \
- jq \
-# lcov \
- make \
-# nasm \
- sudo \
- unzip \
- xz \
- wget \
- && yum clean all
-
-#packer install
-#RUN wget https://releases.hashicorp.com/packer/1.1.3/packer_1.1.3_linux_amd64.zip && unzip packer_1.1.3_linux_amd64.zip -d /usr/local/bin/ && mv /usr/local/bin/packer /usr/local/bin/packer.io
-
-
-RUN yum update -y && yum install -y --enablerepo=epel \
- asciidoc \
- apr-devel \
- cpp \
-# c++ \
- cmake \
-# dblatex \
-# doxygen \
- epel-rpm-macros \
- gcc \
- graphviz \
- indent \
- kernel-devel \
- libxml2 \
- libffi-devel \
- make \
- openssl-devel \
- python2-devel \
- python2-virtualenv \
- python2-setuptools \
-# python2-cffi \
- python2-pip \
- python2-jinja2 \
- # python2-sphinx \
- source-highlight \
- rpm \
- valgrind \
- yum-utils \
- && yum clean all
-
-RUN yum update -y && yum install -y --enablerepo=epel \
-# ganglia-devel \
- libconfuse-devel \
- mock \
- && yum clean all
-
-#RUN alternatives --set java /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
-#RUN alternatives --set java_sdk_openjdk /usr/lib/jvm/java-1.7.0-openjdk.x86_64
-
-RUN pip2 install --upgrade pip
-RUN pip2 install pycap scapy
-
-RUN yum update -y && yum install -y --enablerepo=epel \
- autoconf \
- automake \
- bison \
- ccache \
- cscope \
- curl \
- dkms \
- git \
-# git-review \
- libtool \
-# libconfuse-dev \
-# libpcap-devel \
- libcap-devel \
- scapy \
- && yum clean all
-
-#puppet
-RUN yum update -y && yum install -y --enablerepo=epel \
- libxml2-devel \
- libxslt-devel \
- ruby-devel \
- zlib-devel \
- gcc-c++ \
- && yum clean all
-
-#outdated ruby pos
-RUN yum update -y && yum install -y --enablerepo=epel \
- git-core \
- zlib \
- zlib-devel \
- gcc-c++ \
- patch \
- readline \
- readline-devel \
-# libyaml-devel \
- libffi-devel \
- openssl-devel \
- make \
- bzip2 \
- autoconf \
- automake \
- libtool \
- bison \
- curl \
- sqlite-devel \
- && yum clean all
-
-ENV PATH="/root/.rbenv/bin:${PATH}"
-ENV PATH="/root/.rbenv/shims:${PATH}"
-
-RUN curl -sL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-installer | bash -
-RUN rbenv init -
-RUN rbenv install 2.5.1 && rbenv global 2.5.1
-#&& echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc && echo 'eval "$(rbenv init -)"' >> ~/.bashrc &&
-
-
-RUN gem install rake
-RUN gem install package_cloud
-
-RUN yum update -y && yum install -y --enablerepo=epel \
- apr-util \
- byacc \
- diffstat \
- dwz \
- flex \
- gcc-gfortran \
- gettext-devel \
-# glibc-static \
- intltool \
-# nasm \
- patchutils \
-# rcs \
- redhat-lsb \
- redhat-rpm-config \
- rpm-build \
- rpm-sign \
- subversion \
- swig \
- systemtap \
- && yum clean all
-
-#RUN yum update -y && yum install -y --enablerepo=epel-debuginfo --enablerepo=base-debuginfo \
-# RUN yum update -y && yum install -y --enablerepo=epel-debuginfo \
-# e2fsprogs-debuginfo \
-# glibc-debuginfo \
-# krb5-debuginfo \
-# nss-softokn-debuginfo \
-# openssl-debuginfo \
-# yum-plugin-auto-update-debug-info \
-# zlib-debuginfo \
-# glibc-debuginfo-common \
-# && yum clean all
-
-RUN yum update -y && yum groupinstall -y "development tools" \
- && yum clean all
-# Libraries needed during compilation to enable all features of Python:
-RUN yum update -y \
- && yum install -y --enablerepo=epel \
- zlib-devel \
- bzip2-devel \
- openssl-devel \
- ncurses-devel \
- sqlite-devel \
- readline-devel \
- tk-devel \
- gdbm-devel \
-# db4-devel \
-# libpcap-devel \
- xz-devel \
- expat-devel \
- wget \
- clang \
- llvm \
- numactl-devel \
- check-devel \
- check \
- boost \
- boost-devel \
- mbedtls-devel \
- xmlstarlet \
- # centos-release-scl \
- yamllint \
- && yum clean all
-
-# Python 2.7.13:
-# RUN wget http://python.org/ftp/python/2.7.13/Python-2.7.13.tar.xz \
-# && tar xf Python-2.7.13.tar.xz \
-# && cd Python-2.7.13 \
-# && ./configure --prefix=/usr/local --enable-unicode=ucs4 --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib" \
-# && make \
-# && make install \
-# && strip /usr/local/lib/libpython2.7.so.1.0 \
-# && cd .. \
-# && rm -rf Python* \
-# && wget https://bootstrap.pypa.io/get-pip.py \
-# && /usr/local/bin/python get-pip.py
-
-RUN pip2 install six scapy==2.3.3 pyexpect subprocess32 cffi git+https://github.com/klement/py-lispnetworking@setup ply
-RUN mkdir -p /w/workspace && mkdir -p /var/ccache && ln -s /var/ccache /tmp/ccache
-ENV CCACHE_DIR=/var/ccache
-ENV CCACHE_READONLY=true
-RUN mkdir -p /var/cache/vpp/python
-RUN mkdir -p /w/Downloads
-# RUN wget -O /w/Downloads/dpdk-18.02.1.tar.xz http://dpdk.org/browse/dpdk-stable/snapshot/dpdk-stable-18.02.1.tar.xz
-# RUN wget -O /w/Downloads/dpdk-18.05.tar.xz http://dpdk.org/browse/dpdk/snapshot/dpdk-18.05.tar.xz
-# RUN wget -O /w/Downloads/v0.47.tar.gz http://github.com/01org/intel-ipsec-mb/archive/v0.47.tar.gz
-# RUN wget -O /w/Downloads/v0.48.tar.gz http://github.com/01org/intel-ipsec-mb/archive/v0.48.tar.gz
-# RUN wget -O /w/Downloads/v0.49.tar.gz http://github.com/01org/intel-ipsec-mb/archive/v0.49.tar.gz
-
-ADD files/lf-update-java-alternatives /usr/local/bin/lf-update-java-alternatives
-RUN chmod 755 /usr/local/bin/lf-update-java-alternatives
-RUN curl -s https://packagecloud.io/install/repositories/fdio/master/script.rpm.sh | sudo bash
-
-
-#include bits from csit-sut
-RUN yum install -y --enablerepo=epel \
- # general tools
-# bridge-utils \
- cloud-init \
- net-tools \
- openssh-server \
- pciutils \
- rsyslog \
-# ssh \
- sudo \
- supervisor \
- tar \
- vim \
- wget \
-# python-devel \
- openssh-clients \
- # csit requirements
- gcc \
- cmake3 \
-# docker-1.13 \
-# libpcap-devel \
-# libpython-devel-2.7 \
-# libpython-devel \
-# openjdk-8-jdk-headless \
-# python-pip \
-# python-devel-2.7 \
-# python-virtualenv \
- socat \
- strongswan \
- unzip \
- tcpdump \
- zlib-devel \
- # vpp requirements
-# ca-certificates-2018 \
-# libapr1 \
- mbedtls \
- mbedtls-devel \
-# libnuma1 \
-# python-cffi \
-# python36-cffi \
-# python-enum34 \
- git \
- sshpass \
-# facter \
-# devtoolset-7 \
-# ninja-build \
- python3-devel \
-# python36-jsonschema \
- selinux-policy \
- selinux-policy-devel \
-# mbedtls-debuginfo \
- && yum clean all
-
-# Configure locales
-#RUN localectl set-locale "en_US.UTF-8" \
-# && localectl status
-
-# 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 pip install \
- docopt==0.6.2 \
- ecdsa==0.13 \
- enum34==1.1.2 \
- ipaddress==1.0.16 \
- paramiko==1.16.0 \
- pexpect==4.6.0 \
- ptyprocess==0.6.0 \
- pycrypto==2.6.1 \
- pykwalify==1.5.0 \
-# pypcap==1.1.5 \
- python-dateutil==2.4.2 \
- PyYAML==3.11 \
- requests==2.9.1 \
- robotframework==2.9.2 \
- scapy==2.3.3 \
- scp==0.10.2 \
- six==1.12.0 \
- dill==0.2.8.2 \
- numpy==1.14.5 \
- scipy==1.1.0
-
-# VPP PIP pre-cache
-RUN pip install \
- aenum
-
-# SSH settings
-RUN echo 'root:Csit1234' | chpasswd \
- && sed -i 's/#PermitRootLogin yes/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
-
-ADD files/sshconfig /root/.ssh/config
-ADD files/badkey /root/.ssh/id_rsa
-RUN chmod 600 /root/.ssh/id_rsa
-#RUN mv /usr/bin/sar /usr/bin/sar.old && ln -s /bin/true /usr/bin/sar
-RUN ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N '' && ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N '' && ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ''
-
-#include bits from registry image
-RUN rm -rf /home/jenkins && useradd -ms /bin/bash jenkins && chown -R jenkins /w && chown -R jenkins /var/ccache && chown -R jenkins /var/cache/vpp #&& mv /usr/bin/sar /usr/bin/sar.old && ln -s /bin/true /usr/bin/sar
-ADD files/jenkins /etc/sudoers.d/jenkins
-ADD files/supervisord.conf /etc/supervisord/supervisord.conf
-ENV PATH=/root/.local/bin:/home/jenkins/.local/bin:${PATH}
-
-#csit-sut ssh bits for the end
-EXPOSE 22
-
-CMD ["sh", "-c", "rm -f /dev/shm/db /dev/shm/global_vm /dev/shm/vpe-api; /usr/bin/supervisord -c /etc/supervisord/supervisord.conf; /usr/sbin/sshd -D"]
diff --git a/docker/vpp/vpp-arm-centos8/files/badkey b/docker/vpp/vpp-arm-centos8/files/badkey
deleted file mode 100644
index 2270aff09..000000000
--- a/docker/vpp/vpp-arm-centos8/files/badkey
+++ /dev/null
@@ -1,27 +0,0 @@
------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
deleted file mode 100644
index b3b279fed..000000000
--- a/docker/vpp/vpp-arm-centos8/files/fdio-master.repo
+++ /dev/null
@@ -1,5 +0,0 @@
-[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
deleted file mode 100644
index 92f8a3435..000000000
--- a/docker/vpp/vpp-arm-centos8/files/jenkins
+++ /dev/null
@@ -1 +0,0 @@
-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
deleted file mode 100644
index 8484a711b..000000000
--- a/docker/vpp/vpp-arm-centos8/files/lf-update-java-alternatives
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/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
deleted file mode 100644
index 8dd13540f..000000000
--- a/docker/vpp/vpp-arm-centos8/files/sshconfig
+++ /dev/null
@@ -1,3 +0,0 @@
-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
deleted file mode 100644
index 7e72d666a..000000000
--- a/docker/vpp/vpp-arm-centos8/files/supervisord.conf
+++ /dev/null
@@ -1,23 +0,0 @@
-[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-ubuntu16/Dockerfile b/docker/vpp/vpp-arm-ubuntu16/Dockerfile
deleted file mode 100644
index 0e0a4e09e..000000000
--- a/docker/vpp/vpp-arm-ubuntu16/Dockerfile
+++ /dev/null
@@ -1,179 +0,0 @@
-FROM arm64v8/ubuntu:16.04
-MAINTAINER Ed Kern <ejk@cisco.com>
-LABEL Description="arm VPP ubuntu 16 baseline"
-LABEL Vendor="cisco.com"
-LABEL Version="3.0"
-
-
-# Setup the environment
-ENV DEBIAN_FRONTEND=noninteractive
-CMD []
-RUN echo 'foo' || true
-RUN apt-get update || true
-RUN echo 'bar'
-RUN apt-get install -y -qq \
- bash \
- bash-completion \
- bc \
- biosdevname \
- ca-certificates \
- cloud-init \
- cron \
- curl \
- dbus \
- dstat \
- ethstatus \
- file \
- fio \
- htop
- #\
- # ifenslave \
- # ioping \
- # iotop \
- # iperf \
- # iptables \
- # iputils-ping \
- # less \
- # locate \
- # lsb-release \
- # lsof \
- # make \
- # man-db \
- # mdadm \
- # mg \
- # mosh \
- # mtr \
- # multipath-tools \
- # nano \
- # net-tools \
- # netcat \
- # nmap \
- # ntp \
- # ntpdate \
- # open-iscsi \
- # python-apt \
- # python-pip \
- # python-yaml \
- # rsync \
- # rsyslog \
- # screen \
- # shunit2 \
- # socat \
- # software-properties-common \
- # ssh \
- # sudo \
- # sysstat \
- # tar \
- # tcpdump \
- # tmux \
- # traceroute \
- # unattended-upgrades \
- # uuid-runtime \
- # vim \
- # wget \
- # apt-transport-https \
- # default-jre-headless \
- # chrpath \
- # nasm \
- # && rm -rf /var/lib/apt/lists/*
-
-RUN add-apt-repository -y ppa:openjdk-r/ppa
-
-RUN apt-get -q update && \
- apt-get install -y -qq \
- unzip \
- xz-utils \
- puppet \
- git \
- git-review \
- libxml-xpath-perl \
- make \
- wget \
- openjdk-8-jdk \
- jq \
- libffi-dev \
- python-all \
- && rm -rf /var/lib/apt/lists/*
-
-RUN apt-get -q update && \
- apt-get install -y -qq \
- autoconf \
- automake \
- autotools-dev \
- bison \
- ccache \
- cscope \
- debhelper \
- dh-apparmor \
- dh-systemd \
- dkms \
- ed \
- exuberant-ctags \
- gettext \
- gettext-base \
- intltool-debian \
- indent \
- lcov \
- libapr1 \
- libapr1-dev \
- libasprintf-dev \
- libbison-dev \
- libconfuse-common \
- libconfuse-dev \
- libconfuse0 \
- libcroco3 \
- libexpat1-dev \
- libganglia1 \
- libganglia1-dev \
- libgd-gd2-perl \
- libgettextpo-dev \
- libgettextpo0 \
- libltdl-dev \
- libmail-sendmail-perl \
- libpython-dev \
- libpython2.7-dev \
- libsctp-dev \
- libsigsegv2 \
- libssl-dev \
- libssl-doc \
- libsys-hostname-long-perl \
- libtool \
- libunistring0 \
- m4 \
- pkg-config \
- po-debconf \
- python-dev \
- python-virtualenv \
- python2.7-dev \
- uuid-dev \
- zlib1g-dev \
- locales \
- llvm \
- clang \
- clang-format \
- libboost-all-dev \
- ruby-dev \
- xmlstarlet \
- && 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
-
-RUN mkdir /workspace && mkdir -p /var/ccache && ln -s /var/ccache /tmp/ccache
-ENV CCACHE_DIR=/var/ccache
-ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
-
-RUN gem install rake
-RUN gem install package_cloud
-RUN pip install scapy
-RUN git clone https://gerrit.fd.io/r/vpp /workspace/ubuntu16 && cd /workspace/ubuntu16; make UNATTENDED=yes install-dep && rm -rf /workspace/ubuntu16 && rm -rf /var/lib/apt/lists/*
-
-
-
-
diff --git a/docker/vpp/vpp-arm-ubuntu18/Dockerfile b/docker/vpp/vpp-arm-ubuntu18/Dockerfile
deleted file mode 100644
index 28f5b505d..000000000
--- a/docker/vpp/vpp-arm-ubuntu18/Dockerfile
+++ /dev/null
@@ -1,325 +0,0 @@
-FROM arm64v8/ubuntu:18.04
-MAINTAINER Ed Kern <ejk@cisco.com>
-LABEL Description="arm VPP ubuntu 18 baseline"
-LABEL Vendor="arm.com"
-LABEL Version="1.1"
-
-# Setup the environment
-ENV DEBIAN_FRONTEND=noninteractive
-ENV DOCKER_TEST=True
-ENV DPDK_DOWNLOAD_DIR=/w/Downloads
-ENV VPP_PYTHON_PREFIX=/var/cache/vpp/python
-ENV VPP_ZOMBIE_NOCHECK=1
-
-ADD files/sshconfig /root/.ssh/config
-ADD files/badkey /root/.ssh/id_rsa
-RUN chmod 600 /root/.ssh/id_rsa
-
-RUN apt-get update && apt-get install -y -qq \
- bash \
- bash-completion \
- bc \
-# biosdevname \
- ca-certificates \
- cloud-init \
- cron \
- curl \
- dbus \
- dstat \
- ethstatus \
- file \
- fio \
- htop \
- #\
- # ifenslave \
- # ioping \
- # iotop \
- # iperf \
- # iptables \
- # iputils-ping \
- # less \
- # locate \
- # lsb-release \
- # lsof \
- # make \
- # man-db \
- # mdadm \
- # mg \
- # mosh \
- # mtr \
- # multipath-tools \
- # nano \
- # net-tools \
- # netcat \
- # nmap \
- # ntp \
- # ntpdate \
- # open-iscsi \
- # python-apt \
- python-pip \
- # python-yaml \
- # rsync \
- rsyslog \
- # screen \
- # shunit2 \
- # socat \
- # software-properties-common \
- # ssh \
- sshpass \
- sudo \
- # sysstat \
- # tar \
- # tcpdump \
- # tmux \
- # traceroute \
- # unattended-upgrades \
- # uuid-runtime \
- # vim \
- # wget \
- apt-transport-https \
- # default-jre-headless \
- # chrpath \
- # nasm \
- && rm -rf /var/lib/apt/lists/*
-
-RUN add-apt-repository -y ppa:openjdk-r/ppa
-
-RUN apt-get -q update && \
- apt-get install -y -qq \
- unzip \
- xz-utils \
- puppet \
- git \
- git-review \
- libxml-xpath-perl \
- make \
- wget \
- openjdk-8-jdk \
- openjdk-11-jdk \
- jq \
- libffi-dev \
- && rm -rf /var/lib/apt/lists/*
-
-RUN apt-get -q update && \
- apt-get install -y -qq \
- autoconf \
- automake \
- autotools-dev \
- bison \
- ccache \
- cscope \
- debhelper \
- dh-apparmor \
- dh-systemd \
- dkms \
- ed \
- exuberant-ctags \
- gfortran \
- gettext \
- gettext-base \
- intltool-debian \
- indent \
- lcov \
- libapr1 \
- libapr1-dev \
- libasprintf-dev \
- libatlas-base-dev \
- libbison-dev \
- libconfuse-doc \
- libconfuse-dev \
- libcroco3 \
- libexpat1-dev \
- libganglia1 \
- libganglia1-dev \
- libgd-gd2-perl \
- libgettextpo-dev \
- libgettextpo0 \
- libltdl-dev \
- libmail-sendmail-perl \
- libmbedtls-dev \
- libpcap-dev \
- libpython-dev \
- libpython2.7-dev \
- libsctp-dev \
- libsigsegv2 \
- libssl-dev \
- libssl-doc \
- libsys-hostname-long-perl \
- libtool \
- m4 \
- pkg-config \
- po-debconf \
- uuid-dev \
- zlib1g-dev \
- locales \
- llvm \
- clang \
- clang-format \
- clang-5.0 \
- libboost-all-dev \
- ruby-dev \
- gdb \
- iperf3 \
- cmake \
- cmake-data \
- libarchive13 \
- liblzo2-2 \
- librhash0 \
- libuv1 \
- ninja-build \
- cmake-doc \
- lrzip \
- xmlstarlet \
- g++-8 \
- gcc-8 \
- libsubunit-dev \
- libsubunit0 \
- yamllint \
- libibverbs-dev \
- apt-utils \
- python-all \
- python-apt \
- python-cffi \
- python-cffi-backend \
- python-dev \
- python-enum34 \
- python-pip \
- python-ply \
- python-setuptools \
- python-virtualenv \
- python-yaml \
- python3-all \
- python3-apt \
- python3-cffi \
- python3-cffi-backend \
- python3-dev \
- python3-pip \
- python3-ply \
- python3-setuptools \
- python3-virtualenv \
- python3-venv \
- # docs
- python-markupsafe \
- python-jinja2 \
- python-pyparsing \
- doxygen \
- graphviz \
- && rm -rf /var/lib/apt/lists/*
-
-#Repoint clang
-RUN update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-5.0 1000 && update-alternatives --install /usr/bin/clang clang /usr/bin/clang-5.0 1000
-RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 800 --slave /usr/bin/g++ g++ /usr/bin/g++-8
-
-# Configure locales
-RUN locale-gen en_US.UTF-8 && \
- dpkg-reconfigure locales
-
-# Fix permissions
-RUN chown root:syslog /var/log \
- && chmod 755 /etc/default
-
-RUN mkdir /tmp/dumps \
- && mkdir /workspace \
- && mkdir -p /w/workspace \
- && mkdir -p /var/ccache \
- && ln -s /var/ccache /tmp/ccache \
- && mkdir /home/jenkins \
- && mkdir -p /var/cache/vpp/python
-
-ENV CCACHE_DIR=/var/ccache
-ENV CCACHE_READONLY=true
-ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
-
-# packagecloud
-RUN curl -L https://packagecloud.io/fdio/master/gpgkey |sudo apt-key add -
-RUN gem install rake
-RUN gem install package_cloud
-RUN gem install facter
-ADD files/pc_push /usr/local/bin/pc_push
-ADD files/packagecloud /root/.packagecloud
-ADD files/packagecloud_api /root/packagecloud_api
-
-RUN curl -s https://packagecloud.io/install/repositories/fdio/master/script.deb.sh | sudo bash
-
-# VPP PIP pre-cahce
-RUN pip install \
- six \
- scapy==2.3.3 \
- pyexpect \
- subprocess32 \
- cffi \
- git+https://github.com/klement/py-lispnetworking@setup \
- pycodestyle
-
-# 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 \
- ply==3.11 \
- 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
-
-# CSIT PIP pre-cache - ARM workaround
-RUN pip3 install scipy==1.1.0
-
-RUN mkdir -p /w/Downloads
-#RUN wget -O /w/Downloads/nasm-2.13.01.tar.xz http://www.nasm.us/pub/nasm/releasebuilds/2.13.01/nasm-2.13.01.tar.xz
-RUN wget -O /w/Downloads/dpdk-18.02.1.tar.xz http://fast.dpdk.org/rel/dpdk-18.02.1.tar.xz
-#RUN wget -O /w/Downloads/dpdk-18.02.1.tar.xz http://dpdk.org/browse/dpdk-stable/snapshot/dpdk-stable-18.02.1.tar.xz
-RUN wget -O /w/Downloads/dpdk-18.05.tar.xz http://fast.dpdk.org/rel/dpdk-18.05.tar.xz
-#RUN wget -O /w/Downloads/dpdk-18.05.tar.xz http://dpdk.org/browse/dpdk/snapshot/dpdk-18.05.tar.xz
-RUN wget -O /w/Downloads/dpdk-17.11.tar.xz http://fast.dpdk.org/rel/dpdk-17.11.tar.xz
-#RUN wget -O /w/Downloads/v0.47.tar.gz http://github.com/01org/intel-ipsec-mb/archive/v0.47.tar.gz
-RUN wget -O /w/Downloads/v0.48.tar.gz http://github.com/01org/intel-ipsec-mb/archive/v0.48.tar.gz
-RUN wget -O /w/Downloads/v0.49.tar.gz http://github.com/01org/intel-ipsec-mb/archive/v0.49.tar.gz
-
-# for lftools
-RUN rm -rf /home/jenkins && useradd -ms /bin/bash jenkins && chown -R jenkins /w && chown -R jenkins /var/ccache && chown -R jenkins /var/cache/vpp
-ENV PATH=/root/.local/bin:/home/jenkins/.local/bin:${PATH}
diff --git a/docker/vpp/vpp-arm-ubuntu18/files/badkey b/docker/vpp/vpp-arm-ubuntu18/files/badkey
deleted file mode 100644
index 2270aff09..000000000
--- a/docker/vpp/vpp-arm-ubuntu18/files/badkey
+++ /dev/null
@@ -1,27 +0,0 @@
------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
deleted file mode 100644
index 98322206d..000000000
--- a/docker/vpp/vpp-arm-ubuntu18/files/packagecloud
+++ /dev/null
@@ -1 +0,0 @@
-{"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
deleted file mode 100644
index 9f5374895..000000000
--- a/docker/vpp/vpp-arm-ubuntu18/files/packagecloud_api
+++ /dev/null
@@ -1,3 +0,0 @@
-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
deleted file mode 100644
index 3fdc8d373..000000000
--- a/docker/vpp/vpp-arm-ubuntu18/files/pc_push
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/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
deleted file mode 100644
index 8dd13540f..000000000
--- a/docker/vpp/vpp-arm-ubuntu18/files/sshconfig
+++ /dev/null
@@ -1,3 +0,0 @@
-Host *
- StrictHostKeyChecking no
- UserKnownHostsFile=/dev/null
diff --git a/docker/vpp/vpp-centos/Dockerfile b/docker/vpp/vpp-centos/Dockerfile
deleted file mode 100644
index 8fdfe5b1c..000000000
--- a/docker/vpp/vpp-centos/Dockerfile
+++ /dev/null
@@ -1,367 +0,0 @@
-FROM centos:7.6.1810
-MAINTAINER Ed Kern <ejk@cisco.com>
-LABEL Description="VPP centos OS build image"
-LABEL Vendor="cisco.com"
-LABEL Version="2.0"
-
-# Setup the environment
-
-RUN mkdir /workspace && mkdir -p /etc/ssh && mkdir -p /var/ccache
-
-ENV CCACHE_DIR=/var/ccache
-ENV MAKE_PARALLEL_FLAGS -j 4
-ENV VPP_ZOMBIE_NOCHECK=1
-ENV DPDK_DOWNLOAD_DIR=/w/Downloads
-ENV VPP_PYTHON_PREFIX=/var/cache/vpp/python
-ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
-ENV NOTVISIBLE "in users profile"
-
-#SSH timeout
-#RUN touch /etc/ssh/ssh_config
-RUN echo "TCPKeepAlive true" | tee -a /etc/ssh/ssh_config #>/dev/null 2>&1
-RUN echo "ServerAliveCountMax 30" | tee -a /etc/ssh/ssh_config #>/dev/null 2>&1
-RUN echo "ServerAliveInterval 10" | tee -a /etc/ssh/ssh_config #>/dev/null 2>&1
-
-# Configure locales
-#RUN localectl set-locale "en_US.UTF-8" \
-# && localectl status
-
-#module
-RUN echo uio_pci_generic >> /etc/modules
-
-
-#RUN yum update -y && yum install -y deltarpm && yum clean all
-RUN yum update -y && yum install -y @base https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm && yum clean all
-RUN yum update -y && yum install -y --enablerepo=epel \
- chrpath \
- git \
- git-review \
- java-*-openjdk-devel \
- jq \
- lcov \
- make \
- nasm \
-# perl-XML-XPath \
-# puppet \
- sudo \
- unzip \
- xz \
- wget \
- && yum clean all
-
-#packer install
-#RUN wget https://releases.hashicorp.com/packer/1.1.3/packer_1.1.3_linux_amd64.zip && unzip packer_1.1.3_linux_amd64.zip -d /usr/local/bin/ && mv /usr/local/bin/packer /usr/local/bin/packer.io
-
-
-RUN yum update -y && yum install -y --enablerepo=epel \
- asciidoc \
- apr-devel \
- cpp \
- c++ \
- cmake \
- dblatex \
- doxygen \
- epel-rpm-macros \
- gcc \
- graphviz \
- indent \
- kernel-devel \
- libxml2 \
- libffi-devel \
- make \
- openssl-devel \
- python-devel \
- python-virtualenv \
- python-setuptools \
- python-cffi \
- python-pip \
- python-jinja2 \
- python-sphinx \
- source-highlight \
- rpm \
- valgrind \
- yum-utils \
- && yum clean all
-
-RUN yum update -y && yum install -y --enablerepo=epel \
- ganglia-devel \
- libconfuse-devel \
- mock \
- && yum clean all
-
-#RUN alternatives --set java /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
-#RUN alternatives --set java_sdk_openjdk /usr/lib/jvm/java-1.7.0-openjdk.x86_64
-
-RUN pip install --upgrade pip
-RUN pip install pycap scapy
-
-RUN yum update -y && yum install -y --enablerepo=epel \
- autoconf \
- automake \
- bison \
- ccache \
- cscope \
- curl \
- dkms \
- git \
- git-review \
- libtool \
- libconfuse-dev \
- libpcap-devel \
- libcap-devel \
- scapy \
- && yum clean all
-
-#puppet
-RUN yum update -y && yum install -y --enablerepo=epel \
- libxml2-devel \
- libxslt-devel \
- ruby-devel \
- zlib-devel \
- gcc-c++ \
- && yum clean all
-
-#outdated ruby pos
-RUN yum update -y && yum install -y --enablerepo=epel \
- git-core \
- zlib \
- zlib-devel \
- gcc-c++ \
- patch \
- readline \
- readline-devel \
- libyaml-devel \
- libffi-devel \
- openssl-devel \
- make \
- bzip2 \
- autoconf \
- automake \
- libtool \
- bison \
- curl \
- sqlite-devel \
- && yum clean all
-
-ENV PATH="/root/.rbenv/bin:${PATH}"
-ENV PATH="/root/.rbenv/shims:${PATH}"
-
-RUN curl -sL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-installer | bash -
-RUN rbenv init -
-RUN rbenv install 2.5.1 && rbenv global 2.5.1
-#&& echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc && echo 'eval "$(rbenv init -)"' >> ~/.bashrc &&
-
-
-RUN gem install rake
-RUN gem install package_cloud
-
-RUN yum update -y && yum install -y --enablerepo=epel \
- apr-util \
- byacc \
- diffstat \
- dwz \
- flex \
- gcc-gfortran \
- gettext-devel \
- glibc-static \
- intltool \
- nasm \
- patchutils \
- rcs \
- redhat-lsb \
- redhat-rpm-config \
- rpm-build \
- rpm-sign \
- subversion \
- swig \
- systemtap \
- && yum clean all
-
-RUN yum update -y && yum install -y --enablerepo=epel-debuginfo --enablerepo=base-debuginfo \
- e2fsprogs-debuginfo \
- glibc-debuginfo \
- krb5-debuginfo \
- nss-softokn-debuginfo \
- openssl-debuginfo \
- yum-plugin-auto-update-debug-info \
- zlib-debuginfo \
- glibc-debuginfo-common \
- && yum clean all
-
-RUN yum update -y && yum groupinstall -y "development tools" \
- && yum clean all
-# Libraries needed during compilation to enable all features of Python:
-RUN yum update -y \
- && yum install -y --enablerepo=epel \
- zlib-devel \
- bzip2-devel \
- openssl-devel \
- ncurses-devel \
- sqlite-devel \
- readline-devel \
- tk-devel \
- gdbm-devel \
- db4-devel \
- libpcap-devel \
- xz-devel \
- expat-devel \
- wget \
- clang \
- llvm \
- numactl-devel \
- check-devel \
- check \
- boost \
- boost-devel \
- mbedtls-devel \
- xmlstarlet \
- centos-release-scl \
- yamllint \
- && yum clean all
-
-# Python 2.7.13:
-RUN wget http://python.org/ftp/python/2.7.13/Python-2.7.13.tar.xz \
- && tar xf Python-2.7.13.tar.xz \
- && cd Python-2.7.13 \
- && ./configure --prefix=/usr/local --enable-unicode=ucs4 --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib" \
- && make \
- && make install \
- && strip /usr/local/lib/libpython2.7.so.1.0 \
- && cd .. \
- && rm -rf Python* \
- && wget https://bootstrap.pypa.io/get-pip.py \
- && /usr/local/bin/python get-pip.py
-
-RUN pip install six scapy==2.3.3 pyexpect subprocess32 cffi git+https://github.com/klement/py-lispnetworking@setup ply
-RUN mkdir -p /w/workspace && mkdir -p /var/ccache && ln -s /var/ccache /tmp/ccache
-ENV CCACHE_DIR=/var/ccache
-ENV CCACHE_READONLY=true
-RUN mkdir -p /var/cache/vpp/python
-RUN mkdir -p /w/Downloads
-RUN wget -O /w/Downloads/dpdk-18.02.1.tar.xz http://dpdk.org/browse/dpdk-stable/snapshot/dpdk-stable-18.02.1.tar.xz
-RUN wget -O /w/Downloads/dpdk-18.05.tar.xz http://dpdk.org/browse/dpdk/snapshot/dpdk-18.05.tar.xz
-RUN wget -O /w/Downloads/v0.47.tar.gz http://github.com/01org/intel-ipsec-mb/archive/v0.47.tar.gz
-RUN wget -O /w/Downloads/v0.48.tar.gz http://github.com/01org/intel-ipsec-mb/archive/v0.48.tar.gz
-RUN wget -O /w/Downloads/v0.49.tar.gz http://github.com/01org/intel-ipsec-mb/archive/v0.49.tar.gz
-
-ADD files/lf-update-java-alternatives /usr/local/bin/lf-update-java-alternatives
-RUN chmod 755 /usr/local/bin/lf-update-java-alternatives
-RUN curl -s https://packagecloud.io/install/repositories/fdio/master/script.rpm.sh | sudo bash
-
-
-#include bits from csit-sut
-RUN yum install -y \
- # general tools
- bridge-utils \
- cloud-init \
- net-tools \
- openssh-server \
- pciutils \
- rsyslog \
- ssh \
- sudo \
- supervisor \
- tar \
- vim \
- wget \
- python-devel \
- openssh-clients \
- # csit requirements
- gcc \
- cmake3 \
- docker-1.13 \
- libpcap-devel \
- libpython-devel-2.7 \
- libpython-devel \
- openjdk-8-jdk-headless \
- python-pip \
- python-devel-2.7 \
- python-virtualenv \
- socat \
- strongswan \
- unzip \
- tcpdump \
- zlib-devel \
- # vpp requirements
- ca-certificates-2018 \
- libapr1 \
- mbedtls \
- mbedtls-devel \
- libnuma1 \
- python-cffi \
- python36-cffi \
- python-enum34 \
- git \
- sshpass \
- facter \
- devtoolset-7 \
- ninja-build \
- python3-devel \
- python36-jsonschema \
- selinux-policy \
- selinux-policy-devel \
- mbedtls-debuginfo \
- && yum clean all
-
-# Configure locales
-#RUN localectl set-locale "en_US.UTF-8" \
-# && localectl status
-
-# 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 pip install \
- docopt==0.6.2 \
- ecdsa==0.13 \
- enum34==1.1.2 \
- ipaddress==1.0.16 \
- paramiko==1.16.0 \
- pexpect==4.6.0 \
- ptyprocess==0.6.0 \
- pycrypto==2.6.1 \
- pykwalify==1.5.0 \
- pypcap==1.1.5 \
- python-dateutil==2.4.2 \
- PyYAML==3.11 \
- requests==2.9.1 \
- robotframework==2.9.2 \
- scapy==2.3.3 \
- scp==0.10.2 \
- six==1.12.0 \
- dill==0.2.8.2 \
- numpy==1.14.5 \
- scipy==1.1.0
-
-# VPP PIP pre-cache
-RUN pip install \
- aenum
-
-# SSH settings
-RUN echo 'root:Csit1234' | chpasswd \
- && sed -i 's/#PermitRootLogin yes/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
-
-ADD files/sshconfig /root/.ssh/config
-ADD files/badkey /root/.ssh/id_rsa
-RUN chmod 600 /root/.ssh/id_rsa
-RUN mv /usr/bin/sar /usr/bin/sar.old && ln -s /bin/true /usr/bin/sar
-RUN ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N '' && ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N '' && ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ''
-
-#include bits from registry image
-RUN rm -rf /home/jenkins && useradd -ms /bin/bash jenkins && chown -R jenkins /w && chown -R jenkins /var/ccache && chown -R jenkins /var/cache/vpp && mv /usr/bin/sar /usr/bin/sar.old && ln -s /bin/true /usr/bin/sar
-ADD files/jenkins /etc/sudoers.d/jenkins
-ADD files/supervisord.conf /etc/supervisord/supervisord.conf
-ENV PATH=/root/.local/bin:/home/jenkins/.local/bin:${PATH}
-
-#csit-sut ssh bits for the end
-EXPOSE 22
-
-CMD ["sh", "-c", "rm -f /dev/shm/db /dev/shm/global_vm /dev/shm/vpe-api; /usr/bin/supervisord -c /etc/supervisord/supervisord.conf; /usr/sbin/sshd -D"]
diff --git a/docker/vpp/vpp-centos/files/badkey b/docker/vpp/vpp-centos/files/badkey
deleted file mode 100644
index 2270aff09..000000000
--- a/docker/vpp/vpp-centos/files/badkey
+++ /dev/null
@@ -1,27 +0,0 @@
------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
deleted file mode 100644
index b3b279fed..000000000
--- a/docker/vpp/vpp-centos/files/fdio-master.repo
+++ /dev/null
@@ -1,5 +0,0 @@
-[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
deleted file mode 100644
index 92f8a3435..000000000
--- a/docker/vpp/vpp-centos/files/jenkins
+++ /dev/null
@@ -1 +0,0 @@
-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
deleted file mode 100644
index 8484a711b..000000000
--- a/docker/vpp/vpp-centos/files/lf-update-java-alternatives
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/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
deleted file mode 100644
index 8dd13540f..000000000
--- a/docker/vpp/vpp-centos/files/sshconfig
+++ /dev/null
@@ -1,3 +0,0 @@
-Host *
- StrictHostKeyChecking no
- UserKnownHostsFile=/dev/null
diff --git a/docker/vpp/vpp-centos/files/supervisord.conf b/docker/vpp/vpp-centos/files/supervisord.conf
deleted file mode 100644
index 7e72d666a..000000000
--- a/docker/vpp/vpp-centos/files/supervisord.conf
+++ /dev/null
@@ -1,23 +0,0 @@
-[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/Dockerfile b/docker/vpp/vpp-centos8/Dockerfile
deleted file mode 100644
index ea671452c..000000000
--- a/docker/vpp/vpp-centos8/Dockerfile
+++ /dev/null
@@ -1,387 +0,0 @@
-FROM centos:8
-MAINTAINER Ed Kern <ejk@cisco.com>
-LABEL Description="VPP centos8 OS build image"
-LABEL Vendor="cisco.com"
-LABEL Version="0.02"
-
-# Setup the environment
-
-RUN mkdir /workspace && mkdir -p /etc/ssh && mkdir -p /var/ccache
-
-ENV CCACHE_DIR=/var/ccache
-ENV MAKE_PARALLEL_FLAGS -j 4
-ENV VPP_ZOMBIE_NOCHECK=1
-ENV DPDK_DOWNLOAD_DIR=/w/Downloads
-ENV VPP_PYTHON_PREFIX=/var/cache/vpp/python
-ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
-ENV NOTVISIBLE "in users profile"
-
-#SSH timeout
-#RUN touch /etc/ssh/ssh_config
-RUN echo "TCPKeepAlive true" | tee -a /etc/ssh/ssh_config #>/dev/null 2>&1
-RUN echo "ServerAliveCountMax 30" | tee -a /etc/ssh/ssh_config #>/dev/null 2>&1
-RUN echo "ServerAliveInterval 10" | tee -a /etc/ssh/ssh_config #>/dev/null 2>&1
-
-# Configure locales
-#RUN localectl set-locale "en_US.UTF-8" \
-# && localectl status
-
-#module
-RUN echo uio_pci_generic >> /etc/modules
-
-ADD files/CentOS-AppStream.repo /etc/yum.repos.d/CentOS-AppStream.repo
-ADD files/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo
-
-#RUN yum update -y && yum install -y deltarpm && yum clean all
-#RUN yum update -y && yum install -y @base https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm && yum clean all
-RUN yum update -y && yum install -y epel-release && yum clean all
-ADD files/epel.repo /etc/yum.repos.d/epel.repo
-
-RUN yum update -y && yum install -y --enablerepo=epel \
- chrpath \
- git \
-# git-review \
- java-*-openjdk-devel \
- jq \
-# lcov \
- make \
-# nasm \
- sudo \
- unzip \
- xz \
- wget \
- nano \
- && yum clean all
-
-#packer install
-#RUN wget https://releases.hashicorp.com/packer/1.1.3/packer_1.1.3_linux_amd64.zip && unzip packer_1.1.3_linux_amd64.zip -d /usr/local/bin/ && mv /usr/local/bin/packer /usr/local/bin/packer.io
-
-
-RUN yum update -y && yum install -y --enablerepo=epel \
- asciidoc \
- apr-devel \
- cpp \
-# c++ \
- cmake \
-# dblatex \
-# doxygen \
- epel-rpm-macros \
- gcc \
- graphviz \
- indent \
- kernel-devel \
- libxml2 \
- libffi-devel \
- make \
- openssl-devel \
- python2-devel \
- python2-virtualenv \
- python2-setuptools \
-# python2-cffi \
- python2-pip \
- python2-jinja2 \
-# python2-sphinx \
- source-highlight \
- rpm \
- valgrind \
- yum-utils \
- && yum clean all
-
-RUN yum update -y && yum install -y \
-# ganglia-devel \
- libconfuse-devel \
- mock \
- && yum clean all
-
-#RUN alternatives --set java /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
-#RUN alternatives --set java_sdk_openjdk /usr/lib/jvm/java-1.7.0-openjdk.x86_64
-
-RUN pip2 install --upgrade pip
-RUN pip2 install pycap scapy
-
-RUN yum update -y && yum install -y --enablerepo=epel \
- autoconf \
- automake \
- bison \
- ccache \
- cscope \
- curl \
- dkms \
- git \
-# git-review \
- libtool \
-# libconfuse-dev \
-# libpcap-devel \
- libcap-devel \
- scapy \
- && yum clean all
-
-#puppet
-RUN yum update -y && yum install -y --enablerepo=epel \
- libxml2-devel \
- libxslt-devel \
- ruby-devel \
- zlib-devel \
- gcc-c++ \
- && yum clean all
-
-#outdated ruby pos
-RUN yum update -y && yum install -y --enablerepo=epel \
- git-core \
- zlib \
- zlib-devel \
- gcc-c++ \
- patch \
- readline \
- readline-devel \
-# libyaml-devel \
- libffi-devel \
- openssl-devel \
- make \
- bzip2 \
- autoconf \
- automake \
- libtool \
- bison \
- curl \
- sqlite-devel \
- && yum clean all
-
-ENV PATH="/root/.rbenv/bin:${PATH}"
-ENV PATH="/root/.rbenv/shims:${PATH}"
-
-RUN curl -sL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-installer | bash -
-RUN rbenv init -
-RUN rbenv install 2.5.1 && rbenv global 2.5.1
-#&& echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc && echo 'eval "$(rbenv init -)"' >> ~/.bashrc &&
-
-
-RUN gem install rake
-RUN gem install package_cloud
-
-RUN yum update -y && yum install -y --enablerepo=epel \
- apr-util \
- byacc \
- diffstat \
- dwz \
- flex \
- gcc-gfortran \
- gettext-devel \
- glibc \
- glibc-langpack-en \
- intltool \
-# nasm \
- patchutils \
-# rcs \
- redhat-lsb \
- redhat-rpm-config \
- rpm-build \
- rpm-sign \
- subversion \
- swig \
- systemtap \
- && yum clean all
-
-#RUN yum update -y && yum install -y --enablerepo=epel-debuginfo --enablerepo=base-debuginfo \
-# RUN yum update -y && yum install -y --enablerepo=epel-debuginfo \
-# e2fsprogs-debuginfo \
-# glibc-debuginfo \
-# krb5-debuginfo \
-# nss-softokn-debuginfo \
-# openssl-debuginfo \
-# yum-plugin-auto-update-debug-info \
-# zlib-debuginfo \
-# glibc-debuginfo-common \
-# && yum clean all
-
-RUN yum update -y && yum groupinstall -y "development tools" \
- && yum clean all
-# Libraries needed during compilation to enable all features of Python:
-RUN yum update -y \
- && yum install -y --enablerepo=epel \
- zlib-devel \
- bzip2-devel \
- openssl-devel \
- ncurses-devel \
- sqlite-devel \
- readline-devel \
- tk-devel \
- gdbm-devel \
-# db4-devel \
-# libpcap-devel \
- xz-devel \
- expat-devel \
- wget \
- clang \
- llvm \
- numactl-devel \
- check-devel \
- check \
- boost \
- boost-devel \
- mbedtls-devel \
- xmlstarlet \
-# centos-release-scl \
- yamllint \
- && yum clean all
-
-#centos8
-RUN dnf config-manager --set-enabled PowerTools \
- && yum install -y --enablerepo=epel \
- compat-openssl10 \
- python3-jsonschema \
- selinux-policy \
- selinux-policy-devel \
- glibc-static \
- ninja-build \
- && yum clean all
-
-# Python 2.7.13:
-# RUN wget http://python.org/ftp/python/2.7.13/Python-2.7.13.tar.xz \
-# && tar xf Python-2.7.13.tar.xz \
-# && cd Python-2.7.13 \
-# && ./configure --prefix=/usr/local --enable-unicode=ucs4 --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib" \
-# && make \
-# && make install \
-# && strip /usr/local/lib/libpython2.7.so.1.0 \
-# && cd .. \
-# && rm -rf Python* \
-# && wget https://bootstrap.pypa.io/get-pip.py \
-# && /usr/local/bin/python get-pip.py
-
-RUN pip2 install six scapy==2.3.3 pyexpect subprocess32 cffi git+https://github.com/klement/py-lispnetworking@setup ply
-RUN mkdir -p /w/workspace && mkdir -p /var/ccache && ln -s /var/ccache /tmp/ccache
-ENV CCACHE_DIR=/var/ccache
-ENV CCACHE_READONLY=true
-RUN mkdir -p /var/cache/vpp/python
-RUN mkdir -p /w/Downloads
-# RUN wget -O /w/Downloads/dpdk-18.02.1.tar.xz http://dpdk.org/browse/dpdk-stable/snapshot/dpdk-stable-18.02.1.tar.xz
-# RUN wget -O /w/Downloads/dpdk-18.05.tar.xz http://dpdk.org/browse/dpdk/snapshot/dpdk-18.05.tar.xz
-# RUN wget -O /w/Downloads/v0.47.tar.gz http://github.com/01org/intel-ipsec-mb/archive/v0.47.tar.gz
-# RUN wget -O /w/Downloads/v0.48.tar.gz http://github.com/01org/intel-ipsec-mb/archive/v0.48.tar.gz
-# RUN wget -O /w/Downloads/v0.49.tar.gz http://github.com/01org/intel-ipsec-mb/archive/v0.49.tar.gz
-
-ADD files/lf-update-java-alternatives /usr/local/bin/lf-update-java-alternatives
-RUN chmod 755 /usr/local/bin/lf-update-java-alternatives
-#RUN curl -s https://packagecloud.io/install/repositories/fdio/master/script.rpm.sh | sudo bash
-
-# CSIT requirements
-RUN dnf config-manager --set-enabled PowerTools \
- && yum install -y --enablerepo=epel \
- curl \
- git \
- libpcap-devel \
- openssh-clients \
- openssh-server \
- net-tools \
- pciutils \
- python3-cffi \
- python3-pip \
- python3-setuptools \
- socat \
- sshpass \
- strongswan \
- sudo \
- supervisor \
- tar \
- tcpdump \
- unzip \
- vim \
- virtualenv \
- wget \
- zlib-devel \
- && yum clean all
-
-# 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 \
- ply==3.11 \
- 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
-
-# CSIT ARM workaround
-RUN pip3 install scipy==1.1.0
-
-# Configure locales
-#RUN localectl set-locale "en_US.UTF-8" \
-# && localectl status
-
-# 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
-
-# SSH settings
-RUN echo 'root:Csit1234' | chpasswd \
- && sed -i 's/#PermitRootLogin yes/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
-
-ADD files/sshconfig /root/.ssh/config
-ADD files/badkey /root/.ssh/id_rsa
-RUN chmod 600 /root/.ssh/id_rsa
-#RUN mv /usr/bin/sar /usr/bin/sar.old && ln -s /bin/true /usr/bin/sar
-RUN ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N '' && ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N '' && ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ''
-
-#include bits from registry image
-RUN rm -rf /home/jenkins && useradd -ms /bin/bash jenkins && chown -R jenkins /w && chown -R jenkins /var/ccache && chown -R jenkins /var/cache/vpp #&& mv /usr/bin/sar /usr/bin/sar.old && ln -s /bin/true /usr/bin/sar
-ADD files/jenkins /etc/sudoers.d/jenkins
-ADD files/supervisord.conf /etc/supervisord/supervisord.conf
-ENV PATH=/root/.local/bin:/home/jenkins/.local/bin:${PATH}
-
-#csit-sut ssh bits for the end
-EXPOSE 22
-
-CMD ["sh", "-c", "rm -f /dev/shm/db /dev/shm/global_vm /dev/shm/vpe-api; /usr/bin/supervisord -c /etc/supervisord/supervisord.conf; /usr/sbin/sshd -D"]
diff --git a/docker/vpp/vpp-centos8/files/CentOS-AppStream.repo b/docker/vpp/vpp-centos8/files/CentOS-AppStream.repo
deleted file mode 100644
index 16828095f..000000000
--- a/docker/vpp/vpp-centos8/files/CentOS-AppStream.repo
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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
deleted file mode 100644
index 81df950b2..000000000
--- a/docker/vpp/vpp-centos8/files/CentOS-Base.repo
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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
deleted file mode 100644
index 2270aff09..000000000
--- a/docker/vpp/vpp-centos8/files/badkey
+++ /dev/null
@@ -1,27 +0,0 @@
------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
deleted file mode 100644
index 9083b454e..000000000
--- a/docker/vpp/vpp-centos8/files/epel.repo
+++ /dev/null
@@ -1,25 +0,0 @@
-[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
deleted file mode 100644
index b3b279fed..000000000
--- a/docker/vpp/vpp-centos8/files/fdio-master.repo
+++ /dev/null
@@ -1,5 +0,0 @@
-[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
deleted file mode 100644
index 92f8a3435..000000000
--- a/docker/vpp/vpp-centos8/files/jenkins
+++ /dev/null
@@ -1 +0,0 @@
-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
deleted file mode 100644
index 8484a711b..000000000
--- a/docker/vpp/vpp-centos8/files/lf-update-java-alternatives
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/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
deleted file mode 100644
index 8dd13540f..000000000
--- a/docker/vpp/vpp-centos8/files/sshconfig
+++ /dev/null
@@ -1,3 +0,0 @@
-Host *
- StrictHostKeyChecking no
- UserKnownHostsFile=/dev/null
diff --git a/docker/vpp/vpp-centos8/files/supervisord.conf b/docker/vpp/vpp-centos8/files/supervisord.conf
deleted file mode 100644
index 7e72d666a..000000000
--- a/docker/vpp/vpp-centos8/files/supervisord.conf
+++ /dev/null
@@ -1,23 +0,0 @@
-[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/Dockerfile b/docker/vpp/vpp-ubuntu16/Dockerfile
deleted file mode 100644
index 589e0a9c5..000000000
--- a/docker/vpp/vpp-ubuntu16/Dockerfile
+++ /dev/null
@@ -1,248 +0,0 @@
-FROM ubuntu:16.04
-MAINTAINER Ed Kern <ejk@cisco.com>
-LABEL Description="VPP ubuntu 16 baseline"
-LABEL Vendor="cisco.com"
-LABEL Version="3.1"
-
-
-# Setup the environment
-ENV DEBIAN_FRONTEND=noninteractive
-ENV MAKE_PARALLEL_FLAGS -j 4
-ENV DOCKER_TEST=True
-ENV VPP_ZOMBIE_NOCHECK=1
-ENV DPDK_DOWNLOAD_DIR=/w/Downloads
-ENV VPP_PYTHON_PREFIX=/var/cache/vpp/python
-
-RUN apt-get -q update && \
- apt-get install -y -qq \
- bash \
- bash-completion \
- bc \
- biosdevname \
- ca-certificates \
- cloud-init \
- cron \
- curl \
- libcurl3-gnutls \
- dbus \
- dstat \
- ethstatus \
- file \
- fio \
- htop \
- ifenslave \
- ioping \
- iotop \
- iperf \
- iptables \
- iputils-ping \
- less \
- locate \
- lsb-release \
- lsof \
- make \
- man-db \
- mdadm \
- mg \
- mosh \
- mtr \
- multipath-tools \
- nano \
- net-tools \
- netcat \
- nmap \
- ntp \
- ntpdate \
- open-iscsi \
- python-apt \
- python-pip \
- python-yaml \
- rsync \
- rsyslog \
- screen \
- shunit2 \
- socat \
- software-properties-common \
- ssh \
- sudo \
- sysstat \
- tar \
- tcpdump \
- tmux \
- traceroute \
- unattended-upgrades \
- uuid-runtime \
- vim \
- wget \
- apt-transport-https \
- default-jre-headless \
- chrpath \
- nasm \
- && rm -rf /var/lib/apt/lists/*
-
-RUN add-apt-repository -y ppa:openjdk-r/ppa
-
-RUN apt-get -q update && \
- apt-get install -y -qq \
- unzip \
- xz-utils \
- puppet \
- git \
- git-review \
- libxml-xpath-perl \
- make \
- wget \
- openjdk-8-jdk \
- openjdk-11-jdk \
- jq \
- libffi-dev \
- python-all \
- && rm -rf /var/lib/apt/lists/*
-
-RUN apt-get -q update && \
- apt-get install -y -qq \
- autoconf \
- automake \
- autotools-dev \
- bison \
- ccache \
- cscope \
- debhelper \
- dh-apparmor \
- dh-systemd \
- dkms \
- ed \
- exuberant-ctags \
- gettext \
- gettext-base \
- intltool-debian \
- indent \
- lcov \
- libapr1 \
- libapr1-dev \
- libasprintf-dev \
- libbison-dev \
- libconfuse-common \
- libconfuse-dev \
- libconfuse0 \
- libcroco3 \
- libexpat1-dev \
- libganglia1 \
- libganglia1-dev \
- libgd-gd2-perl \
- libgettextpo-dev \
- libgettextpo0 \
- libltdl-dev \
- libmail-sendmail-perl \
- libmbedtls-dev \
- libpython-dev \
- libpython2.7-dev \
- libsctp-dev \
- libsigsegv2 \
- libssl-dev \
- libssl-doc \
- libsys-hostname-long-perl \
- libtool \
- libunistring0 \
- m4 \
- pkg-config \
- po-debconf \
- python-dev \
- python-virtualenv \
- python2.7-dev \
- uuid-dev \
- zlib1g-dev \
- locales \
- llvm \
- clang \
- clang-format \
- clang-5.0 \
- libboost-all-dev \
- ruby-dev \
- zile \
- default-jdk-headless \
- check \
- libsubunit-dev \
- libsubunit0 \
- emacs \
- gdb \
- libpcap-dev \
- python-ply \
- iperf3 \
- libibverbs-dev \
- dtach \
- cmake \
- cmake-data \
- libarchive13 \
- libcurl3 \
- liblzo2-2 \
- ninja-build \
- && rm -rf /var/lib/apt/lists/*
-
-#Repoint clang
-RUN update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-5.0 1000 && update-alternatives --install /usr/bin/clang clang /usr/bin/clang-5.0 1000
-
-# For the docs
-RUN apt-get -q update && \
- apt-get install -y -qq \
- python-markupsafe \
- python-jinja2 \
- python-pyparsing \
- doxygen \
- graphviz \
- xmlstarlet \
- && 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
-
-RUN mkdir /tmp/dumps
-RUN mkdir /workspace && mkdir -p /var/ccache && ln -s /var/ccache /tmp/ccache
-ENV CCACHE_DIR=/var/ccache
-ENV CCACHE_READONLY=true
-
-ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
-
-RUN gem install rake
-RUN gem install package_cloud
-RUN pip install six scapy==2.3.3 pyexpect subprocess32 cffi git+https://github.com/klement/py-lispnetworking@setup pycodestyle
-#Below are requirements for csit
-RUN pip install robotframework==2.9.2 paramiko==1.16.0 scp==0.10.2 ipaddress==1.0.16 interruptingcow==0.6 PyYAML==3.12 pykwalify==1.5.0 \
- enum34==1.1.2 requests==2.9.1 ecdsa==0.13 pycrypto==2.6.1 pypcap==1.1.5 psutil
-
-RUN mkdir -p /var/cache/vpp/python
-RUN mkdir -p /w/Downloads
-RUN wget -O /w/Downloads/nasm-2.13.01.tar.xz http://www.nasm.us/pub/nasm/releasebuilds/2.13.01/nasm-2.13.01.tar.xz
-RUN wget -O /w/Downloads/dpdk-18.02.1.tar.xz http://fast.dpdk.org/rel/dpdk-18.02.1.tar.xz
-#RUN wget -O /w/Downloads/dpdk-18.02.1.tar.xz http://dpdk.org/browse/dpdk-stable/snapshot/dpdk-stable-18.02.1.tar.xz
-RUN wget -O /w/Downloads/dpdk-18.05.tar.xz http://fast.dpdk.org/rel/dpdk-18.05.tar.xz
-#RUN wget -O /w/Downloads/dpdk-18.05.tar.xz http://dpdk.org/browse/dpdk/snapshot/dpdk-18.05.tar.xz
-RUN wget -O /w/Downloads/dpdk-17.11.tar.xz http://fast.dpdk.org/rel/dpdk-17.11.tar.xz
-RUN wget -O /w/Downloads/v0.47.tar.gz http://github.com/01org/intel-ipsec-mb/archive/v0.47.tar.gz
-RUN wget -O /w/Downloads/v0.48.tar.gz http://github.com/01org/intel-ipsec-mb/archive/v0.48.tar.gz
-RUN wget -O /w/Downloads/v0.49.tar.gz http://github.com/01org/intel-ipsec-mb/archive/v0.49.tar.gz
-
-#RUN git clone https://gerrit.fd.io/r/vpp /workspace/ubuntu16 && cd /workspace/ubuntu16; make UNATTENDED=yes install-dep && rm -rf /workspace/ubuntu16 && rm -rf /var/lib/apt/lists/*
-#ADD files/99fd.io.list /etc/apt/sources.list.d/99fd.io.list
-#ADD files/fdio_master.list /etc/apt/sources.list.d/fdio_master.list
-
-ADD files/sshconfig /root/.ssh/config
-ADD files/badkey /root/.ssh/id_rsa
-ADD files/lf-update-java-alternatives /usr/local/bin/lf-update-java-alternatives
-RUN chmod 755 /usr/local/bin/lf-update-java-alternatives
-RUN chmod 600 /root/.ssh/id_rsa
-RUN curl -L https://packagecloud.io/fdio/master/gpgkey |sudo apt-key add -
-
-RUN curl -s https://packagecloud.io/install/repositories/fdio/master/script.deb.sh | sudo bash
-
-#RUN apt update && apt install -y vpp-dpdk-dev vpp-dpdk-dkms
-RUN mkdir -p /w/workspace && mkdir -p /home/jenkins && mkdir -p /run/shm
-
-
-
-
diff --git a/docker/vpp/vpp-ubuntu16/files/badkey b/docker/vpp/vpp-ubuntu16/files/badkey
deleted file mode 100644
index 2270aff09..000000000
--- a/docker/vpp/vpp-ubuntu16/files/badkey
+++ /dev/null
@@ -1,27 +0,0 @@
------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
deleted file mode 100644
index 8484a711b..000000000
--- a/docker/vpp/vpp-ubuntu16/files/lf-update-java-alternatives
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/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
deleted file mode 100644
index 98322206d..000000000
--- a/docker/vpp/vpp-ubuntu16/files/packagecloud
+++ /dev/null
@@ -1 +0,0 @@
-{"url":"https://packagecloud.io","token":"$token"}
diff --git a/docker/vpp/vpp-ubuntu16/files/packagecloud_api b/docker/vpp/vpp-ubuntu16/files/packagecloud_api
deleted file mode 100644
index 9f5374895..000000000
--- a/docker/vpp/vpp-ubuntu16/files/packagecloud_api
+++ /dev/null
@@ -1,3 +0,0 @@
-machine packagecloud.io
-login $pclogin
-password
diff --git a/docker/vpp/vpp-ubuntu16/files/pc_push b/docker/vpp/vpp-ubuntu16/files/pc_push
deleted file mode 100644
index 3fdc8d373..000000000
--- a/docker/vpp/vpp-ubuntu16/files/pc_push
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/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
deleted file mode 100644
index 8dd13540f..000000000
--- a/docker/vpp/vpp-ubuntu16/files/sshconfig
+++ /dev/null
@@ -1,3 +0,0 @@
-Host *
- StrictHostKeyChecking no
- UserKnownHostsFile=/dev/null
diff --git a/docker/vpp/vpp-ubuntu18/Dockerfile b/docker/vpp/vpp-ubuntu18/Dockerfile
deleted file mode 100644
index 85abf6228..000000000
--- a/docker/vpp/vpp-ubuntu18/Dockerfile
+++ /dev/null
@@ -1,342 +0,0 @@
-FROM ubuntu:18.04
-MAINTAINER Ed Kern <ejk@cisco.com>
-LABEL Description="VPP ubuntu 18 baseline"
-LABEL Vendor="cisco.com"
-LABEL Version="1.1"
-
-
-# Setup the environment
-ENV DEBIAN_FRONTEND=noninteractive
-ENV MAKE_PARALLEL_FLAGS -j 4
-ENV DOCKER_TEST=True
-ENV VPP_ZOMBIE_NOCHECK=1
-ENV DPDK_DOWNLOAD_DIR=/w/Downloads
-ENV VPP_PYTHON_PREFIX=/var/cache/vpp/python
-
-RUN apt-get -q update && \
- apt-get install -y -qq \
- bash \
- bash-completion \
- bc \
- biosdevname \
- ca-certificates \
- cloud-init \
- cron \
- curl \
- libcurl3-gnutls \
- dbus \
- dstat \
- ethstatus \
- file \
- fio \
- htop \
- ifenslave \
- ioping \
- iotop \
- iperf \
- iptables \
- iputils-ping \
- less \
- locate \
- lsb-release \
- lsof \
- make \
- man-db \
- mdadm \
- mg \
- mosh \
- mtr \
- multipath-tools \
- nano \
- net-tools \
- netcat \
- nmap \
- ntp \
- ntpdate \
- open-iscsi \
- rsync \
- rsyslog \
- screen \
- shunit2 \
- socat \
- software-properties-common \
- ssh \
- sshpass \
- sudo \
- sysstat \
- tar \
- tcpdump \
- tmux \
- traceroute \
- unattended-upgrades \
- uuid-runtime \
- vim \
- wget \
- apt-transport-https \
- chrpath \
- nasm \
- dtach \
- && rm -rf /var/lib/apt/lists/*
-
-RUN add-apt-repository -y ppa:openjdk-r/ppa
-
-RUN apt-get -q update && \
- apt-get install -y -qq \
- unzip \
- xz-utils \
- puppet \
- git \
- git-review \
- libxml-xpath-perl \
- make \
- wget \
- openjdk-8-jdk \
- openjdk-11-jdk \
- jq \
- libffi-dev \
- && rm -rf /var/lib/apt/lists/*
-
-RUN apt-get -q update && \
- apt-get install -y -qq \
- autoconf \
- automake \
- autotools-dev \
- bison \
- ccache \
- cscope \
- debhelper \
- dh-apparmor \
- dh-systemd \
- dkms \
- ed \
- exuberant-ctags \
- gettext \
- gettext-base \
- intltool-debian \
- indent \
- lcov \
- libapr1 \
- libapr1-dev \
- libasprintf-dev \
- libbison-dev \
- libconfuse-doc \
- libconfuse-dev \
- libcroco3 \
- libexpat1-dev \
- libganglia1 \
- libganglia1-dev \
- libgd-gd2-perl \
- libgettextpo-dev \
- libgettextpo0 \
- libltdl-dev \
- libmail-sendmail-perl \
- libmbedtls-dev \
- libpython-dev \
- libpython2.7-dev \
- libsctp-dev \
- libsigsegv2 \
- libssl-dev \
- libssl-doc \
- libsys-hostname-long-perl \
- libtool \
- m4 \
- pkg-config \
- po-debconf \
- uuid-dev \
- zlib1g-dev \
- locales \
- llvm \
- clang \
- clang-format \
- libboost-all-dev \
- ruby-dev \
- zile \
- check \
- libsubunit-dev \
- libsubunit0 \
- emacs \
- gdb \
- libpcap-dev \
- iperf3 \
- libibverbs-dev \
- apt-utils \
- python-all \
- python-apt \
- python-cffi \
- python-cffi-backend \
- python-dev \
- python-enum34 \
- python-pip \
- python-ply \
- python-setuptools \
- python-virtualenv \
- python-yaml \
- python3-all \
- python3-apt \
- python3-cffi \
- python3-cffi-backend \
- python3-dev \
- python3-pip \
- python3-ply \
- python3-setuptools \
- python3-virtualenv \
- python3-venv \
- && rm -rf /var/lib/apt/lists/*
-
-# For the docs
-RUN apt-get -q update && \
- apt-get install -y -qq \
- python-markupsafe \
- python-jinja2 \
- python-pyparsing \
- doxygen \
- graphviz \
- && rm -rf /var/lib/apt/lists/*
-
-RUN apt-get -q update && \
- apt-get install -y -qq \
- cmake \
- cmake-data \
- libarchive13 \
- liblzo2-2 \
- librhash0 \
- libuv1 \
- ninja-build \
- cmake-doc \
- lrzip \
- xmlstarlet \
- g++-8 \
- gcc-8 \
- yamllint \
- && 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
-
-RUN mkdir /tmp/dumps
-RUN mkdir /workspace && mkdir -p /var/ccache && ln -s /var/ccache /tmp/ccache
-ENV CCACHE_DIR=/var/ccache
-ENV CCACHE_READONLY=true
-
-ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
-RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 700 --slave /usr/bin/g++ g++ /usr/bin/g++-7 && update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 800 --slave /usr/bin/g++ g++ /usr/bin/g++-8
-
-RUN curl -L https://packagecloud.io/fdio/master/gpgkey |sudo apt-key add -
-#ADD files/99fd.io.list /etc/apt/sources.list.d/99fd.io.list
-#ADD files/fdio_master.list /etc/apt/sources.list.d/fdio_master.list
-
-#RUN apt update && apt install -y vpp-dpdk-dev vpp-dpdk-dkms || true
-#RUN mkdir -p /w/dpdk && cd /w/dpdk; apt-get download vpp-dpdk-dkms || true
-
-#RUN mkdir -p /w/workspace/vpp-verify-master-ubuntu1804 && mkdir -p /home/jenkins
-RUN mkdir -p /w/workspace && mkdir -p /home/jenkins
-RUN apt-get purge -y default-jre-headless openjdk-9-jdk-headless openjdk-9-jre-headless || true
-
-ADD files/default-jdk-headless_1.8-59ubuntu2_amd64.deb /tmp/default-jdk-headless_1.8-59ubuntu2_amd64.deb
-ADD files/default-jre-headless_1.8-59ubuntu2_amd64.deb /tmp/default-jre-headless_1.8-59ubuntu2_amd64.deb
-
-RUN apt-get install -y /tmp/default-jre-headless_1.8-59ubuntu2_amd64.deb /tmp/default-jdk-headless_1.8-59ubuntu2_amd64.deb
-ADD files/jre /etc/apt/preferences.d/jre
-ADD files/pc_push /usr/local/bin/pc_push
-ADD files/packagecloud /root/.packagecloud
-ADD files/packagecloud_api /root/packagecloud_api
-ADD files/lf-update-java-alternatives /usr/local/bin/lf-update-java-alternatives
-RUN chmod 755 /usr/local/bin/lf-update-java-alternatives
-RUN gem install rake
-RUN gem install package_cloud
-
-# VPP PIP pre-cahce
-RUN pip install \
- six \
- scapy==2.3.3 \
- pyexpect \
- subprocess32 \
- cffi \
- git+https://github.com/klement/py-lispnetworking@setup \
- pycodestyle
-
-# 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 \
- ply==3.11 \
- 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
-
-# CSIT PIP pre-cache - ARM workaround
-RUN pip3 install scipy==1.1.0
-
-RUN mkdir -p /var/cache/vpp/python
-RUN mkdir -p /w/Downloads
-#RUN wget -O /w/Downloads/nasm-2.13.01.tar.xz http://www.nasm.us/pub/nasm/releasebuilds/2.13.01/nasm-2.13.01.tar.xz
-#RUN wget -O /w/Downloads/dpdk-18.02.tar.xz http://fast.dpdk.org/rel/dpdk-18.02.tar.xz
-#RUN wget -O /w/Downloads/dpdk-17.11.tar.xz http://fast.dpdk.org/rel/dpdk-17.11.tar.xz
-RUN wget -O /w/Downloads/dpdk-18.02.1.tar.xz http://dpdk.org/browse/dpdk-stable/snapshot/dpdk-stable-18.02.1.tar.xz
-RUN wget -O /w/Downloads/dpdk-18.05.tar.xz http://dpdk.org/browse/dpdk/snapshot/dpdk-18.05.tar.xz
-RUN wget -O /w/Downloads/dpdk-18.08.tar.xz http://dpdk.org/browse/dpdk/snapshot/dpdk-18.08.tar.xz
-RUN wget -O /w/Downloads/v0.47.tar.gz http://github.com/01org/intel-ipsec-mb/archive/v0.47.tar.gz
-RUN wget -O /w/Downloads/v0.48.tar.gz http://github.com/01org/intel-ipsec-mb/archive/v0.48.tar.gz
-RUN wget -O /w/Downloads/v0.49.tar.gz http://github.com/01org/intel-ipsec-mb/archive/v0.49.tar.gz
-RUN curl -s https://packagecloud.io/install/repositories/fdio/master/script.deb.sh | sudo bash
-
-#bad and open ssh keys for csit
-ADD files/sshconfig /root/.ssh/config
-ADD files/badkey /root/.ssh/id_rsa
-RUN chmod 600 /root/.ssh/id_rsa
-
-# for lftools
-RUN rm -rf /home/jenkins && useradd -ms /bin/bash jenkins && chown -R jenkins /w && chown -R jenkins /var/ccache && chown -R jenkins /var/cache/vpp && mv /usr/bin/sar /usr/bin/sar.old && ln -s /bin/true /usr/bin/sar
-ENV PATH=/root/.local/bin:/home/jenkins/.local/bin:${PATH}
-
diff --git a/docker/vpp/vpp-ubuntu18/files/badkey b/docker/vpp/vpp-ubuntu18/files/badkey
deleted file mode 100644
index 2270aff09..000000000
--- a/docker/vpp/vpp-ubuntu18/files/badkey
+++ /dev/null
@@ -1,27 +0,0 @@
------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
deleted file mode 100644
index 32f73674f..000000000
--- a/docker/vpp/vpp-ubuntu18/files/default-jdk-headless_1.8-59ubuntu2_amd64.deb
+++ /dev/null
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
deleted file mode 100644
index bd66af502..000000000
--- a/docker/vpp/vpp-ubuntu18/files/default-jre-headless_1.8-59ubuntu2_amd64.deb
+++ /dev/null
Binary files differ
diff --git a/docker/vpp/vpp-ubuntu18/files/jre b/docker/vpp/vpp-ubuntu18/files/jre
deleted file mode 100644
index 2d856174c..000000000
--- a/docker/vpp/vpp-ubuntu18/files/jre
+++ /dev/null
@@ -1,10 +0,0 @@
-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
deleted file mode 100644
index 8484a711b..000000000
--- a/docker/vpp/vpp-ubuntu18/files/lf-update-java-alternatives
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/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
deleted file mode 100644
index 98322206d..000000000
--- a/docker/vpp/vpp-ubuntu18/files/packagecloud
+++ /dev/null
@@ -1 +0,0 @@
-{"url":"https://packagecloud.io","token":"$token"}
diff --git a/docker/vpp/vpp-ubuntu18/files/packagecloud_api b/docker/vpp/vpp-ubuntu18/files/packagecloud_api
deleted file mode 100644
index 9f5374895..000000000
--- a/docker/vpp/vpp-ubuntu18/files/packagecloud_api
+++ /dev/null
@@ -1,3 +0,0 @@
-machine packagecloud.io
-login $pclogin
-password
diff --git a/docker/vpp/vpp-ubuntu18/files/pc_push b/docker/vpp/vpp-ubuntu18/files/pc_push
deleted file mode 100644
index 3fdc8d373..000000000
--- a/docker/vpp/vpp-ubuntu18/files/pc_push
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/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
deleted file mode 100644
index 8dd13540f..000000000
--- a/docker/vpp/vpp-ubuntu18/files/sshconfig
+++ /dev/null
@@ -1,3 +0,0 @@
-Host *
- StrictHostKeyChecking no
- UserKnownHostsFile=/dev/null
diff --git a/docker/vpp/vpp-ubuntu20/Dockerfile b/docker/vpp/vpp-ubuntu20/Dockerfile
deleted file mode 100644
index 5cf5d487c..000000000
--- a/docker/vpp/vpp-ubuntu20/Dockerfile
+++ /dev/null
@@ -1,339 +0,0 @@
-FROM ubuntu:focal
-MAINTAINER Ed Kern <ejk@cisco.com>
-LABEL Description="VPP ubuntu 20 baseline"
-LABEL Vendor="cisco.com"
-LABEL Version="0.01"
-
-
-# Setup the environment
-ENV DEBIAN_FRONTEND=noninteractive
-ENV MAKE_PARALLEL_FLAGS -j 4
-ENV DOCKER_TEST=True
-ENV VPP_ZOMBIE_NOCHECK=1
-ENV DPDK_DOWNLOAD_DIR=/w/Downloads
-ENV VPP_PYTHON_PREFIX=/var/cache/vpp/python
-
-RUN apt-get -q update && \
- apt-get install -y -qq \
- bash \
- bash-completion \
- bc \
-# biosdevname \
- ca-certificates \
- cloud-init \
- cron \
- curl \
- libcurl3-gnutls \
- dbus \
- dstat \
- ethstatus \
- file \
- fio \
- htop \
- ifenslave \
- ioping \
- iotop \
- iperf \
- iptables \
- iputils-ping \
- less \
- locate \
- lsb-release \
- lsof \
- make \
- man-db \
- mdadm \
- mg \
- mosh \
- mtr \
- multipath-tools \
- nano \
- net-tools \
- netcat \
- nmap \
- ntp \
- ntpdate \
- open-iscsi \
- rsync \
- rsyslog \
- screen \
- shunit2 \
- socat \
- software-properties-common \
- ssh \
- sshpass \
- sudo \
- sysstat \
- tar \
- tcpdump \
- tmux \
- traceroute \
- unattended-upgrades \
- uuid-runtime \
- vim \
- wget \
- apt-transport-https \
- chrpath \
- nasm \
- dtach \
- && rm -rf /var/lib/apt/lists/*
-
-#RUN add-apt-repository -y ppa:openjdk-r/ppa
-
-RUN apt-get -q update && \
- apt-get install -y -qq \
- unzip \
- xz-utils \
- puppet \
- git \
- git-review \
- libxml-xpath-perl \
- make \
- wget \
- openjdk-8-jdk \
- openjdk-11-jdk \
- jq \
- libffi-dev \
- && rm -rf /var/lib/apt/lists/*
-
-RUN apt-get -q update && \
- apt-get install -y -qq \
- autoconf \
- automake \
- autotools-dev \
- bison \
- ccache \
- cscope \
- debhelper \
- dh-apparmor \
- dh-systemd \
- dkms \
- ed \
- exuberant-ctags \
- gettext \
- gettext-base \
- intltool-debian \
- indent \
- lcov \
- libapr1 \
- libapr1-dev \
- libasprintf-dev \
- libbison-dev \
- libconfuse-doc \
- libconfuse-dev \
- libcroco3 \
- libexpat1-dev \
- libganglia1 \
- libganglia1-dev \
- libgd-gd2-perl \
- libgettextpo-dev \
- libgettextpo0 \
- libltdl-dev \
- libmail-sendmail-perl \
- libmbedtls-dev \
-# libpython2-dev \
- libpython2.7-dev \
- libsctp-dev \
- libsigsegv2 \
- libssl-dev \
- libssl-doc \
- libsys-hostname-long-perl \
- libtool \
- m4 \
- pkg-config \
- po-debconf \
- uuid-dev \
- zlib1g-dev \
- locales \
- llvm \
- clang \
- clang-format \
- libboost-all-dev \
- ruby-dev \
- zile \
- check \
- libsubunit-dev \
- libsubunit0 \
- emacs \
- gdb \
- libpcap-dev \
- iperf3 \
- libibverbs-dev \
- apt-utils \
- python-all \
- python-apt \
- python-cffi \
- python-cffi-backend \
-# python-dev \
- python-enum34 \
- python-pip \
- python-ply \
- python-setuptools \
- python-virtualenv \
- python-yaml \
- python3-all \
- python3-apt \
- python3-cffi \
- python3-cffi-backend \
- python3-dev \
- python3-pip \
- python3-ply \
- python3-setuptools \
- python3-virtualenv \
- python3-venv \
- && rm -rf /var/lib/apt/lists/*
-
-# For the docs
-RUN apt-get -q update && \
- apt-get install -y -qq \
- python-markupsafe \
- python-jinja2 \
- python-pyparsing \
- doxygen \
- graphviz \
- && rm -rf /var/lib/apt/lists/*
-
-RUN apt-get -q update && \
- apt-get install -y -qq \
- cmake \
- cmake-data \
- libarchive13 \
- liblzo2-2 \
- librhash0 \
- libuv1 \
- ninja-build \
- cmake-doc \
- lrzip \
- xmlstarlet \
- g++-8 \
- gcc-8 \
- yamllint \
- && 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
-
-RUN mkdir /tmp/dumps
-RUN mkdir /workspace && mkdir -p /var/ccache && ln -s /var/ccache /tmp/ccache
-ENV CCACHE_DIR=/var/ccache
-ENV CCACHE_READONLY=true
-
-ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
-#RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 700 --slave /usr/bin/g++ g++ /usr/bin/g++-7 && update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 800 --slave /usr/bin/g++ g++ /usr/bin/g++-8
-
-RUN curl -L https://packagecloud.io/fdio/master/gpgkey |sudo apt-key add -
-#ADD files/99fd.io.list /etc/apt/sources.list.d/99fd.io.list
-#ADD files/fdio_master.list /etc/apt/sources.list.d/fdio_master.list
-
-#RUN apt update && apt install -y vpp-dpdk-dev vpp-dpdk-dkms || true
-#RUN mkdir -p /w/dpdk && cd /w/dpdk; apt-get download vpp-dpdk-dkms || true
-
-#RUN mkdir -p /w/workspace/vpp-verify-master-ubuntu1804 && mkdir -p /home/jenkins
-RUN mkdir -p /w/workspace && mkdir -p /home/jenkins
-#RUN apt-get purge -y default-jre-headless openjdk-9-jdk-headless openjdk-9-jre-headless || true
-
-#ADD files/default-jdk-headless_1.8-59ubuntu2_amd64.deb /tmp/default-jdk-headless_1.8-59ubuntu2_amd64.deb
-#ADD files/default-jre-headless_1.8-59ubuntu2_amd64.deb /tmp/default-jre-headless_1.8-59ubuntu2_amd64.deb
-
-#RUN apt-get install -y /tmp/default-jre-headless_1.8-59ubuntu2_amd64.deb /tmp/default-jdk-headless_1.8-59ubuntu2_amd64.deb
-#ADD files/jre /etc/apt/preferences.d/jre
-ADD files/pc_push /usr/local/bin/pc_push
-ADD files/packagecloud /root/.packagecloud
-ADD files/packagecloud_api /root/packagecloud_api
-ADD files/lf-update-java-alternatives /usr/local/bin/lf-update-java-alternatives
-RUN chmod 755 /usr/local/bin/lf-update-java-alternatives
-RUN gem install rake
-RUN gem install package_cloud
-
-# VPP PIP pre-cahce
-RUN pip install \
- six \
- scapy==2.3.3 \
- pyexpect \
- subprocess32 \
- cffi \
- git+https://github.com/klement/py-lispnetworking@setup \
- pycodestyle
-
-# 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 \
- ply==3.11 \
- 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
-
-# CSIT PIP pre-cache - ARM workaround
-RUN pip3 install scipy==1.1.0
-
-RUN mkdir -p /var/cache/vpp/python
-RUN mkdir -p /w/Downloads
-RUN wget -O /w/Downloads/dpdk-18.02.1.tar.xz http://dpdk.org/browse/dpdk-stable/snapshot/dpdk-stable-18.02.1.tar.xz
-RUN wget -O /w/Downloads/dpdk-18.05.tar.xz http://dpdk.org/browse/dpdk/snapshot/dpdk-18.05.tar.xz
-RUN wget -O /w/Downloads/dpdk-18.08.tar.xz http://dpdk.org/browse/dpdk/snapshot/dpdk-18.08.tar.xz
-RUN wget -O /w/Downloads/v0.47.tar.gz http://github.com/01org/intel-ipsec-mb/archive/v0.47.tar.gz
-RUN wget -O /w/Downloads/v0.48.tar.gz http://github.com/01org/intel-ipsec-mb/archive/v0.48.tar.gz
-RUN wget -O /w/Downloads/v0.49.tar.gz http://github.com/01org/intel-ipsec-mb/archive/v0.49.tar.gz
-#RUN curl -s https://packagecloud.io/install/repositories/fdio/master/script.deb.sh | sudo bash
-
-#bad and open ssh keys for csit
-ADD files/sshconfig /root/.ssh/config
-ADD files/badkey /root/.ssh/id_rsa
-RUN chmod 600 /root/.ssh/id_rsa
-
-# for lftools
-RUN rm -rf /home/jenkins && useradd -ms /bin/bash jenkins && chown -R jenkins /w && chown -R jenkins /var/ccache && chown -R jenkins /var/cache/vpp && mv /usr/bin/sar /usr/bin/sar.old && ln -s /bin/true /usr/bin/sar
-ENV PATH=/root/.local/bin:/home/jenkins/.local/bin:${PATH}
-
diff --git a/docker/vpp/vpp-ubuntu20/files/badkey b/docker/vpp/vpp-ubuntu20/files/badkey
deleted file mode 100644
index 2270aff09..000000000
--- a/docker/vpp/vpp-ubuntu20/files/badkey
+++ /dev/null
@@ -1,27 +0,0 @@
------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
deleted file mode 100644
index 32f73674f..000000000
--- a/docker/vpp/vpp-ubuntu20/files/default-jdk-headless_1.8-59ubuntu2_amd64.deb
+++ /dev/null
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
deleted file mode 100644
index bd66af502..000000000
--- a/docker/vpp/vpp-ubuntu20/files/default-jre-headless_1.8-59ubuntu2_amd64.deb
+++ /dev/null
Binary files differ
diff --git a/docker/vpp/vpp-ubuntu20/files/jre b/docker/vpp/vpp-ubuntu20/files/jre
deleted file mode 100644
index 2d856174c..000000000
--- a/docker/vpp/vpp-ubuntu20/files/jre
+++ /dev/null
@@ -1,10 +0,0 @@
-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
deleted file mode 100644
index 8484a711b..000000000
--- a/docker/vpp/vpp-ubuntu20/files/lf-update-java-alternatives
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/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
deleted file mode 100644
index 98322206d..000000000
--- a/docker/vpp/vpp-ubuntu20/files/packagecloud
+++ /dev/null
@@ -1 +0,0 @@
-{"url":"https://packagecloud.io","token":"$token"}
diff --git a/docker/vpp/vpp-ubuntu20/files/packagecloud_api b/docker/vpp/vpp-ubuntu20/files/packagecloud_api
deleted file mode 100644
index 9f5374895..000000000
--- a/docker/vpp/vpp-ubuntu20/files/packagecloud_api
+++ /dev/null
@@ -1,3 +0,0 @@
-machine packagecloud.io
-login $pclogin
-password
diff --git a/docker/vpp/vpp-ubuntu20/files/pc_push b/docker/vpp/vpp-ubuntu20/files/pc_push
deleted file mode 100644
index 3fdc8d373..000000000
--- a/docker/vpp/vpp-ubuntu20/files/pc_push
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/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
deleted file mode 100644
index 8dd13540f..000000000
--- a/docker/vpp/vpp-ubuntu20/files/sshconfig
+++ /dev/null
@@ -1,3 +0,0 @@
-Host *
- StrictHostKeyChecking no
- UserKnownHostsFile=/dev/null