Add make target `test-with-deps` to ease setting up dependent binaries (#426)
This commit is contained in:
		
							parent
							
								
									0783ffe989
								
							
						
					
					
						commit
						da4dfb3fdf
					
				
							
								
								
									
										72
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										72
									
								
								Makefile
								
								
								
								
							|  | @ -14,6 +14,8 @@ else | |||
| GOBIN=$(shell go env GOBIN) | ||||
| endif | ||||
| 
 | ||||
| TEST_ASSETS=$(PWD)/test-assets | ||||
| 
 | ||||
| # default list of platforms for which multiarch image is built
 | ||||
| ifeq (${PLATFORMS}, ) | ||||
| 	export PLATFORMS="linux/amd64,linux/arm64" | ||||
|  | @ -37,6 +39,13 @@ all: manager | |||
| test: generate fmt vet manifests | ||||
| 	go test ./... -coverprofile cover.out | ||||
| 
 | ||||
| test-with-deps: kube-apiserver etcd kubectl | ||||
| 	# See https://pkg.go.dev/sigs.k8s.io/controller-runtime/pkg/envtest#pkg-constants | ||||
| 	TEST_ASSET_KUBE_APISERVER=$(KUBE_APISERVER_BIN) \
 | ||||
| 	TEST_ASSET_ETCD=$(ETCD_BIN) \
 | ||||
| 	TEST_ASSET_KUBECTL=$(KUBECTL_BIN) \
 | ||||
| 	  make test | ||||
| 
 | ||||
| # Build manager binary
 | ||||
| manager: generate fmt vet | ||||
| 	go build -o bin/manager main.go | ||||
|  | @ -191,3 +200,66 @@ ifeq (, $(wildcard $(GOBIN)/yq)) | |||
| 	} | ||||
| endif | ||||
| YQ=$(GOBIN)/yq | ||||
| 
 | ||||
| OS_NAME := $(shell uname -s | tr A-Z a-z) | ||||
| 
 | ||||
| # find or download etcd
 | ||||
| etcd: | ||||
| ifeq (, $(wildcard $(TEST_ASSETS)/etcd)) | ||||
| 	@{ \
 | ||||
| 	set -xe ;\
 | ||||
| 	INSTALL_TMP_DIR=$$(mktemp -d) ;\
 | ||||
| 	cd $$INSTALL_TMP_DIR ;\
 | ||||
| 	wget https://github.com/kubernetes-sigs/kubebuilder/releases/download/v2.3.2/kubebuilder_2.3.2_$(OS_NAME)_amd64.tar.gz ;\
 | ||||
| 	mkdir -p $(TEST_ASSETS) ;\
 | ||||
| 	tar zxvf kubebuilder_2.3.2_$(OS_NAME)_amd64.tar.gz ;\
 | ||||
| 	mv kubebuilder_2.3.2_$(OS_NAME)_amd64/bin/etcd $(TEST_ASSETS)/etcd ;\
 | ||||
| 	mv kubebuilder_2.3.2_$(OS_NAME)_amd64/bin/kube-apiserver $(TEST_ASSETS)/kube-apiserver ;\
 | ||||
| 	mv kubebuilder_2.3.2_$(OS_NAME)_amd64/bin/kubectl $(TEST_ASSETS)/kubectl ;\
 | ||||
| 	rm -rf $$INSTALL_TMP_DIR ;\
 | ||||
| 	} | ||||
| ETCD_BIN=$(TEST_ASSETS)/etcd | ||||
| else | ||||
| ETCD_BIN=$(TEST_ASSETS)/etcd | ||||
| endif | ||||
| 
 | ||||
| # find or download kube-apiserver
 | ||||
| kube-apiserver: | ||||
| ifeq (, $(wildcard $(TEST_ASSETS)/kube-apiserver)) | ||||
| 	@{ \
 | ||||
| 	set -xe ;\
 | ||||
| 	INSTALL_TMP_DIR=$$(mktemp -d) ;\
 | ||||
| 	cd $$INSTALL_TMP_DIR ;\
 | ||||
| 	wget https://github.com/kubernetes-sigs/kubebuilder/releases/download/v2.3.2/kubebuilder_2.3.2_$(OS_NAME)_amd64.tar.gz ;\
 | ||||
| 	mkdir -p $(TEST_ASSETS) ;\
 | ||||
| 	tar zxvf kubebuilder_2.3.2_$(OS_NAME)_amd64.tar.gz ;\
 | ||||
| 	mv kubebuilder_2.3.2_$(OS_NAME)_amd64/bin/etcd $(TEST_ASSETS)/etcd ;\
 | ||||
| 	mv kubebuilder_2.3.2_$(OS_NAME)_amd64/bin/kube-apiserver $(TEST_ASSETS)/kube-apiserver ;\
 | ||||
| 	mv kubebuilder_2.3.2_$(OS_NAME)_amd64/bin/kubectl $(TEST_ASSETS)/kubectl ;\
 | ||||
| 	rm -rf $$INSTALL_TMP_DIR ;\
 | ||||
| 	} | ||||
| KUBE_APISERVER_BIN=$(TEST_ASSETS)/kube-apiserver | ||||
| else | ||||
| KUBE_APISERVER_BIN=$(TEST_ASSETS)/kube-apiserver | ||||
| endif | ||||
| 
 | ||||
| 
 | ||||
| # find or download kubectl
 | ||||
| kubectl: | ||||
| ifeq (, $(wildcard $(TEST_ASSETS)/kubectl)) | ||||
| 	@{ \
 | ||||
| 	set -xe ;\
 | ||||
| 	INSTALL_TMP_DIR=$$(mktemp -d) ;\
 | ||||
| 	cd $$INSTALL_TMP_DIR ;\
 | ||||
| 	wget https://github.com/kubernetes-sigs/kubebuilder/releases/download/v2.3.2/kubebuilder_2.3.2_$(OS_NAME)_amd64.tar.gz ;\
 | ||||
| 	mkdir -p $(TEST_ASSETS) ;\
 | ||||
| 	tar zxvf kubebuilder_2.3.2_$(OS_NAME)_amd64.tar.gz ;\
 | ||||
| 	mv kubebuilder_2.3.2_$(OS_NAME)_amd64/bin/etcd $(TEST_ASSETS)/etcd ;\
 | ||||
| 	mv kubebuilder_2.3.2_$(OS_NAME)_amd64/bin/kube-apiserver $(TEST_ASSETS)/kube-apiserver ;\
 | ||||
| 	mv kubebuilder_2.3.2_$(OS_NAME)_amd64/bin/kubectl $(TEST_ASSETS)/kubectl ;\
 | ||||
| 	rm -rf $$INSTALL_TMP_DIR ;\
 | ||||
| 	} | ||||
| KUBECTL_BIN=$(TEST_ASSETS)/kubectl | ||||
| else | ||||
| KUBECTL_BIN=$(TEST_ASSETS)/kubectl | ||||
| endif | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue