Skip to content

Commit

Permalink
Merge pull request #10271 from hakman/automated-cherry-pick-of-#10265-#…
Browse files Browse the repository at this point in the history
…10270-upstream-release-1.19

Automated cherry pick of #10265: Push multi-arch images #10270: Fix multi-arch image pushing
  • Loading branch information
k8s-ci-robot authored Nov 19, 2020
2 parents 0c0634a + c0614b0 commit 2fc7d35
Show file tree
Hide file tree
Showing 5 changed files with 45 additions and 42 deletions.
21 changes: 18 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -362,10 +362,15 @@ bazel-crossbuild-dns-controller:

.PHONY: dns-controller-push
dns-controller-push:
DOCKER_REGISTRY=${DOCKER_REGISTRY} DOCKER_IMAGE_PREFIX=${DOCKER_IMAGE_PREFIX} DNS_CONTROLLER_TAG=${DNS_CONTROLLER_PUSH_TAG} bazel run --platforms=@io_bazel_rules_go//go/toolchain:linux_amd64 //dns-controller/cmd/dns-controller:push-image-plain
DOCKER_REGISTRY=${DOCKER_REGISTRY} DOCKER_IMAGE_PREFIX=${DOCKER_IMAGE_PREFIX} DNS_CONTROLLER_TAG=${DNS_CONTROLLER_PUSH_TAG} bazel run --platforms=@io_bazel_rules_go//go/toolchain:linux_amd64 //dns-controller/cmd/dns-controller:push-image-amd64
DOCKER_REGISTRY=${DOCKER_REGISTRY} DOCKER_IMAGE_PREFIX=${DOCKER_IMAGE_PREFIX} DNS_CONTROLLER_TAG=${DNS_CONTROLLER_PUSH_TAG} bazel run --platforms=@io_bazel_rules_go//go/toolchain:linux_arm64 //dns-controller/cmd/dns-controller:push-image-arm64

.PHONY: dns-controller-manifest
dns-controller-manifest:
docker manifest create --amend ${DOCKER_REGISTRY}/${DOCKER_IMAGE_PREFIX}dns-controller:${DNS_CONTROLLER_PUSH_TAG} ${DOCKER_REGISTRY}/${DOCKER_IMAGE_PREFIX}dns-controller:${DNS_CONTROLLER_PUSH_TAG}-amd64
docker manifest create --amend ${DOCKER_REGISTRY}/${DOCKER_IMAGE_PREFIX}dns-controller:${DNS_CONTROLLER_PUSH_TAG} ${DOCKER_REGISTRY}/${DOCKER_IMAGE_PREFIX}dns-controller:${DNS_CONTROLLER_PUSH_TAG}-arm64
docker manifest push --purge ${DOCKER_REGISTRY}/${DOCKER_IMAGE_PREFIX}dns-controller:${DNS_CONTROLLER_PUSH_TAG}

# --------------------------------------------------
# development targets

Expand Down Expand Up @@ -813,15 +818,25 @@ crds:

.PHONY: kops-controller-push
kops-controller-push:
DOCKER_REGISTRY=${DOCKER_REGISTRY} DOCKER_IMAGE_PREFIX=${DOCKER_IMAGE_PREFIX} KOPS_CONTROLLER_TAG=${KOPS_CONTROLLER_PUSH_TAG} bazel run --platforms=@io_bazel_rules_go//go/toolchain:linux_amd64 //cmd/kops-controller:push-image-plain
DOCKER_REGISTRY=${DOCKER_REGISTRY} DOCKER_IMAGE_PREFIX=${DOCKER_IMAGE_PREFIX} KOPS_CONTROLLER_TAG=${KOPS_CONTROLLER_PUSH_TAG} bazel run --platforms=@io_bazel_rules_go//go/toolchain:linux_amd64 //cmd/kops-controller:push-image-amd64
DOCKER_REGISTRY=${DOCKER_REGISTRY} DOCKER_IMAGE_PREFIX=${DOCKER_IMAGE_PREFIX} KOPS_CONTROLLER_TAG=${KOPS_CONTROLLER_PUSH_TAG} bazel run --platforms=@io_bazel_rules_go//go/toolchain:linux_arm64 //cmd/kops-controller:push-image-arm64

