Commit 50aa153f authored by Jack Greenfield's avatar Jack Greenfield

Merge pull request #316 from jackgr/make-fixes

Make fixes
parents 4df02478 7100adbe
...@@ -12,21 +12,24 @@ ...@@ -12,21 +12,24 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
.PHONY: info
info:
$(MAKE) -C $(ROOTFS) $@
.PHONY: gocheck
ifndef GOPATH ifndef GOPATH
$(error No GOPATH set) $(error No GOPATH set)
endif endif
include include.mk
GO_DIRS ?= $(shell glide nv -x ) GO_DIRS ?= $(shell glide nv -x )
GO_PKGS ?= $(shell glide nv) GO_PKGS ?= $(shell glide nv)
.PHONY: build .PHONY: build
build: build: gocheck
@scripts/build-go.sh @scripts/build-go.sh
.PHONY: build-cross .PHONY: build-cross
build-cross: build-cross: gocheck
@BUILD_CROSS=1 scripts/build-go.sh @BUILD_CROSS=1 scripts/build-go.sh
.PHONY: all .PHONY: all
...@@ -40,14 +43,18 @@ clean: ...@@ -40,14 +43,18 @@ clean:
.PHONY: test .PHONY: test
test: build test-style test-unit test: build test-style test-unit
ROOTFS := rootfs
.PHONY: push .PHONY: push
push: container push: all
$(MAKE) -C $(ROOTFS) $@
.PHONY: container .PHONY: container
container: .project .docker container: all
$(MAKE) -C $(ROOTFS) $@
.PHONY: test-unit .PHONY: test-unit
test-unit: test-unit:
@echo Running tests... @echo Running tests...
go test -v $(GO_PKGS) go test -v $(GO_PKGS)
...@@ -94,12 +101,3 @@ ifndef HAS_GOX ...@@ -94,12 +101,3 @@ ifndef HAS_GOX
go get -u github.com/mitchellh/gox go get -u github.com/mitchellh/gox
endif endif
glide install glide install
.PHONY: .project
.project:
@if [[ -z "${PROJECT}" ]]; then echo "PROJECT variable must be set"; exit 1; fi
.PHONY: .docker
.docker:
@if [[ -z `which docker` ]] || ! docker version &> /dev/null; then echo "docker is not installed correctly"; exit 1; fi
# Copyright 2015 The Kubernetes Authors All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
FROM python:2
MAINTAINER Jack Greenfield <jackgr@google.com>
RUN ln -s /usr/local/bin/python /usr/bin/python
RUN apt-get update \
&& apt-get autoremove -y \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# following lines copied from golang:1.6
RUN apt-get update && apt-get install -y --no-install-recommends \
g++ \
gcc \
libc6-dev \
make \
&& rm -rf /var/lib/apt/lists/*
ENV GOLANG_VERSION 1.6
ENV GOLANG_DOWNLOAD_URL https://golang.org/dl/go$GOLANG_VERSION.linux-amd64.tar.gz
ENV GOLANG_DOWNLOAD_SHA256 5470eac05d273c74ff8bac7bef5bad0b5abbd1c4052efbdbc8db45332e836b0b
RUN curl -fsSL "$GOLANG_DOWNLOAD_URL" -o golang.tar.gz \
&& echo "$GOLANG_DOWNLOAD_SHA256 golang.tar.gz" | sha256sum -c - \
&& tar -C /usr/local -xzf golang.tar.gz \
&& rm golang.tar.gz
ENV GOPATH /go
ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH
RUN mkdir -p "$GOPATH/src" "$GOPATH/bin" && chmod -R 777 "$GOPATH"
#end copied lines
COPY . "$GOPATH"/src/github.com/kubernetes/deployment-manager
WORKDIR "$GOPATH"/src/github.com/kubernetes/deployment-manager/expandybird
RUN go get -v -d .
RUN go install -v .
RUN mkdir -p /var/expandybird/expansion
WORKDIR /var/expandybird
COPY ./expandybird/expansion /var/expandybird/expansion
COPY ./expandybird/requirements.txt /var/expandybird/requirements.txt
RUN pip install --no-cache-dir -r /var/expandybird/requirements.txt
RUN cp "$GOPATH"/bin/expandybird /var/expandybird/expandybird
RUN /bin/rm -rf "$GOPATH"
EXPOSE 8080
ENTRYPOINT ["/var/expandybird/expandybird", "-expansion_binary", "/var/expandybird/expansion/expansion.py"]
# Copyright 2015 The Kubernetes Authors All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
include ../include.mk
.PHONY : all build push container clean .project
DOCKER_REGISTRY := gcr.io
PREFIX := $(DOCKER_REGISTRY)/$(PROJECT)
IMAGE := expandybird
ROOT_DIR := $(abspath ./..)
DIR = $(ROOT_DIR)
push: container
ifeq ($(DOCKER_REGISTRY),gcr.io)
gcloud docker push $(PREFIX)/$(IMAGE):$(TAG)
else
docker push $(PREFIX)/$(IMAGE):$(TAG)
endif
container:
docker build -t $(PREFIX)/$(IMAGE):$(TAG) -f Dockerfile $(DIR)
clean:
-docker rmi $(PREFIX)/$(IMAGE):$(TAG)
.PHONY: test
test: lint vet test-unit
# Copyright 2015 The Kubernetes Authors All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
FROM golang:1.6
MAINTAINER Jack Greenfield <jackgr@google.com>
RUN apt-get update \
&& apt-get autoremove -y \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
WORKDIR /usr/local/bin
ENV KUBE_VERSION v1.0.5
RUN curl -fsSL -o kubectl https://storage.googleapis.com/kubernetes-release/release/$KUBE_VERSION/bin/linux/amd64/kubectl \
&& chmod +x kubectl
COPY . "$GOPATH"/src/github.com/kubernetes/deployment-manager
WORKDIR "$GOPATH"/src/github.com/kubernetes/deployment-manager/manager
RUN go-wrapper download
RUN go-wrapper install
WORKDIR /usr/local/bin
RUN cp "$GOPATH"/bin/manager /usr/local/bin
RUN /bin/rm -rf "$GOPATH"
EXPOSE 8080
ENTRYPOINT ["/usr/local/bin/manager", "--kubectl=/usr/local/bin/kubectl"]
# Copyright 2015 The Kubernetes Authors All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
FROM golang:1.6
RUN apt-get update \
&& apt-get autoremove -y \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
WORKDIR /usr/local/bin
ENV KUBE_VERSION v1.0.5
RUN curl -fsSL -o kubectl https://storage.googleapis.com/kubernetes-release/release/$KUBE_VERSION/bin/linux/amd64/kubectl \
&& chmod +x kubectl
COPY . "$GOPATH"/src/github.com/kubernetes/deployment-manager
WORKDIR "$GOPATH"/src/github.com/kubernetes/deployment-manager/resourcifier
RUN go-wrapper download
RUN go-wrapper install
WORKDIR /usr/local/bin
RUN cp "$GOPATH"/bin/resourcifier /usr/local/bin
RUN /bin/rm -rf "$GOPATH"
EXPOSE 8080
ENTRYPOINT ["/usr/local/bin/resourcifier", "--kubectl=/usr/local/bin/kubectl"]
.PHONY: info
info:
@echo "Build tag: ${TAG}"
@echo "Registry: ${DOCKER_REGISTRY}"
@echo "Project: ${PROJECT}"
@echo "Image: ${IMAGE}"
TAG ?= $(shell echo `date +"%s"`_`date +"%N"`)
\ No newline at end of file
...@@ -12,29 +12,15 @@ ...@@ -12,29 +12,15 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
include ../include.mk SUBDIRS := expandybird/. resourcifier/. manager/.
TARGETS := info push container
.PHONY : all build push container clean .project SUBDIRS_TARGETS := \
$(foreach t,$(TARGETS),$(addsuffix $t,$(SUBDIRS)))
DOCKER_REGISTRY := gcr.io .PHONY : $(TARGETS) $(SUBDIRS_TARGETS)
PREFIX := $(DOCKER_REGISTRY)/$(PROJECT)
IMAGE := manager
ROOT_DIR := $(abspath ./..) $(TARGETS) : % : $(addsuffix %,$(SUBDIRS))
DIR = $(ROOT_DIR)
push: container $(SUBDIRS_TARGETS) :
ifeq ($(DOCKER_REGISTRY),gcr.io) $(MAKE) -C $(@D) $(@F:.%=%)
gcloud docker push $(PREFIX)/$(IMAGE):$(TAG)
else
docker push $(PREFIX)/$(IMAGE):$(TAG)
endif
container:
docker build -t $(PREFIX)/$(IMAGE):$(TAG) -f Dockerfile $(DIR)
clean:
-docker rmi $(PREFIX)/$(IMAGE):$(TAG)
.PHONY: test
test: lint vet test-unit
...@@ -12,27 +12,13 @@ ...@@ -12,27 +12,13 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
DOCKER_REGISTRY := gcr.io
PREFIX := $(DOCKER_REGISTRY)/$(PROJECT)
IMAGE ?= expandybird IMAGE ?= expandybird
TAG ?= git-$(shell git rev-parse --short HEAD)
FULL_IMAGE := $(PREFIX)/$(IMAGE)
.PHONY: container include ../include.mk
container: binary expansion
docker build -t $(FULL_IMAGE):latest -f Dockerfile .
docker tag $(FULL_IMAGE):latest $(FULL_IMAGE):$(TAG)
.PHONY: push .PHONY: extras
push: container extras: expansion
ifeq ($(DOCKER_REGISTRY),gcr.io)
gcloud docker push $(PREFIX)/$(IMAGE):$(TAG)
else
docker push $(PREFIX)/$(IMAGE):$(TAG)
endif
.PHONY: expansion
expansion: expansion:
cp -R ../../expansion ./opt cp -R ../../expansion ./opt
binary:
cp ../../bin/linux-amd64/expandybird ./bin
...@@ -14,29 +14,56 @@ ...@@ -14,29 +14,56 @@
# If you update this image please check the tag value before pushing. # If you update this image please check the tag value before pushing.
include ../include.mk DOCKER_REGISTRY ?= gcr.io
PREFIX := $(DOCKER_REGISTRY)/$(PROJECT)
FULL_IMAGE := $(PREFIX)/$(IMAGE)
.PHONY : all build push container clean TAG ?= git-$(shell git rev-parse --short HEAD)
DOCKER_REGISTRY := gcr.io DEFAULT_PLATFORM := $(shell uname | tr '[:upper:]' '[:lower:]')
PREFIX := $(DOCKER_REGISTRY)/$(PROJECT) PLATFORM ?= $(DEFAULT_PLATFORM)
IMAGE := resourcifier
DEFAULT_ARCH := $(shell uname -m)
ARCH ?= $(DEFAULT_ARCH)
ROOT_DIR := $(abspath ./..) .PHONY: info
DIR = $(ROOT_DIR) info:
@echo "Build tag: ${TAG}"
@echo "Registry: ${DOCKER_REGISTRY}"
@echo "Project: ${PROJECT}"
@echo "Image: ${IMAGE}"
@echo "Platform: ${PLATFORM}"
@echo "Arch: ${ARCH}"
.PHONY : .project
.PHONY: push
push: container push: container
ifeq ($(DOCKER_REGISTRY),gcr.io) ifeq ($(DOCKER_REGISTRY),gcr.io)
gcloud docker push $(PREFIX)/$(IMAGE):$(TAG) gcloud docker push $(FULL_IMAGE):$(TAG)
else else
docker push $(PREFIX)/$(IMAGE):$(TAG) docker push $(FULL_IMAGE):$(TAG)
endif endif
container: .PHONY: container
docker build -t $(PREFIX)/$(IMAGE):$(TAG) -f Dockerfile $(DIR) container: .project .docker binary extras
docker build -t $(FULL_IMAGE):latest -f Dockerfile .
docker tag -f $(FULL_IMAGE):latest $(FULL_IMAGE):$(TAG)
.project:
@if [[ -z "${PROJECT}" ]]; then echo "PROJECT variable must be set"; exit 1; fi
.docker:
@if [[ -z `which docker` ]] || ! docker version &> /dev/null; then echo "docker is not installed correctly"; exit 1; fi
clean: CROSS_IMAGE := $(PLATFORM)-$(ARCH)/$(IMAGE)/$(IMAGE)
-docker rmi $(PREFIX)/$(IMAGE):$(TAG)
.PHONY: test .PHONY: binary
test: lint vet test-unit binary:
@if [[ -z $(CROSS_IMAGE) ]]; then \
echo cp ../../bin/$(CROSS_IMAGE) ./bin ; \
cp ../../bin/$(CROSS_IMAGE) ./bin ; \
else \
echo cp ../../bin/$(IMAGE) ./bin ; \
cp ../../bin/$(IMAGE) ./bin ; \
fi
...@@ -12,30 +12,15 @@ ...@@ -12,30 +12,15 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
DOCKER_REGISTRY := gcr.io
PREFIX := $(DOCKER_REGISTRY)/$(PROJECT)
IMAGE ?= manager IMAGE ?= manager
TAG ?= git-$(shell git rev-parse --short HEAD)
FULL_IMAGE := $(PREFIX)/$(IMAGE)
KUBE_VERSION ?= v1.1.7 KUBE_VERSION ?= v1.1.7
.PHONY: container include ../include.mk
container: binary kubectl
docker build -t $(FULL_IMAGE):latest -f Dockerfile .
docker tag $(FULL_IMAGE):latest $(FULL_IMAGE):$(TAG)
.PHONY: push
push: container
ifeq ($(DOCKER_REGISTRY),gcr.io)
gcloud docker push $(PREFIX)/$(IMAGE):$(TAG)
else
docker push $(PREFIX)/$(IMAGE):$(TAG)
endif
binary: .PHONY: extras
cp ../../bin/linux-amd64/manager ./bin extras: kubectl
.PHONY: kubectl
kubectl: kubectl:
curl -fsSL -o bin/kubectl https://storage.googleapis.com/kubernetes-release/release/${KUBE_VERSION}/bin/linux/amd64/kubectl curl -fsSL -o bin/kubectl https://storage.googleapis.com/kubernetes-release/release/${KUBE_VERSION}/bin/linux/amd64/kubectl
chmod +x bin/kubectl chmod +x bin/kubectl
...@@ -12,30 +12,15 @@ ...@@ -12,30 +12,15 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
DOCKER_REGISTRY := gcr.io
PREFIX := $(DOCKER_REGISTRY)/$(PROJECT)
IMAGE ?= resourcifier IMAGE ?= resourcifier
TAG ?= git-$(shell git rev-parse --short HEAD)
FULL_IMAGE := $(PREFIX)/$(IMAGE)
KUBE_VERSION ?= v1.1.7 KUBE_VERSION ?= v1.1.7
.PHONY: container include ../include.mk
container: binary kubectl
docker build -t $(FULL_IMAGE):latest -f Dockerfile .
docker tag $(FULL_IMAGE):latest $(FULL_IMAGE):$(TAG)
.PHONY: push
push: container
ifeq ($(DOCKER_REGISTRY),gcr.io)
gcloud docker push $(PREFIX)/$(IMAGE):$(TAG)
else
docker push $(PREFIX)/$(IMAGE):$(TAG)
endif
binary: .PHONY: extras
cp ../../bin/linux-amd64/resourcifier ./bin extras: kubectl
.PHONY: kubectl
kubectl: kubectl:
curl -fsSL -o bin/kubectl https://storage.googleapis.com/kubernetes-release/release/${KUBE_VERSION}/bin/linux/amd64/kubectl curl -fsSL -o bin/kubectl https://storage.googleapis.com/kubernetes-release/release/${KUBE_VERSION}/bin/linux/amd64/kubectl
chmod +x bin/kubectl chmod +x bin/kubectl
#!/bin/bash
LOGDIR=log
if [[ ! -d $LOGDIR ]]; then
mkdir $LOGDIR
fi
KUBECTL=`which kubectl`
if [[ -z $KUBECTL ]] ; then
echo Cannot find kubectl
exit 1
fi
echo "Starting resourcifier..."
RESOURCIFIER=bin/resourcifier
if [[ -z $RESOURCIFIER ]] ; then
echo Cannot find resourcifier
exit 1
fi
pkill -f $RESOURCIFIER
nohup $RESOURCIFIER > $LOGDIR/resourcifier.log 2>&1 --kubectl=$KUBECTL --port=8082 &
echo
echo "Starting expandybird..."
EXPANDYBIRD=bin/expandybird
if [[ -z $EXPANDYBIRD ]] ; then
echo Cannot find expandybird
exit 1
fi
pkill -f $EXPANDYBIRD
nohup $EXPANDYBIRD > $LOGDIR/expandybird.log 2>&1 --port=8081 --expansion_binary=expansion/expansion.py &
echo
echo "Starting deployment manager..."
MANAGER=bin/manager
if [[ -z $MANAGER ]] ; then
echo Cannot find manager
exit 1
fi
pkill -f $MANAGER
nohup $MANAGER > $LOGDIR/manager.log 2>&1 --port=8080 --kubectl=$KUBECTL --expanderURL=http://localhost:8081 --deployerURL=http://localhost:8082 &
echo
echo "Starting kubectl proxy..."
pkill -f "$KUBECTL proxy"
nohup $KUBECTL proxy --port=8001 &
sleep 1s
echo
echo "Done."
#!/bin/bash
echo "Stopping resourcifier..."
RESOURCIFIER=bin/resourcifier
if [[ ! -z $RESOURCIFIER ]] ; then
pkill -f $RESOURCIFIER
fi
echo
echo "Stopping expandybird..."
EXPANDYBIRD=bin/expandybird
if [[ ! -z $EXPANDYBIRD ]] ; then
pkill -f $EXPANDYBIRD
fi
echo
echo "Stopping deployment manager..."
MANAGER=bin/manager
if [[ ! -z $MANAGER ]] ; then
pkill -f $MANAGER
fi
echo
echo "Done."
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment