This adds a 5 minute timeout to the end-to-end tests. The end-to-end tests typically run in under 2 minutes. On Circle-CI the timeout is 10 minutes, at which point, Circle CI just shoots the tests in the head so we don't get any logs.
55 lines
2.1 KiB
Makefile
55 lines
2.1 KiB
Makefile
.PHONY: skaffold.validate
|
|
skaffold.validate: kubectl_context := $(shell kubectl config current-context)
|
|
skaffold.validate:
|
|
if [[ ! "minikube,docker-for-desktop,docker-desktop" =~ .*"$(kubectl_context)".* ]]; then \
|
|
echo current-context is [$(kubectl_context)]. Must be one of [minikube,docker-for-desktop,docker-desktop]; \
|
|
false; \
|
|
fi
|
|
|
|
# skaffold deploys the virtual-kubelet to the Kubernetes cluster targeted by the current kubeconfig using skaffold.
|
|
# The current context (as indicated by "kubectl config current-context") must be one of "minikube" or "docker-for-desktop".
|
|
# MODE must be set to one of "dev" (default), "delete" or "run", and is used as the skaffold command to be run.
|
|
.PHONY: skaffold
|
|
skaffold: MODE ?= dev
|
|
skaffold: skaffold/$(MODE)
|
|
|
|
.PHONY: skaffold/%
|
|
skaffold/%: PROFILE := local
|
|
skaffold/%: skaffold.validate
|
|
skaffold $(*) \
|
|
-f $(PWD)/hack/skaffold/virtual-kubelet/skaffold.yml \
|
|
-p $(PROFILE)
|
|
|
|
bin/e2e:
|
|
@mkdir -p bin/e2e
|
|
|
|
bin/e2e/virtual-kubelet: bin/e2e
|
|
GOOS=linux GOARCH=amd64 $(MAKE) OUTPUT_DIR=$(@D) build
|
|
|
|
# e2e runs the end-to-end test suite against the Kubernetes cluster targeted by the current kubeconfig.
|
|
# It automatically deploys the virtual-kubelet with the mock provider by running "make skaffold MODE=run".
|
|
# It is the caller's responsibility to cleanup the deployment after running this target (e.g. by running "make skaffold MODE=delete").
|
|
.PHONY: e2e
|
|
e2e: KUBECONFIG ?= $(HOME)/.kube/config
|
|
e2e: NAMESPACE := default
|
|
e2e: NODE_NAME := vkubelet-mock-0
|
|
e2e: TAINT_KEY := virtual-kubelet.io/provider
|
|
e2e: TAINT_VALUE := mock
|
|
e2e: TAINT_EFFECT := NoSchedule
|
|
e2e: export VK_BUILD_TAGS += mock_provider
|
|
e2e: e2e.clean bin/e2e/virtual-kubelet skaffold/run
|
|
@echo Running tests...
|
|
cd $(PWD)/test/e2e && go test -v -timeout 5m -tags e2e ./... \
|
|
-kubeconfig=$(KUBECONFIG) \
|
|
-namespace=$(NAMESPACE) \
|
|
-node-name=$(NODE_NAME) \
|
|
-taint-key=$(TAINT_KEY) \
|
|
-taint-value=$(TAINT_VALUE) \
|
|
-taint-effect=$(TAINT_EFFECT)
|
|
|
|
.PHONY: e2e.clean
|
|
e2e.clean: NODE_NAME ?= vkubelet-mock-0
|
|
e2e.clean: skaffold/delete
|
|
kubectl delete --ignore-not-found node $(NODE_NAME); \
|
|
if [ -f bin/e2e/virtual-kubelet ]; then rm bin/e2e/virtual-kubelet; fi
|