Add bond-cni container network plugin
This commit adds the bonding CNI plugin to StarlingX. The bonding CNI plugin allows a container to bond multiple interfaces together to be used in a fail-over or load balancing configuration. https://github.com/k8snetworkplumbingwg/bond-cni Note that this plugin (for now) resides outside of the main containernetwork project, and is still part of the k8s network plumbing working group project. As such, it is required to build this plugin separately. v1.0 of the bond-cni was released in 2018. Since then, 14 commits containing such things as doc clean-ups and bug fixes have been committed. We pick up these additional fixes by clamping down on the latest commit SHA. Testing: - Configure bond interface name (ifName) - Configure miimon value (miimon) - Configure and verify traffic path for modes (mode): - balance-rr (0) - active-backup (1) - balance-xor (2) - broadcast (3) - 802.3ad (4) - balance-tlb (5) - balance-alb (6) - Configure and verify behaviour for fail-over-mac modes (failOverMac): - none (0) - active (1) - follow (2) - Configure linksInContainer: - take lower interfaces existing on host - take lower interfaces existing on container - Links tested: - virtual interfaces - SR-IOV VF interfaces Story: 2009800 Task: 44344 Change-Id: I7bffaa272ffe9eba85c3aa0a26b9c4f61428b640 Signed-off-by: Steven Webster <steven.webster@windriver.com>
This commit is contained in:
parent
8b536d2757
commit
d900a5b646
@ -175,6 +175,7 @@ containerd
|
|||||||
k8s-pod-recovery
|
k8s-pod-recovery
|
||||||
k8s-cni-cache-cleanup
|
k8s-cni-cache-cleanup
|
||||||
containernetworking-plugins
|
containernetworking-plugins
|
||||||
|
bond-cni
|
||||||
|
|
||||||
# resource-agents
|
# resource-agents
|
||||||
resource-agents
|
resource-agents
|
||||||
|
@ -54,6 +54,7 @@ security/tboot
|
|||||||
docker/python-docker
|
docker/python-docker
|
||||||
kubernetes/containerd
|
kubernetes/containerd
|
||||||
kubernetes/cni/plugins
|
kubernetes/cni/plugins
|
||||||
|
kubernetes/cni/bond-cni
|
||||||
kubernetes/kubernetes-1.18.1
|
kubernetes/kubernetes-1.18.1
|
||||||
kubernetes/kubernetes-1.19.13
|
kubernetes/kubernetes-1.19.13
|
||||||
kubernetes/kubernetes-1.20.9
|
kubernetes/kubernetes-1.20.9
|
||||||
|
@ -90,3 +90,4 @@ inih-b1dbff4b0bd1e1f40d237e21011f6dee0ec2fa69.tar.gz#inih-44#https://github.com/
|
|||||||
pf-bb-config-d7d5f1ddd17b4c80e3e0d6ce87660926f58f8585.tar.gz#pf-bb-config-21.6#https://github.com/intel/pf-bb-config/tarball/d7d5f1ddd17b4c80e3e0d6ce87660926f58f8585#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.8.1.tar.gz#gpu-operator-1.8.1#https://github.com/NVIDIA/gpu-operator/archive/v1.8.1.tar.gz##https##
|
gpu-operator-1.8.1.tar.gz#gpu-operator-1.8.1#https://github.com/NVIDIA/gpu-operator/archive/v1.8.1.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##
|
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##
|
||||||
|
bond-cni-bff6422d7089d988dc1548e6abe0543601f6e1c7.tar.gz#bond-cni-bff6422d7089d988dc1548e6abe0543601f6e1c7#https://api.github.com/repos/k8snetworkplumbingwg/bond-cni/tarball/bff6422d7089d988dc1548e6abe0543601f6e1c7#https##
|
||||||
|
73
kubernetes/cni/bond-cni/centos/bond-cni.spec
Normal file
73
kubernetes/cni/bond-cni/centos/bond-cni.spec
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
# Copyright (c) 2020 Wind River Systems, Inc.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Use the same build parameters as the other CNI plugins from containernetworking-plugins
|
||||||
|
%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 k8snetworkplumbingwg
|
||||||
|
%global repo bond-cni
|
||||||
|
# https://github.com/k8snetworkplumbingwg/bond-cni
|
||||||
|
%global provider_prefix %{provider}.%{provider_tld}/%{project}/%{repo}
|
||||||
|
%global import_path %{provider_prefix}
|
||||||
|
%global commit bff6422d7089d988dc1548e6abe0543601f6e1c7
|
||||||
|
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||||
|
|
||||||
|
Name: bond-cni
|
||||||
|
Version: 1.0
|
||||||
|
Release: %{shortcommit}%{?_tis_dist}.%{tis_patch_ver}
|
||||||
|
Summary: Bond CNI network plugin
|
||||||
|
License: ASL 2.0
|
||||||
|
URL: https://%{provider_prefix}
|
||||||
|
|
||||||
|
Source0: %{repo}-%{commit}.tar.gz
|
||||||
|
ExclusiveArch: aarch64 %{arm} ppc64le s390x x86_64 %{ix86}
|
||||||
|
|
||||||
|
BuildRequires: %{?go_compiler:compiler(go-compiler)}%{!?go_compiler:golang >= 1.13}
|
||||||
|
Provides: bond-cni = %{version}-%{release}
|
||||||
|
|
||||||
|
%description
|
||||||
|
The Bond-CNI concerns itself only with providing network connectivity via
|
||||||
|
bonding of containers and removing any allocated resources when the container
|
||||||
|
is deleted.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -n %{repo}-%{commit}
|
||||||
|
|
||||||
|
%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 bond-cni plugin"
|
||||||
|
|
||||||
|
%gobuild -o "${PWD}/bin/bond" "${PWD}/bond/"
|
||||||
|
|
||||||
|
%install
|
||||||
|
install -d -p %{buildroot}%{_libexecdir}/cni/
|
||||||
|
install -p -m 0755 bin/* %{buildroot}/%{_libexecdir}/cni
|
||||||
|
|
||||||
|
#define license tag if not already defined
|
||||||
|
%{!?_licensedir:%global license %doc}
|
||||||
|
|
||||||
|
%files
|
||||||
|
%license LICENSE
|
||||||
|
%doc *.md
|
||||||
|
%dir %{_libexecdir}/cni
|
||||||
|
%{_libexecdir}/cni/*
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Fri Jan 21 2022 Steven Webster <steven.webster@windriver.com>
|
||||||
|
- Initial package, based on v1.0 + 14 additional commits.
|
7
kubernetes/cni/bond-cni/centos/build_srpm.data
Normal file
7
kubernetes/cni/bond-cni/centos/build_srpm.data
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
VERSION=bff6422d7089d988dc1548e6abe0543601f6e1c7
|
||||||
|
TAR_NAME=bond-cni
|
||||||
|
TAR="${TAR_NAME}-${VERSION}.tar.gz"
|
||||||
|
|
||||||
|
COPY_LIST="${CGCS_BASE}/downloads/${TAR}"
|
||||||
|
|
||||||
|
TIS_PATCH_VER=PKG_GITREVCOUNT
|
Loading…
Reference in New Issue
Block a user