diff --git a/Makefile b/Makefile index 9bb0a5e33..cc4ed89ac 100644 --- a/Makefile +++ b/Makefile @@ -123,7 +123,7 @@ TESTFLAGS_PARALLEL ?= 8 OUTPUTDIR = $(join $(ROOTDIR), _output) CRIDIR=$(OUTPUTDIR)/cri -.PHONY: clean all AUTHORS build binaries test integration generate protos checkprotos coverage ci check help install uninstall vendor release mandir install-man genman install-cri-deps cri-release cri-cni-release cri-integration bin/cri-integration.test +.PHONY: clean all AUTHORS build binaries test integration generate protos checkprotos coverage ci check help install uninstall vendor release mandir install-man genman install-cri-deps cri-release cri-cni-release cri-integration install-deps bin/cri-integration.test .DEFAULT: default all: binaries @@ -262,6 +262,7 @@ release: releases/$(RELEASE).tar.gz @echo "$(WHALE) $@" @cd releases && sha256sum $(RELEASE).tar.gz >$(RELEASE).tar.gz.sha256sum +# install of cri deps into release output directory ifeq ($(GOOS),windows) install-cri-deps: $(BINARIES) mkdir -p $(CRIDIR) @@ -343,6 +344,18 @@ uninstall: @echo "$(WHALE) $@" @rm -f $(addprefix $(DESTDIR)/bin/,$(notdir $(BINARIES))) +ifeq ($(GOOS),windows) +install-deps: + # TODO: need a script for hcshim something like containerd/cri/hack/install/windows/install-hcsshim.sh + script/setup/install-critools + script/setup/install-cni-windows +else +install-deps: ## install cri dependencies + script/setup/install-seccomp + script/setup/install-runc + script/setup/install-critools + script/setup/install-cni +endif coverage: ## generate coverprofiles from the unit tests, except tests that require root @echo "$(WHALE) $@" @@ -373,7 +386,7 @@ root-coverage: ## generate coverage profiles for unit tests that require root fi; \ done ) -vendor: +vendor: ## vendor @echo "$(WHALE) $@" @go mod tidy @go mod vendor diff --git a/script/setup/critools-version b/script/setup/critools-version new file mode 100644 index 000000000..b045f193d --- /dev/null +++ b/script/setup/critools-version @@ -0,0 +1 @@ +0f5f734a7e1da0979915c6e7d5b6641bd9dc2627 diff --git a/script/setup/install-cni b/script/setup/install-cni index 7f2eb8b3a..34461958d 100755 --- a/script/setup/install-cni +++ b/script/setup/install-cni @@ -25,8 +25,9 @@ CNI_COMMIT=$(grep containernetworking/plugins "$GOPATH"/src/github.com/container CNI_DIR=${DESTDIR:=''}/opt/cni CNI_CONFIG_DIR=${DESTDIR}/etc/cni/net.d -git clone https://github.com/containernetworking/plugins.git "$GOPATH"/src/github.com/containernetworking/plugins -cd "$GOPATH"/src/github.com/containernetworking/plugins +TMPROOT=$(mktemp -d) +git clone https://github.com/containernetworking/plugins.git "${TMPROOT}"/plugins +pushd "${TMPROOT}"/plugins git checkout $CNI_COMMIT ./build_linux.sh mkdir -p $CNI_DIR @@ -66,3 +67,6 @@ cat << EOF | tee $CNI_CONFIG_DIR/10-containerd-net.conflist ] } EOF + +popd +rm -fR "${TMPROOT}" diff --git a/script/setup/install-critools b/script/setup/install-critools index 88cdb4773..232dfbcf5 100755 --- a/script/setup/install-critools +++ b/script/setup/install-critools @@ -20,15 +20,23 @@ # set -eu -o pipefail +script_dir="$(cd -- "$(dirname -- "$0")" > /dev/null 2>&1; pwd -P)" + cd "$GOPATH" go get -u github.com/onsi/ginkgo/ginkgo -CRITEST_COMMIT=0f5f734a7e1da0979915c6e7d5b6641bd9dc2627 -git clone https://github.com/kubernetes-sigs/cri-tools.git "$GOPATH"/src/github.com/kubernetes-sigs/cri-tools -cd "$GOPATH"/src/github.com/kubernetes-sigs/cri-tools +: "${CRITEST_COMMIT:=$(cat "${script_dir}/critools-version")}" + +TMPROOT=$(mktemp -d) +git clone https://github.com/kubernetes-sigs/cri-tools.git "${TMPROOT}"/cri-tools +pushd "${TMPROOT}"/cri-tools git checkout "$CRITEST_COMMIT" make make install -e BINDIR=${DESTDIR:=''}/usr/local/bin + cat << EOF | tee ${DESTDIR}/etc/crictl.yaml runtime-endpoint: unix:///run/containerd/containerd.sock EOF + +popd +rm -fR "${TMPROOT}"