Merge pull request #673 from Random-Liu/test-containerd-repo
Test containerd repo
This commit is contained in:
commit
65b5240b29
2
Makefile
2
Makefile
@ -161,7 +161,7 @@ proto:
|
|||||||
.PHONY: install.deps
|
.PHONY: install.deps
|
||||||
|
|
||||||
install.deps:
|
install.deps:
|
||||||
@./hack/install-deps.sh
|
@./hack/install/install-deps.sh
|
||||||
|
|
||||||
.PHONY: .gitvalidation
|
.PHONY: .gitvalidation
|
||||||
# When this is running in travis, it will only check the travis commit range.
|
# When this is running in travis, it will only check the travis commit range.
|
||||||
|
@ -1,154 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Copyright 2017 The Kubernetes Authors.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
|
|
||||||
# Dependencies:
|
|
||||||
# runc:
|
|
||||||
# - libseccomp-dev(Ubuntu,Debian)/libseccomp-devel(Fedora, CentOS, RHEL). Note that
|
|
||||||
# libseccomp in ubuntu <=trusty and debian <=jessie is not new enough, backport
|
|
||||||
# is required.
|
|
||||||
# - libapparmor-dev(Ubuntu,Debian)/libapparmor-devel(Fedora, CentOS, RHEL)
|
|
||||||
# containerd:
|
|
||||||
# - btrfs-tools(Ubuntu,Debian)/btrfs-progs-devel(Fedora, CentOS, RHEL)
|
|
||||||
|
|
||||||
set -o errexit
|
|
||||||
set -o nounset
|
|
||||||
set -o pipefail
|
|
||||||
|
|
||||||
source $(dirname "${BASH_SOURCE[0]}")/utils.sh
|
|
||||||
|
|
||||||
ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"/..
|
|
||||||
|
|
||||||
# DESTDIR is the dest path to install dependencies.
|
|
||||||
DESTDIR=${DESTDIR:-"/"}
|
|
||||||
# Convert to absolute path if it's relative.
|
|
||||||
if [[ ${DESTDIR} != /* ]]; then
|
|
||||||
DESTDIR=${ROOT}/${DESTDIR}
|
|
||||||
fi
|
|
||||||
|
|
||||||
# NOSUDO indicates not to use sudo during installation.
|
|
||||||
NOSUDO=${NOSUDO:-false}
|
|
||||||
sudo="sudo"
|
|
||||||
if ${NOSUDO}; then
|
|
||||||
sudo=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
# INSTALL_CNI indicates whether to install CNI. CNI installation
|
|
||||||
# makes sense for local testing, but doesn't make sense for cluster
|
|
||||||
# setup, because CNI daemonset is usually used to deploy CNI binaries
|
|
||||||
# and configurations in cluster.
|
|
||||||
INSTALL_CNI=${INSTALL_CNI:-true}
|
|
||||||
|
|
||||||
CONTAINERD_DIR=${DESTDIR}/usr/local
|
|
||||||
RUNC_DIR=${DESTDIR}
|
|
||||||
CNI_DIR=${DESTDIR}/opt/cni
|
|
||||||
CNI_CONFIG_DIR=${DESTDIR}/etc/cni/net.d
|
|
||||||
CRICTL_DIR=${DESTDIR}/usr/local/bin
|
|
||||||
CRICTL_CONFIG_DIR=${DESTDIR}/etc
|
|
||||||
|
|
||||||
RUNC_PKG=github.com/opencontainers/runc
|
|
||||||
CNI_PKG=github.com/containernetworking/plugins
|
|
||||||
CONTAINERD_PKG=github.com/containerd/containerd
|
|
||||||
CRITOOL_PKG=github.com/kubernetes-incubator/cri-tools
|
|
||||||
CRI_CONTAINERD_PKG=github.com/containerd/cri
|
|
||||||
|
|
||||||
# Create a temporary GOPATH for make install.deps.
|
|
||||||
TMPGOPATH=$(mktemp -d /tmp/cri-containerd-install-deps.XXXX)
|
|
||||||
GOPATH=${TMPGOPATH}
|
|
||||||
|
|
||||||
# checkout_repo checks out specified repository
|
|
||||||
# and switch to specified version.
|
|
||||||
# Varset:
|
|
||||||
# 1) Pkg name;
|
|
||||||
# 2) Version;
|
|
||||||
# 3) Repo name;
|
|
||||||
checkout_repo() {
|
|
||||||
local -r pkg=$1
|
|
||||||
local -r version=$2
|
|
||||||
local -r repo=$3
|
|
||||||
path="${GOPATH}/src/${pkg}"
|
|
||||||
if [ ! -d ${path} ]; then
|
|
||||||
mkdir -p ${path}
|
|
||||||
git clone https://${repo} ${path}
|
|
||||||
fi
|
|
||||||
cd ${path}
|
|
||||||
git fetch --all
|
|
||||||
git checkout ${version}
|
|
||||||
}
|
|
||||||
|
|
||||||
# Install runc
|
|
||||||
checkout_repo ${RUNC_PKG} ${RUNC_VERSION} ${RUNC_REPO}
|
|
||||||
cd ${GOPATH}/src/${RUNC_PKG}
|
|
||||||
BUILDTAGS=${BUILDTAGS:-seccomp apparmor}
|
|
||||||
make static BUILDTAGS="$BUILDTAGS"
|
|
||||||
${sudo} make install -e DESTDIR=${RUNC_DIR}
|
|
||||||
|
|
||||||
# Install cni
|
|
||||||
if ${INSTALL_CNI}; then
|
|
||||||
checkout_repo ${CNI_PKG} ${CNI_VERSION} ${CNI_REPO}
|
|
||||||
cd ${GOPATH}/src/${CNI_PKG}
|
|
||||||
FASTBUILD=true ./build.sh
|
|
||||||
${sudo} mkdir -p ${CNI_DIR}
|
|
||||||
${sudo} cp -r ./bin ${CNI_DIR}
|
|
||||||
${sudo} mkdir -p ${CNI_CONFIG_DIR}
|
|
||||||
${sudo} bash -c 'cat >'${CNI_CONFIG_DIR}'/10-containerd-net.conflist <<EOF
|
|
||||||
{
|
|
||||||
"cniVersion": "0.3.1",
|
|
||||||
"name": "containerd-net",
|
|
||||||
"plugins": [
|
|
||||||
{
|
|
||||||
"type": "bridge",
|
|
||||||
"bridge": "cni0",
|
|
||||||
"isGateway": true,
|
|
||||||
"ipMasq": true,
|
|
||||||
"promiscMode": true,
|
|
||||||
"ipam": {
|
|
||||||
"type": "host-local",
|
|
||||||
"subnet": "10.88.0.0/16",
|
|
||||||
"routes": [
|
|
||||||
{ "dst": "0.0.0.0/0" }
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "portmap",
|
|
||||||
"capabilities": {"portMappings": true}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
EOF'
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Install containerd
|
|
||||||
checkout_repo ${CONTAINERD_PKG} ${CONTAINERD_VERSION} ${CONTAINERD_REPO}
|
|
||||||
cd ${GOPATH}/src/${CONTAINERD_PKG}
|
|
||||||
make BUILDTAGS="${BUILDTAGS}"
|
|
||||||
# containerd make install requires `go` to work. Explicitly
|
|
||||||
# set PATH to make sure it can find `go` even with `sudo`.
|
|
||||||
${sudo} sh -c "PATH=${PATH} make install -e DESTDIR=${CONTAINERD_DIR}"
|
|
||||||
|
|
||||||
#Install crictl
|
|
||||||
checkout_repo ${CRITOOL_PKG} ${CRITOOL_VERSION} ${CRITOOL_REPO}
|
|
||||||
cd ${GOPATH}/src/${CRITOOL_PKG}
|
|
||||||
make crictl
|
|
||||||
${sudo} make install-crictl -e BINDIR=${CRICTL_DIR} GOPATH=${GOPATH}
|
|
||||||
${sudo} mkdir -p ${CRICTL_CONFIG_DIR}
|
|
||||||
${sudo} bash -c 'cat >'${CRICTL_CONFIG_DIR}'/crictl.yaml <<EOF
|
|
||||||
runtime-endpoint: /run/containerd/containerd.sock
|
|
||||||
EOF'
|
|
||||||
|
|
||||||
# Clean the tmp GOPATH dir. Use sudo because runc build generates
|
|
||||||
# some privileged files.
|
|
||||||
${sudo} rm -rf ${TMPGOPATH}
|
|
66
hack/install/install-cni.sh
Executable file
66
hack/install/install-cni.sh
Executable file
@ -0,0 +1,66 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2018 The containerd Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
set -o errexit
|
||||||
|
set -o nounset
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
source $(dirname "${BASH_SOURCE[0]}")/utils.sh
|
||||||
|
CNI_DIR=${DESTDIR}/opt/cni
|
||||||
|
CNI_CONFIG_DIR=${DESTDIR}/etc/cni/net.d
|
||||||
|
CNI_PKG=github.com/containernetworking/plugins
|
||||||
|
|
||||||
|
# Create a temporary GOPATH for cni installation.
|
||||||
|
TMPGOPATH=$(mktemp -d /tmp/cri-install-cni.XXXX)
|
||||||
|
GOPATH=${TMPGOPATH}
|
||||||
|
|
||||||
|
# Install cni
|
||||||
|
from-vendor CNI github.com/containernetworking/plugins
|
||||||
|
checkout_repo ${CNI_PKG} ${CNI_VERSION} ${CNI_REPO}
|
||||||
|
cd ${GOPATH}/src/${CNI_PKG}
|
||||||
|
FASTBUILD=true ./build.sh
|
||||||
|
${SUDO} mkdir -p ${CNI_DIR}
|
||||||
|
${SUDO} cp -r ./bin ${CNI_DIR}
|
||||||
|
${SUDO} mkdir -p ${CNI_CONFIG_DIR}
|
||||||
|
${SUDO} bash -c 'cat >'${CNI_CONFIG_DIR}'/10-containerd-net.conflist <<EOF
|
||||||
|
{
|
||||||
|
"cniVersion": "0.3.1",
|
||||||
|
"name": "containerd-net",
|
||||||
|
"plugins": [
|
||||||
|
{
|
||||||
|
"type": "bridge",
|
||||||
|
"bridge": "cni0",
|
||||||
|
"isGateway": true,
|
||||||
|
"ipMasq": true,
|
||||||
|
"promiscMode": true,
|
||||||
|
"ipam": {
|
||||||
|
"type": "host-local",
|
||||||
|
"subnet": "10.88.0.0/16",
|
||||||
|
"routes": [
|
||||||
|
{ "dst": "0.0.0.0/0" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "portmap",
|
||||||
|
"capabilities": {"portMappings": true}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
EOF'
|
||||||
|
|
||||||
|
# Clean the tmp GOPATH dir.
|
||||||
|
rm -rf ${TMPGOPATH}
|
48
hack/install/install-containerd.sh
Executable file
48
hack/install/install-containerd.sh
Executable file
@ -0,0 +1,48 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2018 The containerd Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
set -o errexit
|
||||||
|
set -o nounset
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
source $(dirname "${BASH_SOURCE[0]}")/utils.sh
|
||||||
|
CONTAINERD_DIR=${DESTDIR}/usr/local
|
||||||
|
CONTAINERD_PKG=github.com/containerd/containerd
|
||||||
|
|
||||||
|
# CHECKOUT_CONTAINERD indicates whether to checkout containerd repo.
|
||||||
|
# This is useful for build containerd from existing repo, currently
|
||||||
|
# used by containerd CI test.
|
||||||
|
CHECKOUT_CONTAINERD=${CHECKOUT_CONTAINERD:-true}
|
||||||
|
|
||||||
|
if ${CHECKOUT_CONTAINERD}; then
|
||||||
|
# Create a temporary GOPATH for containerd installation.
|
||||||
|
TMPGOPATH=$(mktemp -d /tmp/cri-install-containerd.XXXX)
|
||||||
|
GOPATH=${TMPGOPATH}
|
||||||
|
from-vendor CONTAINERD github.com/containerd/containerd
|
||||||
|
checkout_repo ${CONTAINERD_PKG} ${CONTAINERD_VERSION} ${CONTAINERD_REPO}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Install containerd
|
||||||
|
cd ${GOPATH}/src/${CONTAINERD_PKG}
|
||||||
|
make BUILDTAGS="${BUILDTAGS}"
|
||||||
|
# containerd make install requires `go` to work. Explicitly
|
||||||
|
# set PATH to make sure it can find `go` even with `sudo`.
|
||||||
|
${SUDO} sh -c "PATH=${PATH} make install -e DESTDIR=${CONTAINERD_DIR}"
|
||||||
|
|
||||||
|
# Clean the tmp GOPATH dir.
|
||||||
|
if ${CHECKOUT_CONTAINERD}; then
|
||||||
|
rm -rf ${TMPGOPATH}
|
||||||
|
fi
|
40
hack/install/install-crictl.sh
Executable file
40
hack/install/install-crictl.sh
Executable file
@ -0,0 +1,40 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2018 The containerd Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
set -o errexit
|
||||||
|
set -o nounset
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
source $(dirname "${BASH_SOURCE[0]}")/utils.sh
|
||||||
|
CRICTL_DIR=${DESTDIR}/usr/local/bin
|
||||||
|
CRICTL_CONFIG_DIR=${DESTDIR}/etc
|
||||||
|
|
||||||
|
# Create a temporary GOPATH for crictl installation.
|
||||||
|
TMPGOPATH=$(mktemp -d /tmp/cri-install-crictl.XXXX)
|
||||||
|
GOPATH=${TMPGOPATH}
|
||||||
|
|
||||||
|
#Install crictl
|
||||||
|
checkout_repo ${CRITOOL_PKG} ${CRITOOL_VERSION} ${CRITOOL_REPO}
|
||||||
|
cd ${GOPATH}/src/${CRITOOL_PKG}
|
||||||
|
make crictl
|
||||||
|
${SUDO} make install-crictl -e BINDIR=${CRICTL_DIR} GOPATH=${GOPATH}
|
||||||
|
${SUDO} mkdir -p ${CRICTL_CONFIG_DIR}
|
||||||
|
${SUDO} bash -c 'cat >'${CRICTL_CONFIG_DIR}'/crictl.yaml <<EOF
|
||||||
|
runtime-endpoint: /run/containerd/containerd.sock
|
||||||
|
EOF'
|
||||||
|
|
||||||
|
# Clean the tmp GOPATH dir.
|
||||||
|
rm -rf ${TMPGOPATH}
|
50
hack/install/install-deps.sh
Executable file
50
hack/install/install-deps.sh
Executable file
@ -0,0 +1,50 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2017 The Kubernetes Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
# Dependencies:
|
||||||
|
# runc:
|
||||||
|
# - libseccomp-dev(Ubuntu,Debian)/libseccomp-devel(Fedora, CentOS, RHEL). Note that
|
||||||
|
# libseccomp in ubuntu <=trusty and debian <=jessie is not new enough, backport
|
||||||
|
# is required.
|
||||||
|
# - libapparmor-dev(Ubuntu,Debian)/libapparmor-devel(Fedora, CentOS, RHEL)
|
||||||
|
# containerd:
|
||||||
|
# - btrfs-tools(Ubuntu,Debian)/btrfs-progs-devel(Fedora, CentOS, RHEL)
|
||||||
|
|
||||||
|
set -o errexit
|
||||||
|
set -o nounset
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
cd $(dirname "${BASH_SOURCE[0]}")
|
||||||
|
|
||||||
|
# INSTALL_CNI indicates whether to install CNI. CNI installation
|
||||||
|
# makes sense for local testing, but doesn't make sense for cluster
|
||||||
|
# setup, because CNI daemonset is usually used to deploy CNI binaries
|
||||||
|
# and configurations in cluster.
|
||||||
|
INSTALL_CNI=${INSTALL_CNI:-true}
|
||||||
|
|
||||||
|
# Install runc
|
||||||
|
./install-runc.sh
|
||||||
|
|
||||||
|
# Install cni
|
||||||
|
if ${INSTALL_CNI}; then
|
||||||
|
./install-cni.sh
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Install containerd
|
||||||
|
./install-containerd.sh
|
||||||
|
|
||||||
|
#Install crictl
|
||||||
|
./install-crictl.sh
|
38
hack/install/install-runc.sh
Executable file
38
hack/install/install-runc.sh
Executable file
@ -0,0 +1,38 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2018 The containerd Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
set -o errexit
|
||||||
|
set -o nounset
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
source $(dirname "${BASH_SOURCE[0]}")/utils.sh
|
||||||
|
RUNC_DIR=${DESTDIR}
|
||||||
|
RUNC_PKG=github.com/opencontainers/runc
|
||||||
|
|
||||||
|
# Create a temporary GOPATH for runc installation.
|
||||||
|
TMPGOPATH=$(mktemp -d /tmp/cri-install-runc.XXXX)
|
||||||
|
GOPATH=${TMPGOPATH}
|
||||||
|
|
||||||
|
# Install runc
|
||||||
|
from-vendor RUNC github.com/opencontainers/runc
|
||||||
|
checkout_repo ${RUNC_PKG} ${RUNC_VERSION} ${RUNC_REPO}
|
||||||
|
cd ${GOPATH}/src/${RUNC_PKG}
|
||||||
|
make static BUILDTAGS="$BUILDTAGS"
|
||||||
|
${SUDO} make install -e DESTDIR=${RUNC_DIR}
|
||||||
|
|
||||||
|
# Clean the tmp GOPATH dir. Use sudo because runc build generates
|
||||||
|
# some privileged files.
|
||||||
|
${SUDO} rm -rf ${TMPGOPATH}
|
54
hack/install/utils.sh
Executable file
54
hack/install/utils.sh
Executable file
@ -0,0 +1,54 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2018 The containerd Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
source $(dirname "${BASH_SOURCE[0]}")/../utils.sh
|
||||||
|
|
||||||
|
# DESTDIR is the dest path to install dependencies.
|
||||||
|
DESTDIR=${DESTDIR:-"/"}
|
||||||
|
# Convert to absolute path if it's relative.
|
||||||
|
if [[ ${DESTDIR} != /* ]]; then
|
||||||
|
DESTDIR=${ROOT}/${DESTDIR}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# NOSUDO indicates not to use sudo during installation.
|
||||||
|
NOSUDO=${NOSUDO:-false}
|
||||||
|
SUDO="sudo"
|
||||||
|
if ${NOSUDO}; then
|
||||||
|
SUDO=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
# BUILDTAGS are bulid tags for runc and containerd.
|
||||||
|
BUILDTAGS=${BUILDTAGS:-seccomp apparmor}
|
||||||
|
|
||||||
|
# checkout_repo checks out specified repository
|
||||||
|
# and switch to specified version.
|
||||||
|
# Varset:
|
||||||
|
# 1) Pkg name;
|
||||||
|
# 2) Version;
|
||||||
|
# 3) Repo name;
|
||||||
|
checkout_repo() {
|
||||||
|
local -r pkg=$1
|
||||||
|
local -r version=$2
|
||||||
|
local -r repo=$3
|
||||||
|
path="${GOPATH}/src/${pkg}"
|
||||||
|
if [ ! -d ${path} ]; then
|
||||||
|
mkdir -p ${path}
|
||||||
|
git clone https://${repo} ${path}
|
||||||
|
fi
|
||||||
|
cd ${path}
|
||||||
|
git fetch --all
|
||||||
|
git checkout ${version}
|
||||||
|
}
|
@ -38,7 +38,7 @@ destdir=${BUILD_DIR}/release-stage
|
|||||||
rm -rf ${destdir}
|
rm -rf ${destdir}
|
||||||
|
|
||||||
# Install dependencies into release stage.
|
# Install dependencies into release stage.
|
||||||
NOSUDO=true INSTALL_CNI=${INCLUDE_CNI} DESTDIR=${destdir} ./hack/install-deps.sh
|
NOSUDO=true INSTALL_CNI=${INCLUDE_CNI} DESTDIR=${destdir} ./hack/install/install-deps.sh
|
||||||
|
|
||||||
if ${CUSTOM_CONTAINERD}; then
|
if ${CUSTOM_CONTAINERD}; then
|
||||||
make install -e DESTDIR=${destdir}
|
make install -e DESTDIR=${destdir}
|
||||||
|
@ -24,6 +24,7 @@ cd ${ROOT}
|
|||||||
|
|
||||||
echo "Compare vendor with containerd vendors..."
|
echo "Compare vendor with containerd vendors..."
|
||||||
containerd_vendor=$(mktemp /tmp/containerd-vendor.conf.XXXX)
|
containerd_vendor=$(mktemp /tmp/containerd-vendor.conf.XXXX)
|
||||||
|
from-vendor CONTAINERD github.com/containerd/containerd
|
||||||
curl -s https://raw.githubusercontent.com/${CONTAINERD_REPO#*/}/${CONTAINERD_VERSION}/vendor.conf > ${containerd_vendor}
|
curl -s https://raw.githubusercontent.com/${CONTAINERD_REPO#*/}/${CONTAINERD_VERSION}/vendor.conf > ${containerd_vendor}
|
||||||
# Create a temporary vendor file to update.
|
# Create a temporary vendor file to update.
|
||||||
tmp_vendor=$(mktemp /tmp/vendor.conf.XXXX)
|
tmp_vendor=$(mktemp /tmp/vendor.conf.XXXX)
|
||||||
|
@ -36,7 +36,6 @@ fi
|
|||||||
GOPATH=${GOPATH%%:*}
|
GOPATH=${GOPATH%%:*}
|
||||||
|
|
||||||
CRITEST=${GOPATH}/bin/critest
|
CRITEST=${GOPATH}/bin/critest
|
||||||
CRITOOL_PKG=github.com/kubernetes-incubator/cri-tools
|
|
||||||
|
|
||||||
# Install critest
|
# Install critest
|
||||||
if [ ! -x "$(command -v ${CRITEST})" ]; then
|
if [ ! -x "$(command -v ${CRITEST})" ]; then
|
||||||
|
@ -59,6 +59,12 @@ fi
|
|||||||
GOPATH=${GOPATH%%:*}
|
GOPATH=${GOPATH%%:*}
|
||||||
|
|
||||||
# Get kubernetes
|
# Get kubernetes
|
||||||
|
from-vendor KUBERNETES k8s.io/kubernetes
|
||||||
|
# k8s.io is actually a redirect, but we do not handle the go-import
|
||||||
|
# metadata which `go get` and `vndr` etc do. Handle it manually here.
|
||||||
|
if [ x"$KUBERNETES_REPO" = "xk8s.io" ] ; then
|
||||||
|
KUBERNETES_REPO="https://github.com/kubernetes/kubernetes"
|
||||||
|
fi
|
||||||
KUBERNETES_PATH="${GOPATH}/src/k8s.io/kubernetes"
|
KUBERNETES_PATH="${GOPATH}/src/k8s.io/kubernetes"
|
||||||
if [ ! -d "${KUBERNETES_PATH}" ]; then
|
if [ ! -d "${KUBERNETES_PATH}" ]; then
|
||||||
mkdir -p ${KUBERNETES_PATH}
|
mkdir -p ${KUBERNETES_PATH}
|
||||||
|
@ -18,8 +18,12 @@ ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"/..
|
|||||||
|
|
||||||
# Not from vendor.conf.
|
# Not from vendor.conf.
|
||||||
CRITOOL_VERSION=b184f9aefe60a4441330e615ee20634ee26474fb
|
CRITOOL_VERSION=b184f9aefe60a4441330e615ee20634ee26474fb
|
||||||
|
CRITOOL_PKG=github.com/kubernetes-incubator/cri-tools
|
||||||
CRITOOL_REPO=github.com/kubernetes-incubator/cri-tools
|
CRITOOL_REPO=github.com/kubernetes-incubator/cri-tools
|
||||||
|
|
||||||
|
# VENDOR is the path to vendor.conf.
|
||||||
|
VENDOR=${VENDOR:-"${ROOT}/vendor.conf"}
|
||||||
|
|
||||||
# upload_logs_to_gcs uploads test logs to gcs.
|
# upload_logs_to_gcs uploads test logs to gcs.
|
||||||
# Var set:
|
# Var set:
|
||||||
# 1. Bucket: gcs bucket to upload logs.
|
# 1. Bucket: gcs bucket to upload logs.
|
||||||
@ -72,7 +76,7 @@ sha256() {
|
|||||||
from-vendor() {
|
from-vendor() {
|
||||||
local what=$1
|
local what=$1
|
||||||
local repo=$2
|
local repo=$2
|
||||||
local vendor=$(dirname "${BASH_SOURCE[0]}")/../vendor.conf
|
local vendor=$VENDOR
|
||||||
setvars=$(awk -v REPO=$repo -v WHAT=$what -- '
|
setvars=$(awk -v REPO=$repo -v WHAT=$what -- '
|
||||||
BEGIN { rc=1 } # Assume we did not find what we were looking for.
|
BEGIN { rc=1 } # Assume we did not find what we were looking for.
|
||||||
// {
|
// {
|
||||||
@ -91,14 +95,3 @@ from-vendor() {
|
|||||||
fi
|
fi
|
||||||
eval $setvars
|
eval $setvars
|
||||||
}
|
}
|
||||||
|
|
||||||
from-vendor RUNC github.com/opencontainers/runc
|
|
||||||
from-vendor CNI github.com/containernetworking/plugins
|
|
||||||
from-vendor CONTAINERD github.com/containerd/containerd
|
|
||||||
from-vendor KUBERNETES k8s.io/kubernetes
|
|
||||||
|
|
||||||
# k8s.io is actually a redirect, but we do not handle the go-import
|
|
||||||
# metadata which `go get` and `vndr` etc do. Handle it manually here.
|
|
||||||
if [ x"$KUBERNETES_REPO" = "xk8s.io" ] ; then
|
|
||||||
KUBERNETES_REPO="https://github.com/kubernetes/kubernetes"
|
|
||||||
fi
|
|
||||||
|
46
test/build-containerd.sh
Executable file
46
test/build-containerd.sh
Executable file
@ -0,0 +1,46 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2018 The containerd Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
# This script is used to build and upload latest containerd from
|
||||||
|
# containerd/containerd in gcr.io/k8s-testimages/kubekins-e2e.
|
||||||
|
|
||||||
|
set -o xtrace
|
||||||
|
set -o errexit
|
||||||
|
set -o nounset
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
source $(dirname "${BASH_SOURCE[0]}")/build-utils.sh
|
||||||
|
cd "${ROOT}"
|
||||||
|
|
||||||
|
if [ -z "${GOPATH}" ]; then
|
||||||
|
echo "GOPATH is not set"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
CONTAINERD_PATH=${GOPATH}/src/github.com/containerd/containerd
|
||||||
|
if [ ! -d "${CONTAINERD_PATH}" ]; then
|
||||||
|
echo "containerd repo does not exist"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Make sure output directory is clean.
|
||||||
|
make clean
|
||||||
|
# Build and push test tarball.
|
||||||
|
PUSH_VERSION=true DEPLOY_DIR=${DEPLOY_DIR:-""} \
|
||||||
|
make push TARBALL_PREFIX=containerd-cni \
|
||||||
|
INCLUDE_CNI=true \
|
||||||
|
CHECKOUT_CONTAINERD=false \
|
||||||
|
VENDOR=${CONTAINERD_PATH}/vendor.conf
|
42
test/build-utils.sh
Executable file
42
test/build-utils.sh
Executable file
@ -0,0 +1,42 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2018 The containerd Authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"/..
|
||||||
|
|
||||||
|
# PROJECT is the gce project to upload tarball.
|
||||||
|
PROJECT=${PROJECT:-"k8s-cri-containerd"}
|
||||||
|
|
||||||
|
# GOOGLE_APPLICATION_CREDENTIALS is the path of service account file.
|
||||||
|
if [ -z ${GOOGLE_APPLICATION_CREDENTIALS} ]; then
|
||||||
|
echo "GOOGLE_APPLICATION_CREDENTIALS is not set"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Activate gcloud service account.
|
||||||
|
gcloud auth activate-service-account --key-file "${GOOGLE_APPLICATION_CREDENTIALS}" --project="${PROJECT}"
|
||||||
|
|
||||||
|
# Install dependent libraries.
|
||||||
|
sh -c "echo 'deb http://ftp.debian.org/debian jessie-backports main' > /etc/apt/sources.list.d/backports.list"
|
||||||
|
apt-get update
|
||||||
|
apt-get install -y btrfs-tools
|
||||||
|
apt-get install -y libseccomp2/jessie-backports
|
||||||
|
apt-get install -y libseccomp-dev/jessie-backports
|
||||||
|
apt-get install -y libapparmor-dev
|
||||||
|
|
||||||
|
# PULL_REFS is from prow.
|
||||||
|
if [ ! -z "${PULL_REFS:-""}" ]; then
|
||||||
|
DEPLOY_DIR=$(echo "${PULL_REFS}" | sha1sum | awk '{print $1}')
|
||||||
|
fi
|
@ -14,45 +14,19 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
# This script is used to build and upload cri-containerd in gcr.io/k8s-testimages/kubekins-e2e.
|
# This script is used to build and upload containerd with latest CRI plugin
|
||||||
|
# from containerd/cri in gcr.io/k8s-testimages/kubekins-e2e.
|
||||||
|
|
||||||
set -o xtrace
|
set -o xtrace
|
||||||
set -o errexit
|
set -o errexit
|
||||||
set -o nounset
|
set -o nounset
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
|
||||||
ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"/..
|
source $(dirname "${BASH_SOURCE[0]}")/build-utils.sh
|
||||||
cd "${ROOT}"
|
cd "${ROOT}"
|
||||||
|
|
||||||
# PROJECT is the gce project to upload tarball.
|
|
||||||
PROJECT=${PROJECT:-"k8s-cri-containerd"}
|
|
||||||
|
|
||||||
# GOOGLE_APPLICATION_CREDENTIALS is the path of service account file.
|
|
||||||
if [ -z ${GOOGLE_APPLICATION_CREDENTIALS} ]; then
|
|
||||||
echo "GOOGLE_APPLICATION_CREDENTIALS is not set"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Activate gcloud service account.
|
|
||||||
gcloud auth activate-service-account --key-file "${GOOGLE_APPLICATION_CREDENTIALS}" --project="${PROJECT}"
|
|
||||||
|
|
||||||
# Install dependent libraries.
|
|
||||||
sh -c "echo 'deb http://ftp.debian.org/debian jessie-backports main' > /etc/apt/sources.list.d/backports.list"
|
|
||||||
apt-get update
|
|
||||||
apt-get install -y btrfs-tools
|
|
||||||
apt-get install -y libseccomp2/jessie-backports
|
|
||||||
apt-get install -y libseccomp-dev/jessie-backports
|
|
||||||
apt-get install -y libapparmor-dev
|
|
||||||
|
|
||||||
# PULL_REFS is from prow.
|
|
||||||
if [ ! -z "${PULL_REFS:-""}" ]; then
|
|
||||||
DEPLOY_DIR=$(echo "${PULL_REFS}" | sha1sum | awk '{print $1}')
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Make sure output directory is clean.
|
# Make sure output directory is clean.
|
||||||
make clean
|
make clean
|
||||||
# Build and push e2e tarball.
|
# Build and push test tarball.
|
||||||
DEPLOY_DIR=${DEPLOY_DIR:-""} make push
|
|
||||||
# Build and push node e2e tarball.
|
|
||||||
PUSH_VERSION=true DEPLOY_DIR=${DEPLOY_DIR:-""} \
|
PUSH_VERSION=true DEPLOY_DIR=${DEPLOY_DIR:-""} \
|
||||||
make push TARBALL_PREFIX=cri-containerd-cni INCLUDE_CNI=true CUSTOM_CONTAINERD=true
|
make push TARBALL_PREFIX=cri-containerd-cni INCLUDE_CNI=true CUSTOM_CONTAINERD=true
|
||||||
|
@ -50,7 +50,7 @@ fi
|
|||||||
# By default use the release tarball with cni built in.
|
# By default use the release tarball with cni built in.
|
||||||
PKG_PREFIX=${PKG_PREFIX:-"cri-containerd-cni"}
|
PKG_PREFIX=${PKG_PREFIX:-"cri-containerd-cni"}
|
||||||
# PKG_PREFIX_METADATA is the metadata key of PKG_PREFIX.
|
# PKG_PREFIX_METADATA is the metadata key of PKG_PREFIX.
|
||||||
PKG_PREFIX_METADATA="pkg_prefix"
|
PKG_PREFIX_METADATA="pkg-prefix"
|
||||||
pkg_prefix=$(fetch_metadata "${PKG_PREFIX_METADATA}")
|
pkg_prefix=$(fetch_metadata "${PKG_PREFIX_METADATA}")
|
||||||
if [ ! -z "${pkg_prefix}" ]; then
|
if [ ! -z "${pkg_prefix}" ]; then
|
||||||
PKG_PREFIX=${pkg_prefix}
|
PKG_PREFIX=${pkg_prefix}
|
||||||
|
9
test/e2e_node/image-config-containerd.yaml
Normal file
9
test/e2e_node/image-config-containerd.yaml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
images:
|
||||||
|
ubuntu:
|
||||||
|
image: ubuntu-gke-1604-xenial-v20170420-1
|
||||||
|
project: ubuntu-os-gke-cloud
|
||||||
|
metadata: "user-data<test/e2e_node/init.yaml,containerd-configure-sh<test/configure.sh,pkg-prefix=containerd-cni"
|
||||||
|
cos-stable:
|
||||||
|
image_regex: cos-stable-60-9592-84-0
|
||||||
|
project: cos-cloud
|
||||||
|
metadata: "user-data<test/e2e_node/init.yaml,containerd-configure-sh<test/configure.sh,extra-init-sh<test/e2e_node/gci-init.sh,gci-update-strategy=update_disabled,pkg-prefix=containerd-cni"
|
@ -3,11 +3,11 @@ github.com/blang/semver v3.1.0
|
|||||||
github.com/boltdb/bolt e9cf4fae01b5a8ff89d0ec6b32f0d9c9f79aefdd
|
github.com/boltdb/bolt e9cf4fae01b5a8ff89d0ec6b32f0d9c9f79aefdd
|
||||||
github.com/BurntSushi/toml a368813c5e648fee92e5f6c30e3944ff9d5e8895
|
github.com/BurntSushi/toml a368813c5e648fee92e5f6c30e3944ff9d5e8895
|
||||||
github.com/containerd/cgroups fe281dd265766145e943a034aa41086474ea6130
|
github.com/containerd/cgroups fe281dd265766145e943a034aa41086474ea6130
|
||||||
github.com/containerd/console 84eeaae905fa414d03e07bcd6c8d3f19e7cf180e
|
github.com/containerd/console cb7008ab3d8359b78c5f464cb7cf160107ad5925
|
||||||
github.com/containerd/containerd 3c1ef1a714cf5b0104f340f76d539802fc24c75f
|
github.com/containerd/containerd 3c1ef1a714cf5b0104f340f76d539802fc24c75f
|
||||||
github.com/containerd/continuity d8fb8589b0e8e85b8c8bbaa8840226d0dfeb7371
|
github.com/containerd/continuity d8fb8589b0e8e85b8c8bbaa8840226d0dfeb7371
|
||||||
github.com/containerd/fifo fbfb6a11ec671efbe94ad1c12c2e98773f19e1e6
|
github.com/containerd/fifo 3d5202aec260678c48179c56f40e6f38a095738c
|
||||||
github.com/containerd/go-runc 4f6e87ae043f859a38255247b49c9abc262d002f
|
github.com/containerd/go-runc bcb223a061a3dd7de1a89c0b402a60f4dd9bd307
|
||||||
github.com/containerd/go-cni f2d7272f12d045b16ed924f50e91f9f9cecc55a7
|
github.com/containerd/go-cni f2d7272f12d045b16ed924f50e91f9f9cecc55a7
|
||||||
github.com/containerd/typeurl f6943554a7e7e88b3c14aad190bf05932da84788
|
github.com/containerd/typeurl f6943554a7e7e88b3c14aad190bf05932da84788
|
||||||
github.com/containernetworking/cni v0.6.0
|
github.com/containernetworking/cni v0.6.0
|
||||||
|
16
vendor/github.com/containerd/console/console.go
generated
vendored
16
vendor/github.com/containerd/console/console.go
generated
vendored
@ -1,3 +1,19 @@
|
|||||||
|
/*
|
||||||
|
Copyright The containerd Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
package console
|
package console
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
16
vendor/github.com/containerd/console/console_linux.go
generated
vendored
16
vendor/github.com/containerd/console/console_linux.go
generated
vendored
@ -1,5 +1,21 @@
|
|||||||
// +build linux
|
// +build linux
|
||||||
|
|
||||||
|
/*
|
||||||
|
Copyright The containerd Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
package console
|
package console
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
18
vendor/github.com/containerd/console/console_unix.go
generated
vendored
18
vendor/github.com/containerd/console/console_unix.go
generated
vendored
@ -1,4 +1,20 @@
|
|||||||
// +build darwin freebsd linux solaris
|
// +build darwin freebsd linux openbsd solaris
|
||||||
|
|
||||||
|
/*
|
||||||
|
Copyright The containerd Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
package console
|
package console
|
||||||
|
|
||||||
|
16
vendor/github.com/containerd/console/console_windows.go
generated
vendored
16
vendor/github.com/containerd/console/console_windows.go
generated
vendored
@ -1,3 +1,19 @@
|
|||||||
|
/*
|
||||||
|
Copyright The containerd Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
package console
|
package console
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
16
vendor/github.com/containerd/console/tc_darwin.go
generated
vendored
16
vendor/github.com/containerd/console/tc_darwin.go
generated
vendored
@ -1,3 +1,19 @@
|
|||||||
|
/*
|
||||||
|
Copyright The containerd Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
package console
|
package console
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
16
vendor/github.com/containerd/console/tc_freebsd.go
generated
vendored
16
vendor/github.com/containerd/console/tc_freebsd.go
generated
vendored
@ -1,3 +1,19 @@
|
|||||||
|
/*
|
||||||
|
Copyright The containerd Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
package console
|
package console
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
36
vendor/github.com/containerd/console/tc_linux.go
generated
vendored
36
vendor/github.com/containerd/console/tc_linux.go
generated
vendored
@ -1,3 +1,19 @@
|
|||||||
|
/*
|
||||||
|
Copyright The containerd Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
package console
|
package console
|
||||||
|
|
||||||
import (
|
import (
|
||||||
@ -13,25 +29,21 @@ const (
|
|||||||
cmdTcSet = unix.TCSETS
|
cmdTcSet = unix.TCSETS
|
||||||
)
|
)
|
||||||
|
|
||||||
func ioctl(fd, flag, data uintptr) error {
|
// unlockpt unlocks the slave pseudoterminal device corresponding to the master pseudoterminal referred to by f.
|
||||||
if _, _, err := unix.Syscall(unix.SYS_IOCTL, fd, flag, data); err != 0 {
|
// unlockpt should be called before opening the slave side of a pty.
|
||||||
|
func unlockpt(f *os.File) error {
|
||||||
|
var u int32
|
||||||
|
if _, _, err := unix.Syscall(unix.SYS_IOCTL, f.Fd(), unix.TIOCSPTLCK, uintptr(unsafe.Pointer(&u))); err != 0 {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// unlockpt unlocks the slave pseudoterminal device corresponding to the master pseudoterminal referred to by f.
|
|
||||||
// unlockpt should be called before opening the slave side of a pty.
|
|
||||||
func unlockpt(f *os.File) error {
|
|
||||||
var u int32
|
|
||||||
return ioctl(f.Fd(), unix.TIOCSPTLCK, uintptr(unsafe.Pointer(&u)))
|
|
||||||
}
|
|
||||||
|
|
||||||
// ptsname retrieves the name of the first available pts for the given master.
|
// ptsname retrieves the name of the first available pts for the given master.
|
||||||
func ptsname(f *os.File) (string, error) {
|
func ptsname(f *os.File) (string, error) {
|
||||||
n, err := unix.IoctlGetInt(int(f.Fd()), unix.TIOCGPTN)
|
var u uint32
|
||||||
if err != nil {
|
if _, _, err := unix.Syscall(unix.SYS_IOCTL, f.Fd(), unix.TIOCGPTN, uintptr(unsafe.Pointer(&u))); err != 0 {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
return fmt.Sprintf("/dev/pts/%d", n), nil
|
return fmt.Sprintf("/dev/pts/%d", u), nil
|
||||||
}
|
}
|
||||||
|
51
vendor/github.com/containerd/console/tc_openbsd_cgo.go
generated
vendored
Normal file
51
vendor/github.com/containerd/console/tc_openbsd_cgo.go
generated
vendored
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
// +build openbsd,cgo
|
||||||
|
|
||||||
|
/*
|
||||||
|
Copyright The containerd Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package console
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os"
|
||||||
|
|
||||||
|
"golang.org/x/sys/unix"
|
||||||
|
)
|
||||||
|
|
||||||
|
//#include <stdlib.h>
|
||||||
|
import "C"
|
||||||
|
|
||||||
|
const (
|
||||||
|
cmdTcGet = unix.TIOCGETA
|
||||||
|
cmdTcSet = unix.TIOCSETA
|
||||||
|
)
|
||||||
|
|
||||||
|
// ptsname retrieves the name of the first available pts for the given master.
|
||||||
|
func ptsname(f *os.File) (string, error) {
|
||||||
|
ptspath, err := C.ptsname(C.int(f.Fd()))
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
return C.GoString(ptspath), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// unlockpt unlocks the slave pseudoterminal device corresponding to the master pseudoterminal referred to by f.
|
||||||
|
// unlockpt should be called before opening the slave side of a pty.
|
||||||
|
func unlockpt(f *os.File) error {
|
||||||
|
if _, err := C.grantpt(C.int(f.Fd())); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
47
vendor/github.com/containerd/console/tc_openbsd_nocgo.go
generated
vendored
Normal file
47
vendor/github.com/containerd/console/tc_openbsd_nocgo.go
generated
vendored
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
// +build openbsd,!cgo
|
||||||
|
|
||||||
|
/*
|
||||||
|
Copyright The containerd Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// Implementing the functions below requires cgo support. Non-cgo stubs
|
||||||
|
// versions are defined below to enable cross-compilation of source code
|
||||||
|
// that depends on these functions, but the resultant cross-compiled
|
||||||
|
// binaries cannot actually be used. If the stub function(s) below are
|
||||||
|
// actually invoked they will display an error message and cause the
|
||||||
|
// calling process to exit.
|
||||||
|
//
|
||||||
|
|
||||||
|
package console
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os"
|
||||||
|
|
||||||
|
"golang.org/x/sys/unix"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
cmdTcGet = unix.TIOCGETA
|
||||||
|
cmdTcSet = unix.TIOCSETA
|
||||||
|
)
|
||||||
|
|
||||||
|
func ptsname(f *os.File) (string, error) {
|
||||||
|
panic("ptsname() support requires cgo.")
|
||||||
|
}
|
||||||
|
|
||||||
|
func unlockpt(f *os.File) error {
|
||||||
|
panic("unlockpt() support requires cgo.")
|
||||||
|
}
|
16
vendor/github.com/containerd/console/tc_solaris_cgo.go
generated
vendored
16
vendor/github.com/containerd/console/tc_solaris_cgo.go
generated
vendored
@ -1,5 +1,21 @@
|
|||||||
// +build solaris,cgo
|
// +build solaris,cgo
|
||||||
|
|
||||||
|
/*
|
||||||
|
Copyright The containerd Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
package console
|
package console
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
16
vendor/github.com/containerd/console/tc_solaris_nocgo.go
generated
vendored
16
vendor/github.com/containerd/console/tc_solaris_nocgo.go
generated
vendored
@ -1,5 +1,21 @@
|
|||||||
// +build solaris,!cgo
|
// +build solaris,!cgo
|
||||||
|
|
||||||
|
/*
|
||||||
|
Copyright The containerd Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
//
|
//
|
||||||
// Implementing the functions below requires cgo support. Non-cgo stubs
|
// Implementing the functions below requires cgo support. Non-cgo stubs
|
||||||
// versions are defined below to enable cross-compilation of source code
|
// versions are defined below to enable cross-compilation of source code
|
||||||
|
18
vendor/github.com/containerd/console/tc_unix.go
generated
vendored
18
vendor/github.com/containerd/console/tc_unix.go
generated
vendored
@ -1,4 +1,20 @@
|
|||||||
// +build darwin freebsd linux solaris
|
// +build darwin freebsd linux openbsd solaris
|
||||||
|
|
||||||
|
/*
|
||||||
|
Copyright The containerd Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
package console
|
package console
|
||||||
|
|
||||||
|
16
vendor/github.com/containerd/fifo/fifo.go
generated
vendored
16
vendor/github.com/containerd/fifo/fifo.go
generated
vendored
@ -1,3 +1,19 @@
|
|||||||
|
/*
|
||||||
|
Copyright The containerd Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
package fifo
|
package fifo
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
16
vendor/github.com/containerd/fifo/handle_linux.go
generated
vendored
16
vendor/github.com/containerd/fifo/handle_linux.go
generated
vendored
@ -1,5 +1,21 @@
|
|||||||
// +build linux
|
// +build linux
|
||||||
|
|
||||||
|
/*
|
||||||
|
Copyright The containerd Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
package fifo
|
package fifo
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
16
vendor/github.com/containerd/fifo/handle_nolinux.go
generated
vendored
16
vendor/github.com/containerd/fifo/handle_nolinux.go
generated
vendored
@ -1,5 +1,21 @@
|
|||||||
// +build !linux
|
// +build !linux
|
||||||
|
|
||||||
|
/*
|
||||||
|
Copyright The containerd Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
package fifo
|
package fifo
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
16
vendor/github.com/containerd/fifo/mkfifo_nosolaris.go
generated
vendored
16
vendor/github.com/containerd/fifo/mkfifo_nosolaris.go
generated
vendored
@ -1,5 +1,21 @@
|
|||||||
// +build !solaris
|
// +build !solaris
|
||||||
|
|
||||||
|
/*
|
||||||
|
Copyright The containerd Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
package fifo
|
package fifo
|
||||||
|
|
||||||
import "syscall"
|
import "syscall"
|
||||||
|
16
vendor/github.com/containerd/fifo/mkfifo_solaris.go
generated
vendored
16
vendor/github.com/containerd/fifo/mkfifo_solaris.go
generated
vendored
@ -1,5 +1,21 @@
|
|||||||
// +build solaris
|
// +build solaris
|
||||||
|
|
||||||
|
/*
|
||||||
|
Copyright The containerd Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
package fifo
|
package fifo
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
16
vendor/github.com/containerd/go-runc/command_linux.go
generated
vendored
16
vendor/github.com/containerd/go-runc/command_linux.go
generated
vendored
@ -1,3 +1,19 @@
|
|||||||
|
/*
|
||||||
|
Copyright The containerd Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
package runc
|
package runc
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
16
vendor/github.com/containerd/go-runc/command_other.go
generated
vendored
16
vendor/github.com/containerd/go-runc/command_other.go
generated
vendored
@ -1,5 +1,21 @@
|
|||||||
// +build !linux
|
// +build !linux
|
||||||
|
|
||||||
|
/*
|
||||||
|
Copyright The containerd Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
package runc
|
package runc
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
16
vendor/github.com/containerd/go-runc/console.go
generated
vendored
16
vendor/github.com/containerd/go-runc/console.go
generated
vendored
@ -1,3 +1,19 @@
|
|||||||
|
/*
|
||||||
|
Copyright The containerd Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
package runc
|
package runc
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
16
vendor/github.com/containerd/go-runc/container.go
generated
vendored
16
vendor/github.com/containerd/go-runc/container.go
generated
vendored
@ -1,3 +1,19 @@
|
|||||||
|
/*
|
||||||
|
Copyright The containerd Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
package runc
|
package runc
|
||||||
|
|
||||||
import "time"
|
import "time"
|
||||||
|
16
vendor/github.com/containerd/go-runc/events.go
generated
vendored
16
vendor/github.com/containerd/go-runc/events.go
generated
vendored
@ -1,3 +1,19 @@
|
|||||||
|
/*
|
||||||
|
Copyright The containerd Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
package runc
|
package runc
|
||||||
|
|
||||||
type Event struct {
|
type Event struct {
|
||||||
|
16
vendor/github.com/containerd/go-runc/io.go
generated
vendored
16
vendor/github.com/containerd/go-runc/io.go
generated
vendored
@ -1,3 +1,19 @@
|
|||||||
|
/*
|
||||||
|
Copyright The containerd Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
package runc
|
package runc
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
16
vendor/github.com/containerd/go-runc/monitor.go
generated
vendored
16
vendor/github.com/containerd/go-runc/monitor.go
generated
vendored
@ -1,3 +1,19 @@
|
|||||||
|
/*
|
||||||
|
Copyright The containerd Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
package runc
|
package runc
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
39
vendor/github.com/containerd/go-runc/runc.go
generated
vendored
39
vendor/github.com/containerd/go-runc/runc.go
generated
vendored
@ -1,3 +1,19 @@
|
|||||||
|
/*
|
||||||
|
Copyright The containerd Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
package runc
|
package runc
|
||||||
|
|
||||||
import (
|
import (
|
||||||
@ -21,6 +37,15 @@ import (
|
|||||||
// Format is the type of log formatting options avaliable
|
// Format is the type of log formatting options avaliable
|
||||||
type Format string
|
type Format string
|
||||||
|
|
||||||
|
// TopBody represents the structured data of the full ps output
|
||||||
|
type TopResults struct {
|
||||||
|
// Processes running in the container, where each is process is an array of values corresponding to the headers
|
||||||
|
Processes [][]string `json:"Processes"`
|
||||||
|
|
||||||
|
// Headers are the names of the columns
|
||||||
|
Headers []string `json:"Headers"`
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
none Format = ""
|
none Format = ""
|
||||||
JSON Format = "json"
|
JSON Format = "json"
|
||||||
@ -379,6 +404,20 @@ func (r *Runc) Ps(context context.Context, id string) ([]int, error) {
|
|||||||
return pids, nil
|
return pids, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Top lists all the processes inside the container returning the full ps data
|
||||||
|
func (r *Runc) Top(context context.Context, id string, psOptions string) (*TopResults, error) {
|
||||||
|
data, err := cmdOutput(r.command(context, "ps", "--format", "table", id, psOptions), true)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("%s: %s", err, data)
|
||||||
|
}
|
||||||
|
|
||||||
|
topResults, err := parsePSOutput(data)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("%s: ", err)
|
||||||
|
}
|
||||||
|
return topResults, nil
|
||||||
|
}
|
||||||
|
|
||||||
type CheckpointOpts struct {
|
type CheckpointOpts struct {
|
||||||
// ImagePath is the path for saving the criu image file
|
// ImagePath is the path for saving the criu image file
|
||||||
ImagePath string
|
ImagePath string
|
||||||
|
62
vendor/github.com/containerd/go-runc/utils.go
generated
vendored
62
vendor/github.com/containerd/go-runc/utils.go
generated
vendored
@ -1,9 +1,26 @@
|
|||||||
|
/*
|
||||||
|
Copyright The containerd Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
package runc
|
package runc
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
"syscall"
|
"syscall"
|
||||||
)
|
)
|
||||||
@ -43,3 +60,48 @@ func putBuf(b *bytes.Buffer) {
|
|||||||
b.Reset()
|
b.Reset()
|
||||||
bytesBufferPool.Put(b)
|
bytesBufferPool.Put(b)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// fieldsASCII is similar to strings.Fields but only allows ASCII whitespaces
|
||||||
|
func fieldsASCII(s string) []string {
|
||||||
|
fn := func(r rune) bool {
|
||||||
|
switch r {
|
||||||
|
case '\t', '\n', '\f', '\r', ' ':
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return strings.FieldsFunc(s, fn)
|
||||||
|
}
|
||||||
|
|
||||||
|
// parsePSOutput parses the runtime's ps raw output and returns a TopResults
|
||||||
|
func parsePSOutput(output []byte) (*TopResults, error) {
|
||||||
|
topResults := &TopResults{}
|
||||||
|
|
||||||
|
lines := strings.Split(string(output), "\n")
|
||||||
|
topResults.Headers = fieldsASCII(lines[0])
|
||||||
|
|
||||||
|
pidIndex := -1
|
||||||
|
for i, name := range topResults.Headers {
|
||||||
|
if name == "PID" {
|
||||||
|
pidIndex = i
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, line := range lines[1:] {
|
||||||
|
if len(line) == 0 {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
fields := fieldsASCII(line)
|
||||||
|
|
||||||
|
if fields[pidIndex] == "-" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
process := fields[:len(topResults.Headers)-1]
|
||||||
|
process = append(process, strings.Join(fields[len(topResults.Headers)-1:], " "))
|
||||||
|
topResults.Processes = append(topResults.Processes, process)
|
||||||
|
|
||||||
|
}
|
||||||
|
return topResults, nil
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user