forked from suse-edge/Factory
Compare commits
17 Commits
| Author | SHA256 | Date | |
|---|---|---|---|
| ba703821b1 | |||
| c4aefbf455 | |||
| bf0dfff3d7 | |||
| ae771b55c0 | |||
| 1ba01a6886 | |||
| 91bc150524 | |||
| 7dbbd28a84 | |||
| f918fb6284 | |||
| 12677f19ce | |||
| 4e9483617f | |||
| 025cfb2428 | |||
| 5309bc3914 | |||
| 5bcea067a6 | |||
| 23b56760c9 | |||
| ae8cfd984d | |||
| 86ff679f50 | |||
| 987e7baacc |
33
ib-sriov-cni-image/Dockerfile
Normal file
33
ib-sriov-cni-image/Dockerfile
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#!BuildTag: %%IMG_PREFIX%%ib-sriov-cni:v%%ib-sriov-cni_version%%
|
||||||
|
#!BuildTag: %%IMG_PREFIX%%ib-sriov-cni:v%%ib-sriov-cni_version%%-%RELEASE%
|
||||||
|
ARG SLE_VERSION
|
||||||
|
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
|
||||||
|
|
||||||
|
FROM registry.suse.com/bci/bci-base:$SLE_VERSION AS base
|
||||||
|
COPY --from=micro / /installroot/
|
||||||
|
RUN zypper --installroot /installroot --non-interactive install --no-recommends ib-sriov-cni gawk which; \
|
||||||
|
zypper -n clean; \
|
||||||
|
rm -rf /var/log/*
|
||||||
|
|
||||||
|
FROM micro AS final
|
||||||
|
# Define labels according to https://en.opensuse.org/Building_derived_containers
|
||||||
|
# labelprefix=com.suse.application.ib-sriov-cni
|
||||||
|
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
|
||||||
|
LABEL org.opencontainers.image.title="SLE ib-sriov-cni Container Image"
|
||||||
|
LABEL org.opencontainers.image.description="ib-sriov-cni based on the SLE Base Container Image."
|
||||||
|
LABEL org.opencontainers.image.version="%%ib-sriov-cni_version%%"
|
||||||
|
LABEL org.opencontainers.image.url="https://www.suse.com/products/server/"
|
||||||
|
LABEL org.opencontainers.image.created="%BUILDTIME%"
|
||||||
|
LABEL org.opencontainers.image.vendor="SUSE LLC"
|
||||||
|
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%ib-sriov-cni:%%ib-sriov-cni_version%%-%RELEASE%"
|
||||||
|
LABEL org.openbuildservice.disturl="%DISTURL%"
|
||||||
|
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
|
||||||
|
LABEL com.suse.eula="SUSE Combined EULA February 2024"
|
||||||
|
LABEL com.suse.lifecycle-url="https://www.suse.com/lifecycle"
|
||||||
|
LABEL com.suse.image-type="application"
|
||||||
|
LABEL com.suse.release-stage="released"
|
||||||
|
# endlabelprefix
|
||||||
|
|
||||||
|
COPY --from=base /installroot /
|
||||||
|
ENTRYPOINT ["/entrypoint.sh"]
|
||||||
19
ib-sriov-cni-image/_service
Normal file
19
ib-sriov-cni-image/_service
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<services>
|
||||||
|
<service name="kiwi_metainfo_helper" mode="buildtime"/>
|
||||||
|
<service name="docker_label_helper" mode="buildtime"/>
|
||||||
|
<service name="replace_using_package_version" mode="buildtime">
|
||||||
|
<param name="file">Dockerfile</param>
|
||||||
|
<param name="regex">%%ib-sriov-cni_version%%</param>
|
||||||
|
<param name="package">ib-sriov-cni</param>
|
||||||
|
<param name="parse-version">patch</param>
|
||||||
|
</service>
|
||||||
|
<service name="replace_using_env" mode="buildtime">
|
||||||
|
<param name="file">Dockerfile</param>
|
||||||
|
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||||
|
<param name="var">IMG_PREFIX</param>
|
||||||
|
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||||
|
<param name="var">IMG_REPO</param>
|
||||||
|
<param name="eval">SUPPORT_LEVEL=$(rpm --macros=/root/.rpmmacros -E %support_level)</param>
|
||||||
|
<param name="var">SUPPORT_LEVEL</param>
|
||||||
|
</service>
|
||||||
|
</services>
|
||||||
25
ib-sriov-cni/_service
Normal file
25
ib-sriov-cni/_service
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
<services>
|
||||||
|
<service name="obs_scm">
|
||||||
|
<param name="url">https://github.com/k8snetworkplumbingwg/ib-sriov-cni</param>
|
||||||
|
<param name="scm">git</param>
|
||||||
|
<param name="revision">v1.2.1</param>
|
||||||
|
<param name="version">_auto_</param>
|
||||||
|
<param name="versionformat">@PARENT_TAG@</param>
|
||||||
|
<param name="changesgenerate">enable</param>
|
||||||
|
<param name="changesauthor">antonio.alarcon@suse.com</param>
|
||||||
|
<param name="match-tag">v*</param>
|
||||||
|
<param name="versionrewrite-pattern">v(\d+\.\d+\.\d+)</param>
|
||||||
|
<param name="without-version">yes</param>
|
||||||
|
<param name="versionrewrite-replacement">\1</param>
|
||||||
|
</service>
|
||||||
|
<service mode="buildtime" name="tar">
|
||||||
|
<param name="obsinfo">ib-sriov-cni.obsinfo</param>
|
||||||
|
</service>
|
||||||
|
<service name="go_modules" />
|
||||||
|
<service mode="buildtime" name="set_version" />
|
||||||
|
<service name="replace_using_env" mode="buildtime">
|
||||||
|
<param name="file">ib-sriov-cni.spec</param>
|
||||||
|
<param name="var">SOURCE_COMMIT</param>
|
||||||
|
<param name="eval">SOURCE_COMMIT=$(grep commit ib-sriov-cni.obsinfo | cut -d" " -f2)</param>
|
||||||
|
</service>
|
||||||
|
</services>
|
||||||
64
ib-sriov-cni/ib-sriov-cni.spec
Normal file
64
ib-sriov-cni/ib-sriov-cni.spec
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
#
|
||||||
|
# spec file for package ib-sriov-cni
|
||||||
|
#
|
||||||
|
# Copyright (c) 2025 SUSE LLC
|
||||||
|
#
|
||||||
|
# All modifications and additions to the file contributed by third parties
|
||||||
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
|
# upon. The license for this file, and modifications and additions to the
|
||||||
|
# file, is the same license as for the pristine package itself (unless the
|
||||||
|
# license for the pristine package is not an Open Source License, in which
|
||||||
|
# case the license is the MIT License). An "Open Source License" is a
|
||||||
|
# license that conforms to the Open Source Definition (Version 1.9)
|
||||||
|
# published by the Open Source Initiative.
|
||||||
|
|
||||||
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
Name: ib-sriov-cni
|
||||||
|
Version: 0
|
||||||
|
Release: 0
|
||||||
|
Summary: Implements a Kubernetes CNI plugin operator for Infiniband SRIOV VFs
|
||||||
|
License: Apache-2.0
|
||||||
|
URL: https://github.com/k8snetworkplumbingwg/ib-sriov-cni
|
||||||
|
Source: %{name}-%{version}.tar
|
||||||
|
Source1: vendor.tar.gz
|
||||||
|
BuildRequires: golang(API) = 1.23
|
||||||
|
ExcludeArch: s390
|
||||||
|
ExcludeArch: %{ix86}
|
||||||
|
|
||||||
|
%description
|
||||||
|
Network Interface Cards (NICs) with SR-IOV capabilities are managed through physical functions (PFs) and virtual functions (VFs).
|
||||||
|
A PF is used by the host and usually represents a single NIC port. VF configurations are applied through the PF.
|
||||||
|
The SR-IOV CNI allows each VF to be treated as a separate network interface, assigned to a container, and configured with its own
|
||||||
|
MAC, VLAN, IP and more.
|
||||||
|
|
||||||
|
Infiniband SR-IOV CNI plugin works with Infiniband SR-IOV device plugin for VF allocation in Kubernetes. A CNI metaplugin such as Multus
|
||||||
|
gets the allocated VF's deviceID(PCI address) and is responsible for invoking the Infiniband SR-IOV CNI plugin with that deviceID.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -a1 -n %{name}-%{version} -p1
|
||||||
|
|
||||||
|
%build
|
||||||
|
# CGO is disabled by default in upstream Makefile:
|
||||||
|
%define cgoenabled "0"
|
||||||
|
# go build constrain (aka tag) "no_openssl" is set by default in upstream Makefile
|
||||||
|
%define gotags "no_openssl"
|
||||||
|
%define buildtime %(date +%%Y-%%m-%%dT%%H:%%M:%%S%%z)
|
||||||
|
%define buildcommit %%SOURCE_COMMIT%%
|
||||||
|
%define buildldflags "-X main.version=%{version} -X main.commit=%{buildcommit}% -X main.date=%{buildtime}%"
|
||||||
|
CGO_ENABLED=%{cgoenabled} go build -mod=vendor -buildmode=pie -tags %{gotags} -ldflags %{buildldflags} -o ib-sriov cmd/ib-sriov-cni/main.go
|
||||||
|
|
||||||
|
%install
|
||||||
|
install -D -m0755 ib-sriov %{buildroot}%{_bindir}/ib-sriov
|
||||||
|
install -D -m0755 images/entrypoint.sh %{buildroot}/entrypoint.sh
|
||||||
|
|
||||||
|
|
||||||
|
%files
|
||||||
|
%license LICENSE
|
||||||
|
%doc README.md
|
||||||
|
%{_bindir}/ib-sriov
|
||||||
|
/entrypoint.sh
|
||||||
|
|
||||||
|
%changelog
|
||||||
34
network-resources-injector-image/Dockerfile
Normal file
34
network-resources-injector-image/Dockerfile
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#!BuildTag: %%IMG_PREFIX%%network-resources-injector:v%%network-resources-injector_version%%
|
||||||
|
#!BuildTag: %%IMG_PREFIX%%network-resources-injector:v%%network-resources-injector_version%%-%RELEASE%
|
||||||
|
ARG SLE_VERSION
|
||||||
|
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
|
||||||
|
|
||||||
|
FROM registry.suse.com/bci/bci-base:$SLE_VERSION AS base
|
||||||
|
COPY --from=micro / /installroot/
|
||||||
|
RUN zypper --installroot /installroot --non-interactive install --no-recommends network-resources-injector gawk which; \
|
||||||
|
zypper -n clean; \
|
||||||
|
rm -rf /var/log/*
|
||||||
|
|
||||||
|
FROM micro AS final
|
||||||
|
# Define labels according to https://en.opensuse.org/Building_derived_containers
|
||||||
|
# labelprefix=com.suse.application.network-resources-injector
|
||||||
|
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
|
||||||
|
LABEL org.opencontainers.image.title="SLE network-resources-injector Container Image"
|
||||||
|
LABEL org.opencontainers.image.description="network-resources-injector based on the SLE Base Container Image."
|
||||||
|
LABEL org.opencontainers.image.version="%%network-resources-injector_version%%"
|
||||||
|
LABEL org.opencontainers.image.url="https://www.suse.com/products/server/"
|
||||||
|
LABEL org.opencontainers.image.created="%BUILDTIME%"
|
||||||
|
LABEL org.opencontainers.image.vendor="SUSE LLC"
|
||||||
|
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%network-resources-injector:%%network-resources-injector_version%%-%RELEASE%"
|
||||||
|
LABEL org.openbuildservice.disturl="%DISTURL%"
|
||||||
|
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
|
||||||
|
LABEL com.suse.eula="SUSE Combined EULA February 2024"
|
||||||
|
LABEL com.suse.lifecycle-url="https://www.suse.com/lifecycle"
|
||||||
|
LABEL com.suse.image-type="application"
|
||||||
|
LABEL com.suse.release-stage="released"
|
||||||
|
# endlabelprefix
|
||||||
|
|
||||||
|
USER 1001
|
||||||
|
COPY --from=base /installroot /
|
||||||
|
CMD ["/usr/bin/webhook"]
|
||||||
19
network-resources-injector-image/_service
Normal file
19
network-resources-injector-image/_service
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<services>
|
||||||
|
<service name="kiwi_metainfo_helper" mode="buildtime"/>
|
||||||
|
<service name="docker_label_helper" mode="buildtime"/>
|
||||||
|
<service name="replace_using_package_version" mode="buildtime">
|
||||||
|
<param name="file">Dockerfile</param>
|
||||||
|
<param name="regex">%%network-resources-injector_version%%</param>
|
||||||
|
<param name="package">network-resources-injector</param>
|
||||||
|
<param name="parse-version">patch</param>
|
||||||
|
</service>
|
||||||
|
<service name="replace_using_env" mode="buildtime">
|
||||||
|
<param name="file">Dockerfile</param>
|
||||||
|
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||||
|
<param name="var">IMG_PREFIX</param>
|
||||||
|
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||||
|
<param name="var">IMG_REPO</param>
|
||||||
|
<param name="eval">SUPPORT_LEVEL=$(rpm --macros=/root/.rpmmacros -E %support_level)</param>
|
||||||
|
<param name="var">SUPPORT_LEVEL</param>
|
||||||
|
</service>
|
||||||
|
</services>
|
||||||
20
network-resources-injector/_service
Normal file
20
network-resources-injector/_service
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<services>
|
||||||
|
<service name="obs_scm">
|
||||||
|
<param name="url">https://github.com/k8snetworkplumbingwg/network-resources-injector</param>
|
||||||
|
<param name="scm">git</param>
|
||||||
|
<param name="revision">v1.7.1</param>
|
||||||
|
<param name="version">_auto_</param>
|
||||||
|
<param name="versionformat">@PARENT_TAG@</param>
|
||||||
|
<param name="changesgenerate">enable</param>
|
||||||
|
<param name="changesauthor">antonio.alarcon@suse.com</param>
|
||||||
|
<param name="match-tag">v*</param>
|
||||||
|
<param name="versionrewrite-pattern">v(\d+\.\d+\.\d+)</param>
|
||||||
|
<param name="without-version">yes</param>
|
||||||
|
<param name="versionrewrite-replacement">\1</param>
|
||||||
|
</service>
|
||||||
|
<service mode="buildtime" name="tar">
|
||||||
|
<param name="obsinfo">network-resources-injector.obsinfo</param>
|
||||||
|
</service>
|
||||||
|
<service name="go_modules" />
|
||||||
|
<service mode="buildtime" name="set_version" />
|
||||||
|
</services>
|
||||||
62
network-resources-injector/network-resources-injector.spec
Normal file
62
network-resources-injector/network-resources-injector.spec
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
#
|
||||||
|
# spec file for package network-resources-injector
|
||||||
|
#
|
||||||
|
# Copyright (c) 2025 SUSE LLC
|
||||||
|
#
|
||||||
|
# All modifications and additions to the file contributed by third parties
|
||||||
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
|
# upon. The license for this file, and modifications and additions to the
|
||||||
|
# file, is the same license as for the pristine package itself (unless the
|
||||||
|
# license for the pristine package is not an Open Source License, in which
|
||||||
|
# case the license is the MIT License). An "Open Source License" is a
|
||||||
|
# license that conforms to the Open Source Definition (Version 1.9)
|
||||||
|
# published by the Open Source Initiative.
|
||||||
|
|
||||||
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
Name: network-resources-injector
|
||||||
|
Version: 0
|
||||||
|
Release: 0
|
||||||
|
Summary: Kubernetes admission controller able to patch pod spec's requests and limits on custom network resources
|
||||||
|
License: Apache-2.0
|
||||||
|
URL: https://github.com/k8snetworkplumbingwg/network-resources-injector
|
||||||
|
Source: %{name}-%{version}.tar
|
||||||
|
Source1: vendor.tar.gz
|
||||||
|
BuildRequires: golang(API) = 1.21
|
||||||
|
ExcludeArch: s390
|
||||||
|
ExcludeArch: %{ix86}
|
||||||
|
|
||||||
|
%description
|
||||||
|
Network Resources Injector is a Kubernetes Dynamic Admission Controller application that provides functionality of
|
||||||
|
patching Kubernetes pod specifications with requests and limits of custom network resources (managed by device plugins
|
||||||
|
such as k8snetworkplumbingwg/sriov-network-device-plugin). Requires Multus Network-Attach-Definition (NAD) custom
|
||||||
|
objects to be created before creating the pod object referring/pointing to them; custom network resources' request and
|
||||||
|
limits to add to the pod spec are inferred from the pointed NAD/s.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -a1 -n %{name}-%{version} -p1
|
||||||
|
|
||||||
|
%build
|
||||||
|
# CGO is disabled by default in upstream Makefile
|
||||||
|
%define cgoenabled "0"
|
||||||
|
# go build constrain (aka tag) "no_openssl" is set by default in upstream Makefile
|
||||||
|
%define buildgotags "no_openssl"
|
||||||
|
%define buildldflags "-w -s"
|
||||||
|
CGO_ENABLED=%{cgoenabled} go build -mod=vendor -buildmode=pie -trimpath -ldflags %{buildldflags} -tags %{buildgotags} -o installer ./cmd/installer
|
||||||
|
CGO_ENABLED=%{cgoenabled} go build -mod=vendor -buildmode=pie -trimpath -ldflags %{buildldflags} -tags %{buildgotags} -o webhook ./cmd/webhook
|
||||||
|
|
||||||
|
|
||||||
|
%install
|
||||||
|
install -D -m0755 installer %{buildroot}%{_bindir}/installer
|
||||||
|
install -D -m0755 webhook %{buildroot}%{_bindir}/webhook
|
||||||
|
|
||||||
|
|
||||||
|
%files
|
||||||
|
%license LICENSE
|
||||||
|
%doc README.md
|
||||||
|
%{_bindir}/installer
|
||||||
|
%{_bindir}/webhook
|
||||||
|
|
||||||
|
%changelog
|
||||||
35
node-feature-discovery-image/Dockerfile
Normal file
35
node-feature-discovery-image/Dockerfile
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#!BuildTag: %%IMG_PREFIX%%node-feature-discovery:v%%node-feature-discovery_version%%
|
||||||
|
#!BuildTag: %%IMG_PREFIX%%node-feature-discovery:v%%node-feature-discovery_version%%-%RELEASE%
|
||||||
|
ARG SLE_VERSION
|
||||||
|
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
|
||||||
|
|
||||||
|
FROM registry.suse.com/bci/bci-base:$SLE_VERSION AS base
|
||||||
|
COPY --from=micro / /installroot/
|
||||||
|
RUN zypper --installroot /installroot --non-interactive install --no-recommends node-feature-discovery; \
|
||||||
|
zypper -n clean; \
|
||||||
|
rm -rf /var/log/*
|
||||||
|
|
||||||
|
FROM micro AS final
|
||||||
|
# Define labels according to https://en.opensuse.org/Building_derived_containers
|
||||||
|
# labelprefix=com.suse.application.node-feature-discovery
|
||||||
|
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
|
||||||
|
LABEL org.opencontainers.image.title="SLE node-feature-discovery Container Image"
|
||||||
|
LABEL org.opencontainers.image.description="node-feature-discovery based on the SLE Base Container Image."
|
||||||
|
LABEL org.opencontainers.image.version="%%node-feature-discovery_version%%"
|
||||||
|
LABEL org.opencontainers.image.url="https://www.suse.com/products/server/"
|
||||||
|
LABEL org.opencontainers.image.created="%BUILDTIME%"
|
||||||
|
LABEL org.opencontainers.image.vendor="SUSE LLC"
|
||||||
|
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%node-feature-discovery:%%node-feature-discovery_version%%-%RELEASE%"
|
||||||
|
LABEL org.openbuildservice.disturl="%DISTURL%"
|
||||||
|
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
|
||||||
|
LABEL com.suse.eula="SUSE Combined EULA February 2024"
|
||||||
|
LABEL com.suse.lifecycle-url="https://www.suse.com/lifecycle"
|
||||||
|
LABEL com.suse.image-type="application"
|
||||||
|
LABEL com.suse.release-stage="released"
|
||||||
|
# endlabelprefix
|
||||||
|
|
||||||
|
USER 65534:65534
|
||||||
|
COPY --from=base /installroot /
|
||||||
|
|
||||||
|
|
||||||
19
node-feature-discovery-image/_service
Normal file
19
node-feature-discovery-image/_service
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<services>
|
||||||
|
<service name="kiwi_metainfo_helper" mode="buildtime"/>
|
||||||
|
<service name="docker_label_helper" mode="buildtime"/>
|
||||||
|
<service name="replace_using_package_version" mode="buildtime">
|
||||||
|
<param name="file">Dockerfile</param>
|
||||||
|
<param name="regex">%%node-feature-discovery_version%%</param>
|
||||||
|
<param name="package">node-feature-discovery</param>
|
||||||
|
<param name="parse-version">patch</param>
|
||||||
|
</service>
|
||||||
|
<service name="replace_using_env" mode="buildtime">
|
||||||
|
<param name="file">Dockerfile</param>
|
||||||
|
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||||
|
<param name="var">IMG_PREFIX</param>
|
||||||
|
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||||
|
<param name="var">IMG_REPO</param>
|
||||||
|
<param name="eval">SUPPORT_LEVEL=$(rpm --macros=/root/.rpmmacros -E %support_level)</param>
|
||||||
|
<param name="var">SUPPORT_LEVEL</param>
|
||||||
|
</service>
|
||||||
|
</services>
|
||||||
20
node-feature-discovery/_service
Normal file
20
node-feature-discovery/_service
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<services>
|
||||||
|
<service name="obs_scm">
|
||||||
|
<param name="url">https://github.com/kubernetes-sigs/node-feature-discovery</param>
|
||||||
|
<param name="scm">git</param>
|
||||||
|
<param name="revision">v0.15.7</param>
|
||||||
|
<param name="version">_auto_</param>
|
||||||
|
<param name="versionformat">@PARENT_TAG@</param>
|
||||||
|
<param name="changesgenerate">enable</param>
|
||||||
|
<param name="changesauthor">antonio.alarcon@suse.com</param>
|
||||||
|
<param name="match-tag">v*</param>
|
||||||
|
<param name="versionrewrite-pattern">v(\d+\.\d+\.\d+)</param>
|
||||||
|
<param name="without-version">yes</param>
|
||||||
|
<param name="versionrewrite-replacement">\1</param>
|
||||||
|
</service>
|
||||||
|
<service mode="buildtime" name="tar">
|
||||||
|
<param name="obsinfo">node-feature-discovery.obsinfo</param>
|
||||||
|
</service>
|
||||||
|
<service name="go_modules" />
|
||||||
|
<service mode="buildtime" name="set_version" />
|
||||||
|
</services>
|
||||||
91
node-feature-discovery/node-feature-discovery.spec
Normal file
91
node-feature-discovery/node-feature-discovery.spec
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
#
|
||||||
|
# spec file for package node-feature-discovery
|
||||||
|
#
|
||||||
|
# Copyright (c) 2025 SUSE LLC
|
||||||
|
#
|
||||||
|
# All modifications and additions to the file contributed by third parties
|
||||||
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
|
# upon. The license for this file, and modifications and additions to the
|
||||||
|
# file, is the same license as for the pristine package itself (unless the
|
||||||
|
# license for the pristine package is not an Open Source License, in which
|
||||||
|
# case the license is the MIT License). An "Open Source License" is a
|
||||||
|
# license that conforms to the Open Source Definition (Version 1.9)
|
||||||
|
# published by the Open Source Initiative.
|
||||||
|
|
||||||
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
Name: node-feature-discovery
|
||||||
|
Version: 0
|
||||||
|
Release: 0
|
||||||
|
Summary: Advertises hardware features available on each Kubernetes node using node labels
|
||||||
|
License: Apache-2.0
|
||||||
|
URL: https://github.com/kubernetes-sigs/node-feature-discovery
|
||||||
|
Source: %{name}-%{version}.tar
|
||||||
|
Source1: vendor.tar.gz
|
||||||
|
BuildRequires: glibc-static
|
||||||
|
BuildRequires: golang(API) = 1.21
|
||||||
|
ExcludeArch: s390
|
||||||
|
ExcludeArch: %{ix86}
|
||||||
|
|
||||||
|
%description
|
||||||
|
Node-Feature-Discovery (NFD) software enables node feature discovery for Kubernetes. It detects hardware features available on each node in a
|
||||||
|
Kubernetes cluster, and advertises those features using node labels and optionally node extended resources, annotations and node taints.
|
||||||
|
Node Feature Discovery is compatible with any recent version of Kubernetes (v1.21+).
|
||||||
|
|
||||||
|
NFD consists of four software components:
|
||||||
|
- nfd-master:
|
||||||
|
daemon responsible for communication towards the Kubernetes API. That is, it receives labeling requests from the worker and modifies node
|
||||||
|
objects accordingly.
|
||||||
|
- nfd-worker:
|
||||||
|
daemon responsible for feature detection. It then communicates the information to nfd-master which does the actual node labeling. One instance
|
||||||
|
of nfd-worker is supposed to be running on each node of the cluster.
|
||||||
|
- nfd-topology-updater:
|
||||||
|
daemon responsible for examining allocated resources on a worker node to account for resources available to be allocated to new pod on a per-zone
|
||||||
|
basis (where a zone can be a NUMA node). It then creates or updates a NodeResourceTopology custom resource object specific to this node. One instance
|
||||||
|
of nfd-topology-updater is supposed to be running on each node of the cluster.
|
||||||
|
- nfd-gc:
|
||||||
|
daemon responsible for cleaning obsolete NodeFeature and NodeResourceTopology objects.
|
||||||
|
One instance of nfd-gc is supposed to be running in the cluster.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -a1 -n %{name}-%{version} -p1
|
||||||
|
|
||||||
|
%build
|
||||||
|
%define cgoenabled "1"
|
||||||
|
# Most of the following go-build settings, toghether the build requirement on glibc-static package (see above) come from the aim
|
||||||
|
# to get an statically linked binary (once CGO being enabled); they have been taken from upstream Makefile.
|
||||||
|
#
|
||||||
|
# Apart from that, the "host-" setting in "pathPrefix" variable in "sigs.k8s.io/node-feature-discovery/pkg/utils/hostpath" package
|
||||||
|
# (below) is required for alignment with the several mount paths set in the nfd chart's "worker" daemonset (yaml) template, for
|
||||||
|
# all the hostPath volumes defined there.
|
||||||
|
%define buildgotags "osusergo,netgo"
|
||||||
|
%define buildldflags "-linkmode=external -extldflags '-static -Wl,--fatal-warnings' -X sigs.k8s.io/node-feature-discovery/pkg/version.version=v%{version} -X sigs.k8s.io/node-feature-discovery/pkg/utils/hostpath.pathPrefix=/host- -s -w"
|
||||||
|
CGO_ENABLED=%{cgoenabled} go build -mod=vendor -trimpath -tags %{buildgotags} -ldflags %{buildldflags} -o kubectl-nfd ./cmd/kubectl-nfd
|
||||||
|
CGO_ENABLED=%{cgoenabled} go build -mod=vendor -trimpath -tags %{buildgotags} -ldflags %{buildldflags} -o nfd-gc ./cmd/nfd-gc
|
||||||
|
CGO_ENABLED=%{cgoenabled} go build -mod=vendor -trimpath -tags %{buildgotags} -ldflags %{buildldflags} -o nfd-master ./cmd/nfd-master
|
||||||
|
CGO_ENABLED=%{cgoenabled} go build -mod=vendor -trimpath -tags %{buildgotags} -ldflags %{buildldflags} -o nfd-worker ./cmd/nfd-worker
|
||||||
|
CGO_ENABLED=%{cgoenabled} go build -mod=vendor -trimpath -tags %{buildgotags} -ldflags %{buildldflags} -o nfd-topology-updater ./cmd/nfd-topology-updater
|
||||||
|
|
||||||
|
%install
|
||||||
|
install -D -m0755 kubectl-nfd %{buildroot}%{_bindir}/kubectl-nfd
|
||||||
|
install -D -m0755 nfd-gc %{buildroot}%{_bindir}/nfd-gc
|
||||||
|
install -D -m0755 nfd-master %{buildroot}%{_bindir}/nfd-master
|
||||||
|
install -D -m0755 nfd-worker %{buildroot}%{_bindir}/nfd-worker
|
||||||
|
install -D -m0755 nfd-topology-updater %{buildroot}%{_bindir}/nfd-topology-updater
|
||||||
|
install -D -m0644 ./deployment/components/worker-config/nfd-worker.conf.example %{buildroot}%{_sysconfdir}/kubernetes/node-feature-discovery/nfd-worker.conf
|
||||||
|
|
||||||
|
%files
|
||||||
|
%license LICENSE
|
||||||
|
%doc README.md
|
||||||
|
%{_bindir}/kubectl-nfd
|
||||||
|
%{_bindir}/nfd-gc
|
||||||
|
%{_bindir}/nfd-master
|
||||||
|
%{_bindir}/nfd-worker
|
||||||
|
%{_bindir}/nfd-topology-updater
|
||||||
|
%dir %{_sysconfdir}/kubernetes
|
||||||
|
%dir %{_sysconfdir}/kubernetes/node-feature-discovery
|
||||||
|
%{_sysconfdir}/kubernetes/node-feature-discovery/nfd-worker.conf
|
||||||
|
|
||||||
|
%changelog
|
||||||
@@ -11,6 +11,14 @@ images:
|
|||||||
- name: %%IMG_REPO%%/%%IMG_PREFIX%%metallb-controller:v0.15.2
|
- name: %%IMG_REPO%%/%%IMG_PREFIX%%metallb-controller:v0.15.2
|
||||||
- name: %%IMG_REPO%%/%%IMG_PREFIX%%metallb-speaker:v0.15.2
|
- name: %%IMG_REPO%%/%%IMG_PREFIX%%metallb-speaker:v0.15.2
|
||||||
- name: %%IMG_REPO%%/%%IMG_PREFIX%%upgrade-controller:0.1.1
|
- name: %%IMG_REPO%%/%%IMG_PREFIX%%upgrade-controller:0.1.1
|
||||||
|
- name: %%IMG_REPO%%/%%IMG_PREFIX%%sriov-network-manager:v1.5.0
|
||||||
|
- name: %%IMG_REPO%%/%%IMG_PREFIX%%sriov-network-config-daemon:v1.5.0
|
||||||
|
- name: %%IMG_REPO%%/%%IMG_PREFIX%%sriov-network-webhook:v1.5.0
|
||||||
|
- name: %%IMG_REPO%%/%%IMG_PREFIX%%sriov-cni:v2.9.0
|
||||||
|
- name: %%IMG_REPO%%/%%IMG_PREFIX%%ib-sriov-cni:v1.2.1
|
||||||
|
- name: %%IMG_REPO%%/%%IMG_PREFIX%%sriov-network-device-plugin:v3.9.0
|
||||||
|
- name: %%IMG_REPO%%/%%IMG_PREFIX%%network-resources-injector:v1.7.1
|
||||||
|
- name: %%IMG_REPO%%/%%IMG_PREFIX%%node-feature-discovery:v0.15.7
|
||||||
- name: registry.rancher.com/rancher/fleet-agent:v0.13.1
|
- name: registry.rancher.com/rancher/fleet-agent:v0.13.1
|
||||||
- name: registry.rancher.com/rancher/fleet:v0.13.1
|
- name: registry.rancher.com/rancher/fleet:v0.13.1
|
||||||
- name: registry.rancher.com/rancher/hardened-cluster-autoscaler:v1.10.2-build20250611
|
- name: registry.rancher.com/rancher/hardened-cluster-autoscaler:v1.10.2-build20250611
|
||||||
@@ -52,7 +60,6 @@ images:
|
|||||||
- name: registry.suse.com/rancher/cluster-api-provider-rke2-bootstrap:v0.20.1
|
- name: registry.suse.com/rancher/cluster-api-provider-rke2-bootstrap:v0.20.1
|
||||||
- name: registry.suse.com/rancher/cluster-api-provider-rke2-controlplane:v0.20.1
|
- name: registry.suse.com/rancher/cluster-api-provider-rke2-controlplane:v0.20.1
|
||||||
- name: registry.suse.com/rancher/elemental-operator:1.7.3
|
- name: registry.suse.com/rancher/elemental-operator:1.7.3
|
||||||
- name: registry.suse.com/rancher/hardened-sriov-network-operator:v1.5.0-build20250425
|
|
||||||
- name: registry.suse.com/rancher/ip-address-manager:v1.10.2
|
- name: registry.suse.com/rancher/ip-address-manager:v1.10.2
|
||||||
- name: registry.suse.com/suse/sles/15.7/cdi-apiserver:1.62.0-150700.9.3.1
|
- name: registry.suse.com/suse/sles/15.7/cdi-apiserver:1.62.0-150700.9.3.1
|
||||||
- name: registry.suse.com/suse/sles/15.7/cdi-controller:1.62.0-150700.9.3.1
|
- name: registry.suse.com/suse/sles/15.7/cdi-controller:1.62.0-150700.9.3.1
|
||||||
|
|||||||
@@ -155,7 +155,7 @@ spec:
|
|||||||
- prettyName: SRIOV
|
- prettyName: SRIOV
|
||||||
releaseName: sriov-network-operator
|
releaseName: sriov-network-operator
|
||||||
chart: '%%CHART_REPO%%/%%CHART_PREFIX%%sriov-network-operator'
|
chart: '%%CHART_REPO%%/%%CHART_PREFIX%%sriov-network-operator'
|
||||||
version: '%%CHART_MAJOR%%.0.2+up1.5.0'
|
version: '%%CHART_MAJOR%%.0.3+up1.5.0'
|
||||||
dependencyCharts:
|
dependencyCharts:
|
||||||
- releaseName: sriov-crd
|
- releaseName: sriov-crd
|
||||||
chart: '%%CHART_REPO%%/%%CHART_PREFIX%%sriov-crd'
|
chart: '%%CHART_REPO%%/%%CHART_PREFIX%%sriov-crd'
|
||||||
|
|||||||
33
sriov-cni-image/Dockerfile
Normal file
33
sriov-cni-image/Dockerfile
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#!BuildTag: %%IMG_PREFIX%%sriov-cni:v%%sriov-cni_version%%
|
||||||
|
#!BuildTag: %%IMG_PREFIX%%sriov-cni:v%%sriov-cni_version%%-%RELEASE%
|
||||||
|
ARG SLE_VERSION
|
||||||
|
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
|
||||||
|
|
||||||
|
FROM registry.suse.com/bci/bci-base:$SLE_VERSION AS base
|
||||||
|
COPY --from=micro / /installroot/
|
||||||
|
RUN zypper --installroot /installroot --non-interactive install --no-recommends sriov-cni gawk which; \
|
||||||
|
zypper -n clean; \
|
||||||
|
rm -rf /var/log/*
|
||||||
|
|
||||||
|
FROM micro AS final
|
||||||
|
# Define labels according to https://en.opensuse.org/Building_derived_containers
|
||||||
|
# labelprefix=com.suse.application.sriov-cni
|
||||||
|
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
|
||||||
|
LABEL org.opencontainers.image.title="SLE sriov-cni Container Image"
|
||||||
|
LABEL org.opencontainers.image.description="sriov-cni based on the SLE Base Container Image."
|
||||||
|
LABEL org.opencontainers.image.version="%%sriov-cni_version%%"
|
||||||
|
LABEL org.opencontainers.image.url="https://www.suse.com/products/server/"
|
||||||
|
LABEL org.opencontainers.image.created="%BUILDTIME%"
|
||||||
|
LABEL org.opencontainers.image.vendor="SUSE LLC"
|
||||||
|
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%sriov-cni:%%sriov-cni_version%%-%RELEASE%"
|
||||||
|
LABEL org.openbuildservice.disturl="%DISTURL%"
|
||||||
|
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
|
||||||
|
LABEL com.suse.eula="SUSE Combined EULA February 2024"
|
||||||
|
LABEL com.suse.lifecycle-url="https://www.suse.com/lifecycle"
|
||||||
|
LABEL com.suse.image-type="application"
|
||||||
|
LABEL com.suse.release-stage="released"
|
||||||
|
# endlabelprefix
|
||||||
|
|
||||||
|
COPY --from=base /installroot /
|
||||||
|
ENTRYPOINT ["/entrypoint.sh"]
|
||||||
19
sriov-cni-image/_service
Normal file
19
sriov-cni-image/_service
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<services>
|
||||||
|
<service name="kiwi_metainfo_helper" mode="buildtime"/>
|
||||||
|
<service name="docker_label_helper" mode="buildtime"/>
|
||||||
|
<service name="replace_using_package_version" mode="buildtime">
|
||||||
|
<param name="file">Dockerfile</param>
|
||||||
|
<param name="regex">%%sriov-cni_version%%</param>
|
||||||
|
<param name="package">sriov-cni</param>
|
||||||
|
<param name="parse-version">patch</param>
|
||||||
|
</service>
|
||||||
|
<service name="replace_using_env" mode="buildtime">
|
||||||
|
<param name="file">Dockerfile</param>
|
||||||
|
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||||
|
<param name="var">IMG_PREFIX</param>
|
||||||
|
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||||
|
<param name="var">IMG_REPO</param>
|
||||||
|
<param name="eval">SUPPORT_LEVEL=$(rpm --macros=/root/.rpmmacros -E %support_level)</param>
|
||||||
|
<param name="var">SUPPORT_LEVEL</param>
|
||||||
|
</service>
|
||||||
|
</services>
|
||||||
20
sriov-cni/_service
Normal file
20
sriov-cni/_service
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<services>
|
||||||
|
<service name="obs_scm">
|
||||||
|
<param name="url">https://github.com/k8snetworkplumbingwg/sriov-cni</param>
|
||||||
|
<param name="scm">git</param>
|
||||||
|
<param name="revision">v2.9.0</param>
|
||||||
|
<param name="version">_auto_</param>
|
||||||
|
<param name="versionformat">@PARENT_TAG@</param>
|
||||||
|
<param name="changesgenerate">enable</param>
|
||||||
|
<param name="changesauthor">antonio.alarcon@suse.com</param>
|
||||||
|
<param name="match-tag">v*</param>
|
||||||
|
<param name="versionrewrite-pattern">v(\d+\.\d+\.\d+)</param>
|
||||||
|
<param name="without-version">yes</param>
|
||||||
|
<param name="versionrewrite-replacement">\1</param>
|
||||||
|
</service>
|
||||||
|
<service mode="buildtime" name="tar">
|
||||||
|
<param name="obsinfo">sriov-cni.obsinfo</param>
|
||||||
|
</service>
|
||||||
|
<service name="go_modules" />
|
||||||
|
<service mode="buildtime" name="set_version" />
|
||||||
|
</services>
|
||||||
61
sriov-cni/sriov-cni.spec
Normal file
61
sriov-cni/sriov-cni.spec
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
#
|
||||||
|
# spec file for package sriov-cni
|
||||||
|
#
|
||||||
|
# Copyright (c) 2025 SUSE LLC
|
||||||
|
#
|
||||||
|
# All modifications and additions to the file contributed by third parties
|
||||||
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
|
# upon. The license for this file, and modifications and additions to the
|
||||||
|
# file, is the same license as for the pristine package itself (unless the
|
||||||
|
# license for the pristine package is not an Open Source License, in which
|
||||||
|
# case the license is the MIT License). An "Open Source License" is a
|
||||||
|
# license that conforms to the Open Source Definition (Version 1.9)
|
||||||
|
# published by the Open Source Initiative.
|
||||||
|
|
||||||
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
Name: sriov-cni
|
||||||
|
Version: 0
|
||||||
|
Release: 0
|
||||||
|
Summary: Implements a Kubernetes CNI plugin operator for SRIOV VFs
|
||||||
|
License: Apache-2.0
|
||||||
|
URL: https://github.com/k8snetworkplumbingwg/sriov-cni
|
||||||
|
Source: %{name}-%{version}.tar
|
||||||
|
Source1: vendor.tar.gz
|
||||||
|
BuildRequires: golang(API) = 1.22
|
||||||
|
ExcludeArch: s390
|
||||||
|
ExcludeArch: %{ix86}
|
||||||
|
|
||||||
|
%description
|
||||||
|
Network Interface Cards (NICs) with SR-IOV capabilities are managed through physical functions (PFs) and virtual functions (VFs).
|
||||||
|
A PF is used by the host and usually represents a single NIC port. VF configurations are applied through the PF.
|
||||||
|
The SR-IOV CNI allows each VF to be treated as a separate network interface, assigned to a container, and configured with its own
|
||||||
|
MAC, VLAN, IP and more.
|
||||||
|
|
||||||
|
SR-IOV CNI plugin works with SR-IOV device plugin for VF allocation in Kubernetes. A CNI metaplugin such as Multus gets the allocated
|
||||||
|
VF's deviceID(PCI address) and is responsible for invoking the SR-IOV CNI plugin with that deviceID.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -a1 -n %{name}-%{version} -p1
|
||||||
|
|
||||||
|
%build
|
||||||
|
# CGO is disabled by default in upstream Makefile:
|
||||||
|
%define cgoenabled "0"
|
||||||
|
# go build constrain (aka tag) "no_openssl" is set by default in upstream Makefile:
|
||||||
|
%define buildgotags "no_openssl"
|
||||||
|
%define buildldflags ""
|
||||||
|
CGO_ENABLED=%{cgoenabled} go build -mod=vendor -buildmode=pie -ldflags %{buildldflags} -tags %{buildgotags} -o sriov cmd/sriov/main.go
|
||||||
|
|
||||||
|
%install
|
||||||
|
install -D -m0755 sriov %{buildroot}%{_bindir}/sriov
|
||||||
|
install -D -m0755 images/entrypoint.sh %{buildroot}/entrypoint.sh
|
||||||
|
|
||||||
|
%files
|
||||||
|
%license LICENSE
|
||||||
|
%doc README.md
|
||||||
|
%{_bindir}/sriov
|
||||||
|
/entrypoint.sh
|
||||||
|
|
||||||
|
%changelog
|
||||||
33
sriov-network-device-plugin-image/Dockerfile
Normal file
33
sriov-network-device-plugin-image/Dockerfile
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#!BuildTag: %%IMG_PREFIX%%sriov-network-device-plugin:v%%sriov-network-device-plugin_version%%
|
||||||
|
#!BuildTag: %%IMG_PREFIX%%sriov-network-device-plugin:v%%sriov-network-device-plugin_version%%-%RELEASE%
|
||||||
|
ARG SLE_VERSION
|
||||||
|
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
|
||||||
|
|
||||||
|
FROM registry.suse.com/bci/bci-base:$SLE_VERSION AS base
|
||||||
|
COPY --from=micro / /installroot/
|
||||||
|
RUN zypper --installroot /installroot --non-interactive install --no-recommends sriov-network-device-plugin hwdata gawk which; \
|
||||||
|
zypper -n clean; \
|
||||||
|
rm -rf /var/log/*
|
||||||
|
|
||||||
|
FROM micro AS final
|
||||||
|
# Define labels according to https://en.opensuse.org/Building_derived_containers
|
||||||
|
# labelprefix=com.suse.application.sriov-network-device-plugin
|
||||||
|
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
|
||||||
|
LABEL org.opencontainers.image.title="SLE sriov-network-device-plugin Container Image"
|
||||||
|
LABEL org.opencontainers.image.description="sriov-network-device-plugin based on the SLE Base Container Image."
|
||||||
|
LABEL org.opencontainers.image.version="%%sriov-network-device-plugin_version%%"
|
||||||
|
LABEL org.opencontainers.image.url="https://www.suse.com/products/server/"
|
||||||
|
LABEL org.opencontainers.image.created="%BUILDTIME%"
|
||||||
|
LABEL org.opencontainers.image.vendor="SUSE LLC"
|
||||||
|
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%sriov-network-device-plugin:%%sriov-network-device-plugin_version%%-%RELEASE%"
|
||||||
|
LABEL org.openbuildservice.disturl="%DISTURL%"
|
||||||
|
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
|
||||||
|
LABEL com.suse.eula="SUSE Combined EULA February 2024"
|
||||||
|
LABEL com.suse.lifecycle-url="https://www.suse.com/lifecycle"
|
||||||
|
LABEL com.suse.image-type="application"
|
||||||
|
LABEL com.suse.release-stage="released"
|
||||||
|
# endlabelprefix
|
||||||
|
|
||||||
|
COPY --from=base /installroot /
|
||||||
|
ENTRYPOINT ["/entrypoint.sh"]
|
||||||
19
sriov-network-device-plugin-image/_service
Normal file
19
sriov-network-device-plugin-image/_service
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<services>
|
||||||
|
<service name="kiwi_metainfo_helper" mode="buildtime"/>
|
||||||
|
<service name="docker_label_helper" mode="buildtime"/>
|
||||||
|
<service name="replace_using_package_version" mode="buildtime">
|
||||||
|
<param name="file">Dockerfile</param>
|
||||||
|
<param name="regex">%%sriov-network-device-plugin_version%%</param>
|
||||||
|
<param name="package">sriov-network-device-plugin</param>
|
||||||
|
<param name="parse-version">patch</param>
|
||||||
|
</service>
|
||||||
|
<service name="replace_using_env" mode="buildtime">
|
||||||
|
<param name="file">Dockerfile</param>
|
||||||
|
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||||
|
<param name="var">IMG_PREFIX</param>
|
||||||
|
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||||
|
<param name="var">IMG_REPO</param>
|
||||||
|
<param name="eval">SUPPORT_LEVEL=$(rpm --macros=/root/.rpmmacros -E %support_level)</param>
|
||||||
|
<param name="var">SUPPORT_LEVEL</param>
|
||||||
|
</service>
|
||||||
|
</services>
|
||||||
20
sriov-network-device-plugin/_service
Normal file
20
sriov-network-device-plugin/_service
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<services>
|
||||||
|
<service name="obs_scm">
|
||||||
|
<param name="url">https://github.com/k8snetworkplumbingwg/sriov-network-device-plugin</param>
|
||||||
|
<param name="scm">git</param>
|
||||||
|
<param name="revision">v3.9.0</param>
|
||||||
|
<param name="version">_auto_</param>
|
||||||
|
<param name="versionformat">@PARENT_TAG@</param>
|
||||||
|
<param name="changesgenerate">enable</param>
|
||||||
|
<param name="changesauthor">antonio.alarcon@suse.com</param>
|
||||||
|
<param name="match-tag">v*</param>
|
||||||
|
<param name="versionrewrite-pattern">v(\d+\.\d+\.\d+)</param>
|
||||||
|
<param name="without-version">yes</param>
|
||||||
|
<param name="versionrewrite-replacement">\1</param>
|
||||||
|
</service>
|
||||||
|
<service mode="buildtime" name="tar">
|
||||||
|
<param name="obsinfo">sriov-network-device-plugin.obsinfo</param>
|
||||||
|
</service>
|
||||||
|
<service name="go_modules" />
|
||||||
|
<service mode="buildtime" name="set_version" />
|
||||||
|
</services>
|
||||||
69
sriov-network-device-plugin/sriov-network-device-plugin.spec
Normal file
69
sriov-network-device-plugin/sriov-network-device-plugin.spec
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
#
|
||||||
|
# spec file for package sriov-network-device-plugin
|
||||||
|
#
|
||||||
|
# Copyright (c) 2025 SUSE LLC
|
||||||
|
#
|
||||||
|
# All modifications and additions to the file contributed by third parties
|
||||||
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
|
# upon. The license for this file, and modifications and additions to the
|
||||||
|
# file, is the same license as for the pristine package itself (unless the
|
||||||
|
# license for the pristine package is not an Open Source License, in which
|
||||||
|
# case the license is the MIT License). An "Open Source License" is a
|
||||||
|
# license that conforms to the Open Source Definition (Version 1.9)
|
||||||
|
# published by the Open Source Initiative.
|
||||||
|
|
||||||
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
Name: sriov-network-device-plugin
|
||||||
|
Version: 0
|
||||||
|
Release: 0
|
||||||
|
Summary: Kubernetes device plugin for discovering and advertising SR-IOV available resources in the host
|
||||||
|
License: Apache-2.0
|
||||||
|
URL: https://github.com/k8snetworkplumbingwg/sriov-network-device-plugin
|
||||||
|
Source: %{name}-%{version}.tar
|
||||||
|
Source1: vendor.tar.gz
|
||||||
|
BuildRequires: golang(API) = 1.23
|
||||||
|
ExcludeArch: s390
|
||||||
|
ExcludeArch: %{ix86}
|
||||||
|
|
||||||
|
%description
|
||||||
|
The SR-IOV Network Device Plugin is a Kubernetes device plugin for discovering and advertising networking resources in the form of
|
||||||
|
(i) SR-IOV virtual functions [VFs], (ii) PCI physical functions [PFs] and (iii) Auxiliary network devices (in particular Subfunctions [SFs])
|
||||||
|
which are available on a Kubernetes host.
|
||||||
|
To deploy workloads with SR-IOV resources this plugin needs to work together a CNI meta plugin supporting Device Plugin based network
|
||||||
|
provisioning (e.g., Multus CNI) and a CNI capable of consuming the SR-IOV network device allocated to the Pod (e.g., sriov-cni).
|
||||||
|
|
||||||
|
List of supported SR-IOV devices (not limited to NICs): https://github.com/k8snetworkplumbingwg/sriov-network-device-plugin/blob/main/README.md
|
||||||
|
(select the right version/tag)
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -a1 -n %{name}-%{version} -p1
|
||||||
|
|
||||||
|
%build
|
||||||
|
# Following go-build settings have been taken from upstream Makefile (for the STATIC option, the one set by rancher/ecm hardened
|
||||||
|
# image used as baseline: https://github.com/rancher/image-build-sriov-network-device-plugin/blob/v3.9.0-build20250425/Dockerfile#L18 ):
|
||||||
|
#
|
||||||
|
# - CGO being disabled:
|
||||||
|
%define cgoenabled "0"
|
||||||
|
# - go-build constrain (aka tag) "no_openssl" being set:
|
||||||
|
%define buildgotags "no_openssl"
|
||||||
|
# - go-build to invoke external linker (i.e., gcc's ld) to which "static" option is being passed
|
||||||
|
%define buildldflags "-extldflags '-static'"
|
||||||
|
# - force rebuilding of packages that are already up-to-date
|
||||||
|
#define buildgoflags "-a"
|
||||||
|
CGO_ENABLED=%{cgoenabled} go build -mod=vendor -buildmode=pie -ldflags %{buildldflags} ${buildgoflags} -tags %{buildgotags} -o sriovdp ./cmd/sriovdp
|
||||||
|
|
||||||
|
%install
|
||||||
|
install -D -m0755 sriovdp %{buildroot}%{_bindir}/sriovdp
|
||||||
|
install -D -m0755 images/entrypoint.sh %{buildroot}/entrypoint.sh
|
||||||
|
|
||||||
|
|
||||||
|
%files
|
||||||
|
%license LICENSE
|
||||||
|
%doc README.md
|
||||||
|
%{_bindir}/sriovdp
|
||||||
|
/entrypoint.sh
|
||||||
|
|
||||||
|
%changelog
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#!BuildTag: %%CHART_PREFIX%%sriov-network-operator:%%CHART_MAJOR%%.0.2_up1.5.0-%RELEASE%
|
#!BuildTag: %%CHART_PREFIX%%sriov-network-operator:%%CHART_MAJOR%%.0.3_up1.5.0
|
||||||
#!BuildTag: %%CHART_PREFIX%%sriov-network-operator:%%CHART_MAJOR%%.0.2_up1.5.0
|
#!BuildTag: %%CHART_PREFIX%%sriov-network-operator:%%CHART_MAJOR%%.0.3_up1.5.0-%RELEASE%
|
||||||
annotations:
|
annotations:
|
||||||
catalog.cattle.io/auto-install: sriov-crd=match
|
catalog.cattle.io/auto-install: sriov-crd=match
|
||||||
catalog.cattle.io/experimental: "true"
|
catalog.cattle.io/experimental: "true"
|
||||||
@@ -25,4 +25,4 @@ name: sriov-network-operator
|
|||||||
sources:
|
sources:
|
||||||
- https://github.com/k8snetworkplumbingwg/sriov-network-operator
|
- https://github.com/k8snetworkplumbingwg/sriov-network-operator
|
||||||
type: application
|
type: application
|
||||||
version: "%%CHART_MAJOR%%.0.2+up1.5.0"
|
version: "%%CHART_MAJOR%%.0.3+up1.5.0"
|
||||||
@@ -7,4 +7,18 @@
|
|||||||
<param name="eval">CHART_MAJOR=$(rpm --macros=/root/.rpmmacros -E %{?chart_major})</param>
|
<param name="eval">CHART_MAJOR=$(rpm --macros=/root/.rpmmacros -E %{?chart_major})</param>
|
||||||
<param name="var">CHART_MAJOR</param>
|
<param name="var">CHART_MAJOR</param>
|
||||||
</service>
|
</service>
|
||||||
|
<service name="replace_using_env" mode="buildtime">
|
||||||
|
<param name="file">values.yaml</param>
|
||||||
|
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||||
|
<param name="var">IMG_PREFIX</param>
|
||||||
|
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||||
|
<param name="var">IMG_REPO</param>
|
||||||
|
</service>
|
||||||
|
<service name="replace_using_env" mode="buildtime">
|
||||||
|
<param name="file">charts/sriov-nfd/values.yaml</param>
|
||||||
|
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||||
|
<param name="var">IMG_PREFIX</param>
|
||||||
|
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||||
|
<param name="var">IMG_REPO</param>
|
||||||
|
</service>
|
||||||
</services>
|
</services>
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
image:
|
image:
|
||||||
repository: registry.rancher.com/rancher/hardened-node-feature-discovery
|
repository: "%%IMG_REPO%%/%%IMG_PREFIX%%node-feature-discovery"
|
||||||
# This should be set to 'IfNotPresent' for released version
|
# This should be set to 'IfNotPresent' for released version
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
# tag, if defined will use the given image tag, else Chart.AppVersion will be used
|
# tag, if defined will use the given image tag, else Chart.AppVersion will be used
|
||||||
tag: v0.15.7-build20250425
|
tag: v0.15.7
|
||||||
imagePullSecrets: []
|
imagePullSecrets: []
|
||||||
|
|
||||||
nameOverride: ""
|
nameOverride: ""
|
||||||
|
|||||||
@@ -101,26 +101,26 @@ supportedExtraNICs: []
|
|||||||
# Image URIs for sriov-network-operator components
|
# Image URIs for sriov-network-operator components
|
||||||
images:
|
images:
|
||||||
operator:
|
operator:
|
||||||
repository: registry.suse.com/rancher/hardened-sriov-network-operator
|
repository: "%%IMG_REPO%%/%%IMG_PREFIX%%sriov-network-manager"
|
||||||
tag: v1.5.0-build20250425
|
tag: v1.5.0
|
||||||
sriovConfigDaemon:
|
sriovConfigDaemon:
|
||||||
repository: registry.suse.com/rancher/hardened-sriov-network-config-daemon
|
repository: "%%IMG_REPO%%/%%IMG_PREFIX%%sriov-network-config-daemon"
|
||||||
tag: v1.5.0-build20250425
|
tag: v1.5.0
|
||||||
sriovCni:
|
sriovCni:
|
||||||
repository: registry.suse.com/rancher/hardened-sriov-cni
|
repository: "%%IMG_REPO%%/%%IMG_PREFIX%%sriov-cni"
|
||||||
tag: v2.9.0-build20250425
|
tag: v2.9.0
|
||||||
ibSriovCni:
|
ibSriovCni:
|
||||||
repository: registry.suse.com/rancher/hardened-ib-sriov-cni
|
repository: "%%IMG_REPO%%/%%IMG_PREFIX%%ib-sriov-cni"
|
||||||
tag: v1.2.1-build20250425
|
tag: v1.2.1
|
||||||
sriovDevicePlugin:
|
sriovDevicePlugin:
|
||||||
repository: registry.suse.com/rancher/hardened-sriov-network-device-plugin
|
repository: "%%IMG_REPO%%/%%IMG_PREFIX%%sriov-network-device-plugin"
|
||||||
tag: v3.9.0-build20250425
|
tag: v3.9.0
|
||||||
resourcesInjector:
|
resourcesInjector:
|
||||||
repository: registry.suse.com/rancher/hardened-sriov-network-resources-injector
|
repository: "%%IMG_REPO%%/%%IMG_PREFIX%%network-resources-injector"
|
||||||
tag: v1.7.1-build20250425
|
tag: v1.7.1
|
||||||
webhook:
|
webhook:
|
||||||
repository: registry.suse.com/rancher/hardened-sriov-network-webhook
|
repository: "%%IMG_REPO%%/%%IMG_PREFIX%%sriov-network-webhook"
|
||||||
tag: v1.5.0-build20250425
|
tag: v1.5.0
|
||||||
imagePullSecrets: []
|
imagePullSecrets: []
|
||||||
extraDeploy: []
|
extraDeploy: []
|
||||||
global:
|
global:
|
||||||
|
|||||||
33
sriov-network-operator-config-daemon-image/Dockerfile
Normal file
33
sriov-network-operator-config-daemon-image/Dockerfile
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#!BuildTag: %%IMG_PREFIX%%sriov-network-config-daemon:v%%sriov-network-config-daemon_version%%
|
||||||
|
#!BuildTag: %%IMG_PREFIX%%sriov-network-config-daemon:v%%sriov-network-config-daemon_version%%-%RELEASE%
|
||||||
|
ARG SLE_VERSION
|
||||||
|
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
|
||||||
|
|
||||||
|
FROM registry.suse.com/bci/bci-base:$SLE_VERSION AS base
|
||||||
|
COPY --from=micro / /installroot/
|
||||||
|
RUN zypper --installroot /installroot --non-interactive install --no-recommends sriov-network-operator-config-dm hwdata mstflint; \
|
||||||
|
zypper -n clean; \
|
||||||
|
rm -rf /var/log/*
|
||||||
|
|
||||||
|
FROM micro AS final
|
||||||
|
# Define labels according to https://en.opensuse.org/Building_derived_containers
|
||||||
|
# labelprefix=com.suse.application.sriov-network-config-daemon
|
||||||
|
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
|
||||||
|
LABEL org.opencontainers.image.title="SLE sriov-network-config-daemon Container Image"
|
||||||
|
LABEL org.opencontainers.image.description="sriov-network-config-daemon based on the SLE Base Container Image."
|
||||||
|
LABEL org.opencontainers.image.version="%%sriov-network-config-daemon_version%%"
|
||||||
|
LABEL org.opencontainers.image.url="https://www.suse.com/products/server/"
|
||||||
|
LABEL org.opencontainers.image.created="%BUILDTIME%"
|
||||||
|
LABEL org.opencontainers.image.vendor="SUSE LLC"
|
||||||
|
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%sriov-network-config-daemon:%%sriov-network-config-daemon_version%%-%RELEASE%"
|
||||||
|
LABEL org.openbuildservice.disturl="%DISTURL%"
|
||||||
|
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
|
||||||
|
LABEL com.suse.eula="SUSE Combined EULA February 2024"
|
||||||
|
LABEL com.suse.lifecycle-url="https://www.suse.com/lifecycle"
|
||||||
|
LABEL com.suse.image-type="application"
|
||||||
|
LABEL com.suse.release-stage="released"
|
||||||
|
# endlabelprefix
|
||||||
|
|
||||||
|
COPY --from=base /installroot /
|
||||||
|
ENTRYPOINT ["/usr/bin/sriov-network-config-daemon"]
|
||||||
19
sriov-network-operator-config-daemon-image/_service
Normal file
19
sriov-network-operator-config-daemon-image/_service
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<services>
|
||||||
|
<service name="kiwi_metainfo_helper" mode="buildtime"/>
|
||||||
|
<service name="docker_label_helper" mode="buildtime"/>
|
||||||
|
<service name="replace_using_package_version" mode="buildtime">
|
||||||
|
<param name="file">Dockerfile</param>
|
||||||
|
<param name="regex">%%sriov-network-config-daemon_version%%</param>
|
||||||
|
<param name="package">sriov-network-operator-config-dm</param>
|
||||||
|
<param name="parse-version">patch</param>
|
||||||
|
</service>
|
||||||
|
<service name="replace_using_env" mode="buildtime">
|
||||||
|
<param name="file">Dockerfile</param>
|
||||||
|
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||||
|
<param name="var">IMG_PREFIX</param>
|
||||||
|
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||||
|
<param name="var">IMG_REPO</param>
|
||||||
|
<param name="eval">SUPPORT_LEVEL=$(rpm --macros=/root/.rpmmacros -E %support_level)</param>
|
||||||
|
<param name="var">SUPPORT_LEVEL</param>
|
||||||
|
</service>
|
||||||
|
</services>
|
||||||
33
sriov-network-operator-manager-image/Dockerfile
Normal file
33
sriov-network-operator-manager-image/Dockerfile
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#!BuildTag: %%IMG_PREFIX%%sriov-network-manager:v%%sriov-network-manager_version%%
|
||||||
|
#!BuildTag: %%IMG_PREFIX%%sriov-network-manager:v%%sriov-network-manager_version%%-%RELEASE%
|
||||||
|
ARG SLE_VERSION
|
||||||
|
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
|
||||||
|
|
||||||
|
FROM registry.suse.com/bci/bci-base:$SLE_VERSION AS base
|
||||||
|
COPY --from=micro / /installroot/
|
||||||
|
RUN zypper --installroot /installroot --non-interactive install --no-recommends sriov-network-operator-manager; \
|
||||||
|
zypper -n clean; \
|
||||||
|
rm -rf /var/log/*
|
||||||
|
|
||||||
|
FROM micro AS final
|
||||||
|
# Define labels according to https://en.opensuse.org/Building_derived_containers
|
||||||
|
# labelprefix=com.suse.application.sriov-network-manager
|
||||||
|
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
|
||||||
|
LABEL org.opencontainers.image.title="SLE sriov-network-manager Container Image"
|
||||||
|
LABEL org.opencontainers.image.description="sriov-network-manager based on the SLE Base Container Image."
|
||||||
|
LABEL org.opencontainers.image.version="%%sriov-network-manager_version%%"
|
||||||
|
LABEL org.opencontainers.image.url="https://www.suse.com/products/server/"
|
||||||
|
LABEL org.opencontainers.image.created="%BUILDTIME%"
|
||||||
|
LABEL org.opencontainers.image.vendor="SUSE LLC"
|
||||||
|
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%sriov-network-manager:%%sriov-network-manager_version%%-%RELEASE%"
|
||||||
|
LABEL org.openbuildservice.disturl="%DISTURL%"
|
||||||
|
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
|
||||||
|
LABEL com.suse.eula="SUSE Combined EULA February 2024"
|
||||||
|
LABEL com.suse.lifecycle-url="https://www.suse.com/lifecycle"
|
||||||
|
LABEL com.suse.image-type="application"
|
||||||
|
LABEL com.suse.release-stage="released"
|
||||||
|
# endlabelprefix
|
||||||
|
|
||||||
|
COPY --from=base /installroot /
|
||||||
|
ENTRYPOINT ["/usr/bin/sriov-network-operator"]
|
||||||
19
sriov-network-operator-manager-image/_service
Normal file
19
sriov-network-operator-manager-image/_service
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<services>
|
||||||
|
<service mode="buildtime" name="kiwi_metainfo_helper"/>
|
||||||
|
<service mode="buildtime" name="docker_label_helper"/>
|
||||||
|
<service name="replace_using_package_version" mode="buildtime">
|
||||||
|
<param name="file">Dockerfile</param>
|
||||||
|
<param name="regex">%%sriov-network-manager_version%%</param>
|
||||||
|
<param name="package">sriov-network-operator-manager</param>
|
||||||
|
<param name="parse-version">patch</param>
|
||||||
|
</service>
|
||||||
|
<service name="replace_using_env" mode="buildtime">
|
||||||
|
<param name="file">Dockerfile</param>
|
||||||
|
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||||
|
<param name="var">IMG_PREFIX</param>
|
||||||
|
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||||
|
<param name="var">IMG_REPO</param>
|
||||||
|
<param name="eval">SUPPORT_LEVEL=$(rpm --macros=/root/.rpmmacros -E %support_level)</param>
|
||||||
|
<param name="var">SUPPORT_LEVEL</param>
|
||||||
|
</service>
|
||||||
|
</services>
|
||||||
34
sriov-network-operator-webhook-image/Dockerfile
Normal file
34
sriov-network-operator-webhook-image/Dockerfile
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#!BuildTag: %%IMG_PREFIX%%sriov-network-webhook:v%%sriov-network-webhook_version%%
|
||||||
|
#!BuildTag: %%IMG_PREFIX%%sriov-network-webhook:v%%sriov-network-webhook_version%%-%RELEASE%
|
||||||
|
ARG SLE_VERSION
|
||||||
|
FROM registry.suse.com/bci/bci-micro:$SLE_VERSION AS micro
|
||||||
|
|
||||||
|
FROM registry.suse.com/bci/bci-base:$SLE_VERSION AS base
|
||||||
|
COPY --from=micro / /installroot/
|
||||||
|
RUN zypper --installroot /installroot --non-interactive install --no-recommends sriov-network-operator-webhook; \
|
||||||
|
zypper -n clean; \
|
||||||
|
rm -rf /var/log/*
|
||||||
|
|
||||||
|
FROM micro AS final
|
||||||
|
# Define labels according to https://en.opensuse.org/Building_derived_containers
|
||||||
|
# labelprefix=com.suse.application.sriov-network-webhook
|
||||||
|
LABEL org.opencontainers.image.authors="SUSE LLC (https://www.suse.com/)"
|
||||||
|
LABEL org.opencontainers.image.title="SLE sriov-network-webhook Container Image"
|
||||||
|
LABEL org.opencontainers.image.description="sriov-network-webhook based on the SLE Base Container Image."
|
||||||
|
LABEL org.opencontainers.image.version="%%sriov-network-webhook_version%%"
|
||||||
|
LABEL org.opencontainers.image.url="https://www.suse.com/products/server/"
|
||||||
|
LABEL org.opencontainers.image.created="%BUILDTIME%"
|
||||||
|
LABEL org.opencontainers.image.vendor="SUSE LLC"
|
||||||
|
LABEL org.opensuse.reference="%%IMG_REPO%%/%%IMG_PREFIX%%sriov-network-webhook:%%sriov-network-webhook_version%%-%RELEASE%"
|
||||||
|
LABEL org.openbuildservice.disturl="%DISTURL%"
|
||||||
|
LABEL com.suse.supportlevel="%%SUPPORT_LEVEL%%"
|
||||||
|
LABEL com.suse.eula="SUSE Combined EULA February 2024"
|
||||||
|
LABEL com.suse.lifecycle-url="https://www.suse.com/lifecycle"
|
||||||
|
LABEL com.suse.image-type="application"
|
||||||
|
LABEL com.suse.release-stage="released"
|
||||||
|
# endlabelprefix
|
||||||
|
|
||||||
|
USER 1001
|
||||||
|
COPY --from=base /installroot /
|
||||||
|
CMD ["/usr/bin/webhook"]
|
||||||
19
sriov-network-operator-webhook-image/_service
Normal file
19
sriov-network-operator-webhook-image/_service
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<services>
|
||||||
|
<service name="kiwi_metainfo_helper" mode="buildtime"/>
|
||||||
|
<service name="docker_label_helper" mode="buildtime"/>
|
||||||
|
<service name="replace_using_package_version" mode="buildtime">
|
||||||
|
<param name="file">Dockerfile</param>
|
||||||
|
<param name="regex">%%sriov-network-webhook_version%%</param>
|
||||||
|
<param name="package">sriov-network-operator-webhook</param>
|
||||||
|
<param name="parse-version">patch</param>
|
||||||
|
</service>
|
||||||
|
<service name="replace_using_env" mode="buildtime">
|
||||||
|
<param name="file">Dockerfile</param>
|
||||||
|
<param name="eval">IMG_PREFIX=$(rpm --macros=/root/.rpmmacros -E %{?img_prefix})</param>
|
||||||
|
<param name="var">IMG_PREFIX</param>
|
||||||
|
<param name="eval">IMG_REPO=$(rpm --macros=/root/.rpmmacros -E %img_repo)</param>
|
||||||
|
<param name="var">IMG_REPO</param>
|
||||||
|
<param name="eval">SUPPORT_LEVEL=$(rpm --macros=/root/.rpmmacros -E %support_level)</param>
|
||||||
|
<param name="var">SUPPORT_LEVEL</param>
|
||||||
|
</service>
|
||||||
|
</services>
|
||||||
20
sriov-network-operator/_service
Normal file
20
sriov-network-operator/_service
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<services>
|
||||||
|
<service name="obs_scm">
|
||||||
|
<param name="url">https://github.com/k8snetworkplumbingwg/sriov-network-operator</param>
|
||||||
|
<param name="scm">git</param>
|
||||||
|
<param name="revision">v1.5.0</param>
|
||||||
|
<param name="version">_auto_</param>
|
||||||
|
<param name="versionformat">@PARENT_TAG@</param>
|
||||||
|
<param name="changesgenerate">enable</param>
|
||||||
|
<param name="changesauthor">antonio.alarcon@suse.com</param>
|
||||||
|
<param name="match-tag">v*</param>
|
||||||
|
<param name="versionrewrite-pattern">v(\d+\.\d+\.\d+)</param>
|
||||||
|
<param name="without-version">yes</param>
|
||||||
|
<param name="versionrewrite-replacement">\1</param>
|
||||||
|
</service>
|
||||||
|
<service mode="buildtime" name="tar">
|
||||||
|
<param name="obsinfo">sriov-network-operator.obsinfo</param>
|
||||||
|
</service>
|
||||||
|
<service name="go_modules" />
|
||||||
|
<service mode="buildtime" name="set_version" />
|
||||||
|
</services>
|
||||||
116
sriov-network-operator/sriov-network-operator.spec
Normal file
116
sriov-network-operator/sriov-network-operator.spec
Normal file
@@ -0,0 +1,116 @@
|
|||||||
|
#
|
||||||
|
# spec file for package sriov-network-operator
|
||||||
|
#
|
||||||
|
# Copyright (c) 2025 SUSE LLC
|
||||||
|
#
|
||||||
|
# All modifications and additions to the file contributed by third parties
|
||||||
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
|
# upon. The license for this file, and modifications and additions to the
|
||||||
|
# file, is the same license as for the pristine package itself (unless the
|
||||||
|
# license for the pristine package is not an Open Source License, in which
|
||||||
|
# case the license is the MIT License). An "Open Source License" is a
|
||||||
|
# license that conforms to the Open Source Definition (Version 1.9)
|
||||||
|
# published by the Open Source Initiative.
|
||||||
|
|
||||||
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
Name: sriov-network-operator
|
||||||
|
Version: 1.5.0
|
||||||
|
Release: 0
|
||||||
|
Summary: Implements a Kubernetes operator for handling SRIOV VF resources
|
||||||
|
License: Apache-2.0
|
||||||
|
URL: https://github.com/k8snetworkplumbingwg/sriov-network-operator
|
||||||
|
Source: sriov-network-operator-%{version}.tar
|
||||||
|
Source1: vendor.tar.gz
|
||||||
|
BuildRequires: golang(API) = 1.22
|
||||||
|
ExcludeArch: s390
|
||||||
|
ExcludeArch: %{ix86}
|
||||||
|
|
||||||
|
%description
|
||||||
|
The SRIOV Network Operator implements a Kubernetes operator for handling SRIOV VF resources. It helps users to
|
||||||
|
provision and configure SR-IOV CNI plugins and SR-IOV Device plugin in a kubernetes cluster.
|
||||||
|
|
||||||
|
Handling (i.e., assigning, removing) SRIOV Virtual Functions (VF) across workloads orchestrated by a kubernetes
|
||||||
|
cluster requires different components to be provisioned and configured accordingly; the SRIOV Network
|
||||||
|
Operator takes care of deploying and coordinating all those required components, providing an elegant API to
|
||||||
|
simplify the process.
|
||||||
|
|
||||||
|
%package common
|
||||||
|
Summary: SRIOV Network Operator Common
|
||||||
|
Group: System/Management
|
||||||
|
|
||||||
|
%description common
|
||||||
|
The SRIOV Network Operator implements a Kubernetes operator for handling SRIOV VF resources.
|
||||||
|
This subpackage is required to take ownership of the bindata files shared across subpackages.
|
||||||
|
|
||||||
|
%package manager
|
||||||
|
Summary: SRIOV Network Operator Manager
|
||||||
|
Group: System/Management
|
||||||
|
Requires: %{name}-common = %{version}
|
||||||
|
|
||||||
|
%description manager
|
||||||
|
The SRIOV Network Operator implements a Kubernetes operator for handling SRIOV VF resources.
|
||||||
|
This subpackage provides the controllers' manager and the config-cleanup binaries.
|
||||||
|
|
||||||
|
%package config-dm
|
||||||
|
Summary: SRIOV Network Operator Config Daemon
|
||||||
|
Group: System/Management
|
||||||
|
Requires: %{name}-common = %{version}
|
||||||
|
|
||||||
|
%description config-dm
|
||||||
|
The SRIOV Network Operator implements a Kubernetes operator for handling SRIOV VF resources.
|
||||||
|
This subpackage provides the config-daemon binary.
|
||||||
|
|
||||||
|
%package webhook
|
||||||
|
Summary: SRIOV Network Operator Webhook
|
||||||
|
Group: System/Management
|
||||||
|
|
||||||
|
%description webhook
|
||||||
|
The SRIOV Network Operator implements a Kubernetes operator for handling SRIOV VF resources.
|
||||||
|
This subpackage provides the webhook binary.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -a1 -n sriov-network-operator-%{version} -p1
|
||||||
|
|
||||||
|
%build
|
||||||
|
# CGO is disable by default in upstream Makefile
|
||||||
|
%define cgoenabled "0"
|
||||||
|
%define buildldflags "-X github.com/k8snetworkplumbingwg/sriov-network-operator/pkg/version.Raw=%{version} -s -w"
|
||||||
|
CGO_ENABLED=%{cgoenabled} go build -mod=vendor -buildmode=pie -trimpath -ldflags %{buildldflags} -o manager main.go
|
||||||
|
CGO_ENABLED=%{cgoenabled} go build -mod=vendor -buildmode=pie -trimpath -ldflags %{buildldflags} -o sriov-network-operator-config-cleanup ./cmd/sriov-network-operator-config-cleanup
|
||||||
|
CGO_ENABLED=%{cgoenabled} go build -mod=vendor -buildmode=pie -trimpath -ldflags %{buildldflags} -o sriov-network-config-daemon ./cmd/sriov-network-config-daemon
|
||||||
|
CGO_ENABLED=%{cgoenabled} go build -mod=vendor -buildmode=pie -trimpath -ldflags %{buildldflags} -o webhook ./cmd/webhook
|
||||||
|
|
||||||
|
%install
|
||||||
|
install -D -m0755 manager %{buildroot}%{_bindir}/sriov-network-operator
|
||||||
|
install -D -m0755 sriov-network-operator-config-cleanup %{buildroot}%{_bindir}/sriov-network-operator-config-cleanup
|
||||||
|
install -D -m0755 sriov-network-config-daemon %{buildroot}%{_bindir}/sriov-network-config-daemon
|
||||||
|
install -D -m0755 webhook %{buildroot}%{_bindir}/webhook
|
||||||
|
mkdir -p %{buildroot}/bindata
|
||||||
|
cp -aR bindata/* %{buildroot}/bindata/
|
||||||
|
chmod 755 %{buildroot}/bindata/scripts/*
|
||||||
|
|
||||||
|
%files common
|
||||||
|
%license LICENSE
|
||||||
|
%doc README.md
|
||||||
|
/bindata
|
||||||
|
|
||||||
|
%files manager
|
||||||
|
%license LICENSE
|
||||||
|
%doc README.md
|
||||||
|
%{_bindir}/sriov-network-operator
|
||||||
|
%{_bindir}/sriov-network-operator-config-cleanup
|
||||||
|
|
||||||
|
%files config-dm
|
||||||
|
%license LICENSE
|
||||||
|
%doc README.md
|
||||||
|
%{_bindir}/sriov-network-config-daemon
|
||||||
|
|
||||||
|
%files webhook
|
||||||
|
%license LICENSE
|
||||||
|
%doc README.md
|
||||||
|
%{_bindir}/webhook
|
||||||
|
|
||||||
|
%changelog
|
||||||
Reference in New Issue
Block a user