1414
1515# kops source root directory (without trailing /)
1616KOPS_ROOT? =$(patsubst % /,% ,$(abspath $(dir $(firstword $(MAKEFILE_LIST ) ) ) ) )
17- DOCKER_REGISTRY ? =gcr.io/must-override
17+ DOCKER_IMAGE_REGISTRY ? =gcr.io/must-override
1818S3_BUCKET? =s3://must-override/
1919UPLOAD_DEST? =$(S3_BUCKET )
20- GCS_LOCATION? =gs://must-override
21- GCS_URL=$(GCS_LOCATION:gs://% =https://storage.googleapis.com/%)
22- LATEST_FILE? =latest-ci.txt
20+ GCS_BUCKET? =gs://must-override
2321GOPATH_1ST: =$(shell go env GOPATH)
2422UNIQUE: =$(shell date +% s)
2523BUILD =$(KOPS_ROOT ) /.build
@@ -39,6 +37,16 @@ ifeq ($(GOBIN),)
3937GOBIN := $(shell go env GOPATH) /bin
4038endif
4139
40+ # We need to create latest.txt for master and latest-X.Y for release branches
41+ BRANCH ?= $(shell git -C $(KOPS_ROOT ) rev-parse --abbrev-ref HEAD)
42+ ifeq ($(BRANCH ) ,master)
43+ LATEST_FILE ?= latest.txt
44+ else ifneq (,$(filter release-1.%,$(BRANCH)))
45+ LATEST_FILE ?= $(patsubst release-% ,latest-% .txt,$(BRANCH ) )
46+ else
47+ LATEST_FILE ?= latest.txt
48+ endif
49+
4250# CODEGEN_VERSION is the version of k8s.io/code-generator to use
4351CODEGEN_VERSION =v0.34.1
4452
@@ -193,18 +201,18 @@ kops: crossbuild-kops-$(shell go env GOOS)-$(shell go env GOARCH)
193201.PHONY : crossbuild-kops-linux-amd64 crossbuild-kops-linux-arm64
194202crossbuild-kops-linux-amd64 crossbuild-kops-linux-arm64 : crossbuild-kops-linux-% :
195203 mkdir -p ${DIST} /linux/$*
196- GOOS=linux GOARCH=$* go build ${GCFLAGS} ${BUILDFLAGS} ${EXTRA_BUILDFLAGS} -o ${DIST} /linux/$* /kops ${LDFLAGS} " ${EXTRA_LDFLAGS} -X k8s.io/kops.Version=${VERSION} -X k8s.io/kops.GitVersion= ${GITSHA} " k8s.io/kops/cmd/kops
204+ GOOS=linux GOARCH=$* go build ${GCFLAGS} ${BUILDFLAGS} ${EXTRA_BUILDFLAGS} -o ${DIST} /linux/$* /kops ${LDFLAGS} " ${EXTRA_LDFLAGS} -X k8s.io/kops.Version=${VERSION} " k8s.io/kops/cmd/kops
197205
198206.PHONY : crossbuild-kops-darwin-amd64 crossbuild-kops-darwin-arm64
199207crossbuild-kops-darwin-amd64 crossbuild-kops-darwin-arm64 : crossbuild-kops-darwin-% :
200208 mkdir -p ${DIST} /darwin/$*
201- GOOS=darwin GOARCH=$* go build ${GCFLAGS} ${BUILDFLAGS} ${EXTRA_BUILDFLAGS} -o ${DIST} /darwin/$* /kops ${LDFLAGS} " ${EXTRA_LDFLAGS} -X k8s.io/kops.Version=${VERSION} -X k8s.io/kops.GitVersion= ${GITSHA} " k8s.io/kops/cmd/kops
209+ GOOS=darwin GOARCH=$* go build ${GCFLAGS} ${BUILDFLAGS} ${EXTRA_BUILDFLAGS} -o ${DIST} /darwin/$* /kops ${LDFLAGS} " ${EXTRA_LDFLAGS} -X k8s.io/kops.Version=${VERSION} " k8s.io/kops/cmd/kops
202210
203211
204212.PHONY : crossbuild-kops-windows-amd64
205213crossbuild-kops-windows-amd64 :
206214 mkdir -p ${DIST} /windows/amd64
207- GOOS=windows GOARCH=amd64 go build ${GCFLAGS} ${BUILDFLAGS} ${EXTRA_BUILDFLAGS} -o ${DIST} /windows/amd64/kops.exe ${LDFLAGS} " ${EXTRA_LDFLAGS} -X k8s.io/kops.Version=${VERSION} -X k8s.io/kops.GitVersion= ${GITSHA} " k8s.io/kops/cmd/kops
215+ GOOS=windows GOARCH=amd64 go build ${GCFLAGS} ${BUILDFLAGS} ${EXTRA_BUILDFLAGS} -o ${DIST} /windows/amd64/kops.exe ${LDFLAGS} " ${EXTRA_LDFLAGS} -X k8s.io/kops.Version=${VERSION} " k8s.io/kops/cmd/kops
208216
209217.PHONY : crossbuild
210218crossbuild : crossbuild-kops
@@ -215,7 +223,7 @@ crossbuild: crossbuild-kops-linux-amd64 crossbuild-kops-linux-arm64 crossbuild-k
215223.PHONY : nodeup-amd64 nodeup-arm64
216224nodeup-amd64 nodeup-arm64 : nodeup-% :
217225 mkdir -p ${DIST} /linux/$*
218- GOOS=linux GOARCH=$* go build ${GCFLAGS} ${BUILDFLAGS} ${EXTRA_BUILDFLAGS} -o ${DIST} /linux/$* /nodeup ${LDFLAGS} " ${EXTRA_LDFLAGS} -X k8s.io/kops.Version=${VERSION} -X k8s.io/kops.GitVersion= ${GITSHA} " k8s.io/kops/cmd/nodeup
226+ GOOS=linux GOARCH=$* go build ${GCFLAGS} ${BUILDFLAGS} ${EXTRA_BUILDFLAGS} -o ${DIST} /linux/$* /nodeup ${LDFLAGS} " ${EXTRA_LDFLAGS} -X k8s.io/kops.Version=${VERSION} " k8s.io/kops/cmd/nodeup
219227
220228.PHONY : nodeup
221229nodeup : nodeup-amd64
@@ -226,7 +234,7 @@ crossbuild-nodeup: nodeup-amd64 nodeup-arm64
226234.PHONY : protokube-amd64 protokube-arm64
227235protokube-amd64 protokube-arm64 : protokube-% :
228236 mkdir -p ${DIST} /linux/$*
229- GOOS=linux GOARCH=$* go build -tags=peer_name_alternative,peer_name_hash ${GCFLAGS} ${BUILDFLAGS} ${EXTRA_BUILDFLAGS} -o ${DIST} /linux/$* /protokube ${LDFLAGS} " ${EXTRA_LDFLAGS} -X k8s.io/kops.Version=${VERSION} -X k8s.io/kops.GitVersion= ${GITSHA} " k8s.io/kops/protokube/cmd/protokube
237+ GOOS=linux GOARCH=$* go build -tags=peer_name_alternative,peer_name_hash ${GCFLAGS} ${BUILDFLAGS} ${EXTRA_BUILDFLAGS} -o ${DIST} /linux/$* /protokube ${LDFLAGS} " ${EXTRA_LDFLAGS} -X k8s.io/kops.Version=${VERSION} " k8s.io/kops/protokube/cmd/protokube
230238
231239.PHONY : protokube
232240protokube : protokube-amd64
@@ -237,7 +245,7 @@ crossbuild-protokube: protokube-amd64 protokube-arm64
237245.PHONY : channels-amd64 channels-arm64
238246channels-amd64 channels-arm64 : channels-% :
239247 mkdir -p ${DIST} /linux/$*
240- GOOS=linux GOARCH=$* go build ${GCFLAGS} ${BUILDFLAGS} ${EXTRA_BUILDFLAGS} -o ${DIST} /linux/$* /channels ${LDFLAGS} " ${EXTRA_LDFLAGS} -X k8s.io/kops.Version=${VERSION} -X k8s.io/kops.GitVersion= ${GITSHA} " k8s.io/kops/channels/cmd/channels
248+ GOOS=linux GOARCH=$* go build ${GCFLAGS} ${BUILDFLAGS} ${EXTRA_BUILDFLAGS} -o ${DIST} /linux/$* /channels ${LDFLAGS} " ${EXTRA_LDFLAGS} -X k8s.io/kops.Version=${VERSION} " k8s.io/kops/channels/cmd/channels
241249
242250.PHONY : channels
243251channels : channels-amd64
@@ -251,24 +259,15 @@ upload: version-dist # Upload kops to S3
251259
252260# gcs-upload builds kops and uploads to GCS
253261.PHONY : gcs-upload
254- gcs-upload : gsutil version-dist
262+ gcs-upload : version-dist
255263 @echo " == Uploading kops =="
256- gsutil -h " Cache-Control:private, max-age=0, no-transform " -m cp -n - r ${UPLOAD} /kops/* ${GCS_LOCATION }
264+ gcloud storage cp -r ${UPLOAD} /kops/* ${GCS_BUCKET }
257265
258266# gcs-upload-tag runs gcs-upload to upload, then uploads a version-marker to LATEST_FILE
259267.PHONY : gcs-upload-and-tag
260268gcs-upload-and-tag : gsutil gcs-upload
261- echo " ${GCS_URL}${VERSION} " > ${UPLOAD} /latest.txt
262- gsutil -h " Cache-Control:private, max-age=0, no-transform" cp ${UPLOAD} /latest.txt ${GCS_LOCATION}${LATEST_FILE}
263-
264- # gcs-publish-ci is the entry point for CI testing
265- .PHONY : gcs-publish-ci
266- gcs-publish-ci : gsutil version-dist-ci
267- @echo " == Uploading kops =="
268- gsutil -h " Cache-Control:private, max-age=0, no-transform" -m cp -n -r ${UPLOAD} /kops/* ${GCS_LOCATION}
269- echo " VERSION: ${VERSION} "
270- echo " ${GCS_URL} /${VERSION} " > ${UPLOAD} /${LATEST_FILE}
271- gsutil -h " Cache-Control:private, max-age=0, no-transform" cp ${UPLOAD} /${LATEST_FILE} ${GCS_LOCATION}
269+ echo " ${VERSION} " > ${UPLOAD} /${LATEST_FILE}
270+ gcloud storage cp ${UPLOAD} /${LATEST_FILE} ${GCS_BUCKET} /${LATEST_FILE}
272271
273272.PHONY : gen-cli-docs
274273gen-cli-docs : kops # Regenerate CLI docs
@@ -300,21 +299,21 @@ push-aws-run-amd64 push-aws-run-arm64: push-aws-run-%: push-%
300299
301300.PHONY : ${NODEUP}
302301${NODEUP} :
303- go build ${GCFLAGS} ${EXTRA_BUILDFLAGS} ${LDFLAGS} " ${EXTRA_LDFLAGS} -X k8s.io/kops.Version=${VERSION} -X k8s.io/kops.GitVersion= ${GITSHA} " -o $@ k8s.io/kops/cmd/nodeup
302+ go build ${GCFLAGS} ${EXTRA_BUILDFLAGS} ${LDFLAGS} " ${EXTRA_LDFLAGS} -X k8s.io/kops.Version=${VERSION} " -o $@ k8s.io/kops/cmd/nodeup
304303
305304.PHONY : dns-controller-push
306305dns-controller-push : ko-dns-controller-push
307306
308307.PHONY : ko-dns-controller-push
309308ko-dns-controller-push :
310- KO_DOCKER_REPO=" ${DOCKER_REGISTRY} / ${DOCKER_IMAGE_PREFIX} dns-controller" GOFLAGS=" -tags=peer_name_alternative,peer_name_hash" ${KO} build --tags ${DNS_CONTROLLER_TAG} --platform=linux/amd64,linux/arm64 --bare ./dns-controller/cmd/dns-controller/
309+ KO_DOCKER_REPO=" ${DOCKER_IMAGE_REGISTRY} / dns-controller" GOFLAGS=" -tags=peer_name_alternative,peer_name_hash" ${KO} build --tags ${DNS_CONTROLLER_TAG} --platform=linux/amd64,linux/arm64 --bare ./dns-controller/cmd/dns-controller/
311310
312311.PHONY : kops-utils-cp-push
313312kops-utils-cp-push : ko-kops-utils-cp-push
314313
315314.PHONY : ko-kops-utils-cp-push
316315ko-kops-utils-cp-push :
317- KO_DOCKER_REPO=" ${DOCKER_REGISTRY} / ${DOCKER_IMAGE_PREFIX} kops-utils-cp" ${KO} build --tags ${KOPS_UTILS_CP_TAG} --platform=linux/amd64,linux/arm64 --bare ./cmd/kops-utils-cp/
316+ KO_DOCKER_REPO=" ${DOCKER_IMAGE_REGISTRY} / kops-utils-cp" ${KO} build --tags ${KOPS_UTILS_CP_TAG} --platform=linux/amd64,linux/arm64 --bare ./cmd/kops-utils-cp/
318317
319318# --------------------------------------------------
320319# development targets
@@ -592,14 +591,6 @@ version-dist: dev-version-dist-amd64 dev-version-dist-arm64 crossbuild
592591 cp ${DIST} /windows/amd64/kops.exe ${UPLOAD} /kops/${VERSION} /windows/amd64/kops.exe
593592 tools/sha256 ${UPLOAD} /kops/${VERSION} /windows/amd64/kops.exe ${UPLOAD} /kops/${VERSION} /windows/amd64/kops.exe.sha256
594593
595- # This target skips arm64 and windows kops binary since CI does not use them
596- .PHONY : version-dist-ci
597- version-dist-ci : dev-version-dist-amd64 dev-version-dist-arm64 crossbuild-kops-linux-amd64
598- mkdir -p ${UPLOAD} /kops/${VERSION} /linux/amd64/
599- cp ${DIST} /linux/amd64/kops ${UPLOAD} /kops/${VERSION} /linux/amd64/kops
600- tools/sha256 ${UPLOAD} /kops/${VERSION} /linux/amd64/kops ${UPLOAD} /kops/${VERSION} /linux/amd64/kops.sha256
601-
602-
603594# prow-postsubmit is run by the prow postsubmit job
604595# It uploads a build to a staging directory, which in theory we can publish as a release
605596.PHONY : prow-postsubmit
@@ -791,7 +782,7 @@ kops-controller-push: ko-kops-controller-push
791782
792783.PHONY : ko-kops-controller-push
793784ko-kops-controller-push :
794- KO_DOCKER_REPO=" ${DOCKER_REGISTRY} / ${DOCKER_IMAGE_PREFIX} kops-controller" ${KO} build --tags ${KOPS_CONTROLLER_TAG} --platform=linux/amd64,linux/arm64 --bare ./cmd/kops-controller/
785+ KO_DOCKER_REPO=" ${DOCKER_IMAGE_REGISTRY} / kops-controller" ${KO} build --tags ${KOPS_CONTROLLER_TAG} --platform=linux/amd64,linux/arm64 --bare ./cmd/kops-controller/
795786
796787# ------------------------------------------------------
797788# kube-apiserver-healthcheck
@@ -801,7 +792,7 @@ kube-apiserver-healthcheck-push: ko-kube-apiserver-healthcheck-push
801792
802793.PHONY : ko-kube-apiserver-healthcheck-push
803794ko-kube-apiserver-healthcheck-push :
804- KO_DOCKER_REPO=" ${DOCKER_REGISTRY} / ${DOCKER_IMAGE_PREFIX} kube-apiserver-healthcheck" ${KO} build --tags ${KUBE_APISERVER_HEALTHCHECK_TAG} --platform=linux/amd64,linux/arm64 --bare ./cmd/kube-apiserver-healthcheck/
795+ KO_DOCKER_REPO=" ${DOCKER_IMAGE_REGISTRY} / kube-apiserver-healthcheck" ${KO} build --tags ${KUBE_APISERVER_HEALTHCHECK_TAG} --platform=linux/amd64,linux/arm64 --bare ./cmd/kube-apiserver-healthcheck/
805796
806797# ------------------------------------------------------
807798# discovery-server
@@ -811,7 +802,7 @@ discovery-server-push: ko-discovery-server-push
811802
812803.PHONY : ko-discovery-server-push
813804ko-discovery-server-push :
814- KO_DOCKER_REPO=" ${DOCKER_REGISTRY} / ${DOCKER_IMAGE_PREFIX} discovery-server" ${KO} build --tags ${DISCOVERY_SERVER_TAG} --platform=linux/amd64,linux/arm64 --bare ./discovery/cmd/discovery-server/
805+ KO_DOCKER_REPO=" ${DOCKER_IMAGE_REGISTRY} / discovery-server" ${KO} build --tags ${DISCOVERY_SERVER_TAG} --platform=linux/amd64,linux/arm64 --bare ./discovery/cmd/discovery-server/
815806
816807# ------------------------------------------------------
817808# CloudBuild artifacts
0 commit comments