From ed1a0d3394b7808136ad66b3b2580a93f3e5fdda Mon Sep 17 00:00:00 2001 From: Samuel Bernardo Date: Tue, 11 Jun 2024 22:47:14 +0100 Subject: Add cri-o and cni-plugins latest releases Signed-off-by: Samuel Bernardo --- app-containers/cni-plugins/Manifest | 4 + .../cni-plugins/cni-plugins-1.5.0.ebuild | 37 ++++++++ app-containers/cni-plugins/files/cni-dhcp.initd | 20 ++++ app-containers/cni-plugins/metadata.xml | 11 +++ app-containers/cri-o/Manifest | 7 ++ app-containers/cri-o/cri-o-1.29.5.ebuild | 103 +++++++++++++++++++++ app-containers/cri-o/cri-o-1.30.2.ebuild | 103 +++++++++++++++++++++ app-containers/cri-o/files/cri-o.logrotated | 7 ++ app-containers/cri-o/files/crio.initd | 35 +++++++ app-containers/cri-o/metadata.xml | 31 +++++++ 10 files changed, 358 insertions(+) create mode 100644 app-containers/cni-plugins/Manifest create mode 100644 app-containers/cni-plugins/cni-plugins-1.5.0.ebuild create mode 100644 app-containers/cni-plugins/files/cni-dhcp.initd create mode 100644 app-containers/cni-plugins/metadata.xml create mode 100644 app-containers/cri-o/Manifest create mode 100644 app-containers/cri-o/cri-o-1.29.5.ebuild create mode 100644 app-containers/cri-o/cri-o-1.30.2.ebuild create mode 100644 app-containers/cri-o/files/cri-o.logrotated create mode 100644 app-containers/cri-o/files/crio.initd create mode 100644 app-containers/cri-o/metadata.xml diff --git a/app-containers/cni-plugins/Manifest b/app-containers/cni-plugins/Manifest new file mode 100644 index 0000000..dc2a74f --- /dev/null +++ b/app-containers/cni-plugins/Manifest @@ -0,0 +1,4 @@ +AUX cni-dhcp.initd 376 BLAKE2B 5fe40f28773ffbb12416b40e3813578d28787e9ee26ec4a62b2d3e834920f43fedd0bc985bb412c9576c438367429c835b6099f78f017932b6cdff9341e3f356 SHA512 3475f7c6966b9afac6be52c705286b235a59847748aad5c602162589d4ee1193acffc5965c9130c311e318d06f62a3930d5eb1a70b118a63270f4241f8c4fce8 +DIST cni-plugins-1.5.0.tar.gz 3805080 BLAKE2B b1a25f1563426163f54caa13b55dc480a1f6f8de3cf40c566e7e0a212482d2f2bd46d6e180879ec9a54ba0f6e0d3167437cdb06d3491b784b7cb22107f8471b3 SHA512 cbe5ed422c9992261299d9b012d42402f0e824e39a867a88cf02df5b24de4339325b4c9ae152ae047712a71e08e1ae6b85491e3d4594a647fd8f46c1816ec9e7 +EBUILD cni-plugins-1.5.0.ebuild 1119 BLAKE2B 7ad07da26f08d90af8d424a1f41bd95578f8a83436ea26728b7c0061e8846524d8c1fdd7684b07ba949d4318233ceefd41ba868c667be5d385a439530bcd748b SHA512 ae8f72f9c447d393209676d2ee21743b3602fa933a73f3dca0de5d6dfefa6c956563bb385f051fc9be335b46d0297ab908e58b485916c95d9814bb4add7958e2 +MISC metadata.xml 351 BLAKE2B 3565fe13764f828aed1288724a2939be57e523e0d0a9ccf3c091715e6f1e102155a7fa28191a3c87d669d51a0fa087a89587d83fe6c4747d5d9b31da11c1578c SHA512 6cfe3058d20387245c2f4823c7629d464115783e3c9ed1e45769d6e13f2f35f94656c66c0b1572f8eb229e6bf43510dbc35d117d6a3379e15b5b6ababc077856 diff --git a/app-containers/cni-plugins/cni-plugins-1.5.0.ebuild b/app-containers/cni-plugins/cni-plugins-1.5.0.ebuild new file mode 100644 index 0000000..719d96e --- /dev/null +++ b/app-containers/cni-plugins/cni-plugins-1.5.0.ebuild @@ -0,0 +1,37 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +inherit go-module linux-info systemd + +DESCRIPTION="Standard networking plugins for container networking" +HOMEPAGE="https://github.com/containernetworking/plugins" +SRC_URI="https://github.com/containernetworking/plugins/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv" +IUSE="hardened" + +RDEPEND="net-firewall/iptables" + +CONFIG_CHECK="~BRIDGE_VLAN_FILTERING ~NETFILTER_XT_MATCH_COMMENT + ~NETFILTER_XT_MATCH_MULTIPORT" + +S="${WORKDIR}/plugins-${PV}" + +src_compile() { + CGO_LDFLAGS="$(usex hardened '-fno-PIC ' '')" ./build_linux.sh || die +} + +src_install() { + exeinto /opt/cni/bin + doexe bin/* + dodoc README.md + local i + for i in plugins/{meta/{bandwidth,firewall,flannel,portmap,sbr,tuning},main/{bridge,host-device,ipvlan,loopback,macvlan,ptp,vlan},ipam/{dhcp,host-local,static},sample}; do + newdoc README.md ${i##*/}.README.md + done + systemd_dounit plugins/ipam/dhcp/systemd/cni-dhcp.{service,socket} + newinitd "${FILESDIR}"/cni-dhcp.initd cni-dhcp +} diff --git a/app-containers/cni-plugins/files/cni-dhcp.initd b/app-containers/cni-plugins/files/cni-dhcp.initd new file mode 100644 index 0000000..26b838c --- /dev/null +++ b/app-containers/cni-plugins/files/cni-dhcp.initd @@ -0,0 +1,20 @@ +#!/sbin/openrc-run + +name="CNI-DHCP" +description="virtual dhcp server for containers" +command="/opt/cni/bin/dhcp" +command_args="daemon" +command_background=true +pidfile="/run/${RC_SVCNAME}.pid" + +depend() { + need net +} + +stop_post() { + if [ -e /run/cni/dhcp.sock ]; then + ebegin "Cleaning socket for ${name}" + rm -f /run/cni/dhcp.sock + eend $? "Failed to cleanup socket" + fi +} diff --git a/app-containers/cni-plugins/metadata.xml b/app-containers/cni-plugins/metadata.xml new file mode 100644 index 0000000..8359d93 --- /dev/null +++ b/app-containers/cni-plugins/metadata.xml @@ -0,0 +1,11 @@ + + + + + williamh@gentoo.org + William Hubbs + + + containernetworking/plugins + + diff --git a/app-containers/cri-o/Manifest b/app-containers/cri-o/Manifest new file mode 100644 index 0000000..189bf82 --- /dev/null +++ b/app-containers/cri-o/Manifest @@ -0,0 +1,7 @@ +AUX cri-o.logrotated 81 BLAKE2B f17d96920c3e9bbfe68a38fcae49be999c0edcea085ebbc1f09585284c5b7930c185d5cd0ef6c2f7de5db2a6af80355518628a050c1cb0639ccf3b53c6c338da SHA512 1115228546a696eeebeb6d4b3e5c3152af0c99a2559097fc5829d8b416d979c457b4b1789e0120054babf57f585d3f63cbe49949d40417ae7aab613184bf4516 +AUX crio.initd 846 BLAKE2B 844400d3cd706d4f78616edb3c8a50a9819ee21aecc7fc33f7d3d00871fde86b59e4b604ccc7cdb0058b10ccd28277f19dbdce34c83b2529c14e063126318617 SHA512 29561e95398975748236217bbd9df64997f6e3de6c0555d007306bd0535895a648368385a13079eb7d52c06249a91980523a73b6563e86d0575d9cd9c3fa4ee9 +DIST cri-o-1.29.5.tar.gz 21226353 BLAKE2B 091b4e6791db12c4bff4c24e0728df34714d1ab16f971a5841f89b9d9256a040d349d84335629b5cbc2d83efe3af694c8c0e6bad1cdb31210d13dfaa17b3ad28 SHA512 f5c47adddbd0a5bc39367bb4701c857f2e7cc24296a36d9a319c57d91ee48fb52c243afe4fb4bbe09f3f0e3f8e85f7010548cb711c1bd8ab44cdae907b5f5a7a +DIST cri-o-1.30.2.tar.gz 19638681 BLAKE2B a495270f9ba3c5039e6911dad6fb4d1e3f16178e54d1d506d749aed3be78261f1b7ffb2ac93a6393bd83652824caeb52c452f3c7fcff90882dcc091eb9ebd001 SHA512 f9aeffc68a2550bb4d637f410ee2d4e4590aada44d3ac217682e0099065ae1e052f6d4154ed008d48f4463045cf587c7d312f315acc1c6f2062ccd51c979584d +EBUILD cri-o-1.29.5.ebuild 2789 BLAKE2B 819e1afc76e7ff82526b5fa20a47d3d675068a958f457d87cd33ff56d3436624c3aae37cf13a398b7fefdbcdac20054a12813e314e0f3dea3bab2ae2e3ce97d8 SHA512 1856cba7b8e48f99a93755b8da878fff77a54a0d0a5d091507d7a47fb28b009f46527c6ec36a4324d744cc91d2f7940ffc132345a1d1d1b046dccbf5073d8d04 +EBUILD cri-o-1.30.2.ebuild 2789 BLAKE2B fa453f13a88cf9b43e65b5f0994011594d4a3a0df0f3498a729a93bfc4f0c5b6cf9c4d2d1271e9c9edeb2829750869005434d92def977f51ce4b3521d84a06cd SHA512 c05624869c914bc80c60fd0d54b1c4a1e326296b83dcf82129b817c5f5a05060b82d8e43a0dd32c60df0183f52a3ec7e7385cc90d1b290a6508eb21d8f68f156 +MISC metadata.xml 989 BLAKE2B 6a8470cb6b72e72e62f2c4c87599364a6eeb7494a7e7ac4b71a9cdcebf982b3a6886b4f53025a4b023bfc4a8e8dcc3e47323ee056deb593b3820817354b20601 SHA512 6334e8a18ddb9a38dfb0726b61f3b8a097350d169cdd861a5e0dc40e50cd96799055ef7115dde596a2ef23bd4ed7f89c21f1dfb2ae3aa0e8cb69bd5d77869703 diff --git a/app-containers/cri-o/cri-o-1.29.5.ebuild b/app-containers/cri-o/cri-o-1.29.5.ebuild new file mode 100644 index 0000000..236175f --- /dev/null +++ b/app-containers/cri-o/cri-o-1.29.5.ebuild @@ -0,0 +1,103 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +EGIT_COMMIT=b043c66fe29e023a4c4bd2f5b27a790c86a2ec59 + +inherit go-module + +DESCRIPTION="OCI-based implementation of Kubernetes Container Runtime Interface" +HOMEPAGE="https://cri-o.io/" +SRC_URI="https://github.com/cri-o/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm64" +IUSE="btrfs zfs +device-mapper selinux systemd" + +COMMON_DEPEND=" + app-crypt/gpgme:= + app-containers/conmon + app-containers/runc + dev-libs/glib:= + dev-libs/libassuan:= + dev-libs/libgpg-error:= + net-firewall/conntrack-tools + net-firewall/iptables + app-containers/cni-plugins + net-misc/socat + sys-apps/iproute2 + sys-libs/libseccomp:= + btrfs? ( sys-fs/btrfs-progs ) + device-mapper? ( sys-fs/lvm2:= ) + selinux? ( sys-libs/libselinux:= ) + systemd? ( sys-apps/systemd:= ) + zfs? ( sys-fs/zfs )" +DEPEND=" + ${COMMON_DEPEND} + dev-go/go-md2man" +RDEPEND="${COMMON_DEPEND} + !> Makefile || die + + sed -e 's:/usr/local/bin:/usr/bin:' \ + -i contrib/systemd/* || die +} + +src_compile() { + [[ -f hack/btrfs_installed_tag.sh ]] || die + use btrfs || { echo -e "#!/bin/sh\necho exclude_graphdriver_btrfs" > \ + hack/btrfs_installed_tag.sh || die; } + + [[ -f hack/libdm_installed.sh ]] || die + use device-mapper || { echo -e "#!/bin/sh\necho exclude_graphdriver_devicemapper" > \ + hack/libdm_installed.sh || die; } + + [[ -f hack/selinux_tag.sh ]] || die + use selinux || { echo -e "#!/bin/sh\ntrue" > \ + hack/selinux_tag.sh || die; } + + mkdir -p bin || die + emake all \ + GOBIN="${S}/bin" \ + GO_BUILD="go build ${GOFLAGS}" \ + GO_MD2MAN="$(which go-md2man)" +} + +src_install() { + emake install install.config install.systemd \ + DESTDIR="${D}" \ + GO_MD2MAN="$(which go-md2man)" \ + PREFIX="${D}${EPREFIX}/usr" + keepdir /etc/crio + mv "${ED}/etc/crio/crio.conf"{,.example} || die + + newinitd "${FILESDIR}/crio.initd" crio + + insinto /etc/logrotate.d + newins "${FILESDIR}/${PN}.logrotated" "${PN}" + + # Suppress crio log error messages triggered if these don't exist. + keepdir /etc/containers/oci/hooks.d + keepdir /usr/share/containers/oci/hooks.d + + # Suppress crio "Missing CNI default network" log message. + keepdir /etc/cni/net.d + insinto /etc/cni/net.d + doins contrib/cni/99-loopback.conflist +} diff --git a/app-containers/cri-o/cri-o-1.30.2.ebuild b/app-containers/cri-o/cri-o-1.30.2.ebuild new file mode 100644 index 0000000..14a6182 --- /dev/null +++ b/app-containers/cri-o/cri-o-1.30.2.ebuild @@ -0,0 +1,103 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +EGIT_COMMIT=70121d4eb380cf6490befa11391a595b298bd11e + +inherit go-module + +DESCRIPTION="OCI-based implementation of Kubernetes Container Runtime Interface" +HOMEPAGE="https://cri-o.io/" +SRC_URI="https://github.com/cri-o/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm64" +IUSE="btrfs zfs +device-mapper selinux systemd" + +COMMON_DEPEND=" + app-crypt/gpgme:= + app-containers/conmon + app-containers/runc + dev-libs/glib:= + dev-libs/libassuan:= + dev-libs/libgpg-error:= + net-firewall/conntrack-tools + net-firewall/iptables + app-containers/cni-plugins + net-misc/socat + sys-apps/iproute2 + sys-libs/libseccomp:= + btrfs? ( sys-fs/btrfs-progs ) + device-mapper? ( sys-fs/lvm2:= ) + selinux? ( sys-libs/libselinux:= ) + systemd? ( sys-apps/systemd:= ) + zfs? ( sys-fs/zfs )" +DEPEND=" + ${COMMON_DEPEND} + dev-go/go-md2man" +RDEPEND="${COMMON_DEPEND} + !> Makefile || die + + sed -e 's:/usr/local/bin:/usr/bin:' \ + -i contrib/systemd/* || die +} + +src_compile() { + [[ -f hack/btrfs_installed_tag.sh ]] || die + use btrfs || { echo -e "#!/bin/sh\necho exclude_graphdriver_btrfs" > \ + hack/btrfs_installed_tag.sh || die; } + + [[ -f hack/libdm_installed.sh ]] || die + use device-mapper || { echo -e "#!/bin/sh\necho exclude_graphdriver_devicemapper" > \ + hack/libdm_installed.sh || die; } + + [[ -f hack/selinux_tag.sh ]] || die + use selinux || { echo -e "#!/bin/sh\ntrue" > \ + hack/selinux_tag.sh || die; } + + mkdir -p bin || die + emake all \ + GOBIN="${S}/bin" \ + GO_BUILD="go build ${GOFLAGS}" \ + GO_MD2MAN="$(which go-md2man)" +} + +src_install() { + emake install install.config install.systemd \ + DESTDIR="${D}" \ + GO_MD2MAN="$(which go-md2man)" \ + PREFIX="${D}${EPREFIX}/usr" + keepdir /etc/crio + mv "${ED}/etc/crio/crio.conf"{,.example} || die + + newinitd "${FILESDIR}/crio.initd" crio + + insinto /etc/logrotate.d + newins "${FILESDIR}/${PN}.logrotated" "${PN}" + + # Suppress crio log error messages triggered if these don't exist. + keepdir /etc/containers/oci/hooks.d + keepdir /usr/share/containers/oci/hooks.d + + # Suppress crio "Missing CNI default network" log message. + keepdir /etc/cni/net.d + insinto /etc/cni/net.d + doins contrib/cni/99-loopback.conflist +} diff --git a/app-containers/cri-o/files/cri-o.logrotated b/app-containers/cri-o/files/cri-o.logrotated new file mode 100644 index 0000000..fb0b8b1 --- /dev/null +++ b/app-containers/cri-o/files/cri-o.logrotated @@ -0,0 +1,7 @@ +/var/log/crio/crio.log { + missingok + size 5M + rotate 3 + compress + copytruncate +} diff --git a/app-containers/cri-o/files/crio.initd b/app-containers/cri-o/files/crio.initd new file mode 100644 index 0000000..9e6383a --- /dev/null +++ b/app-containers/cri-o/files/crio.initd @@ -0,0 +1,35 @@ +#!/sbin/openrc-run +# Copyright 2015-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +description="OCI Kubernetes Container Runtime daemon" +pidfile=${pidfile:-"/run/${RC_SVCNAME}.pid"} +extra_started_commands="reload" +command="/usr/bin/${RC_SVCNAME}" +command_args="${command_args}" +command_background="true" +start_stop_daemon_args=" \ + --stdout /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log \ + --stderr /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log" + +depend() { + need net +} + +checkconfig() { + checkpath --directory --owner root:root --mode 0775 \ + /var/log/${RC_SVCNAME} + checkpath --file --owner root:root --mode 0644 \ + /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log +} + +start() { + checkconfig + default_start +} + +reload() { + ebegin "Reloading ${RC_SVCNAME}" + start-stop-daemon --signal HUP --pidfile "${pidfile}" + eend $? +} diff --git a/app-containers/cri-o/metadata.xml b/app-containers/cri-o/metadata.xml new file mode 100644 index 0000000..46e71ef --- /dev/null +++ b/app-containers/cri-o/metadata.xml @@ -0,0 +1,31 @@ + + + + + zmedico@gentoo.org + Zac Medico + + + CRI-O is meant to provide an integration path between + OCI conformant runtimes and the kubelet. Specifically, it + implements the Kubelet Container Runtime Interface (CRI) + using OCI conformant runtimes. The scope of CRI-O is tied to + the scope of the CRI. + + + + Enables dependencies for the "btrfs" graph driver, including + necessary kernel flags. + + + Enables dependencies for the "devicemapper" graph driver, including + necessary kernel flags. + + + Enables dependencies for the "zfs" file system. + + + + cri-o/cri-o + + -- cgit v1.2.3-65-gdbad