Merge pull request #439 from erikwilson/e2e-enhancements

Add e2e enhancements
This commit is contained in:
Darren Shepherd 2019-05-03 16:11:08 -07:00 committed by GitHub
commit 647ced5aa4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 29 additions and 27 deletions

View File

@ -1,4 +1,4 @@
FROM alpine:3.8 as base
FROM alpine:3.9 as base
RUN apk add -U ca-certificates
ADD build/out/data.tar.gz /image
RUN mkdir -p /image/etc/ssl/certs /image/run /image/var/run /image/tmp /image/lib/modules /image/lib/firmware && \
@ -13,5 +13,6 @@ RUN chmod 1777 /tmp
VOLUME /var/lib/rancher/k3s
VOLUME /var/lib/cni
VOLUME /var/log
ENV PATH="$PATH:/bin/aux"
ENTRYPOINT ["/bin/k3s"]
CMD ["agent"]

View File

@ -40,10 +40,15 @@ cleanup() {
exit_status=$?
set +e
echo "Cleaning up"
docker logs ${K3S_SERVER} >${OUTPUT}/k3s-server.log 2>&1
docker logs ${K3S_AGENT} >${OUTPUT}/k3s-agent.log 2>&1
docker rm -f ${K3S_SERVER} 2>/dev/null
docker rm -f ${K3S_AGENT} 2>/dev/null
for container in ${K3S_SERVER} ${K3S_AGENT}; do
docker cp ${container}:/var/lib/rancher/k3s/agent/containerd/containerd.log ${OUTPUT}/${container}-containerd.log
docker logs ${container} >${OUTPUT}/${container}.log 2>&1
docker rm -f ${container} 2>/dev/null
if [ ${exit_status} -ne 0 ]; then
cat ${OUTPUT}/${container}-containerd.log
cat ${OUTPUT}/${container}.log
fi
done
rm ${KUBECONFIG}
exit ${exit_status}
}
@ -61,23 +66,13 @@ echo "Started ${K3S_SERVER} @ ${K3S_IP}:${K3S_PORT}"
# ---
docker run -d --name ${K3S_AGENT} --privileged \
-e K3S_CLUSTER_SECRET=${SECRET} \
-e K3S_URL=https://${K3S_IP}:${K3S_PORT} \
${K3S_IMAGE} agent
echo "Started ${K3S_AGENT}"
# ---
fetch-kubeconfig() {
docker exec ${K3S_SERVER} cat /etc/rancher/k3s/k3s.yaml 2>/dev/null \
| tee ${KUBECONFIG}
docker cp ${K3S_SERVER}:/etc/rancher/k3s/k3s.yaml ${KUBECONFIG} 2>/dev/null
}
export -f fetch-kubeconfig
wait-for-kubeconfig() {
while [[ -z "$(fetch-kubeconfig)" ]]; do
while ! fetch-kubeconfig; do
echo "Waiting for kubeconfig to become available..."
sleep 5
done
@ -88,6 +83,15 @@ timeout --foreground 1m bash -c wait-for-kubeconfig
# ---
docker run -d --name ${K3S_AGENT} --privileged \
-e K3S_CLUSTER_SECRET=${SECRET} \
-e K3S_URL=https://${K3S_IP}:${K3S_PORT} \
${K3S_IMAGE} agent
echo "Started ${K3S_AGENT}"
# ---
count-ready-nodes() {
kubectl get nodes -o json \
| jq '.items[].status.conditions[] | select(.type == "Ready" and .status == "True") | .type' \
@ -143,7 +147,9 @@ sonobuoy retrieve ${OUTPUT}
tar xzf *_sonobuoy_*.tar.gz
results="./plugins/e2e/results/e2e.log"
[ -s ${results} ] || exit 1
tail -20 ${results}
status=$(tail -5 ${results} | grep '^SUCCESS!.*| 0 Failed |' >/dev/null && echo passed || echo failed)
if [ -n "${E2E_LOG_OUTPUT}" ]; then
cp ${results} ${E2E_LOG_OUTPUT}
cp ${results} $(echo ${E2E_LOG_OUTPUT} | sed -e "s/-STATUS-/-${status}-/g")
fi
)

View File

@ -23,24 +23,19 @@ run-sonobuoy() {
pids+=($!)
}
log_output=${OUTPUT}/e2e-${ARCH}-serial.log \
log_output=${OUTPUT}/e2e-STATUS-${ARCH}-serial.log \
run-sonobuoy --e2e-focus='\[Serial\].*\[Conformance\]'
log_output=${OUTPUT}/e2e-${ARCH}-parallel.log \
log_output=${OUTPUT}/e2e-STATUS-${ARCH}-parallel.log \
run-sonobuoy --e2e-focus='\[Conformance\]' --e2e-skip='\[Serial\]' --e2e-parallel=y
cleanup() {
exit_status=$?
set +e
echo "Killing the tests!"
kill ${pids[@]}
wait ${pids[@]}
echo "Waiting on the tests!"
wait
exit ${exit_status}
}
trap cleanup EXIT
wait ${pids[@]}
trap - EXIT
for log in ${output[@]}; do
tail -20 ${log}
done