From f84bd17e1b10ddf796ca365b379fbf168354a9b7 Mon Sep 17 00:00:00 2001 From: Ben Vincent Date: Fri, 27 Dec 2024 22:55:38 +1100 Subject: [PATCH] feat: add cni-plugins - add 1.6.1 cni-plugins - ignore the scripts folder in make list --- Makefile | 2 +- rpms/cni-plugins/1.6.1/release | 1 + rpms/cni-plugins/Dockerfile | 25 +++++ rpms/cni-plugins/nfpm.yaml | 137 +++++++++++++++++++++++++ rpms/cni-plugins/scripts/preinstall.sh | 2 + 5 files changed, 166 insertions(+), 1 deletion(-) create mode 100644 rpms/cni-plugins/1.6.1/release create mode 100644 rpms/cni-plugins/Dockerfile create mode 100644 rpms/cni-plugins/nfpm.yaml create mode 100755 rpms/cni-plugins/scripts/preinstall.sh diff --git a/Makefile b/Makefile index 820f586..5b0a05e 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ RPMS_DIR := $(ROOT_DIR)/rpms REPO_OPTIONS := --disablerepo=* --enablerepo=unkin # Automatically find all package/version directories -PACKAGES := $(shell find $(RPMS_DIR) -mindepth 2 -maxdepth 2 -type d | sed "s|$(RPMS_DIR)/||") +PACKAGES := $(shell find $(RPMS_DIR) -mindepth 2 -maxdepth 2 -type d | sed "s|$(RPMS_DIR)/||" | grep -v "/scripts") # Default target to build all packages and versions .PHONY: all list cache build clean diff --git a/rpms/cni-plugins/1.6.1/release b/rpms/cni-plugins/1.6.1/release new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/rpms/cni-plugins/1.6.1/release @@ -0,0 +1 @@ +1 diff --git a/rpms/cni-plugins/Dockerfile b/rpms/cni-plugins/Dockerfile new file mode 100644 index 0000000..fd8c6ea --- /dev/null +++ b/rpms/cni-plugins/Dockerfile @@ -0,0 +1,25 @@ +# Start with the AlmaLinux 8.10 base image +FROM git.query.consul/unkin/almalinux8-buildagent:latest + +# Create output directory for RPMs +RUN mkdir -p /app/dist + +# Set working directory +WORKDIR /app + +ARG PACKAGE_RELEASE +ENV PACKAGE_RELEASE=${PACKAGE_RELEASE} +ARG PACKAGE_VERSION +ENV PACKAGE_VERSION=${PACKAGE_VERSION} + +# Copy nfpm.yaml from the context into the container +COPY nfpm.yaml /app/nfpm.yaml +COPY scripts /app/scripts + +# Download the required files +RUN dnf install -y unzip && \ + wget -O /app/cni-plugins-linux-amd64.tgz https://github.com/containernetworking/plugins/releases/download/v${PACKAGE_VERSION}/cni-plugins-linux-amd64-v${PACKAGE_VERSION}.tgz && \ + tar xf cni-plugins-linux-amd64.tgz + +# Default command to build RPMs +CMD nfpm pkg --config /app/nfpm.yaml --target /app/dist --packager rpm diff --git a/rpms/cni-plugins/nfpm.yaml b/rpms/cni-plugins/nfpm.yaml new file mode 100644 index 0000000..e1c9870 --- /dev/null +++ b/rpms/cni-plugins/nfpm.yaml @@ -0,0 +1,137 @@ +# nfpm.yaml + +name: cni-plugins +version: ${PACKAGE_VERSION} +release: ${PACKAGE_RELEASE} +arch: amd64 +platform: linux +section: default +priority: extra +description: "Some reference and example networking plugins, maintained by the CNI team." + +maintainer: ContainerNetworking +homepage: https://github.com/containernetworking/plugins +license: Apache-2.0 + +disable_globbing: false + +replaces: + - cni-plugins + +# Files to include in the package +contents: + - src: /app/bandwidth + dst: /opt/cni/bin/bandwidth + file_info: + mode: 0755 + owner: root + group: root + - src: /app/bridge + dst: /opt/cni/bin/bridge + file_info: + mode: 0755 + owner: root + group: root + - src: /app/dhcp + dst: /opt/cni/bin/dhcp + file_info: + mode: 0755 + owner: root + group: root + - src: /app/dummy + dst: /opt/cni/bin/dummy + file_info: + mode: 0755 + owner: root + group: root + - src: /app/firewall + dst: /opt/cni/bin/firewall + file_info: + mode: 0755 + owner: root + group: root + - src: /app/host-device + dst: /opt/cni/bin/host-device + file_info: + mode: 0755 + owner: root + group: root + - src: /app/host-local + dst: /opt/cni/bin/host-local + file_info: + mode: 0755 + owner: root + group: root + - src: /app/ipvlan + dst: /opt/cni/bin/ipvlan + file_info: + mode: 0755 + owner: root + group: root + - src: /app/loopback + dst: /opt/cni/bin/loopback + file_info: + mode: 0755 + owner: root + group: root + - src: /app/macvlan + dst: /opt/cni/bin/macvlan + file_info: + mode: 0755 + owner: root + group: root + - src: /app/portmap + dst: /opt/cni/bin/portmap + file_info: + mode: 0755 + owner: root + group: root + - src: /app/ptp + dst: /opt/cni/bin/ptp + file_info: + mode: 0755 + owner: root + group: root + - src: /app/sbr + dst: /opt/cni/bin/sbr + file_info: + mode: 0755 + owner: root + group: root + - src: /app/static + dst: /opt/cni/bin/static + file_info: + mode: 0755 + owner: root + group: root + - src: /app/tap + dst: /opt/cni/bin/tap + file_info: + mode: 0755 + owner: root + group: root + - src: /app/tuning + dst: /opt/cni/bin/tuning + file_info: + mode: 0755 + owner: root + group: root + - src: /app/vlan + dst: /opt/cni/bin/vlan + file_info: + mode: 0755 + owner: root + group: root + - src: /app/vrf + dst: /opt/cni/bin/vrf + file_info: + mode: 0755 + owner: root + group: root + +# Scripts to run during installation/removal (optional) +scripts: + preinstall: ./scripts/preinstall.sh +# postinstall: ./scripts/postinstall.sh +# preremove: ./scripts/preremove.sh +# postremove: ./scripts/postremove.sh diff --git a/rpms/cni-plugins/scripts/preinstall.sh b/rpms/cni-plugins/scripts/preinstall.sh new file mode 100755 index 0000000..945345a --- /dev/null +++ b/rpms/cni-plugins/scripts/preinstall.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +mkdir -p /opt/cni/bin -- 2.47.3