Build pod_nanny in a container.
This commit is contained in:
		
							parent
							
								
									93942efb75
								
							
						
					
					
						commit
						6c727998ec
					
				|  | @ -9,6 +9,10 @@ | |||
| .project | ||||
| .settings/** | ||||
| 
 | ||||
| # Files generated by JetBrains IDEs, e.g. IntelliJ IDEA | ||||
| .idea/ | ||||
| *.iml | ||||
| 
 | ||||
| # Emacs save files | ||||
| *~ | ||||
| \#*\# | ||||
|  |  | |||
|  | @ -0,0 +1 @@ | |||
| pod_nanny | ||||
|  | @ -15,6 +15,6 @@ | |||
| FROM busybox | ||||
| MAINTAINER Quintin Lee "qlee@google.com" | ||||
| 
 | ||||
| ADD build/pod_nanny pod_nanny | ||||
| ADD pod_nanny pod_nanny | ||||
| 
 | ||||
| CMD ./pod_nanny | ||||
|  |  | |||
|  | @ -14,26 +14,27 @@ | |||
| 
 | ||||
| # Procedure for change:
 | ||||
| # 1. Bump the tag number.
 | ||||
| # 2. Create an image for the kubernetes user on Dockerhub and push there: make build push
 | ||||
| # 2. Create an image for the kubernetes user on Dockerhub and push there: make dev-release
 | ||||
| # 3. Temporarily adjust any config files etc. that reference gcr.io/google_containers/addon-resizer:$(TAG)
 | ||||
| #    to use kubernetes/addon-resizer:$(TAG) instead.
 | ||||
| # 4. Test etc.
 | ||||
| # 5. Issue PR.
 | ||||
| # 6. When PR is approved make the gcr.io version of the image: make build push
 | ||||
| # 6. When PR is approved make the gcr.io version of the image (Change REGISTRY variable below first): make release
 | ||||
| # 7. Revert the references to kubernetes/addon-resizer:$(TAG) to gcr.io/google_containers/addon-resizer:$(TAG)
 | ||||
| 
 | ||||
| OUT_DIR = build | ||||
| PACKAGE = k8s.io/contrib/addon-resizer | ||||
| PREFIX = gcr.io/google_containers | ||||
| TAG = 2.0 | ||||
| all: build | ||||
| 
 | ||||
| # Rules for building the real image for deployment to gcr.io
 | ||||
| PACKAGE = k8s.io/autoscaler/addon-resizer | ||||
| REGISTRY = kubernetes | ||||
| # Uncomment for release
 | ||||
| # REGISTRY = gcr.io/google_containers
 | ||||
| TAG = 2.0 | ||||
| 
 | ||||
| deps: | ||||
| 		go get -u github.com/tools/godep | ||||
| 
 | ||||
| compile: nanny/ deps | ||||
| 		GOOS=linux GOARCH=amd64 CGO_ENABLED=0 godep go build -a -o $(OUT_DIR)/pod_nanny nanny/main/pod_nanny.go | ||||
| 		GOOS=linux GOARCH=amd64 CGO_ENABLED=0 godep go build -a -o pod_nanny nanny/main/pod_nanny.go | ||||
| 
 | ||||
| test: nanny/ | ||||
| 		godep go test ${PACKAGE}/nanny -v | ||||
|  | @ -41,12 +42,30 @@ test: nanny/ | |||
| go: compile test | ||||
| 
 | ||||
| clean: | ||||
| 	rm -rf build | ||||
| 	rm -rf pod_nanny | ||||
| 
 | ||||
| build: go | ||||
| 	docker build --pull -t ${PREFIX}/addon-resizer:$(TAG) . | ||||
| 
 | ||||
| docker: build | ||||
| dev-release: build execute-release | ||||
| 	echo "Release ${TAG} completed" | ||||
| 
 | ||||
| # Rules for building the real image for deployment to gcr.io
 | ||||
| 
 | ||||
| execute-release: | ||||
| ifndef REGISTRY | ||||
| 	ERR = $(error REGISTRY is undefined) | ||||
| 	$(ERR) | ||||
| endif | ||||
| 	docker build --pull -t ${REGISTRY}/addon-resizer:${TAG} . | ||||
| 	gcloud docker -- push ${REGISTRY}/addon-resizer:${TAG} | ||||
| 
 | ||||
| docker-builder: | ||||
| 	docker build -t autoscaling-builder ../builder | ||||
| 
 | ||||
| build-in-docker: clean docker-builder | ||||
| 	docker run -v `pwd`:/gopath/src/k8s.io/autoscaler/addon-resizer/ autoscaling-builder:latest bash -c 'cd /gopath/src/k8s.io/autoscaler/addon-resizer && make' | ||||
| 
 | ||||
| release: build-in-docker execute-release | ||||
| 	echo "Full in-docker release ${TAG} completed" | ||||
| 
 | ||||
| 
 | ||||
| push: docker | ||||
| 	gcloud docker -- push ${PREFIX}/addon-resizer:$(TAG) | ||||
|  |  | |||
|  | @ -15,7 +15,7 @@ | |||
| FROM gcr.io/google-containers/ubuntu-slim:0.8 | ||||
| MAINTAINER Marcin Wielgus "mwielgus@google.com" | ||||
| 
 | ||||
| RUN apt-get update && apt-get install --yes git wget make\ | ||||
| RUN apt-get update && apt-get install --yes git wget make gcc \ | ||||
|   && apt-get clean \ | ||||
|   && rm -rf /var/lib/apt/lists/* | ||||
| RUN wget https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz \ | ||||
|  |  | |||
|  | @ -34,10 +34,10 @@ format: | |||
|     test -z "$$(find . -path ./vendor -prune -type f -o -name '*.go' -exec gofmt -s -w {} + | tee /dev/stderr)" | ||||
| 
 | ||||
| docker-builder: | ||||
| 	docker build -t autoscalig-builder ../builder | ||||
| 	docker build -t autoscaling-builder ../builder | ||||
| 
 | ||||
| build-in-docker: clean docker-builder | ||||
| 	docker run -v `pwd`:/gopath/src/k8s.io/autoscaler/cluster-autoscaler/  autoscalig-builder:latest bash -c 'cd /gopath/src/k8s.io/autoscaler/cluster-autoscaler && make' | ||||
| 	docker run -v `pwd`:/gopath/src/k8s.io/autoscaler/cluster-autoscaler/ autoscaling-builder:latest bash -c 'cd /gopath/src/k8s.io/autoscaler/cluster-autoscaler && make' | ||||
| 
 | ||||
| release: build-in-docker execute-release | ||||
| 	echo "Full in-docker release ${TAG} completed" | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue