diff --git a/.gitignore b/.gitignore index 1094cae4ab..052f304346 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,4 @@ /hack/install.yaml /hack/install-crds-latest.yaml /hack/install-namespaced.yaml -/images/federation-v2/controller-manager +/images/federation-v2/hyperfed diff --git a/Makefile b/Makefile index 53f1dd5bc0..8bb5ec74f1 100644 --- a/Makefile +++ b/Makefile @@ -38,6 +38,7 @@ endif BUILDMNT = /go/src/$(GOTARGET) BUILD_IMAGE ?= golang:1.10.3 +HYPERFED_TARGET = bin/hyperfed CONTROLLER_TARGET = bin/controller-manager KUBEFED2_TARGET = bin/kubefed2 @@ -45,9 +46,11 @@ LDFLAG_OPTIONS = -ldflags "-X github.com/kubernetes-sigs/federation-v2/pkg/versi -X github.com/kubernetes-sigs/federation-v2/pkg/version.gitCommit=$(GIT_HASH) \ -X github.com/kubernetes-sigs/federation-v2/pkg/version.gitTreeState=$(GIT_TREESTATE) \ -X github.com/kubernetes-sigs/federation-v2/pkg/version.buildDate=$(BUILDDATE)" +BUILDCMD_HYPERFED = CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o $(HYPERFED_TARGET) $(VERBOSE_FLAG) $(LDFLAG_OPTIONS) BUILDCMD_CONTROLLER = CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o $(CONTROLLER_TARGET) $(VERBOSE_FLAG) $(LDFLAG_OPTIONS) BUILDCMD_KUBEFED2 = go build -o $(KUBEFED2_TARGET) $(VERBOSE_FLAG) $(LDFLAG_OPTIONS) +BUILD_HYPERFED = $(BUILDCMD_HYPERFED) cmd/hyperfed/main.go BUILD_CONTROLLER = $(BUILDCMD_CONTROLLER) cmd/controller-manager/main.go BUILD_KUBEFED2 = $(BUILDCMD_KUBEFED2) cmd/kubefed2/kubefed2.go @@ -62,15 +65,15 @@ FMT = go fmt $(TEST_PKGS) DOCKER_BUILD ?= $(DOCKER) run --rm -v $(DIR):$(BUILDMNT) -w $(BUILDMNT) $(BUILD_IMAGE) /bin/sh -c # TODO (irfanurrehman): can add local compile, and auto-generate targets also if needed -.PHONY: all container push clean controller kubefed2 test local-test vet fmt +.PHONY: all container push clean hyperfed controller kubefed2 test local-test vet fmt -all: container controller kubefed2 +all: container hyperfed controller kubefed2 local-test: $(TEST) # Unit tests -test: controller kubefed2 vet +test: hyperfed controller kubefed2 vet $(DOCKER_BUILD) '$(TEST)' vet: @@ -79,15 +82,18 @@ vet: fmt: $(FMT) -container: controller - cp -f bin/controller-manager images/federation-v2/ +container: hyperfed + cp -f bin/hyperfed images/federation-v2/ $(DOCKER) build images/federation-v2 \ -t $(REGISTRY)/$(TARGET):$(GIT_VERSION) - rm -f images/federation-v2/controller-manager + rm -f images/federation-v2/hyperfed $(BIN_DIR): mkdir $(BIN_DIR) +hyperfed: $(BIN_DIR) + $(DOCKER_BUILD) '$(BUILD_HYPERFED)' + controller: $(BIN_DIR) $(DOCKER_BUILD) '$(BUILD_CONTROLLER)' @@ -105,5 +111,5 @@ push: fi clean: - rm -f $(KUBEFED2_TARGET) $(CONTROLLER_TARGET) + rm -f $(KUBEFED2_TARGET) $(CONTROLLER_TARGET) $(HYPERFED_TARGET) $(DOCKER) rmi $(REGISTRY)/$(TARGET):$(GIT_VERSION) || true diff --git a/docs/development.md b/docs/development.md index a79eb7c2c3..911f93c300 100644 --- a/docs/development.md +++ b/docs/development.md @@ -262,7 +262,7 @@ Run the following commands using the committed `images/federation-v2/Dockerfile` and push a container image to use for deployment: ```bash -CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o images/federation-v2/controller-manager cmd/controller-manager/main.go +CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o images/federation-v2/hyperfed cmd/hyperfed/main.go docker build images/federation-v2 -t //federation-v2:test docker push //federation-v2:test ``` diff --git a/images/federation-v2/Dockerfile b/images/federation-v2/Dockerfile index f5da0918e2..1644f95269 100644 --- a/images/federation-v2/Dockerfile +++ b/images/federation-v2/Dockerfile @@ -15,7 +15,11 @@ FROM alpine:latest RUN apk --no-cache add ca-certificates + WORKDIR /root/ -COPY /controller-manager . +COPY /hyperfed . +RUN ln -s hyperfed controller-manager \ + && ln -s hyperfed kubefed2 + ENTRYPOINT ["./controller-manager"] CMD ["--install-crds=false"] diff --git a/scripts/deploy-federation.sh b/scripts/deploy-federation.sh index d8bd572868..680f1bbfac 100755 --- a/scripts/deploy-federation.sh +++ b/scripts/deploy-federation.sh @@ -101,7 +101,7 @@ fi if [[ ! "${USE_LATEST}" ]]; then base_dir="$(cd "$(dirname "$0")/.." ; pwd)" dockerfile_dir="${base_dir}/images/federation-v2" - CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o "${dockerfile_dir}"/controller-manager "${base_dir}"/cmd/controller-manager/main.go + CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o "${dockerfile_dir}"/hyperfed "${base_dir}"/cmd/hyperfed/main.go docker build ${dockerfile_dir} -t "${IMAGE_NAME}" ${DOCKER_PUSH_CMD} fi diff --git a/scripts/imagebuild.sh b/scripts/imagebuild.sh index a23c2df4b2..c9a3eb193b 100755 --- a/scripts/imagebuild.sh +++ b/scripts/imagebuild.sh @@ -21,7 +21,7 @@ set -o pipefail base_dir="$(cd "$(dirname "$0")/.." ; pwd)" dockerfile_dir="${base_dir}/images/federation-v2" -[ -f "$base_dir/bin/controller-manager" ] || { echo "$base_dir/bin/controller-manager not found" ; exit 1 ;} +[ -f "$base_dir/bin/hyperfed" ] || { echo "$base_dir/bin/hyperfed not found" ; exit 1 ;} echo "travis tag: ${TRAVIS_TAG}" echo "travis branch:${TRAVIS_BRANCH}" if [[ "${TRAVIS_TAG}" =~ ^v([0-9]\.)+([0-9])[-a-zA-Z0-9]*([.0-9])* ]]; then @@ -41,8 +41,8 @@ echo "Starting image build" export REGISTRY=quay.io/ export REPO=kubernetes-multicluster -echo "Copy controller manager" -cp ${base_dir}/bin/controller-manager ${dockerfile_dir}/controller-manager +echo "Copy hyperfed" +cp ${base_dir}/bin/hyperfed ${dockerfile_dir}/hyperfed echo "Logging into registry ${REGISTRY///}" docker login -u "${QUAY_USERNAME}" -p "${QUAY_PASSWORD}" quay.io @@ -60,4 +60,4 @@ if [ "$LATEST" == "latest" ]; then docker push ${REGISTRY}${REPO}/federation-v2:${LATEST} fi -rm ${dockerfile_dir}/controller-manager +rm ${dockerfile_dir}/hyperfed