Envtest Setup
Learn how to setup your project to run integration tests using envtest
By default, Go-based operators are scaffolded to make use of controller-runtime’s envtest framework, which uses kubectl, kube-apiserver, and etcd to simulate the API portions of a real cluster. You can use this script to download these binaries into the testbin/ directory and configure your environment to use them. Update your Makefile by replacing your test target with:
# Run tests
ENVTEST_ASSETS_DIR=$(shell pwd)/testbin
test: generate fmt vet manifests
mkdir -p ${ENVTEST_ASSETS_DIR}
test -f ${ENVTEST_ASSETS_DIR}/setup-envtest.sh || curl -sSLo ${ENVTEST_ASSETS_DIR}/setup-envtest.sh https://raw.githubusercontent.com/kubernetes-sigs/controller-runtime/master/hack/setup-envtest.sh
source ${ENVTEST_ASSETS_DIR}/setup-envtest.sh; fetch_envtest_tools $(ENVTEST_ASSETS_DIR); setup_envtest_env $(ENVTEST_ASSETS_DIR); go test ./... -coverprofile cover.out
If using git, it is recommended to add testbin/* to your .gitignore file to avoid committing these binaries.
Last modified October 14, 2020: doc: add base doc that clarifies how users can test their projects (#3823) (6eb31294)