Skip to content
This repository has been archived by the owner on Apr 25, 2023. It is now read-only.

Commit

Permalink
Replace controller-manager with hyperfed in Docker image
Browse files Browse the repository at this point in the history
  • Loading branch information
shashidharatd committed Nov 19, 2018
1 parent 3230ea2 commit 554ca01
Show file tree
Hide file tree
Showing 6 changed files with 25 additions and 15 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Expand Up @@ -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
20 changes: 13 additions & 7 deletions Makefile
Expand Up @@ -38,16 +38,19 @@ endif
BUILDMNT = /go/src/$(GOTARGET)
BUILD_IMAGE ?= golang:1.10.3

HYPERFED_TARGET = bin/hyperfed
CONTROLLER_TARGET = bin/controller-manager
KUBEFED2_TARGET = bin/kubefed2

LDFLAG_OPTIONS = -ldflags "-X github.com/kubernetes-sigs/federation-v2/pkg/version.version=$(GIT_VERSION) \
-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

Expand All @@ -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:
Expand All @@ -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)'

Expand All @@ -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
2 changes: 1 addition & 1 deletion docs/development.md
Expand Up @@ -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 <containerregistry>/<username>/federation-v2:test
docker push <containerregistry>/<username>/federation-v2:test
```
Expand Down
6 changes: 5 additions & 1 deletion images/federation-v2/Dockerfile
Expand Up @@ -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"]
2 changes: 1 addition & 1 deletion scripts/deploy-federation.sh
Expand Up @@ -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
Expand Down
8 changes: 4 additions & 4 deletions scripts/imagebuild.sh
Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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

0 comments on commit 554ca01

Please sign in to comment.