From 35cadacd2bb9383686753731e31bd7e145fb2506 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 27 Apr 2024 06:24:32 +0200 Subject: Merging upstream version 10.0. Signed-off-by: Daniel Baumann --- docker/alpine/Dockerfile | 9 ++++----- docker/alpine/libyang/APKBUILD | 2 +- docker/ubi8-minimal/Dockerfile | 5 ++++- docker/ubuntu-ci/Dockerfile | 29 ++++++++++++++++------------- docker/ubuntu20-ci/README.md | 8 ++++---- docker/ubuntu22-ci/README.md | 14 +++++++------- 6 files changed, 36 insertions(+), 31 deletions(-) (limited to 'docker') diff --git a/docker/alpine/Dockerfile b/docker/alpine/Dockerfile index 98e8407..1cff06f 100644 --- a/docker/alpine/Dockerfile +++ b/docker/alpine/Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:1 # Create a basic stage set up to build APKs -FROM alpine:3.18 as alpine-builder +FROM alpine:3.19 as alpine-builder RUN apk add \ --update-cache \ abuild \ @@ -24,7 +24,7 @@ RUN cd /src/libyang \ && abuild -r -P /pkgs/apk # This stage builds a dist tarball from the source -FROM alpine:3.18 as source-builder +FROM alpine:3.19 as source-builder RUN mkdir -p /src/alpine /pkgs/apk COPY alpine/APKBUILD.in /src/alpine COPY --from=alpine-apk-builder-libyang /pkgs/apk/src /pkgs/apk @@ -33,8 +33,7 @@ RUN source /src/alpine/APKBUILD.in \ && apk add \ --no-cache \ --update-cache \ - $makedepends \ - && pip install pytest + $makedepends COPY . /src ARG PKGVER RUN cd /src \ @@ -58,7 +57,7 @@ RUN cd /dist \ && abuild -r -P /pkgs/apk # This stage installs frr from the apk -FROM alpine:3.18 +FROM alpine:3.19 RUN mkdir -p /pkgs/apk COPY --from=alpine-apk-builder /pkgs/apk/ /pkgs/apk/ RUN apk add \ diff --git a/docker/alpine/libyang/APKBUILD b/docker/alpine/libyang/APKBUILD index 04e943f..6973fd6 100755 --- a/docker/alpine/libyang/APKBUILD +++ b/docker/alpine/libyang/APKBUILD @@ -1,7 +1,7 @@ # Contributor: Sören Tempel # Maintainer: Christian Franke pkgname=libyang -pkgver=2.1.80 +pkgver=2.1.128 pkgrel=0 pkgdesc="YANG data modelling language parser and toolkit" url="https://github.com/CESNET/libyang" diff --git a/docker/ubi8-minimal/Dockerfile b/docker/ubi8-minimal/Dockerfile index 53f8d25..14a5cdd 100644 --- a/docker/ubi8-minimal/Dockerfile +++ b/docker/ubi8-minimal/Dockerfile @@ -10,6 +10,7 @@ ADD docker/ubi8-minimal/almalinux.repo /etc/yum.repos.d/almalinux.repo # and later reinstall it again: https://bugzilla.redhat.com/show_bug.cgi?id=1668185 RUN rpm --quiet -e --nodeps tzdata >/dev/null 2>&1 +# Keep the list of dependencies alphabetically sorted for easier maintenance RUN microdnf --disableplugin=subscription-manager --setopt=install_weak_deps=0 install \ autoconf \ automake \ @@ -29,6 +30,7 @@ RUN microdnf --disableplugin=subscription-manager --setopt=install_weak_deps=0 i pcre-devel \ pkgconfig \ platform-python-devel \ + protobuf-c-devel \ python3-devel \ python3-pytest \ python3-sphinx \ @@ -37,7 +39,6 @@ RUN microdnf --disableplugin=subscription-manager --setopt=install_weak_deps=0 i systemd-devel \ texinfo \ tzdata \ - protobuf-c-devel \ && microdnf --disableplugin=subscription-manager clean all RUN curl -sSL -o /tmp/libyang2.rpm https://ci1.netdef.org/artifact/LIBYANG-LIBYANG2/shared/build-181/RedHat-8-x86_64-Packages/libyang-2.1.80-1.el8.x86_64.rpm \ @@ -92,12 +93,14 @@ ADD docker/ubi8-minimal/almalinux.repo /etc/yum.repos.d/almalinux.repo RUN rpm --import https://repo.almalinux.org/almalinux/RPM-GPG-KEY-AlmaLinux-8 +# Keep the list of dependencies alphabetically sorted for easier maintenance RUN microdnf --disableplugin=subscription-manager --setopt=install_weak_deps=0 install \ c-ares \ initscripts \ net-snmp-agent-libs \ net-snmp-libs \ openssl \ + protobuf-c \ python3 \ shadow-utils \ systemd \ diff --git a/docker/ubuntu-ci/Dockerfile b/docker/ubuntu-ci/Dockerfile index 939a43e..5a49806 100644 --- a/docker/ubuntu-ci/Dockerfile +++ b/docker/ubuntu-ci/Dockerfile @@ -41,17 +41,24 @@ RUN apt update && apt upgrade -y && \ cmake \ libpcre2-dev \ && \ + # GRPC extra build requirements + apt-get install -y \ + libgrpc-dev \ + libgrpc++-dev \ + protobuf-compiler-grpc \ + && \ # Runtime/triage/testing requirements apt-get install -y \ curl \ gdb \ + kmod \ iproute2 \ iputils-ping \ liblua5.3-dev \ libssl-dev \ lua5.3 \ net-tools \ - python2 \ + python3 \ python3-pip \ snmp \ snmp-mibs-downloader \ @@ -66,17 +73,12 @@ RUN apt update && apt upgrade -y && \ wget https://raw.githubusercontent.com/FRRouting/frr-mibs/main/iana/IANA-IPPM-METRICS-REGISTRY-MIB -O /usr/share/snmp/mibs/iana/IANA-IPPM-METRICS-REGISTRY-MIB && \ wget https://raw.githubusercontent.com/FRRouting/frr-mibs/main/ietf/SNMPv2-PDU -O /usr/share/snmp/mibs/ietf/SNMPv2-PDU && \ wget https://raw.githubusercontent.com/FRRouting/frr-mibs/main/ietf/IPATM-IPMC-MIB -O /usr/share/snmp/mibs/ietf/IPATM-IPMC-MIB && \ - curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output /tmp/get-pip.py && \ - python2 /tmp/get-pip.py && \ - rm -f /tmp/get-pip.py && \ python3 -m pip install wheel && \ - python3 -m pip install pytest && \ - python3 -m pip install pytest-sugar && \ - python3 -m pip install pytest-xdist && \ - python3 -m pip install "scapy>=2.4.2" && \ + python3 -m pip install 'protobuf<4' grpcio grpcio-tools && \ + python3 -m pip install 'pytest>=6.2.4' 'pytest-xdist>=2.3.0' && \ + python3 -m pip install 'scapy>=2.4.5' && \ python3 -m pip install xmltodict && \ - python3 -m pip install grpcio grpcio-tools && \ - python2 -m pip install 'exabgp<4.0.0' + python3 -m pip install git+https://github.com/Exa-Networks/exabgp@0659057837cd6c6351579e9f0fa47e9fb7de7311 RUN groupadd -r -g 92 frr && \ groupadd -r -g 85 frrvty && \ @@ -93,7 +95,7 @@ USER frr:frr RUN cd && pwd && ls -al && \ git clone https://github.com/CESNET/libyang.git && \ cd libyang && \ - git checkout v2.1.80 && \ + git checkout v2.1.128 && \ mkdir build; cd build && \ cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr \ -DCMAKE_BUILD_TYPE:String="Release" .. && \ @@ -106,14 +108,15 @@ RUN cd ~/frr && \ ./bootstrap.sh && \ ./configure \ --prefix=/usr \ - --localstatedir=/var/run/frr \ + --sysconfdir=/etc \ + --localstatedir=/var \ --sbindir=/usr/lib/frr \ - --sysconfdir=/etc/frr \ --enable-sharpd \ --enable-multipath=64 \ --enable-user=frr \ --enable-group=frr \ --enable-config-rollbacks \ + --enable-grpc \ --enable-vty-group=frrvty \ --enable-snmp=agentx \ --enable-scripting \ diff --git a/docker/ubuntu20-ci/README.md b/docker/ubuntu20-ci/README.md index 536f8e2..6c0ff44 100644 --- a/docker/ubuntu20-ci/README.md +++ b/docker/ubuntu20-ci/README.md @@ -11,13 +11,13 @@ docker build -t frr-ubuntu20:latest --build-arg=UBUNTU_VERSION=20.04 -f docker/u # Running Full Topotest ``` -docker run --init -it --privileged --name frr -v /lib/modules:/lib/modules frr-ubuntu22:latest bash -c 'cd ~/frr/tests/topotests ; sudo pytest -nauto --dist=loadfile' +docker run --init -it --privileged --name frr-ubuntu20 -v /lib/modules:/lib/modules frr-ubuntu20:latest bash -c 'cd ~/frr/tests/topotests ; sudo pytest -nauto --dist=loadfile' ``` # Extract results from the above run into `run-results` dir and analyze ``` -tests/topotest/analyze.py -C frr -Ar run-results +tests/topotests/analyze.py -C frr-ubuntu20 -Ar run-results ``` # Running @@ -41,13 +41,13 @@ docker exec -it frr-ubuntu20 bash # topotest -- when Host O/S is Ubuntu only ``` -docker exec frr-ubuntu20 bash -c 'cd ~/frr/tests/topotests/ospf-topo1 ; sudo pytest test_ospf_topo1.py' +docker exec frr-ubuntu20 bash -c 'cd ~/frr/tests/topotests/ospf_topo1 ; sudo pytest test_ospf_topo1.py' ``` # stop & remove container ``` -docker stop frr-ubuntu20 ; docker rm frr-ubuntu18 +docker stop frr-ubuntu20 ; docker rm frr-ubuntu20 ``` # remove image diff --git a/docker/ubuntu22-ci/README.md b/docker/ubuntu22-ci/README.md index 403abbf..73f4a10 100644 --- a/docker/ubuntu22-ci/README.md +++ b/docker/ubuntu22-ci/README.md @@ -11,43 +11,43 @@ docker build -t frr-ubuntu22:latest -f docker/ubuntu-ci/Dockerfile . # Running Full Topotest ``` -docker run --init -it --privileged --name frr -v /lib/modules:/lib/modules frr-ubuntu22:latest bash -c 'cd ~/frr/tests/topotests ; sudo pytest -nauto --dist=loadfile' +docker run --init -it --privileged --name frr-ubuntu22 -v /lib/modules:/lib/modules frr-ubuntu22:latest bash -c 'cd ~/frr/tests/topotests ; sudo pytest -nauto --dist=loadfile' ``` # Extract results from the above run into `run-results` dir and analyze ``` -tests/topotest/analyze.py -C frr -Ar run-results +tests/topotests/analyze.py -C frr-ubuntu22 -Ar run-results ``` # Running ``` -docker run -d --init --privileged --name frr --mount type=bind,source=/lib/modules,target=/lib/modules frr-ubuntu22:latest +docker run -d --init --privileged --name frr-ubuntu22 --mount type=bind,source=/lib/modules,target=/lib/modules frr-ubuntu22:latest ``` # make check ``` -docker exec frr bash -c 'cd ~/frr ; make check' +docker exec frr-ubuntu22 bash -c 'cd ~/frr ; make check' ``` # interactive bash ``` -docker exec -it frr bash +docker exec -it frr-ubuntu22 bash ``` # topotest -- when Host O/S is Ubuntu only ``` -docker exec frr bash -c 'cd ~/frr/tests/topotests/ospf-topo1 ; sudo pytest test_ospf_topo1.py' +docker exec frr-ubuntu22 bash -c 'cd ~/frr/tests/topotests/ospf_topo1 ; sudo pytest test_ospf_topo1.py' ``` # stop & remove container ``` -docker stop frr ; docker rm frr +docker stop frr-ubuntu22 ; docker rm frr-ubuntu22 ``` # remove image -- cgit v1.2.3