mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 11:50:44 +00:00
Fix up e2e test for update demo.
Use the scripts that are in the example directory. Also actually run the update as part of the test.
This commit is contained in:
parent
c47b405841
commit
ce34eacd2c
@ -19,6 +19,9 @@ if [ -z "$DOCKER_HUB_USER" ] ; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
export KUBE_REPO_ROOT=${KUBE_REPO_ROOT-$(dirname $0)/../..}
|
||||
export KUBECFG=${KUBECFG-$KUBE_REPO_ROOT/cluster/kubecfg.sh}
|
||||
|
||||
set -x
|
||||
|
||||
../../cluster/kubecfg.sh -p 8080:80 run $DOCKER_HUB_USER/update-demo:nautilus 2 update-demo
|
||||
$KUBECFG -p 8080:80 run $DOCKER_HUB_USER/update-demo:nautilus 2 update-demo
|
||||
|
@ -16,6 +16,9 @@
|
||||
|
||||
NEW_SIZE=${1:-4}
|
||||
|
||||
export KUBE_REPO_ROOT=${KUBE_REPO_ROOT-$(dirname $0)/../..}
|
||||
export KUBECFG=${KUBECFG-$KUBE_REPO_ROOT/cluster/kubecfg.sh}
|
||||
|
||||
set -x
|
||||
|
||||
../../cluster/kubecfg.sh resize update-demo $NEW_SIZE
|
||||
$KUBECFG resize update-demo $NEW_SIZE
|
||||
|
@ -20,7 +20,10 @@ if [ -z "$DOCKER_HUB_USER" ] ; then
|
||||
fi
|
||||
|
||||
NEW_IMAGE=${1:-kitten}
|
||||
TIMING=${2:-10s}
|
||||
export KUBE_REPO_ROOT=${KUBE_REPO_ROOT-$(dirname $0)/../..}
|
||||
export KUBECFG=${KUBECFG-$KUBE_REPO_ROOT/cluster/kubecfg.sh}
|
||||
|
||||
set -x
|
||||
|
||||
../../cluster/kubecfg.sh -image $DOCKER_HUB_USER/update-demo:$NEW_IMAGE -u 10s rollingupdate update-demo
|
||||
$KUBECFG -image $DOCKER_HUB_USER/update-demo:$NEW_IMAGE -u $TIMING rollingupdate update-demo
|
||||
|
@ -14,7 +14,10 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
export KUBE_REPO_ROOT=${KUBE_REPO_ROOT-$(dirname $0)/../..}
|
||||
export KUBECFG=${KUBECFG-$KUBE_REPO_ROOT/cluster/kubecfg.sh}
|
||||
|
||||
set -x
|
||||
|
||||
../../cluster/kubecfg.sh stop update-demo
|
||||
../../cluster/kubecfg.sh rm update-demo
|
||||
$KUBECFG stop update-demo
|
||||
$KUBECFG rm update-demo
|
||||
|
@ -16,65 +16,72 @@
|
||||
|
||||
# Launches an nginx container and verifies it can be reached. Assumes that
|
||||
# we're being called by hack/e2e-test.sh (we use some env vars it sets up).
|
||||
|
||||
# Exit on error
|
||||
set -e
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
set -x
|
||||
|
||||
source "${KUBE_REPO_ROOT}/cluster/kube-env.sh"
|
||||
source "${KUBE_REPO_ROOT}/cluster/$KUBERNETES_PROVIDER/util.sh"
|
||||
|
||||
function validate() {
|
||||
POD_ID_LIST=$($KUBECFG '-template={{range.Items}}{{.ID}} {{end}}' -l name=$controller list pods)
|
||||
# Container turn up on a clean cluster can take a while for the docker image pull.
|
||||
ALL_RUNNING=0
|
||||
while [ $ALL_RUNNING -ne 1 ]; do
|
||||
echo "Waiting for all containers in pod to come up."
|
||||
sleep 5
|
||||
ALL_RUNNING=1
|
||||
for id in $POD_ID_LIST; do
|
||||
CURRENT_STATUS=$($KUBECFG -template '{{and .CurrentState.Info.datacontroller.State.Running .CurrentState.Info.net.State.Running}}' get pods/$id)
|
||||
if [ "$CURRENT_STATUS" != "true" ]; then
|
||||
ALL_RUNNING=0
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
ids=($POD_ID_LIST)
|
||||
if [ ${#ids[@]} -ne $1 ]; then
|
||||
echo "Unexpected number of pods: ${#ids[@]}. Expected $1"
|
||||
exit 1
|
||||
fi
|
||||
CONTROLLER_NAME=update-demo
|
||||
|
||||
function validate() {
|
||||
NUM_REPLICAS=$1
|
||||
CONTAINER_IMAGE_VERSION=$2
|
||||
POD_ID_LIST=$($KUBECFG '-template={{range.Items}}{{.ID}} {{end}}' -l replicationController=${CONTROLLER_NAME} list pods)
|
||||
# Container turn up on a clean cluster can take a while for the docker image pull.
|
||||
ALL_RUNNING=0
|
||||
while [ $ALL_RUNNING -ne 1 ]; do
|
||||
echo "Waiting for all containers in pod to come up."
|
||||
sleep 5
|
||||
ALL_RUNNING=1
|
||||
for id in $POD_ID_LIST; do
|
||||
TEMPLATE_STRING="{{and ((index .CurrentState.Info \"${CONTROLLER_NAME}\").State.Running) .CurrentState.Info.net.State.Running}}"
|
||||
CURRENT_STATUS=$($KUBECFG -template "${TEMPLATE_STRING}" get pods/$id)
|
||||
if [ "$CURRENT_STATUS" != "true" ]; then
|
||||
ALL_RUNNING=0
|
||||
fi
|
||||
|
||||
CURRENT_IMAGE=$($KUBECFG -template "{{(index .CurrentState.Info \"${CONTROLLER_NAME}\").Config.Image}}" get pods/$id)
|
||||
if [ "$CURRENT_IMAGE" != "${DOCKER_HUB_USER}/update-demo:${CONTAINER_IMAGE_VERSION}" ]; then
|
||||
ALL_RUNNING=0
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
ids=($POD_ID_LIST)
|
||||
if [ ${#ids[@]} -ne $NUM_REPLICAS ]; then
|
||||
echo "Unexpected number of pods: ${#ids[@]}. Expected $NUM_REPLICAS"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
controller=dataController
|
||||
DOCKER_HUB_USER=jbeda
|
||||
|
||||
# Launch a container
|
||||
$KUBECFG -p 8080:80 run brendanburns/data 2 $controller
|
||||
${KUBE_REPO_ROOT}/examples/update-demo/1-create-replication-controller.sh
|
||||
|
||||
function teardown() {
|
||||
echo "Cleaning up test artifacts"
|
||||
$KUBECFG stop $controller
|
||||
$KUBECFG rm $controller
|
||||
${KUBE_REPO_ROOT}/examples/update-demo/4-down.sh
|
||||
}
|
||||
|
||||
trap "teardown" EXIT
|
||||
|
||||
validate 2
|
||||
validate 2 nautilus
|
||||
|
||||
$KUBECFG resize $controller 1
|
||||
${KUBE_REPO_ROOT}/examples/update-demo/2-scale.sh 1
|
||||
sleep 2
|
||||
validate 1
|
||||
validate 1 nautilus
|
||||
|
||||
$KUBECFG resize $controller 2
|
||||
${KUBE_REPO_ROOT}/examples/update-demo/2-scale.sh 2
|
||||
sleep 2
|
||||
validate 2
|
||||
validate 2 nautilus
|
||||
|
||||
# TODO: test rolling update here, but to do so, we need to make the update blocking
|
||||
# $KUBECFG -u=20s rollingupdate $controller
|
||||
#
|
||||
# Wait for the replica controller to recreate
|
||||
# sleep 10
|
||||
#
|
||||
# validate 2
|
||||
${KUBE_REPO_ROOT}/examples/update-demo/3-rolling-update.sh kitten 1s
|
||||
sleep 2
|
||||
validate 2 kitten
|
||||
|
||||
exit 0
|
||||
|
Loading…
Reference in New Issue
Block a user