.PHONY: kops-controller-manifest
kops-controller-manifest:
docker manifest create --amend ${DOCKER_REGISTRY}/${DOCKER_IMAGE_PREFIX}kops-controller:${KOPS_CONTROLLER_PUSH_TAG} ${DOCKER_REGISTRY}/${DOCKER_IMAGE_PREFIX}kops-controller:${KOPS_CONTROLLER_PUSH_TAG}-amd64
docker manifest create --amend ${DOCKER_REGISTRY}/${DOCKER_IMAGE_PREFIX}kops-controller:${KOPS_CONTROLLER_PUSH_TAG} ${DOCKER_REGISTRY}/${DOCKER_IMAGE_PREFIX}kops-controller:${KOPS_CONTROLLER_PUSH_TAG}-arm64
docker manifest push --purge ${DOCKER_REGISTRY}/${DOCKER_IMAGE_PREFIX}kops-controller:${KOPS_CONTROLLER_PUSH_TAG}

#------------------------------------------------------
# kube-apiserver-healthcheck

.PHONY: kube-apiserver-healthcheck-push
kube-apiserver-healthcheck-push:
DOCKER_REGISTRY=${DOCKER_REGISTRY} DOCKER_IMAGE_PREFIX=${DOCKER_IMAGE_PREFIX} KUBE_APISERVER_HEALTHCHECK_TAG=${KUBE_APISERVER_HEALTHCHECK_PUSH_TAG} bazel run --platforms=@io_bazel_rules_go//go/toolchain:linux_amd64 //cmd/kube-apiserver-healthcheck:push-image-plain
DOCKER_REGISTRY=${DOCKER_REGISTRY} DOCKER_IMAGE_PREFIX=${DOCKER_IMAGE_PREFIX} KUBE_APISERVER_HEALTHCHECK_TAG=${KUBE_APISERVER_HEALTHCHECK_PUSH_TAG} bazel run --platforms=@io_bazel_rules_go//go/toolchain:linux_amd64 //cmd/kube-apiserver-healthcheck:push-image-amd64
DOCKER_REGISTRY=${DOCKER_REGISTRY} DOCKER_IMAGE_PREFIX=${DOCKER_IMAGE_PREFIX} KUBE_APISERVER_HEALTHCHECK_TAG=${KUBE_APISERVER_HEALTHCHECK_PUSH_TAG} bazel run --platforms=@io_bazel_rules_go//go/toolchain:linux_arm64 //cmd/kube-apiserver-healthcheck:push-image-arm64

.PHONY: kube-apiserver-healthcheck-manifest
kube-apiserver-healthcheck-manifest:
docker manifest create --amend ${DOCKER_REGISTRY}/${DOCKER_IMAGE_PREFIX}kube-apiserver-healthcheck:${KUBE_APISERVER_HEALTHCHECK_PUSH_TAG} ${DOCKER_REGISTRY}/${DOCKER_IMAGE_PREFIX}kube-apiserver-healthcheck:${KUBE_APISERVER_HEALTHCHECK_PUSH_TAG}-amd64
docker manifest create --amend ${DOCKER_REGISTRY}/${DOCKER_IMAGE_PREFIX}kube-apiserver-healthcheck:${KUBE_APISERVER_HEALTHCHECK_PUSH_TAG} ${DOCKER_REGISTRY}/${DOCKER_IMAGE_PREFIX}kube-apiserver-healthcheck:${KUBE_APISERVER_HEALTHCHECK_PUSH_TAG}-arm64
docker manifest push --purge ${DOCKER_REGISTRY}/${DOCKER_IMAGE_PREFIX}kube-apiserver-healthcheck:${KUBE_APISERVER_HEALTHCHECK_PUSH_TAG}
24 changes: 21 additions & 3 deletions cloudbuild.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@ options:
substitution_option: ALLOW_LOOSE
machineType: 'N1_HIGHCPU_8'
steps:
# Start by just pushing the image
- name: 'gcr.io/k8s-testimages/bazelbuild:v20200405-02a6dff-2.2.0'
# Push the images
- name: 'gcr.io/k8s-testimages/bazelbuild:v20200824-5d057db-2.2.0'
id: images
entrypoint: make
env:
# _GIT_TAG is not a valid semver, we use CI=1 instead
Expand All @@ -18,7 +19,9 @@ steps:
- kops-controller-push
- dns-controller-push
- kube-apiserver-healthcheck-push
- name: 'gcr.io/k8s-testimages/bazelbuild:v20200405-02a6dff-2.2.0'
# Push the artifacts
- name: 'gcr.io/k8s-testimages/bazelbuild:v20200824-5d057db-2.2.0'
id: artifacts
entrypoint: make
env:
# _GIT_TAG is not a valid semver, we use CI=1 instead
Expand All @@ -31,6 +34,21 @@ steps:
- LATEST_FILE=markers/${_PULL_BASE_REF}/latest-ci.txt
args:
- gcs-upload-and-tag
# Push the manifests
- name: 'gcr.io/k8s-testimages/gcb-docker-gcloud:v20200824-5d057db'
id: manifests
waitFor: [images]
entrypoint: make
env:
- DOCKER_CLI_EXPERIMENTAL=enabled
- CI=$_CI
- PULL_BASE_REF=$_PULL_BASE_REF
- DOCKER_REGISTRY=$_DOCKER_REGISTRY
- DOCKER_IMAGE_PREFIX=$_DOCKER_IMAGE_PREFIX
args:
- kops-controller-manifest
- dns-controller-manifest
- kube-apiserver-healthcheck-manifest
substitutions:
# _GIT_TAG will be filled with a git-based tag for the image, of the form vYYYYMMDD-hash, and
# can be used as a substitution
Expand Down
14 changes: 2 additions & 12 deletions cmd/kops-controller/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -57,23 +57,13 @@ ARCH = [
stamp = True,
) for arch in ARCH]

# TODO: Remove / replace when multi-arch images are available
container_push(
name = "push-image-plain",
format = "Docker",
image = ":image-amd64",
registry = "{STABLE_DOCKER_REGISTRY}",
repository = "{STABLE_DOCKER_IMAGE_PREFIX}kops-controller",
tag = "{STABLE_KOPS_CONTROLLER_TAG}",
)

[container_push(
name = "push-image-%s" % arch,
format = "Docker",
image = ":image-%s" % arch,
registry = "{STABLE_DOCKER_REGISTRY}",
repository = "{STABLE_DOCKER_IMAGE_PREFIX}kops-controller-%s" % arch,
tag = "{STABLE_KOPS_CONTROLLER_TAG}",
repository = "{STABLE_DOCKER_IMAGE_PREFIX}kops-controller",
tag = "{STABLE_KOPS_CONTROLLER_TAG}-%s" % arch,
) for arch in ARCH]

[container_bundle(
Expand Down
14 changes: 2 additions & 12 deletions cmd/kube-apiserver-healthcheck/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -47,23 +47,13 @@ ARCH = [
stamp = True,
) for arch in ARCH]

# TODO: Remove / replace when multi-arch images are available
container_push(
name = "push-image-plain",
format = "Docker",
image = ":image-amd64",
registry = "{STABLE_DOCKER_REGISTRY}",
repository = "{STABLE_DOCKER_IMAGE_PREFIX}kube-apiserver-healthcheck",
tag = "{STABLE_KUBE_APISERVER_HEALTHCHECK_TAG}",
)

[container_push(
name = "push-image-%s" % arch,
format = "Docker",
image = ":image-%s" % arch,
registry = "{STABLE_DOCKER_REGISTRY}",
repository = "{STABLE_DOCKER_IMAGE_PREFIX}kube-apiserver-healthcheck-%s" % arch,
tag = "{STABLE_KUBE_APISERVER_HEALTHCHECK_TAG}",
repository = "{STABLE_DOCKER_IMAGE_PREFIX}kube-apiserver-healthcheck",
tag = "{STABLE_KUBE_APISERVER_HEALTHCHECK_TAG}-%s" % arch,
) for arch in ARCH]

[container_bundle(
Expand Down
14 changes: 2 additions & 12 deletions dns-controller/cmd/dns-controller/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -60,23 +60,13 @@ ARCH = [
stamp = True,
) for arch in ARCH]

# TODO: Remove / replace when multi-arch images are available
container_push(
name = "push-image-plain",
format = "Docker",
image = ":image-amd64",
registry = "{STABLE_DOCKER_REGISTRY}",
repository = "{STABLE_DOCKER_IMAGE_PREFIX}dns-controller",
tag = "{STABLE_DNS_CONTROLLER_TAG}",
)

[container_push(
name = "push-image-%s" % arch,
format = "Docker",
image = ":image-%s" % arch,
registry = "{STABLE_DOCKER_REGISTRY}",
repository = "{STABLE_DOCKER_IMAGE_PREFIX}dns-controller-%s" % arch,
tag = "{STABLE_DNS_CONTROLLER_TAG}",
repository = "{STABLE_DOCKER_IMAGE_PREFIX}dns-controller",
tag = "{STABLE_DNS_CONTROLLER_TAG}-%s" % arch,
) for arch in ARCH]

[container_bundle(
Expand Down

0 comments on commit 2fc7d35

Please sign in to comment.