Init Kmesh v0.4.1

(cherry picked from commit e5a37b418c2f70e84360cc013f7091cfbb40f534)
This commit is contained in:
weli-l 2024-07-11 17:00:41 +08:00 committed by openeuler-sync-bot
parent a08b5532a0
commit a6f8a3e899
5 changed files with 1144 additions and 31 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,14 +1,15 @@
%global codepath kmesh
Name: Kmesh
Version: 0.3.0
Release: 3
Version: 0.4.1
Release: 1
Summary: %{name} is a eBPF-based service mesh kernel solution
License: ASL 2.0 and GPL-2.0
URL: https://gitee.com/openeuler/%{name}
Source0: https://gitee.com/openeuler/%{name}/archive/refs/tags/%{version}.tar.gz
URL: https://github.com/kmesh-net
Source0: https://github.com/kmesh-net/kmesh/archive/refs/tags/v%{version}.tar.gz
BuildRequires: cmake make pkgconf dracut
BuildRequires: protobuf protobuf-c protobuf-c-devel
BuildRequires: golang >= 1.16
BuildRequires: golang >= 1.21.4
BuildRequires: clang >= 10.0.1 llvm >= 10.0.1
BuildRequires: libbpf-devel kernel-devel >= 5.10
BuildRequires: libboundscheck
@ -18,54 +19,67 @@ Requires: bpftool
Requires: libbpf
Requires: libboundscheck
Patch0001: Downgrade-go-version-to-v1.21.4.patch
Patch0002: Remove-useless-tag-in-Makefile.patch
Patch0003: Support-uid-gid.patch
%description
%{name} is a eBPF-based service mesh kernel solution.
ExclusiveArch: x86_64
ExclusiveArch: x86_64 aarch64
%prep
%autosetup -n %{name}-%{version} -p1
%autosetup -n %{codepath}-%{version} -p1
%build
cd %{_builddir}/%{name}-%{version}
cd %{_builddir}/%{codepath}-%{version}
export GOPROXY=https://repo.huaweicloud.com/repository/goproxy/
export GONOSUMDB=*
export GO111MODULE=on
go mod tidy
./build.sh -b
%install
mkdir -p %{buildroot}%{_bindir}
install %{_builddir}/%{name}-%{version}/kmesh-daemon %{buildroot}%{_bindir}
install %{_builddir}/%{name}-%{version}/kmesh-cmd %{buildroot}%{_bindir}
install %{_builddir}/%{name}-%{version}/build/kmesh-start-pre.sh %{buildroot}%{_bindir}
install %{_builddir}/%{name}-%{version}/build/kmesh-stop-post.sh %{buildroot}%{_bindir}
install %{_builddir}/%{name}-%{version}/oncn-mda/deploy/mdacore %{buildroot}%{_bindir}
install %{_builddir}/%{codepath}-%{version}/kmesh-daemon %{buildroot}%{_bindir}
install %{_builddir}/%{codepath}-%{version}/kmesh-cni %{buildroot}%{_bindir}
install %{_builddir}/%{codepath}-%{version}/build/kmesh-start-pre.sh %{buildroot}%{_bindir}
install %{_builddir}/%{codepath}-%{version}/build/kmesh-stop-post.sh %{buildroot}%{_bindir}
install %{_builddir}/%{codepath}-%{version}/oncn-mda/deploy/mdacore %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{_datarootdir}/oncn-mda
install %{_builddir}/%{name}-%{version}/oncn-mda/build/ebpf_src/CMakeFiles/sock_ops.dir/sock_ops.c.o %{buildroot}%{_datarootdir}/oncn-mda
install %{_builddir}/%{name}-%{version}/oncn-mda/build/ebpf_src/CMakeFiles/sock_redirect.dir/sock_redirect.c.o %{buildroot}%{_datarootdir}/oncn-mda
install %{_builddir}/%{codepath}-%{version}/oncn-mda/build/ebpf_src/CMakeFiles/sock_ops.dir/sock_ops.c.o %{buildroot}%{_datarootdir}/oncn-mda
install %{_builddir}/%{codepath}-%{version}/oncn-mda/build/ebpf_src/CMakeFiles/sock_redirect.dir/sock_redirect.c.o %{buildroot}%{_datarootdir}/oncn-mda
mkdir -p %{buildroot}/kmesh
install %{_builddir}/%{codepath}-%{version}/build/docker/start_kmesh.sh %{buildroot}/kmesh
mkdir -p %{buildroot}/usr/lib64
install %{_builddir}/%{name}-%{version}/bpf/deserialization_to_bpf_map/libkmesh_deserial.so %{buildroot}/usr/lib64
install %{_builddir}/%{name}-%{version}/api/v2-c/libkmesh_api_v2_c.so %{buildroot}/usr/lib64
install %{_builddir}/%{codepath}-%{version}/bpf/deserialization_to_bpf_map/libkmesh_deserial.so %{buildroot}/usr/lib64
install %{_builddir}/%{codepath}-%{version}/api/v2-c/libkmesh_api_v2_c.so %{buildroot}/usr/lib64
mkdir -p %{buildroot}/lib/modules/kmesh
install %{_builddir}/%{name}-%{version}/kernel/ko/kmesh.ko %{buildroot}/lib/modules/kmesh
if [ -f "%{_builddir}/%{codepath}-%{version}/kernel/ko/kmesh.ko" ]; then
install %{_builddir}/%{codepath}-%{version}/kernel/ko/kmesh.ko %{buildroot}/lib/modules/kmesh
fi
mkdir -p %{buildroot}/%{_sysconfdir}/kmesh
install %{_builddir}/%{name}-%{version}/config/kmesh.json %{buildroot}/%{_sysconfdir}/kmesh
mkdir -p %{buildroot}/%{_sysconfdir}/oncn-mda
install %{_builddir}/%{name}-%{version}/oncn-mda/etc/oncn-mda.conf %{buildroot}/%{_sysconfdir}/oncn-mda/
install %{_builddir}/%{codepath}-%{version}/oncn-mda/etc/oncn-mda.conf %{buildroot}/%{_sysconfdir}/oncn-mda/
mkdir -p %{buildroot}/usr/lib/systemd/system
install %{_builddir}/%{name}-%{version}/build/kmesh.service %{buildroot}/usr/lib/systemd/system
install %{_builddir}/%{codepath}-%{version}/build/kmesh.service %{buildroot}/usr/lib/systemd/system
%check
cd %{_builddir}/%{name}-%{version}
cd %{_builddir}/%{codepath}-%{version}
#make
#make test
%post
echo "installing ..."
ln -sf /lib/modules/kmesh/kmesh.ko /lib/modules/`uname -r`
depmod -a
if [ -f "/lib/modules/kmesh/kmesh.ko" ]; then
ln -sf /lib/modules/kmesh/kmesh.ko /lib/modules/`uname -r`
depmod -a
fi
%preun
if [ "$1" == "1" ]; then
@ -89,7 +103,7 @@ rm -rf %{buildroot}
%files
%defattr(-,root,root)
%attr(0500,root,root) %{_bindir}/kmesh-daemon
%attr(0500,root,root) %{_bindir}/kmesh-cmd
%attr(0500,root,root) %{_bindir}/kmesh-cni
%attr(0500,root,root) %{_bindir}/mdacore
%attr(0500,root,root) /usr/lib64/libkmesh_deserial.so
@ -99,18 +113,17 @@ rm -rf %{buildroot}
%attr(0500,root,root) /usr/share/oncn-mda/sock_ops.c.o
%attr(0500,root,root) /usr/share/oncn-mda/sock_redirect.c.o
%attr(0500,root,root) %dir /lib/modules/kmesh
%attr(0400,root,root) /lib/modules/kmesh/kmesh.ko
%attr(0700,root,root) %dir %{_sysconfdir}/kmesh
%attr(0700,root,root) %dir %{_sysconfdir}/oncn-mda
%config(noreplace) %attr(0600,root,root) %{_sysconfdir}/kmesh/kmesh.json
%config(noreplace) %attr(0600,root,root) %{_sysconfdir}/oncn-mda/oncn-mda.conf
%config(noreplace) %attr(0600,root,root) /usr/lib/systemd/system/kmesh.service
%attr(0500,root,root) /usr/bin/kmesh-start-pre.sh
%attr(0500,root,root) /usr/bin/kmesh-stop-post.sh
%attr(0500,root,root) /kmesh/start_kmesh.sh
%changelog
* Mon Sep 02 2024 weli-l<1289113577@qq.com> - 0.4.1-1
- init Kmesh 0.4.1
* Fri Aug 18 2023 JofDiamonds <kwb0523@163.com> - 0.3.0-3
- update spec
@ -119,3 +132,4 @@ rm -rf %{buildroot}
* Mon Jul 31 2023 JofDiamonds <kwb0523@163.com> - 0.3.0-1
- init package

