From a59d1553d56a3868a46ad3ad3dde4c20b427c91f Mon Sep 17 00:00:00 2001 From: Steven Webster Date: Fri, 13 Aug 2021 11:16:31 -0400 Subject: [PATCH] uprev the containernetwork-plugins This commit upgrades the containernetwork plugins to version 0.9.1 As there is no existing upstream package for this version for StarlingX, it is being built based on the downloaded source and centos7 spec file. Note: previous commit 303ed35 was reverted because of an issue with the centos_tarball-dl.lst and the autosetup command of the spec file. The second parameter of the centos_tarball-dl.lst specifies the top level directory name of the package. If the dl_tarball script detects that this TLD differs from that of the downloaded tarball, the TLD is changed to that of the 2nd parameter. In this case, the TLD of the downloaded package was 'plugins-0.9.1', while the centos_tarball-dl.lst had specified 'containernetworking-plugins-v0.9.1'. The two options to fix this incompatibility are to either change the TLD in the centos_tarball-dl.lst to match the downloaded version, or to modify the .spec file to run the autosetup command against the re-named TLD. This commit chooses the 2nd option, which allows for the package to built against any mirror dl that already has the containernetworking-plugins download present in it. Plugins tested: bridge vlan host-device dhcp host-local static tuning portmap bandwidth Story: 2008972 Task: 42977 Signed-off-by: Steven Webster Change-Id: Ice12cbeacaeadc8beaa22152ca2a6104d31eec8b --- centos_iso_image.inc | 1 + centos_pkg_dirs | 1 + centos_tarball-dl.lst | 1 + kubernetes/cni/plugins/Readme.rst | 5 + kubernetes/cni/plugins/centos/build_srpm.data | 9 + .../centos/containernetworking-plugins.spec | 203 ++++++++++++++++++ .../containernetworking-plugins.spec.orig | 199 +++++++++++++++++ 7 files changed, 419 insertions(+) create mode 100644 kubernetes/cni/plugins/Readme.rst create mode 100644 kubernetes/cni/plugins/centos/build_srpm.data create mode 100644 kubernetes/cni/plugins/centos/containernetworking-plugins.spec create mode 100644 kubernetes/cni/plugins/centos/containernetworking-plugins.spec.orig diff --git a/centos_iso_image.inc b/centos_iso_image.inc index 0613e47af..e2d818560 100644 --- a/centos_iso_image.inc +++ b/centos_iso_image.inc @@ -162,6 +162,7 @@ kubernetes-kubeadm kubernetes-client containerd k8s-pod-recovery +containernetworking-plugins # resource-agents resource-agents diff --git a/centos_pkg_dirs b/centos_pkg_dirs index 1d4db4df6..571a94c05 100644 --- a/centos_pkg_dirs +++ b/centos_pkg_dirs @@ -53,6 +53,7 @@ storage-drivers/trident-installer security/tboot docker/python-docker kubernetes/containerd +kubernetes/cni/plugins kubernetes/kubernetes kubernetes/docker-distribution kubernetes/etcd diff --git a/centos_tarball-dl.lst b/centos_tarball-dl.lst index 321a135bb..843b5d51b 100644 --- a/centos_tarball-dl.lst +++ b/centos_tarball-dl.lst @@ -72,3 +72,4 @@ zstd-f4340f46b2387bc8de7d5320c0b83bb1499933ad.tar.gz#zstd#https://api.github.com inih-b1dbff4b0bd1e1f40d237e21011f6dee0ec2fa69.tar.gz#inih-44#https://github.com/benhoyt/inih/tarball/b1dbff4b0bd1e1f40d237e21011f6dee0ec2fa69#https## pf-bb-config-d7d5f1ddd17b4c80e3e0d6ce87660926f58f8585.tar.gz#pf-bb-config-21.6#https://github.com/intel/pf-bb-config/tarball/d7d5f1ddd17b4c80e3e0d6ce87660926f58f8585#https## gpu-operator-1.6.0.tar.gz#gpu-operator-1.6.0#https://github.com/NVIDIA/gpu-operator/archive/1.6.0.tar.gz##https## +containernetworking-plugins-v0.9.1.tar.gz#containernetworking-plugins-v0.9.1#https://github.com/containernetworking/plugins/archive/refs/tags/v0.9.1.tar.gz#https## diff --git a/kubernetes/cni/plugins/Readme.rst b/kubernetes/cni/plugins/Readme.rst new file mode 100644 index 000000000..0d17982dc --- /dev/null +++ b/kubernetes/cni/plugins/Readme.rst @@ -0,0 +1,5 @@ +The spec file used here was from the Centos 7 src rpm for +containernetworking-plugins. +The orig file is included to help show modifications made to that +spec file, to help understand which changes were needed and to +assist with future upversioning. \ No newline at end of file diff --git a/kubernetes/cni/plugins/centos/build_srpm.data b/kubernetes/cni/plugins/centos/build_srpm.data new file mode 100644 index 000000000..59cd9e0fa --- /dev/null +++ b/kubernetes/cni/plugins/centos/build_srpm.data @@ -0,0 +1,9 @@ +VERSION=0.9.1 +CON_VERSION=0.9.1 +TAR_NAME=containernetworking-plugins +TAR="$TAR_NAME-v$VERSION.tar.gz" +#CONTRIB="$TAR_NAME-contrib-v$CON_VERSION.tar.gz" + +COPY_LIST="${CGCS_BASE}/downloads/$TAR" + +TIS_PATCH_VER=PKG_GITREVCOUNT \ No newline at end of file diff --git a/kubernetes/cni/plugins/centos/containernetworking-plugins.spec b/kubernetes/cni/plugins/centos/containernetworking-plugins.spec new file mode 100644 index 000000000..6e63c4fd6 --- /dev/null +++ b/kubernetes/cni/plugins/centos/containernetworking-plugins.spec @@ -0,0 +1,203 @@ +%global with_debug 1 +%global with_check 0 + +%if 0%{?with_debug} +%global _dwz_low_mem_die_limit 0 +%else +%global debug_package %{nil} +%endif + +%if ! 0%{?gobuild:1} +%define gobuild(o:) go build -buildmode pie -compiler gc -tags="rpm_crashtraceback ${BUILDTAGS:-}" -ldflags "${LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \\n') -extldflags '-Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld '" -a -v -x %{?**}; +%endif + +%global provider github +%global provider_tld com +%global project containernetworking +%global repo plugins +# https://github.com/containernetworking/plugins +%global provider_prefix %{provider}.%{provider_tld}/%{project}/%{repo} +%global import_path %{provider_prefix} +%global commit fe60fcddb897079746ec1523fd1837ab05b1e689 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + +Name: containernetworking-plugins +Version: 0.9.1 +Release: 1%{?_tis_dist}.%{tis_patch_ver} +Summary: CNI network plugins +License: ASL 2.0 +URL: https://%{provider_prefix} + +Source0: %{project}-%{repo}-v%{version}.tar.gz +ExclusiveArch: aarch64 %{arm} ppc64le s390x x86_64 %{ix86} + +%if 0%{?fedora} +BuildRequires: %{?go_compiler:compiler(go-compiler)}%{!?go_compiler:golang} +%else +#BuildRequires: go-toolset-1.10 +BuildRequires: %{?go_compiler:compiler(go-compiler)}%{!?go_compiler:golang} +BuildRequires: openssl-devel +%endif #fedora + +Provides: containernetworking-cni = %{version}-%{release} + +%description +The CNI (Container Network Interface) project consists of a specification +and libraries for writing plugins to configure network interfaces in Linux +containers, along with a number of supported plugins. CNI concerns itself +only with network connectivity of containers and removing allocated resources +when the container is deleted. + +%{?enable_gotoolset110} + +%prep +%autosetup -n %{project}-%{repo}-v%{version} +rm -rf plugins/main/windows + +%build +export ORG_PATH="%{provider}.%{provider_tld}/%{project}" +export REPO_PATH="$ORG_PATH/%{repo}" + +if [ ! -h gopath/src/${REPO_PATH} ]; then + mkdir -p gopath/src/${ORG_PATH} + ln -s ../../../.. gopath/src/${REPO_PATH} || exit 255 +fi + +export GOPATH=$(pwd)/gopath +mkdir -p $(pwd)/bin + +echo "Building plugins" +export PLUGINS="plugins/meta/* plugins/main/* plugins/ipam/* plugins/sample" +for d in $PLUGINS; do + if [ -d "$d" ]; then + plugin="$(basename "$d")" + echo " $plugin" + %gobuild -o "${PWD}/bin/$plugin" "$@" "$REPO_PATH"/$d + fi +done + +%install +install -d -p %{buildroot}%{_libexecdir}/cni/ +install -p -m 0755 bin/* %{buildroot}/%{_libexecdir}/cni + +%check +%if 0%{?with_check} + +%if ! 0%{?gotest:1} +%global gotest go test +%endif + +%gotest %{import_path}/libcni +%gotest %{import_path}/pkg/invoke +%gotest %{import_path}/pkg/ip +%gotest %{import_path}/pkg/ipam +%gotest %{import_path}/pkg/ns +%gotest %{import_path}/pkg/skel +%gotest %{import_path}/pkg/types +%gotest %{import_path}/pkg/types/020 +%gotest %{import_path}/pkg/types/current +%gotest %{import_path}/pkg/utils +%gotest %{import_path}/pkg/utils/hwaddr +%gotest %{import_path}/pkg/version +%gotest %{import_path}/pkg/version/legacy_examples +%gotest %{import_path}/pkg/version/testhelpers +%gotest %{import_path}/plugins/ipam/dhcp +%gotest %{import_path}/plugins/ipam/host-local +%gotest %{import_path}/plugins/ipam/host-local/backend/allocator +%gotest %{import_path}/plugins/main/bridge +%gotest %{import_path}/plugins/main/ipvlan +%gotest %{import_path}/plugins/main/loopback +%gotest %{import_path}/plugins/main/macvlan +%gotest %{import_path}/plugins/main/ptp +%gotest %{import_path}/plugins/meta/flannel +%gotest %{import_path}/plugins/test/noop +%endif + +#define license tag if not already defined +%{!?_licensedir:%global license %doc} + +%files +%license LICENSE +%doc *.md +%dir %{_libexecdir}/cni +%{_libexecdir}/cni/* + +%changelog +* Sun Aug 08 2021 Steven Webster +- Support for compilation on StarlingX + +* Fri Jun 07 2019 Lokesh Mandvekar - 0.8.1-1 +- Resolves: #1717915 - bump to v0.8.1 + +* Tue May 14 2019 Lokesh Mandvekar - 0.8.0-1 +- Resolves: #1709630 - rebase to v0.8.0 + +* Wed Mar 27 2019 Frantisek Kluknavsky - 0.7.5-2 +- rebase + +* Mon Jan 07 2019 Lokesh Mandvekar - 0.7.4-1 +- Resolves: #1664009 - bump to v0.7.4 +- remove unused devel and unit-test* packages +- update go build env + +* Wed Nov 21 2018 Frantisek Kluknavsky - 0.7.3-3 +- buildrequires for centos + +* Wed Oct 03 2018 Frantisek Kluknavsky - 0.7.3-2 +- rebase + +* Wed Oct 03 2018 Frantisek Kluknavsky - 0.7.1-2 +- scl go toolset + +* Mon Jul 23 2018 Frantisek Kluknavsky - 0.7.1-1 +- rebase + +* Thu May 10 2018 Frantisek Kluknavsky - 0.7.0-101 +- rebase +- patches already upstream, removed + +* Thu Apr 26 2018 Frantisek Kluknavsky - 0.6.0-6 +- Imported from Fedora +- Renamed CNI -> plugins + +* Mon Apr 2 2018 Peter Robinson 0.6.0-4 +- Own the libexec cni directory + +* Wed Feb 07 2018 Fedora Release Engineering - 0.6.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Tue Jan 23 2018 Dan Williams - 0.6.0-2 +- skip settling IPv4 addresses + +* Mon Jan 08 2018 Frantisek Kluknavsky - 0.6.0-1 +- rebased to 7480240de9749f9a0a5c8614b17f1f03e0c06ab9 + +* Fri Oct 13 2017 Lokesh Mandvekar - 0.5.2-7 +- do not install to /opt (against Fedora Guidelines) + +* Thu Aug 24 2017 Jan Chaloupka - 0.5.2-6 +- Enable devel subpackage + +* Wed Aug 02 2017 Fedora Release Engineering - 0.5.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 0.5.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Thu Jul 13 2017 Lokesh Mandvekar - 0.5.2-3 +- excludearch: ppc64 as it's not in goarches anymore +- re-enable s390x + +* Fri Jun 30 2017 Lokesh Mandvekar - 0.5.2-2 +- upstream moved to github.com/containernetworking/plugins +- built commit dcf7368 +- provides: containernetworking-plugins +- use vendored deps because they're a lot less of a PITA +- excludearch: s390x for now (rhbz#1466865) + +* Mon Jun 12 2017 Timothy St. Clair - 0.5.2-1 +- Update to 0.5.2 +- Softlink to default /opt/cni/bin directories + +* Sun May 07 2017 Timothy St. Clair - 0.5.1-1 +- Initial package diff --git a/kubernetes/cni/plugins/centos/containernetworking-plugins.spec.orig b/kubernetes/cni/plugins/centos/containernetworking-plugins.spec.orig new file mode 100644 index 000000000..860427851 --- /dev/null +++ b/kubernetes/cni/plugins/centos/containernetworking-plugins.spec.orig @@ -0,0 +1,199 @@ +%global with_debug 1 +%global with_check 0 + +%if 0%{?with_debug} +%global _dwz_low_mem_die_limit 0 +%else +%global debug_package %{nil} +%endif + +%if ! 0%{?gobuild:1} +%define gobuild(o:) go build -buildmode pie -compiler gc -tags="rpm_crashtraceback ${BUILDTAGS:-}" -ldflags "${LDFLAGS:-} -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \\n') -extldflags '-Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld '" -a -v -x %{?**}; +%endif + +%global provider github +%global provider_tld com +%global project containernetworking +%global repo plugins +# https://github.com/containernetworking/plugins +%global provider_prefix %{provider}.%{provider_tld}/%{project}/%{repo} +%global import_path %{provider_prefix} +%global commit fe60fcddb897079746ec1523fd1837ab05b1e689 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + +Name: containernetworking-plugins +Version: 0.8.1 +Release: 1%{?dist} +Summary: CNI network plugins +License: ASL 2.0 +URL: https://%{provider_prefix} +Source0: https://%{provider_prefix}/archive/%{commit}/%{repo}-%{shortcommit}.tar.gz +ExclusiveArch: aarch64 %{arm} ppc64le s390x x86_64 %{ix86} + +%if 0%{?fedora} +BuildRequires: %{?go_compiler:compiler(go-compiler)}%{!?go_compiler:golang} +%else +BuildRequires: go-toolset-1.10 +BuildRequires: openssl-devel +%endif #fedora + +Provides: containernetworking-cni = %{version}-%{release} + +%description +The CNI (Container Network Interface) project consists of a specification +and libraries for writing plugins to configure network interfaces in Linux +containers, along with a number of supported plugins. CNI concerns itself +only with network connectivity of containers and removing allocated resources +when the container is deleted. + +%{?enable_gotoolset110} + +%prep +%autosetup -Sgit -n %{repo}-%{commit} +rm -rf plugins/main/windows + +%build +export ORG_PATH="%{provider}.%{provider_tld}/%{project}" +export REPO_PATH="$ORG_PATH/%{repo}" + +if [ ! -h gopath/src/${REPO_PATH} ]; then + mkdir -p gopath/src/${ORG_PATH} + ln -s ../../../.. gopath/src/${REPO_PATH} || exit 255 +fi + +export GOPATH=$(pwd)/gopath +mkdir -p $(pwd)/bin + +echo "Building plugins" +export PLUGINS="plugins/meta/* plugins/main/* plugins/ipam/* plugins/sample" +for d in $PLUGINS; do + if [ -d "$d" ]; then + plugin="$(basename "$d")" + echo " $plugin" + %gobuild -o "${PWD}/bin/$plugin" "$@" "$REPO_PATH"/$d + fi +done + +%install +install -d -p %{buildroot}%{_libexecdir}/cni/ +install -p -m 0755 bin/* %{buildroot}/%{_libexecdir}/cni + +%check +%if 0%{?with_check} + +%if ! 0%{?gotest:1} +%global gotest go test +%endif + +%gotest %{import_path}/libcni +%gotest %{import_path}/pkg/invoke +%gotest %{import_path}/pkg/ip +%gotest %{import_path}/pkg/ipam +%gotest %{import_path}/pkg/ns +%gotest %{import_path}/pkg/skel +%gotest %{import_path}/pkg/types +%gotest %{import_path}/pkg/types/020 +%gotest %{import_path}/pkg/types/current +%gotest %{import_path}/pkg/utils +%gotest %{import_path}/pkg/utils/hwaddr +%gotest %{import_path}/pkg/version +%gotest %{import_path}/pkg/version/legacy_examples +%gotest %{import_path}/pkg/version/testhelpers +%gotest %{import_path}/plugins/ipam/dhcp +%gotest %{import_path}/plugins/ipam/host-local +%gotest %{import_path}/plugins/ipam/host-local/backend/allocator +%gotest %{import_path}/plugins/main/bridge +%gotest %{import_path}/plugins/main/ipvlan +%gotest %{import_path}/plugins/main/loopback +%gotest %{import_path}/plugins/main/macvlan +%gotest %{import_path}/plugins/main/ptp +%gotest %{import_path}/plugins/meta/flannel +%gotest %{import_path}/plugins/test/noop +%endif + +#define license tag if not already defined +%{!?_licensedir:%global license %doc} + +%files +%license LICENSE +%doc *.md +%dir %{_libexecdir}/cni +%{_libexecdir}/cni/* + +%changelog +* Fri Jun 07 2019 Lokesh Mandvekar - 0.8.1-1 +- Resolves: #1717915 - bump to v0.8.1 + +* Tue May 14 2019 Lokesh Mandvekar - 0.8.0-1 +- Resolves: #1709630 - rebase to v0.8.0 + +* Wed Mar 27 2019 Frantisek Kluknavsky - 0.7.5-2 +- rebase + +* Mon Jan 07 2019 Lokesh Mandvekar - 0.7.4-1 +- Resolves: #1664009 - bump to v0.7.4 +- remove unused devel and unit-test* packages +- update go build env + +* Wed Nov 21 2018 Frantisek Kluknavsky - 0.7.3-3 +- buildrequires for centos + +* Wed Oct 03 2018 Frantisek Kluknavsky - 0.7.3-2 +- rebase + +* Wed Oct 03 2018 Frantisek Kluknavsky - 0.7.1-2 +- scl go toolset + +* Mon Jul 23 2018 Frantisek Kluknavsky - 0.7.1-1 +- rebase + +* Thu May 10 2018 Frantisek Kluknavsky - 0.7.0-101 +- rebase +- patches already upstream, removed + +* Thu Apr 26 2018 Frantisek Kluknavsky - 0.6.0-6 +- Imported from Fedora +- Renamed CNI -> plugins + +* Mon Apr 2 2018 Peter Robinson 0.6.0-4 +- Own the libexec cni directory + +* Wed Feb 07 2018 Fedora Release Engineering - 0.6.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Tue Jan 23 2018 Dan Williams - 0.6.0-2 +- skip settling IPv4 addresses + +* Mon Jan 08 2018 Frantisek Kluknavsky - 0.6.0-1 +- rebased to 7480240de9749f9a0a5c8614b17f1f03e0c06ab9 + +* Fri Oct 13 2017 Lokesh Mandvekar - 0.5.2-7 +- do not install to /opt (against Fedora Guidelines) + +* Thu Aug 24 2017 Jan Chaloupka - 0.5.2-6 +- Enable devel subpackage + +* Wed Aug 02 2017 Fedora Release Engineering - 0.5.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 0.5.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Thu Jul 13 2017 Lokesh Mandvekar - 0.5.2-3 +- excludearch: ppc64 as it's not in goarches anymore +- re-enable s390x + +* Fri Jun 30 2017 Lokesh Mandvekar - 0.5.2-2 +- upstream moved to github.com/containernetworking/plugins +- built commit dcf7368 +- provides: containernetworking-plugins +- use vendored deps because they're a lot less of a PITA +- excludearch: s390x for now (rhbz#1466865) + +* Mon Jun 12 2017 Timothy St. Clair - 0.5.2-1 +- Update to 0.5.2 +- Softlink to default /opt/cni/bin directories + +* Sun May 07 2017 Timothy St. Clair - 0.5.1-1 +- Initial package +