|
13 | 13 | # limitations under the License.
|
14 | 14 |
|
15 | 15 | PKG=sigs.k8s.io/ibm-powervs-block-csi-driver
|
16 |
| -IMAGE?=quay.io/powercloud/ibm-powervs-block-csi-driver |
17 |
| -VERSION=v0.0.1 |
18 |
| -GIT_COMMIT?=$(shell git rev-parse HEAD) |
| 16 | +GIT_COMMIT?=$(shell git rev-parse --short HEAD) |
19 | 17 | BUILD_DATE?=$(shell date -u +"%Y-%m-%dT%H:%M:%SZ")
|
20 |
| -LDFLAGS?="-X ${PKG}/pkg/driver.driverVersion=${VERSION} -X ${PKG}/pkg/driver.gitCommit=${GIT_COMMIT} -X ${PKG}/pkg/driver.buildDate=${BUILD_DATE} -s -w" |
| 18 | +REGISTRY?=gcr.io/k8s-staging-cloud-provider-ibm |
| 19 | +IMAGE?=ibm-powervs-block-csi-driver |
| 20 | +TAG?=$(GIT_COMMIT) |
| 21 | +LDFLAGS?="-X ${PKG}/pkg/driver.driverVersion=${TAG} -X ${PKG}/pkg/driver.gitCommit=${GIT_COMMIT} -X ${PKG}/pkg/driver.buildDate=${BUILD_DATE} -s -w" |
21 | 22 |
|
22 | 23 | GO111MODULE=on
|
23 | 24 | GOPROXY=direct
|
24 | 25 | GOPATH=$(shell go env GOPATH)
|
25 | 26 | GOOS=$(shell go env GOOS)
|
26 | 27 | GOBIN=$(shell pwd)/bin
|
27 | 28 |
|
28 |
| -PLATFORM=linux/ppc64le |
29 |
| - |
30 |
| - |
31 | 29 | .EXPORT_ALL_VARIABLES:
|
32 | 30 |
|
33 | 31 | bin:
|
34 | 32 | @mkdir -p $@
|
35 | 33 |
|
36 |
| -.PHONY: bin/ibm-powervs-block-csi-driver |
37 |
| -bin/ibm-powervs-block-csi-driver: | bin |
38 |
| - CGO_ENABLED=0 GOOS=linux GOARCH=ppc64le go build -ldflags ${LDFLAGS} -o bin/ibm-powervs-block-csi-driver ./cmd/ |
| 34 | +.PHONY: driver |
| 35 | +bin/ibm-powervs-block-csi-driver: |
| 36 | +driver: | bin |
| 37 | + CGO_ENABLED=0 GOOS=linux GOARCH=$(ARCH) go build -ldflags ${LDFLAGS} -o bin/ibm-powervs-block-csi-driver ./cmd/ |
39 | 38 |
|
40 | 39 | .PHONY: test
|
41 | 40 | test:
|
42 | 41 | go test -v -race ./cmd/... ./pkg/...
|
43 | 42 |
|
44 |
| -.PHONY: image-release |
45 |
| -image-release: |
46 |
| - docker buildx build -t $(IMAGE):$(VERSION) . --target debian-base |
47 |
| - |
48 | 43 | .PHONY: image
|
49 | 44 | image:
|
50 |
| - docker build -t $(IMAGE):$(VERSION) . --target debian-base |
51 |
| - |
52 |
| -.PHONY: push-release |
53 |
| -push-release: |
54 |
| - docker push $(IMAGE):$(VERSION) |
| 45 | + docker build -t $(REGISTRY)/$(IMAGE):$(TAG) . --target debian-base |
55 | 46 |
|
56 | 47 | .PHONY: push
|
57 | 48 | push:
|
58 |
| - docker push $(IMAGE):$(VERSION) |
| 49 | + docker push $(REGISTRY)/$(IMAGE):$(TAG) |
| 50 | + |
| 51 | +build-image-and-push-linux-amd64: init-buildx |
| 52 | + { \ |
| 53 | + set -e ; \ |
| 54 | + docker buildx build \ |
| 55 | + --build-arg TARGETPLATFORM=linux/amd64 \ |
| 56 | + -t $(REGISTRY)/$(IMAGE):$(TAG)_linux_amd64 --push . --target debian-base; \ |
| 57 | + } |
| 58 | + |
| 59 | +build-image-and-push-linux-ppc64le: init-buildx |
| 60 | + { \ |
| 61 | + set -e ; \ |
| 62 | + docker buildx build \ |
| 63 | + --build-arg TARGETPLATFORM=linux/ppc64le \ |
| 64 | + -t $(REGISTRY)/$(IMAGE):$(TAG)_linux_ppc64le --push . --target debian-base; \ |
| 65 | + } |
| 66 | + |
| 67 | +build-and-push-multi-arch: build-image-and-push-linux-amd64 build-image-and-push-linux-ppc64le |
| 68 | + docker manifest create --amend $(REGISTRY)/$(IMAGE):$(TAG) $(REGISTRY)/$(IMAGE):$(TAG)_linux_amd64 $(REGISTRY)/$(IMAGE):$(TAG)_linux_ppc64le |
| 69 | + docker manifest push -p $(REGISTRY)/$(IMAGE):$(TAG) |
59 | 70 |
|
60 | 71 | .PHONY: clean
|
61 | 72 | clean:
|
@@ -83,3 +94,9 @@ verify: verify-vendor
|
83 | 94 | verify-vendor:
|
84 | 95 | @ echo; echo "### $@:"
|
85 | 96 | @ ./hack/verify-vendor.sh
|
| 97 | + |
| 98 | +init-buildx: |
| 99 | + # Ensure we use a builder that can leverage it (the default on linux will not) |
| 100 | + -docker buildx rm multiarch-multiplatform-builder |
| 101 | + docker buildx create --use --name=multiarch-multiplatform-builder |
| 102 | + docker run --rm --privileged multiarch/qemu-user-static --reset --credential yes --persistent yes |
0 commit comments