From 7165b3539c75009311d3d4360a15b6ee4c7a4573 Mon Sep 17 00:00:00 2001 From: Lin Shuicheng Date: Sun, 19 Jan 2020 01:59:42 +0000 Subject: [PATCH] Revert "Revert "add containerd package for kata container support"" This reverts commit ff7b8ffd6a91d4fe3b59f939d59bf1512e524c60. Depends-On: https://review.opendev.org/703263 Change-Id: I9ed3cc54bb61d6e49219c9c98571740f0e066c3f Signed-off-by: Shuicheng Lin --- centos_iso_image.inc | 1 + centos_pkg_dirs | 1 + centos_tarball-dl.lst | 3 + kubernetes/containerd/centos/build_srpm.data | 6 ++ kubernetes/containerd/centos/containerd.spec | 98 +++++++++++++++++++ ...1-customize-containerd-for-StarlingX.patch | 37 +++++++ .../centos/files/containerd.service | 19 ++++ .../containerd/centos/files/crictl.yaml | 3 + 8 files changed, 168 insertions(+) create mode 100644 kubernetes/containerd/centos/build_srpm.data create mode 100644 kubernetes/containerd/centos/containerd.spec create mode 100644 kubernetes/containerd/centos/files/0001-customize-containerd-for-StarlingX.patch create mode 100644 kubernetes/containerd/centos/files/containerd.service create mode 100644 kubernetes/containerd/centos/files/crictl.yaml diff --git a/centos_iso_image.inc b/centos_iso_image.inc index 8634a8590..02d617e41 100644 --- a/centos_iso_image.inc +++ b/centos_iso_image.inc @@ -229,6 +229,7 @@ kubernetes-master kubernetes-node kubernetes-kubeadm kubernetes-client +containerd # resource-agents resource-agents diff --git a/centos_pkg_dirs b/centos_pkg_dirs index 843a3e3b4..0df10b464 100644 --- a/centos_pkg_dirs +++ b/centos_pkg_dirs @@ -59,6 +59,7 @@ networking/mellanox/libibverbs kernel/kernel-modules/mlnx-ofa_kernel networking/mellanox/rdma-core docker/python-docker +kubernetes/containerd kubernetes/kubernetes kubernetes/docker-distribution kubernetes/etcd diff --git a/centos_tarball-dl.lst b/centos_tarball-dl.lst index ee2ad92d5..4f04b2ce3 100644 --- a/centos_tarball-dl.lst +++ b/centos_tarball-dl.lst @@ -3,6 +3,8 @@ boost_1_67_0.tar.bz2#boost_1_67_0#https://dl.bintray.com/boostorg/release/1.67.0 ceph-erasure-code-corpus-2d7d78b9cc52e8a9529d8cc2d2954c7d375d5dd7.tar.gz#ceph-erasure-code-corpus#https://api.github.com/repos/ceph/ceph-erasure-code-corpus/tarball/2d7d78b9cc52e8a9529d8cc2d2954c7d375d5dd7#https## ceph-object-corpus-e32bf8ca3dc6151ebe7f205ba187815bc18e1cef.tar.gz#ceph-object-corpus#https://api.github.com/repos/ceph/ceph-object-corpus/tarball/e32bf8ca3dc6151ebe7f205ba187815bc18e1cef#https## civetweb-ff2881e2cd5869a71ca91083bad5d12cccd22136.tar.gz#civetweb#https://api.github.com/repos/ceph/civetweb/tarball/ff2881e2cd5869a71ca91083bad5d12cccd22136#https## +containerd-v1.3.0.tar.gz#containerd#https://github.com/containerd/containerd/archive/v1.3.0.tar.gz#https## +crictl-v1.16.0-linux-amd64.tar.gz#crictl#https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.16.0/crictl-v1.16.0-linux-amd64.tar.gz#https## # docker-distribution-48294d928ced5dd9b378f7fd7c6f5da3ff3f2c89.tar.gz#docker-distribution#github.com/docker/distribution/archive/48294d928ced5dd9b378f7fd7c6f5da3ff3f2c89.tar.gz#http## # docker-libtrust-fa567046d9b14f6aa788882a950d69651d230b21.tar.gz#docker-libtrust#https://github.com/docker/libtrust/archive/fa567046d9b14f6aa788882a950d69651d230b21.tar.gz#http## dpdk-18.11.tar.xz#dpdk-18.11#http://fast.dpdk.org/rel/dpdk-18.11.tar.xz#http## @@ -63,6 +65,7 @@ rapidjson-f54b0e47a08782a6131cc3d60f94d038fa6e0a51.tar.gz#rapidjson#https://api. Redfishtool-1.1.0.tar.gz#Redfishtool-1.1.0#https://github.com/DMTF/Redfishtool/archive/1.1.0.tar.gz#http## requests-toolbelt-0.9.1.tar.gz#requests-toolbelt-0.9.1#https://github.com/requests/toolbelt/archive/0.9.1.tar.gz#http## rocksdb-f4a857da0b720691effc524469f6db895ad00d8e.tar.gz#rocksdb#https://api.github.com/repos/ceph/rocksdb/tarball/f4a857da0b720691effc524469f6db895ad00d8e#https## +runc-1.0.0-rc8.tar.gz#runc#https://github.com/opencontainers/runc/archive/v1.0.0-rc8.tar.gz#https## # Sirupsen-logrus-55eb11d21d2a31a3cc93838241d04800f52e823d.tar.gz#Sirupsen-logrus#github.com/Sirupsen/logrus/archive/55eb11d21d2a31a3cc93838241d04800f52e823d.tar.gz#http## spdk-f474ce6930f0a44360e1cc4ecd606d2348481c4c.tar.gz#spdk#https://api.github.com/repos/ceph/spdk/tarball/f474ce6930f0a44360e1cc4ecd606d2348481c4c#https## spectre-meltdown-checker-0.37+-5cc77741.tar.gz#spectre-meltdown-checker#https://github.com/speed47/spectre-meltdown-checker/tarball/5cc77741af1d2f52140aa9f89339f56b6c4b6783#http## diff --git a/kubernetes/containerd/centos/build_srpm.data b/kubernetes/containerd/centos/build_srpm.data new file mode 100644 index 000000000..967c6d5ae --- /dev/null +++ b/kubernetes/containerd/centos/build_srpm.data @@ -0,0 +1,6 @@ +COPY_LIST="${STX_BASE}/downloads/containerd-v1.3.0.tar.gz + ${STX_BASE}/downloads/runc-1.0.0-rc8.tar.gz + ${STX_BASE}/downloads/crictl-v1.16.0-linux-amd64.tar.gz + ${FILES_BASE}/*" + +TIS_PATCH_VER=1 diff --git a/kubernetes/containerd/centos/containerd.spec b/kubernetes/containerd/centos/containerd.spec new file mode 100644 index 000000000..39fcb8810 --- /dev/null +++ b/kubernetes/containerd/centos/containerd.spec @@ -0,0 +1,98 @@ +# SPDX-License-Identifier: Apache-2.0 +# +# Copyright (C) 2019 Intel Corporation +# +Name: containerd +Version: 1.3.0 +Release: %{tis_patch_ver}%{?_tis_dist} +Summary: Open and reliable container runtime +Group: Kubernetes +License: ASL 2.0 +Source0: containerd-v%{version}.tar.gz +Source1: runc-1.0.0-rc8.tar.gz +Source2: crictl-v1.16.0-linux-amd64.tar.gz +Source3: crictl.yaml +Source4: containerd.service +Patch5: 0001-customize-containerd-for-StarlingX.patch +URL: https://www.starlingx.io +Vendor: StarlingX +Packager: StarlingX + +BuildRequires: pkgconfig(systemd) +BuildRequires: pkgconfig(libseccomp) +BuildRequires: pkgconfig(libsystemd-journal) +BuildRequires: golang >= 1.10.0 +BuildRequires: systemd +BuildRequires: rsync +BuildRequires: go-md2man +BuildRequires: go-bindata + +# required packages on install +Requires: /bin/sh +Requires: systemd + +Provides: containerd +Provides: runc +Provides: containerd.io + + +%global _missing_build_ids_terminate_build 0 + +%define CONTAINERD_DIR ${HOME}/go/src/github.com/containerd/containerd +%define RUNC_DIR ${HOME}/go/src/github.com/opencontainers/runc + +%description +Containerd is an industry-standard container runtime with an emphasis on +simplicity, robustness and portability. It is available as a daemon for Linux +and Windows, which can manage the complete container lifecycle of its host +system: image transfer and storage, container execution and supervision, +low-level storage and network attachments, etc. + +%prep +%setup -q -c -n src -a 1 +%setup -q -c -T -D -n src -a 2 +%patch5 -p1 + +%build +# build containerd +mkdir -p %{CONTAINERD_DIR} +mv %{_builddir}/src/containerd/* %{CONTAINERD_DIR}/ +pushd %{CONTAINERD_DIR} +make +popd + +# build runc +mkdir -p %{RUNC_DIR} +mv %{_builddir}/src/runc/* %{RUNC_DIR}/ +pushd %{RUNC_DIR} +make +popd + +%install +# install containerd +install -d %{buildroot}%{_bindir} +install -p -m 755 %{CONTAINERD_DIR}/bin/containerd %{buildroot}%{_bindir}/containerd +install -p -m 755 %{CONTAINERD_DIR}/bin/containerd-shim %{buildroot}%{_bindir}/containerd-shim +install -p -m 755 %{CONTAINERD_DIR}/bin/containerd-shim-runc-v1 %{buildroot}%{_bindir}/containerd-shim-runc-v1 +install -p -m 755 %{CONTAINERD_DIR}/bin/containerd-shim-runc-v2 %{buildroot}%{_bindir}/containerd-shim-runc-v2 +install -p -m 755 %{CONTAINERD_DIR}/bin/containerd-stress %{buildroot}%{_bindir}/containerd-stress +install -p -m 755 %{CONTAINERD_DIR}/bin/ctr %{buildroot}%{_bindir}/ctr +install -p -m 755 %{RUNC_DIR}/runc %{buildroot}%{_bindir}/runc +install -p -m 755 %{_builddir}/src/crictl %{buildroot}%{_bindir}/crictl +install -d %{buildroot}%{_sysconfdir} +install -m 644 %{_sourcedir}/crictl.yaml %{buildroot}%{_sysconfdir}/crictl.yaml +install -d %{buildroot}%{_unitdir} +install -p -m 644 %{_sourcedir}/containerd.service %{buildroot}%{_unitdir}/containerd.service + +# list files owned by the package here +%files +%{_bindir}/containerd +%{_bindir}/containerd-shim +%{_bindir}/containerd-shim-runc-v1 +%{_bindir}/containerd-shim-runc-v2 +%{_bindir}/containerd-stress +%{_bindir}/ctr +%{_bindir}/runc +%{_bindir}/crictl +%{_sysconfdir}/crictl.yaml +%{_unitdir}/containerd.service diff --git a/kubernetes/containerd/centos/files/0001-customize-containerd-for-StarlingX.patch b/kubernetes/containerd/centos/files/0001-customize-containerd-for-StarlingX.patch new file mode 100644 index 000000000..c1c8f2356 --- /dev/null +++ b/kubernetes/containerd/centos/files/0001-customize-containerd-for-StarlingX.patch @@ -0,0 +1,37 @@ +From fb2f78f1a3f1ec51a12f1404c21651dc0144663e Mon Sep 17 00:00:00 2001 +From: Shuicheng Lin +Date: Wed, 25 Sep 2019 20:02:34 +0800 +Subject: [PATCH] customize containerd for StarlingX + +1. disable btrfs to pass build. +3. hardcode version info due to miss git info in tarball. + +Signed-off-by: Shuicheng Lin +--- + containerd/Makefile | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/containerd/Makefile b/containerd/Makefile +index 6758161..49dd612 100644 +--- a/containerd/Makefile ++++ b/containerd/Makefile +@@ -20,7 +20,7 @@ ROOTDIR=$(dir $(abspath $(lastword $(MAKEFILE_LIST)))) + DESTDIR ?= /usr/local + + # Used to populate variables in version package. +-VERSION=$(shell git describe --match 'v[0-9]*' --dirty='.m' --always) ++VERSION="v1.3.0" + REVISION=$(shell git rev-parse HEAD)$(shell if ! git diff --no-ext-diff --quiet --exit-code; then echo .m; fi) + PACKAGE=github.com/containerd/containerd + +@@ -90,6 +90,7 @@ endif + # Build tags seccomp and apparmor are needed by CRI plugin. + GO_BUILDTAGS ?= seccomp apparmor + GO_BUILDTAGS += ${DEBUG_TAGS} ++GO_BUILDTAGS += no_btrfs + GO_TAGS=$(if $(GO_BUILDTAGS),-tags "$(GO_BUILDTAGS)",) + GO_LDFLAGS=-ldflags '-X $(PKG)/version.Version=$(VERSION) -X $(PKG)/version.Revision=$(REVISION) -X $(PKG)/version.Package=$(PACKAGE) $(EXTRA_LDFLAGS)' + SHIM_GO_LDFLAGS=-ldflags '-X $(PKG)/version.Version=$(VERSION) -X $(PKG)/version.Revision=$(REVISION) -X $(PKG)/version.Package=$(PACKAGE) -extldflags "-static" $(EXTRA_LDFLAGS)' +-- +2.7.4 + diff --git a/kubernetes/containerd/centos/files/containerd.service b/kubernetes/containerd/centos/files/containerd.service new file mode 100644 index 000000000..2902a7022 --- /dev/null +++ b/kubernetes/containerd/centos/files/containerd.service @@ -0,0 +1,19 @@ +[Unit] +Description=containerd container runtime +Documentation=https://containerd.io +After=network.target + +[Service] +ExecStartPre=-/sbin/modprobe overlay +ExecStart=/usr/bin/containerd +KillMode=process +Delegate=yes +LimitNOFILE=1048576 +# Having non-zero Limit*s causes performance problems due to accounting overhead +# in the kernel. We recommend using cgroups to do container-local accounting. +LimitNPROC=infinity +LimitCORE=infinity +TasksMax=infinity + +[Install] +WantedBy=multi-user.target diff --git a/kubernetes/containerd/centos/files/crictl.yaml b/kubernetes/containerd/centos/files/crictl.yaml new file mode 100644 index 000000000..4f05c0b27 --- /dev/null +++ b/kubernetes/containerd/centos/files/crictl.yaml @@ -0,0 +1,3 @@ +runtime-endpoint: unix:///var/run/containerd/containerd.sock +image-endpoint: unix:///var/run/containerd/containerd.sock +debug: false