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.
# 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
RUN touch /kube-build-image

View File

@@ -14,15 +14,22 @@
.PHONY: build push
REGISTRY?=staging-k8s.gcr.io
IMAGE=$(REGISTRY)/kube-cross
TAG=$(shell cat VERSION)
STAGING_REGISTRY?=gcr.io/k8s-staging-build-image
PROD_REGISTRY?=us.gcr.io/k8s-artifacts-prod/build-image
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:
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
docker push $(IMAGE):$(TAG)
push:
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}'