View File

@ -0,0 +1,31 @@
From d568d16d96230eedc20d3c75da75e41788f8728b Mon Sep 17 00:00:00 2001
From: weli-l <1289113577@qq.com>
Date: Thu, 11 Jul 2024 14:40:52 +0800
Subject: [PATCH] Remove useless tag in Makefile
---
Makefile | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/Makefile b/Makefile
index 067208b..c65eae9 100644
--- a/Makefile
+++ b/Makefile
@@ -61,10 +61,10 @@ ifeq ($(TARGET),)
endif
# If tag not explicitly set, default to the git sha.
-TAG ?= $(shell git rev-parse --verify HEAD)
-ifeq ($(TAG),)
- $(error "TAG cannot be empty")
-endif
+#TAG ?= $(shell git rev-parse --verify HEAD)
+#ifeq ($(TAG),)
+# $(error "TAG cannot be empty")
+#endif
TMP_FILES := bpf/kmesh/bpf2go/bpf2go.go \
config/kmesh_marcos_def.h \
--
2.34.1

41
Support-uid-gid.patch Normal file
View File

@ -0,0 +1,41 @@
From fe50047ddfc1f1ff775f62b7b8aa9f5fcf396c40 Mon Sep 17 00:00:00 2001
From: weli-l <1289113577@qq.com>
Date: Thu, 18 Jul 2024 10:32:36 +0800
Subject: [PATCH] fix oncn-mda donot support uid in oe24.03
Signed-off-by: weli-l <1289113577@qq.com>
---
kmesh_macros_env.sh | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/kmesh_macros_env.sh b/kmesh_macros_env.sh
index 3b1bfab..01a6934 100644
--- a/kmesh_macros_env.sh
+++ b/kmesh_macros_env.sh
@@ -15,17 +15,17 @@ else
fi
# MDA_NAT_ACCEL
-if grep -q "FN(sk_original_addr)" $KERNEL_HEADER_LINUX_BPF; then
- set_config MDA_NAT_ACCEL 1
+if [[ "$KERNEL_VERSION" < "6.6.0" ]]; then
+ set_config MDA_NAT_ACCEL 0
else
- set_config MDA_NAT_ACCEL 0
+ set_config MDA_NAT_ACCEL 1
fi
# MDA_GID_UID_FILTER
-if grep -q "FN(get_sockops_uid_gid)" $KERNEL_HEADER_LINUX_BPF; then
- set_config MDA_GID_UID_FILTER 1
+if [[ "$KERNEL_VERSION" < "6.6.0" ]]; then
+ set_config MDA_NAT_ACCEL 0
else
- set_config MDA_GID_UID_FILTER 0
+ set_config MDA_NAT_ACCEL 1
fi
# OE_23_03
--
2.34.1

Binary file not shown.