@@ -12,6 +12,10 @@ COMMIT := $(shell git rev-parse --short HEAD)
1212DOCKERCLI := $(shell which docker)
1313RELEASE_MODE ?= community
1414
15+ include $(ROOT ) /$(RELEASE_MODE ) .mk
16+
17+ MAIN_DIR := $(ROOT ) /pkg/entry/$(RELEASE_MODE )
18+
1519GOBUILDDIR := $(SCRIPTDIR ) /.gobuild
1620SRCDIR := $(SCRIPTDIR )
1721CACHEVOL := $(PROJECT ) -gocache
@@ -119,14 +123,15 @@ endif
119123
120124BINNAME := $(PROJECT )
121125BIN := $(BINDIR ) /$(BINNAME )
122- VBIN := $(BINDIR ) /$(RELEASE_MODE ) /$(BINNAME )
126+ VBIN_LINUX_AMD64 := $(BINDIR ) /$(RELEASE_MODE ) /linux/amd64/$(BINNAME )
127+ VBIN_LINUX_ARM64 := $(BINDIR ) /$(RELEASE_MODE ) /linux/arm64/$(BINNAME )
123128
124129ifdef VERBOSE
125130 TESTVERBOSEOPTIONS := -v
126131endif
127132
128133EXCLUDE_DIRS := tests vendor .gobuild deps tools
129- SOURCES_QUERY := find ./ -type f -name '*.go' $(foreach EXCLUDE_DIR,$(EXCLUDE_DIRS ) , ! -path ". /$(EXCLUDE_DIR ) /* ")
134+ SOURCES_QUERY := find ./ -type f -name '*.go' $(foreach EXCLUDE_DIR,$(EXCLUDE_DIRS ) , ! -path "* /$(EXCLUDE_DIR ) /* ")
130135SOURCES := $(shell $(SOURCES_QUERY ) )
131136DASHBOARDSOURCES := $(shell find $(DASHBOARDDIR ) /src -name '* .js') $(DASHBOARDDIR ) /package.json
132137LINT_EXCLUDES: =
@@ -193,7 +198,7 @@ endif
193198
194199.PHONY : clean
195200clean :
196- rm -Rf $(BIN ) $(BINDIR ) $(DASHBOARDDIR ) /build $(DASHBOARDDIR ) /node_modules
201+ rm -Rf $(BIN ) $(BINDIR ) $(DASHBOARDDIR ) /build $(DASHBOARDDIR ) /node_modules $( VBIN_LINUX_AMD64 ) $( VBIN_LINUX_ARM64 )
197202
198203.PHONY : check-vars
199204check-vars :
@@ -245,27 +250,33 @@ dashboard/assets.go:
245250 $(DASHBOARDBUILDIMAGE )
246251 $(GOPATH ) /bin/go-assets-builder -s /dashboard/build/ -o dashboard/assets.go -p dashboard dashboard/build
247252
248- .PHONY : bin
253+ .PHONY : bin bin-all
249254bin : $(BIN )
255+ bin-all : $(BIN ) $(VBIN_LINUX_AMD64 ) $(VBIN_LINUX_ARM64 )
250256
251- $(VBIN ) : $(SOURCES ) dashboard/assets.go VERSION
252- @mkdir -p $(VBINDIR )
253- CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build --tags " $( RELEASE_MODE) " -installsuffix netgo -ldflags " -X $( REPOPATH) /pkg/version.version=$( VERSION) -X $( REPOPATH) /pkg/version.buildDate=$( BUILDTIME) -X $( REPOPATH) /pkg/version.build=$( COMMIT) " -o $(VBIN ) $( REPOPATH )
257+ $(VBIN_LINUX_AMD64 ) : $(SOURCES ) dashboard/assets.go VERSION
258+ @mkdir -p $(BINDIR ) / $( RELEASE_MODE ) /linux/amd64
259+ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build --tags " $( RELEASE_MODE) " -installsuffix netgo -ldflags " -X $( REPOPATH) /pkg/version.version=$( VERSION) -X $( REPOPATH) /pkg/version.buildDate=$( BUILDTIME) -X $( REPOPATH) /pkg/version.build=$( COMMIT) " -o $(VBIN_LINUX_AMD64 ) ./main.go
254260
255- $(BIN ) : $(VBIN )
256- @cp " $( VBIN) " " $( BIN) "
261+ $(VBIN_LINUX_ARM64 ) : $(SOURCES ) dashboard/assets.go VERSION
262+ @mkdir -p $(BINDIR ) /$(RELEASE_MODE ) /linux/arm64
263+ CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build --tags " $( RELEASE_MODE) " -installsuffix netgo -ldflags " -X $( REPOPATH) /pkg/version.version=$( VERSION) -X $( REPOPATH) /pkg/version.buildDate=$( BUILDTIME) -X $( REPOPATH) /pkg/version.build=$( COMMIT) " -o $(VBIN_LINUX_ARM64 ) ./main.go
264+
265+ $(BIN ) : $(VBIN_LINUX_AMD64 )
266+ @cp " $( VBIN_LINUX_AMD64) " " $( BIN) "
257267
258268.PHONY : docker
259- docker : check-vars $(BIN )
260- docker build --no-cache -f $(DOCKERFILE ) --build-arg " VERSION=${VERSION_MAJOR_MINOR_PATCH} " -t $(OPERATORIMAGE ) .
269+ docker : check-vars $(VBIN_LINUX_AMD64 ) $(VBIN_LINUX_ARM64 )
261270ifdef PUSHIMAGES
262- docker push $(OPERATORIMAGE)
271+ docker buildx build --no-cache -f $(DOCKERFILE) --build-arg "VERSION=${VERSION_MAJOR_MINOR_PATCH}" --build-arg "RELEASE_MODE=$(RELEASE_MODE)" --platform linux/amd64,linux/arm64 --push -t $(OPERATORIMAGE) .
272+ else
273+ docker buildx build --no-cache -f $(DOCKERFILE) --build-arg "VERSION=${VERSION_MAJOR_MINOR_PATCH}" --build-arg "RELEASE_MODE=$(RELEASE_MODE)" --platform linux/amd64,linux/arm64 -t $(OPERATORIMAGE) .
263274endif
264275
265276.PHONY : docker-ubi
266- docker-ubi : check-vars $(BIN )
267- docker build --no-cache -f " $( DOCKERFILE) .ubi" --build-arg " VERSION=${VERSION_MAJOR_MINOR_PATCH} " --build-arg " IMAGE=$( BASEUBIIMAGE) " -t $(OPERATORUBIIMAGE ) -local-only-build .
268- docker build --no-cache -f $(DOCKERFILE ) --build-arg " VERSION=${VERSION_MAJOR_MINOR_PATCH} " --build-arg " IMAGE=$( OPERATORUBIIMAGE) -local-only-build" -t $(OPERATORUBIIMAGE ) .
277+ docker-ubi : check-vars $(VBIN_LINUX_AMD64 )
278+ docker build --no-cache -f " $( DOCKERFILE) .ubi" --build-arg " VERSION=${VERSION_MAJOR_MINOR_PATCH} " --build-arg " RELEASE_MODE= $( RELEASE_MODE ) " --build-arg " IMAGE=$( BASEUBIIMAGE) " -t $(OPERATORUBIIMAGE ) -local-only-build .
279+ docker build --no-cache -f $(DOCKERFILE ) --build-arg " VERSION=${VERSION_MAJOR_MINOR_PATCH} " --build-arg " RELEASE_MODE= $( RELEASE_MODE ) " --build-arg " IMAGE=$( OPERATORUBIIMAGE) -local-only-build" -t $(OPERATORUBIIMAGE ) .
269280ifdef PUSHIMAGES
270281 docker push $(OPERATORUBIIMAGE)
271282endif
@@ -402,7 +413,7 @@ tools: update-vendor
402413.PHONY : vendor
403414vendor :
404415 @echo " >> Updating vendor"
405- @go mod vendor
416+ @ go mod vendor
406417
407418set-deployment-api-version-v2alpha1 : export API_VERSION=2alpha1
408419set-deployment-api-version-v2alpha1 : set-api-version/deployment set-api-version/replication
0 commit comments