build: Enable kube-cross push/pull from K8s Infra GCR

- Search/replace Google Infra kube-cross locations for K8s Infra
- Update kube-cross make targets
  - Don't attempt to pre-pull image (docker build --pull)
    This prevents CI failures when the image under test doesn't exist
    yet in the registry.
  - 'make all' now builds and pushes the kube-cross image
  - Allow 'TAG' to be specified via env var
  - Use 'KUBE_CROSS_VERSION' to represent the kube-cross version
  - Tag kube-cross images with both a kubernetes version
    ('git describe') and a kube-cross version
- Add a GCB (Google Cloud Build) config file (cloudbuild.yaml)

Signed-off-by: Stephen Augustus <saugustus@vmware.com>
This commit is contained in:
Stephen Augustus 2020-02-26 00:25:49 -05:00
parent bb0d9c9f23
commit e64169d6b5
5 changed files with 30 additions and 10 deletions

View File

@ -13,7 +13,7 @@
# limitations under the License. # limitations under the License.
# This file creates a standard build environment for building Kubernetes # This file creates a standard build environment for building Kubernetes
FROM k8s.gcr.io/kube-cross:KUBE_BUILD_IMAGE_CROSS_TAG FROM us.gcr.io/k8s-artifacts-prod/build-image/kube-cross:KUBE_BUILD_IMAGE_CROSS_TAG
# Mark this as a kube-build container # Mark this as a kube-build container
RUN touch /kube-build-image RUN touch /kube-build-image

View File

@ -14,15 +14,22 @@
.PHONY: build push .PHONY: build push
REGISTRY?=staging-k8s.gcr.io STAGING_REGISTRY?=gcr.io/k8s-staging-build-image
IMAGE=$(REGISTRY)/kube-cross PROD_REGISTRY?=us.gcr.io/k8s-artifacts-prod/build-image
TAG=$(shell cat VERSION) IMAGE=kube-cross
TAG?=kubernetes-$(shell git describe --tags --match='v*' --abbrev=14)
KUBE_CROSS_VERSION=$(shell cat VERSION)
all: push all: build push
build: build:
docker build --pull -t $(IMAGE):$(TAG) . docker build \
-t $(STAGING_REGISTRY)/$(IMAGE):$(TAG) \
-t $(STAGING_REGISTRY)/$(IMAGE):$(KUBE_CROSS_VERSION) \
-t $(PROD_REGISTRY)/$(IMAGE):$(KUBE_CROSS_VERSION) \
.
push: build push:
docker push $(IMAGE):$(TAG) docker push $(STAGING_REGISTRY)/$(IMAGE):$(TAG)
docker push $(STAGING_REGISTRY)/$(IMAGE):$(KUBE_CROSS_VERSION)

View File

@ -0,0 +1,13 @@
# See https://cloud.google.com/cloud-build/docs/build-config
timeout: 1200s
options:
substitution_option: ALLOW_LOOSE
steps:
- name: 'gcr.io/k8s-testimages/gcb-docker-gcloud:v20191019-6567e5c'
entrypoint: make
env:
- DOCKER_CLI_EXPERIMENTAL=enabled
args:
- all
images:
- 'gcr.io/$PROJECT_ID/kube-cross:kubernetes-${_GIT_TAG}'

View File

@ -27,7 +27,7 @@ ARCH ?= amd64
ALL_ARCH = amd64 arm arm64 ppc64le s390x ALL_ARCH = amd64 arm arm64 ppc64le s390x
CFLAGS = -Os -Wall -Werror -static -DVERSION=v$(TAG)-$(REV) CFLAGS = -Os -Wall -Werror -static -DVERSION=v$(TAG)-$(REV)
KUBE_CROSS_IMAGE ?= k8s.gcr.io/kube-cross KUBE_CROSS_IMAGE ?= us.gcr.io/k8s-artifacts-prod/build-image/kube-cross
KUBE_CROSS_VERSION ?= $(shell cat ../build-image/cross/VERSION) KUBE_CROSS_VERSION ?= $(shell cat ../build-image/cross/VERSION)
BIN = pause BIN = pause

View File

@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
FROM k8s.gcr.io/kube-cross:v1.13.6-1 as build_k8s_1_17_sample_apiserver FROM us.gcr.io/k8s-artifacts-prod/build-image/kube-cross:v1.13.6-1 as build_k8s_1_17_sample_apiserver
ENV GOPATH /go ENV GOPATH /go
RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin