diff --git a/.gitignore b/.gitignore index b34ec1b..d7f4a2a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -SOURCES/1.1.0.tar.gz SOURCES/netavark-v1.1.0-vendor.tar.gz +SOURCES/v1.1.0-rhel-e868e02.tar.gz diff --git a/.netavark.metadata b/.netavark.metadata index 6c6f2d7..74d07bc 100644 --- a/.netavark.metadata +++ b/.netavark.metadata @@ -1,2 +1,2 @@ -5f22fd74fc25d71335f8ca5cd5aa74c383d30576 SOURCES/1.1.0.tar.gz -63dcfdcb2b5917a213f89469aa4e643f92230410 SOURCES/netavark-v1.1.0-vendor.tar.gz +715b18551c34835b47e0861a09a2baa8d3aa23dd SOURCES/netavark-v1.1.0-vendor.tar.gz +99af68089204eb3e5ba6fc93722137799454733f SOURCES/v1.1.0-rhel-e868e02.tar.gz diff --git a/SOURCES/netavark.1 b/SOURCES/netavark.1 new file mode 100644 index 0000000..0c505ea --- /dev/null +++ b/SOURCES/netavark.1 @@ -0,0 +1,51 @@ +.nh +.TH netavark(1) +.SH NAME +.PP +netavark - Configure a given network namespace for use by a container + +.SH SYNOPSIS +.PP +\fBnetavark\fP [\fIoptions\fP] \fIcommand\fP \fInetwork namespace path\fP + +.SH DESCRIPTION +.PP +Netavark configures a network namespace according to a configuration read from STDIN. The configuration is JSON formatted. + +.SH GLOBAL OPTIONS +.SS \fB--file\fP, \fB-f\fP +.PP +Instead of reading from STDIN, read the configuration to be applied from the given file. \fB-f -\fP may also be used to flag reading from STDIN. + +.SH COMMANDS +.SS netavark setup +.PP +The setup command configures the given network namespace with the given configuration, creating any interfaces and firewall rules necessary. + +.SS netavark teardown +.PP +The teardown command is the inverse of the setup command, undoing any configuration applied. Some interfaces may not be deleted (bridge interfaces, for example, will not be removed). + +.SS CONFIGURATION FORMAT +.PP +The configuration accepted is the same for both setup and teardown. It is JSON formatted. + +.PP +Format is https://github.com/containers/podman/blob/cd7b48198c38c5028540e85dc72dd3406f4318f0/libpod/network/types/network.go#L164-L173 but we will also send a Networks array including all the network definitions (https://github.com/containers/podman/blob/cd7b48198c38c5028540e85dc72dd3406f4318f0/libpod/network/types/network.go#L32-L62) +TODO: Transcribe configuration into here in a nice tabular format + +.SH EXAMPLE +.PP +netavark setup /run/user/1000/podman/netns/d11d1f9c499d + +.PP +netavark -f /run/podman/828b0508ae64.conf teardown /run/podman/netns/828b0508ae64 + +.SH SEE ALSO +.PP +podman(1) + +.SH HISTORY +.PP +September 2021, Originally compiled by Matt Heon mheon@redhat.com +\[la]mailto:mheon@redhat.com\[ra] diff --git a/SPECS/netavark.spec b/SPECS/netavark.spec index 85a425c..e24f573 100644 --- a/SPECS/netavark.spec +++ b/SPECS/netavark.spec @@ -1,22 +1,27 @@ # debuginfo doesn't work yet %global debug_package %{nil} +%global netavark_version v1.1.0 +%global netavark_branch v1.1.0-rhel +%global netavark_commit0 e868e02552bd1be28d8eb6a193f2e92b0e0643bf +%global netavark_shortcommit0 %(c=%{netavark_commit0}; echo ${c:0:7}) + Epoch: 2 Name: netavark Version: 1.1.0 -Release: 6%{?dist} +Release: 7%{?dist} License: ASL 2.0 and BSD and MIT ExclusiveArch: %{rust_arches} -# this is needed for go-md2man -# https://fedoraproject.org/wiki/PackagingDrafts/Go#Go_Language_Architectures -ExclusiveArch: %{go_arches} -ExcludeArch: i686 Summary: OCI network stack URL: https://github.com/containers/%{name} -Source0: %{url}/archive/v%{version}/%{version}.tar.gz -Source1: %{url}/releases/download/v%{version}/%{name}-v%{version}-vendor.tar.gz +%if 0%{?netavark_branch:1} +Source0: https://github.com/containers/netavark/tarball/%{netavark_commit0}/%{netavark_branch}-%{netavark_shortcommit0}.tar.gz +%else +Source0: https://github.com/containers/netavark/archive/%{netavark_commit0}/netavark-%{netavark_version}-%{netavark_shortcommit0}.tar.gz +%endif +Source1: https://github.com/containers/netavark/releases/download/%{netavark_version}/netavark-%{netavark_version}-vendor.tar.gz +Source2: netavark.1 BuildRequires: cargo -BuildRequires: /usr/bin/go-md2man Recommends: aardvark-dns >= 1.0.3 Provides: container-network-stack = 2 BuildRequires: make @@ -44,7 +49,13 @@ Its features include: * Support for container DNS resolution via aardvark-dns. %prep -%autosetup -Sgit +tar fx %{SOURCE0} +%if 0%{?netavark_branch:1} +pushd containers-netavark-%{netavark_shortcommit0} +%else +pushd netavark-%{netavark_commit0} +%endif + tar fx %{SOURCE1} mkdir -p .cargo @@ -57,21 +68,41 @@ directory = "vendor" EOF %build +%if 0%{?netavark_branch:1} +pushd containers-netavark-%{netavark_shortcommit0} +%else +pushd netavark-%{netavark_commit0} +%endif +%__scm_setup_git -q %{__make} build cd docs -go-md2man -in %{name}.1.md -out %{name}.1 +cp %{SOURCE2} . %install +%if 0%{?netavark_branch:1} +pushd containers-netavark-%{netavark_shortcommit0} +%else +pushd netavark-%{netavark_commit0} +%endif %{__make} DESTDIR=%{buildroot} PREFIX=%{_prefix} install %files -%license LICENSE +%if 0%{?netavark_branch:1} +%license containers-netavark-%{netavark_shortcommit0}/LICENSE +%else +%license netavark-%{netavark_commit0}/LICENSE +%endif %dir %{_libexecdir}/podman %{_libexecdir}/podman/%{name} %{_mandir}/man1/%{name}.1* %changelog +* Thu Oct 20 2022 Jindrich Novy - 2:1.1.0-7 +- fix "Two aardvark-dns instances trying to use the same port + on the same interface" +- Resolves: #2136306 + * Fri Aug 05 2022 Jindrich Novy - 2:1.1.0-6 - add gating.yaml - Related: #2061316