From 9c02fb38c19a855296ed0118c07c5936084813c9 Mon Sep 17 00:00:00 2001 From: smothiki Date: Tue, 15 Mar 2016 12:44:38 -0600 Subject: [PATCH] feat(mutable): add support for mutable image build --- Makefile | 7 +++---- _scripts/deploy.sh | 2 +- versioning.mk | 22 ++++++++++++++++++++++ 3 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 versioning.mk diff --git a/Makefile b/Makefile index cc65683..0c68cca 100644 --- a/Makefile +++ b/Makefile @@ -9,7 +9,6 @@ DEV_ENV_WORK_DIR := /go/src/${REPO_PATH} DEV_ENV_PREFIX := docker run --rm -v ${CURDIR}:${DEV_ENV_WORK_DIR} -w ${DEV_ENV_WORK_DIR} DEV_ENV_CMD := ${DEV_ENV_PREFIX} ${DEV_ENV_IMAGE} -VERSION ?= git-$(shell git rev-parse --short HEAD) LDFLAGS := "-s -X main.version=${VERSION}" BINDIR := ./rootfs/bin DEV_REGISTRY ?= $(docker-machine ip deis):5000 @@ -17,13 +16,14 @@ DEIS_REGISTRY ?= ${DEV_REGISTRY} IMAGE_PREFIX ?= deis +include versioning.mk + RC := manifests/deis-${SHORT_NAME}-rc.yaml SVC := manifests/deis-${SHORT_NAME}-service.yaml ADMIN_SEC := manifests/deis-${SHORT_NAME}-secretAdmin.yaml USER_SEC := manifests/deis-${SHORT_NAME}-secretUser.yaml # note that we are not running minio with ssl turned on. this variable is commented # SSL_SEC := manifests/deis-${SHORT_NAME}-secretssl-final.yaml -IMAGE := ${DEIS_REGISTRY}${IMAGE_PREFIX}/${SHORT_NAME}:${VERSION} MC_IMAGE := ${DEIS_REGISTRY}${IMAGE_PREFIX}/mc:${VERSION} MC_INTEGRATION_IMAGE := ${DEIS_REGISTRY}${IMAGE_PREFIX}/mc-integration:${VERSION} @@ -51,12 +51,11 @@ docker-build: build-server # build the main image docker build --rm -t ${IMAGE} rootfs + docker tag -f ${IMAGE} ${MUTABLE_IMAGE} # These are both YAML specific perl -pi -e "s|image: [a-z0-9.:]+\/deis\/${SHORT_NAME}:[0-9a-z-.]+|image: ${IMAGE}|g" ${RC} perl -pi -e "s|release: [a-zA-Z0-9.+_-]+|release: ${VERSION}|g" ${RC} -docker-push: - docker push ${IMAGE} deploy: build docker-build docker-push kube-rc diff --git a/_scripts/deploy.sh b/_scripts/deploy.sh index 19999ba..a579575 100755 --- a/_scripts/deploy.sh +++ b/_scripts/deploy.sh @@ -5,7 +5,7 @@ cd "$(dirname "$0")" || exit 1 -export IMAGE_PREFIX=deisci VERSION=v2-beta +export IMAGE_PREFIX=deisci docker login -e="$DOCKER_EMAIL" -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" DEIS_REGISTRY='' make -C .. build docker-build docker-push docker login -e="$QUAY_EMAIL" -u="$QUAY_USERNAME" -p="$QUAY_PASSWORD" quay.io diff --git a/versioning.mk b/versioning.mk new file mode 100644 index 0000000..f01fa92 --- /dev/null +++ b/versioning.mk @@ -0,0 +1,22 @@ +MUTABLE_VERSION ?= canary +VERSION ?= git-$(shell git rev-parse --short HEAD) + +IMAGE := ${DEIS_REGISTRY}${IMAGE_PREFIX}/${SHORT_NAME}:${VERSION} +MUTABLE_IMAGE := ${DEIS_REGISTRY}${IMAGE_PREFIX}/${SHORT_NAME}:${MUTABLE_VERSION} + +info: + @echo "Build tag: ${VERSION}" + @echo "Registry: ${DEIS_REGISTRY}" + @echo "Immutable tag: ${IMAGE}" + @echo "Mutable tag: ${MUTABLE_IMAGE}" + +.PHONY: docker-push +docker-push: docker-immutable-push docker-mutable-push + +.PHONY: docker-immutable-push +docker-immutable-push: + docker push ${IMAGE} + +.PHONY: docker-mutable-push +docker-mutable-push: + docker push ${MUTABLE_IMAGE}