Add generated file
This PR adds generated files under pkg/client and vendor folder.
This commit is contained in:
49
vendor/k8s.io/kubernetes/test/e2e_node/conformance/build/Dockerfile
generated
vendored
Normal file
49
vendor/k8s.io/kubernetes/test/e2e_node/conformance/build/Dockerfile
generated
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
# Copyright 2016 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.
|
||||
|
||||
FROM BASEIMAGE
|
||||
|
||||
COPY ginkgo /usr/local/bin/
|
||||
COPY e2e_node.test /usr/local/bin
|
||||
|
||||
# This is a placeholder that will be substituted in the Makefile.
|
||||
COPY_SYSTEM_SPEC_FILE
|
||||
|
||||
# The following environment variables can be override when starting the container.
|
||||
# FOCUS is regex matching test to run. By default run all conformance test.
|
||||
# SKIP is regex matching test to skip. By default skip flaky and serial test.
|
||||
# PARALLELISM is the number of processes the test will run in parallel.
|
||||
# REPORT_PATH is the path in the container to save test result and logs.
|
||||
# FLAKE_ATTEMPTS is the time to retry when there is a test failure. By default 2.
|
||||
# TEST_ARGS is the test arguments passed into the test.
|
||||
ENV FOCUS="\[Conformance\]" \
|
||||
SKIP="\[Flaky\]|\[Serial\]" \
|
||||
PARALLELISM=8 \
|
||||
REPORT_PATH="/var/result" \
|
||||
FLAKE_ATTEMPTS=2 \
|
||||
TEST_ARGS=""
|
||||
|
||||
ENTRYPOINT ginkgo --focus="$FOCUS" \
|
||||
--skip="$SKIP" \
|
||||
--nodes=$PARALLELISM \
|
||||
--flakeAttempts=$FLAKE_ATTEMPTS \
|
||||
/usr/local/bin/e2e_node.test \
|
||||
-- --conformance=true \
|
||||
--prepull-images=false \
|
||||
--report-dir="$REPORT_PATH" \
|
||||
# This is a placeholder that will be substituted in the Makefile.
|
||||
--system-spec-name=SYSTEM_SPEC_NAME \
|
||||
# This is a placeholder that will be substituted in the Makefile.
|
||||
--system-spec-file=SYSTEM_SPEC_FILE_PATH \
|
||||
$TEST_ARGS
|
85
vendor/k8s.io/kubernetes/test/e2e_node/conformance/build/Makefile
generated
vendored
Normal file
85
vendor/k8s.io/kubernetes/test/e2e_node/conformance/build/Makefile
generated
vendored
Normal file
@@ -0,0 +1,85 @@
|
||||
# Copyright 2016 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.
|
||||
|
||||
# Build the node-test image.
|
||||
#
|
||||
# Usage:
|
||||
# [ARCH=amd64] [REGISTRY="staging-k8s.gcr.io"] [BIN_DIR="../../../../_output/bin"] make (build|push) VERSION={some_version_number e.g. 0.1}
|
||||
|
||||
# SYSTEM_SPEC_NAME is the name of the system spec used for the node conformance
|
||||
# test. The specs are expected to be in SYSTEM_SPEC_DIR.
|
||||
SYSTEM_SPEC_NAME?=
|
||||
SYSTEM_SPEC_DIR?=../../system/specs
|
||||
|
||||
# TODO(random-liu): Add this into release progress.
|
||||
REGISTRY?=staging-k8s.gcr.io
|
||||
ARCH?=amd64
|
||||
# BIN_DIR is the directory to find binaries, overwrite with ../../../../_output/bin
|
||||
# for local development.
|
||||
BIN_DIR?=../../../../_output/dockerized/bin/linux/${ARCH}
|
||||
TEMP_DIR:=$(shell mktemp -d)
|
||||
|
||||
BASEIMAGE_amd64=debian:jessie
|
||||
BASEIMAGE_arm=arm32v7/debian:jessie
|
||||
BASEIMAGE_arm64=arm64v8/debian:jessie
|
||||
BASEIMAGE_ppc64le=ppc64le/debian:jessie
|
||||
|
||||
BASEIMAGE?=${BASEIMAGE_${ARCH}}
|
||||
|
||||
IMAGE_NAME:=${REGISTRY}/node-test
|
||||
COPY_SYSTEM_SPEC_FILE=
|
||||
SYSTEM_SPEC_FILE_PATH=
|
||||
ifneq ($(strip $(SYSTEM_SPEC_NAME)),)
|
||||
IMAGE_NAME:=${IMAGE_NAME}-${SYSTEM_SPEC_NAME}
|
||||
COPY_SYSTEM_SPEC_FILE="'COPY system-spec.yaml /usr/local/etc/'"
|
||||
SYSTEM_SPEC_FILE_PATH="'/usr/local/etc/system-spec.yaml'"
|
||||
endif
|
||||
|
||||
all: build
|
||||
|
||||
build:
|
||||
|
||||
ifndef VERSION
|
||||
$(error VERSION is undefined)
|
||||
endif
|
||||
cp -r ./* ${TEMP_DIR}
|
||||
|
||||
cp ${BIN_DIR}/ginkgo ${TEMP_DIR}
|
||||
cp ${BIN_DIR}/e2e_node.test ${TEMP_DIR}
|
||||
ifneq ($(strip $(SYSTEM_SPEC_NAME)),)
|
||||
cp ${SYSTEM_SPEC_DIR}/${SYSTEM_SPEC_NAME}.yaml ${TEMP_DIR}/system-spec.yaml
|
||||
endif
|
||||
|
||||
cd ${TEMP_DIR} && sed -i.back \
|
||||
"s|BASEIMAGE|${BASEIMAGE}|g;\
|
||||
s|COPY_SYSTEM_SPEC_FILE|${COPY_SYSTEM_SPEC_FILE}|g;\
|
||||
s|SYSTEM_SPEC_NAME|${SYSTEM_SPEC_NAME}|g;\
|
||||
s|SYSTEM_SPEC_FILE_PATH|${SYSTEM_SPEC_FILE_PATH}|g" Dockerfile
|
||||
|
||||
# Make scripts executable before they are copied into the Docker image. If we make them executable later, in another layer
|
||||
# they'll take up twice the space because the new executable binary differs from the old one, but everything is cached in layers.
|
||||
cd ${TEMP_DIR} && chmod a+rx \
|
||||
e2e_node.test \
|
||||
ginkgo
|
||||
|
||||
docker build --pull -t ${IMAGE_NAME}-${ARCH}:${VERSION} ${TEMP_DIR}
|
||||
|
||||
push: build
|
||||
docker push ${IMAGE_NAME}-${ARCH}:${VERSION}
|
||||
ifeq ($(ARCH),amd64)
|
||||
docker tag ${IMAGE_NAME}-${ARCH}:${VERSION} ${IMAGE_NAME}:${VERSION}
|
||||
docker push ${IMAGE_NAME}:${VERSION}
|
||||
endif
|
||||
|
||||
.PHONY: all
|
209
vendor/k8s.io/kubernetes/test/e2e_node/conformance/run_test.sh
generated
vendored
Executable file
209
vendor/k8s.io/kubernetes/test/e2e_node/conformance/run_test.sh
generated
vendored
Executable file
@@ -0,0 +1,209 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright 2016 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.
|
||||
|
||||
# This script is only for demonstrating how to use the node test container. In
|
||||
# production environment, kubelet bootstrap will be more complicated, user
|
||||
# should configure the node test container accordingly.
|
||||
# In addition, this script will also be used in the node e2e test to let it use
|
||||
# the containerized test suite.
|
||||
|
||||
# TODO(random-liu): Use standard installer to install kubelet.
|
||||
# TODO(random-liu): Use standard tool to start kubelet in production way (such
|
||||
# as systemd, supervisord etc.)
|
||||
|
||||
# Refresh sudo credentials if not running on GCE.
|
||||
if ! ping -c 1 -q metadata.google.internal &> /dev/null; then
|
||||
sudo -v || exit 1
|
||||
fi
|
||||
|
||||
# FOCUS is ginkgo focus to select which tests to run. By default, FOCUS is
|
||||
# initialized as "\[Conformance\]" in the test container to run all conformance
|
||||
# test.
|
||||
FOCUS=${FOCUS:-""}
|
||||
|
||||
# SKIP is ginkgo skip to select which tests to skip. By default, SKIP is
|
||||
# initialized as "\[Flaky\]|\[Serial\]" in the test container skipping all
|
||||
# flaky and serial test.
|
||||
SKIP=${SKIP:-""}
|
||||
|
||||
# TEST_ARGS is the test arguments. It could be used to override default test
|
||||
# arguments in the container.
|
||||
TEST_ARGS=${TEST_ARGS:-""}
|
||||
|
||||
# REGISTRY is the image registry for node test image.
|
||||
REGISTRY=${REGISTRY:-"k8s.gcr.io"}
|
||||
|
||||
# ARCH is the architecture of current machine, the script will use this to
|
||||
# select corresponding test container image.
|
||||
ARCH=${ARCH:-"amd64"}
|
||||
|
||||
# VERSION is the version of the test container image.
|
||||
VERSION=${VERSION:-"0.2"}
|
||||
|
||||
# KUBELET_BIN is the kubelet binary name. If it is not specified, use the
|
||||
# default binary name "kubelet".
|
||||
KUBELET_BIN=${KUBELET_BIN:-"kubelet"}
|
||||
|
||||
# KUBELET is the kubelet binary path. If it is not specified, assume kubelet is
|
||||
# in PATH.
|
||||
KUBELET=${KUBELET:-"`which $KUBELET_BIN`"}
|
||||
|
||||
# LOG_DIR is the absolute path of the directory where the test will collect all
|
||||
# logs to. By default, use the current directory.
|
||||
LOG_DIR=${LOG_DIR:-`pwd`}
|
||||
mkdir -p $LOG_DIR
|
||||
|
||||
# NETWORK_PLUGIN is the network plugin used by kubelet. Do not use network
|
||||
# plugin by default.
|
||||
NETWORK_PLUGIN=${NETWORK_PLUGIN:-""}
|
||||
|
||||
# CNI_CONF_DIR is the path to network plugin binaries.
|
||||
CNI_CONF_DIR=${CNI_CONF_DIR:-""}
|
||||
|
||||
# CNI_BIN_DIR is the path to network plugin config files.
|
||||
CNI_BIN_DIR=${CNI_BIN_DIR:-""}
|
||||
|
||||
# KUBELET_KUBECONFIG_DIR is the path to a dir for the kubelet's kubeconfig file
|
||||
KUBELET_KUBECONFIG=${KUBELET_KUBECONFIG:-"/var/lib/kubelet/kubeconfig"}
|
||||
|
||||
# Creates a kubeconfig file for the kubelet.
|
||||
# Args: address (e.g. "http://localhost:8080"), destination file path
|
||||
function create-kubelet-kubeconfig() {
|
||||
local api_addr="${1}"
|
||||
local dest="${2}"
|
||||
local dest_dir="$(dirname "${dest}")"
|
||||
mkdir -p "${dest_dir}" &>/dev/null || sudo mkdir -p "${dest_dir}"
|
||||
sudo=$(test -w "${dest_dir}" || echo "sudo -E")
|
||||
cat <<EOF | ${sudo} tee "${dest}" > /dev/null
|
||||
apiVersion: v1
|
||||
kind: Config
|
||||
clusters:
|
||||
- cluster:
|
||||
server: ${api_addr}
|
||||
name: local
|
||||
contexts:
|
||||
- context:
|
||||
cluster: local
|
||||
name: local
|
||||
current-context: local
|
||||
EOF
|
||||
}
|
||||
|
||||
# start_kubelet starts kubelet and redirect kubelet log to $LOG_DIR/kubelet.log.
|
||||
kubelet_log=kubelet.log
|
||||
start_kubelet() {
|
||||
echo "Creating kubelet.kubeconfig"
|
||||
create-kubelet-kubeconfig "http://localhost:8080" $KUBELET_KUBECONFIG
|
||||
echo "Starting kubelet..."
|
||||
sudo -b $KUBELET $@ &>$LOG_DIR/$kubelet_log
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to start kubelet"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# wait_kubelet retries for 10 times for kubelet to be ready by checking http://127.0.0.1:10255/healthz.
|
||||
wait_kubelet() {
|
||||
echo "Health checking kubelet..."
|
||||
healthCheckURL=http://127.0.0.1:10255/healthz
|
||||
local maxRetry=10
|
||||
local cur=1
|
||||
while [ $cur -le $maxRetry ]; do
|
||||
curl -s $healthCheckURL > /dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "Kubelet is ready"
|
||||
break
|
||||
fi
|
||||
if [ $cur -eq $maxRetry ]; then
|
||||
echo "Health check exceeds max retry"
|
||||
exit 1
|
||||
fi
|
||||
echo "Kubelet is not ready"
|
||||
sleep 1
|
||||
((cur++))
|
||||
done
|
||||
}
|
||||
|
||||
# kill_kubelet kills kubelet.
|
||||
kill_kubelet() {
|
||||
echo "Stopping kubelet..."
|
||||
sudo pkill $KUBELET_BIN
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Failed to stop kubelet."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# run_test runs the node test container.
|
||||
run_test() {
|
||||
env=""
|
||||
if [ ! -z "$FOCUS" ]; then
|
||||
env="$env -e FOCUS=\"$FOCUS\""
|
||||
fi
|
||||
if [ ! -z "$SKIP" ]; then
|
||||
env="$env -e SKIP=\"$SKIP\""
|
||||
fi
|
||||
if [ ! -z "$TEST_ARGS" ]; then
|
||||
env="$env -e TEST_ARGS=\"$TEST_ARGS\""
|
||||
fi
|
||||
# The test assumes that inside the container:
|
||||
# * kubelet manifest path is mounted to the same path;
|
||||
# * log collect directory is mounted to /var/result;
|
||||
# * root file system is mounted to /rootfs.
|
||||
sudo sh -c "docker run -it --rm --privileged=true --net=host -v /:/rootfs \
|
||||
-v $config_dir:$config_dir -v $LOG_DIR:/var/result ${env} $REGISTRY/node-test-$ARCH:$VERSION"
|
||||
}
|
||||
|
||||
# Check whether kubelet is running. If kubelet is running, tell the user to stop
|
||||
# it before running the test.
|
||||
pid=`pidof $KUBELET_BIN`
|
||||
if [ ! -z $pid ]; then
|
||||
echo "Kubelet is running (pid=$pid), please stop it before running the test."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
volume_stats_agg_period=10s
|
||||
allow_privileged=true
|
||||
serialize_image_pulls=false
|
||||
config_dir=`mktemp -d`
|
||||
file_check_frequency=10s
|
||||
pod_cidr=10.100.0.0/24
|
||||
log_level=4
|
||||
start_kubelet --kubeconfig "${KUBELET_KUBECONFIG_DIR}/kubelet.kubeconfig" \
|
||||
--volume-stats-agg-period $volume_stats_agg_period \
|
||||
--allow-privileged=$allow_privileged \
|
||||
--serialize-image-pulls=$serialize_image_pulls \
|
||||
--pod-manifest-path $config_dir \
|
||||
--file-check-frequency $file_check_frequency \
|
||||
--pod-cidr=$pod_cidr \
|
||||
--runtime-cgroups=/docker-daemon \
|
||||
--kubelet-cgroups=/kubelet \
|
||||
--system-cgroups=/system \
|
||||
--cgroup-root=/ \
|
||||
--network-plugin=$NETWORK_PLUGIN \
|
||||
--cni-conf-dir=$CNI_CONF_DIR \
|
||||
--cni-bin-dir=$CNI_BIN_DIR \
|
||||
--v=$log_level \
|
||||
--logtostderr
|
||||
|
||||
wait_kubelet
|
||||
|
||||
run_test
|
||||
|
||||
kill_kubelet
|
||||
|
||||
# Clean up the kubelet config directory
|
||||
sudo rm -rf $config_dir
|
Reference in New Issue
Block a user