add a make target to isntall required tools for e2e
This commit is contained in:
		
							parent
							
								
									2aba5291d5
								
							
						
					
					
						commit
						f2b73e0ae6
					
				
							
								
								
									
										7
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										7
									
								
								Makefile
								
								
								
								
							|  | @ -1,4 +1,4 @@ | ||||||
| .PHONY: clean local test linux macos docker push scm-source.json e2e | .PHONY: clean local test linux macos docker push scm-source.json e2e e2e-tools | ||||||
| 
 | 
 | ||||||
| BINARY ?= postgres-operator | BINARY ?= postgres-operator | ||||||
| BUILD_FLAGS ?= -v | BUILD_FLAGS ?= -v | ||||||
|  | @ -92,6 +92,11 @@ test: | ||||||
| 	hack/verify-codegen.sh | 	hack/verify-codegen.sh | ||||||
| 	@go test ./... | 	@go test ./... | ||||||
| 
 | 
 | ||||||
|  | e2e-tools: | ||||||
|  | 	@pip3 install -r e2e/requirements.txt | ||||||
|  | 	@go get -u sigs.k8s.io/kind | ||||||
|  | 	# assumes kubectl is already isntalled | ||||||
|  | 
 | ||||||
| e2e: docker | e2e: docker | ||||||
| 	e2e/run.sh | 	e2e/run.sh | ||||||
| 	flake8 --exit-zero | 	flake8 --exit-zero | ||||||
|  |  | ||||||
|  | @ -45,13 +45,11 @@ pipeline: | ||||||
|           cmd: | |           cmd: | | ||||||
|             export PATH=$PATH:$HOME/go/bin |             export PATH=$PATH:$HOME/go/bin | ||||||
|             cd $OPERATOR_TOP_DIR/postgres-operator |             cd $OPERATOR_TOP_DIR/postgres-operator | ||||||
|             go get -u sigs.k8s.io/kind |  | ||||||
|             pip3 install -r requirements.txt |  | ||||||
|             echo "INFO install kubectl to test 'kind' from client side" |             echo "INFO install kubectl to test 'kind' from client side" | ||||||
|             (curl -LO --silent https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl && |             (curl -LO --silent https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl && | ||||||
|             chmod +x ./kubectl && |             chmod +x ./kubectl && | ||||||
|             mv ./kubectl /usr/local/bin/kubectl) || exit 1 |             mv ./kubectl /usr/local/bin/kubectl) || exit 1 | ||||||
|             make e2e |             make e2e-tools e2e | ||||||
|         - desc: 'Push docker image' |         - desc: 'Push docker image' | ||||||
|           cmd: | |           cmd: | | ||||||
|             export PATH=$PATH:$HOME/go/bin |             export PATH=$PATH:$HOME/go/bin | ||||||
|  |  | ||||||
|  | @ -319,7 +319,7 @@ kubectl logs acid-minimal-cluster-0 | ||||||
| 
 | 
 | ||||||
| The operator provides e2e (end-to-end) tests to ensure various infra parts work smoothly together. | The operator provides e2e (end-to-end) tests to ensure various infra parts work smoothly together. | ||||||
| Such tests employ [kind](https://kind.sigs.k8s.io/) to start a local k8s cluster. | Such tests employ [kind](https://kind.sigs.k8s.io/) to start a local k8s cluster. | ||||||
| We intend to execute e2e tests during builds, but you can invoke them locally with `make e2e` from the project's top directory. Each e2e execution tests a Postgres operator image built from the current git branch. | We intend to execute e2e tests during builds, but you can invoke them locally with `make e2e` from the project's top directory; run `make e2e-tools` to install `kind` and Python dependencies before the first run. Each e2e execution tests a Postgres operator image built from the current git branch. | ||||||
| 
 | 
 | ||||||
| ### Smoke tests | ### Smoke tests | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -40,7 +40,7 @@ class SmokeTestCase(unittest.TestCase): | ||||||
|             utils.create_from_yaml(k8s_api.k8s_client, "manifests/" + filename) |             utils.create_from_yaml(k8s_api.k8s_client, "manifests/" + filename) | ||||||
| 
 | 
 | ||||||
|         # submit the most recent operator image built locally |         # submit the most recent operator image built locally | ||||||
|         # HACK assumes "images lists" returns the most recent image at index 0 |         # HACK assumes "images list" returns the most recent image at index 0 | ||||||
|         docker_client = docker.from_env() |         docker_client = docker.from_env() | ||||||
|         image = docker_client.images.list(name="registry.opensource.zalan.do/acid/postgres-operator")[0].tags[0] |         image = docker_client.images.list(name="registry.opensource.zalan.do/acid/postgres-operator")[0].tags[0] | ||||||
|         body = { |         body = { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue