Skip to content

Commit

Permalink
Add support for ppc64le and s390x architectures #745
Browse files Browse the repository at this point in the history
Signed-off-by: Paul Bastide <pbastide@us.ibm.com>
  • Loading branch information
prb112 committed May 28, 2024
1 parent ab04632 commit e1166cf
Showing 1 changed file with 46 additions and 2 deletions.
48 changes: 46 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.

ARCHS = amd64 arm64
ARCHS = amd64 arm64 s390x ppc64le
COMMONENVVAR=GOOS=$(shell uname -s | tr A-Z a-z)
BUILDENVVAR=CGO_ENABLED=0
INTEGTESTENVVAR=SCHED_PLUGINS_TEST_VERBOSE=1
Expand Down Expand Up @@ -46,6 +46,12 @@ build.amd64: build-controller.amd64 build-scheduler.amd64
.PHONY: build.arm64v8
build.arm64v8: build-controller.arm64v8 build-scheduler.arm64v8

.PHONY: build.ppc64le
build.ppc64le: build-controller.ppc64le build-scheduler.ppc64le

.PHONY: build.s390x
build.s390x: build-controller.s390x build-scheduler.s390x

.PHONY: build-controller
build-controller:
$(COMMONENVVAR) $(BUILDENVVAR) go build -ldflags '-w' -o bin/controller cmd/controller/controller.go
Expand All @@ -58,6 +64,14 @@ build-controller.amd64:
build-controller.arm64v8:
$(COMMONENVVAR) $(BUILDENVVAR) GOARCH=arm64 go build -ldflags '-w' -o bin/controller cmd/controller/controller.go

.PHONY: build-controller.ppc64le
build-controller.ppc64le:
$(COMMONENVVAR) $(BUILDENVVAR) GOARCH=ppc64le go build -ldflags '-w' -o bin/controller cmd/controller/controller.go

.PHONY: build-controller.s390x
build-controller.s390x:
$(COMMONENVVAR) $(BUILDENVVAR) GOARCH=s390x go build -ldflags '-w' -o bin/controller cmd/controller/controller.go

.PHONY: build-scheduler
build-scheduler:
$(COMMONENVVAR) $(BUILDENVVAR) go build -ldflags '-X k8s.io/component-base/version.gitVersion=$(VERSION) -w' -o bin/kube-scheduler cmd/scheduler/main.go
Expand All @@ -70,6 +84,14 @@ build-scheduler.amd64:
build-scheduler.arm64v8:
$(COMMONENVVAR) $(BUILDENVVAR) GOARCH=arm64 go build -ldflags '-X k8s.io/component-base/version.gitVersion=$(VERSION) -w' -o bin/kube-scheduler cmd/scheduler/main.go

.PHONY: build-scheduler.ppc64le
build-scheduler.ppc64le:
$(COMMONENVVAR) $(BUILDENVVAR) GOARCH=ppc64le go build -ldflags '-X k8s.io/component-base/version.gitVersion=$(VERSION) -w' -o bin/kube-scheduler cmd/scheduler/main.go

.PHONY: build-scheduler.s390x
build-scheduler.s390x:
$(COMMONENVVAR) $(BUILDENVVAR) GOARCH=s390x go build -ldflags '-X k8s.io/component-base/version.gitVersion=$(VERSION) -w' -o bin/kube-scheduler cmd/scheduler/main.go

.PHONY: local-image
local-image: clean
RELEASE_VERSION=$(RELEASE_VERSION) hack/build-images.sh
Expand All @@ -96,8 +118,30 @@ release-image.arm64v8: clean
ALPINE_BASE_IMAGE=$(ALPINE_BASE_IMAGE) \
hack/build-images.sh

.PHONY: release-image.ppc64le
release-image.ppc64le: clean
ARCH="ppc64le" \
RELEASE_VERSION=$(RELEASE_VERSION) \
REGISTRY=$(RELEASE_REGISTRY) \
IMAGE=$(RELEASE_IMAGE)-ppc64le \
CONTROLLER_IMAGE=$(RELEASE_CONTROLLER_IMAGE)-ppc64le \
GO_BASE_IMAGE=$(GO_BASE_IMAGE) \
ALPINE_BASE_IMAGE=$(ALPINE_BASE_IMAGE) \
hack/build-images.sh

.PHONY: release-image.s390x
release-image.s390x: clean
ARCH="s390x" \
RELEASE_VERSION=$(RELEASE_VERSION) \
REGISTRY=$(RELEASE_REGISTRY) \
IMAGE=$(RELEASE_IMAGE)-s390x \
CONTROLLER_IMAGE=$(RELEASE_CONTROLLER_IMAGE)-s390x \
GO_BASE_IMAGE=$(GO_BASE_IMAGE) \
ALPINE_BASE_IMAGE=$(ALPINE_BASE_IMAGE) \
hack/build-images.sh

.PHONY: push-release-images
push-release-images: release-image.amd64 release-image.arm64v8
push-release-images: release-image.amd64 release-image.arm64v8 release-image.s390x release-image.ppc64le
gcloud auth configure-docker
for arch in $(ARCHS); do \
docker push $(RELEASE_REGISTRY)/$(RELEASE_IMAGE)-$${arch} ;\
Expand Down

0 comments on commit e1166cf

Please sign in to comment.