Change:
<!-- This form is for bug reports and feature requests ONLY! If you're looking for help check and the . --Is this a BUG REPORT or FEATURE REQUEST?: /kind feature This issue if for tracking the work related to pushing manifest list for kubernetes images(infra and test) List of images for which manifest need to be created: - [x] kubernetes to use manifest pause image - [x] dns - - - - - [ ] dashboard [x] Manifest images for k8s release images -
/assign
/cc
/sig cluster-lifecycle
/sig testing
/area test-infra /sig release
/reopen
I'd add dashboard to this as well, based off the issue at
can you provide a status update on this issue? I'd really want this fully working in v1.10... :)
I've created one more PR for pushing manifest for few more images, reference - I'll try my best to push into v1.10 release
Issues go stale after 90d of inactivity. Mark the issue as fresh with . Stale issues rot after an additional 30d of inactivity and eventually close. If this issue is safe to close now please do so with . Send feedback to sig-testing, kubernetes/test-infra and/or . /lifecycle stale
Stale issues rot after 30d of inactivity. Mark the issue as fresh with . Rotten issues close after an additional 30d of inactivity. If this issue is safe to close now please do so with . Send feedback to sig-testing, kubernetes/test-infra and/or . /lifecycle rotten /remove-lifecycle stale
/remove-lifecycle stale
/remove-lifecycle rotten
A problem related to manifests and was addressed here:
An update of this issue would be welcomed to track the status of all affected images, since I think at least some of the linked issues have progressed.
/sig testing
all the k8s core images are now fat manifest, hence closing this task. Will create a separate task for creating manifest for ecosystem images(e.g dashboard, metric-server etc...)
did you have a issue open tracking other images? I noticed today that kube-addon-manager (cluster/addons/addon-manager) is multi-arch but not using a manifest list yet.

Discussion:
# See the License for the specific language governing permissions and # limitations under the License. <del> .PHONY: all push push-legacy container clean orphan </del> <ins> .PHONY: all push container clean orphan all-push push-manifest include ../../hack/make-rules/Makefile.manifest </ins> REGISTRY ?= gcr.io/google_containers <del> IMAGE = $(REGISTRY)/pause-$(ARCH) LEGACY_AMD64_IMAGE = $(REGISTRY)/pause </del> <ins> IMAGE = $(REGISTRY)/pause IMAGE_WITH_ARCH = $(IMAGE)-$(ARCH) </ins> TAG = 3.1 REV = $(shell git describe --contains --always --match='v*')

# If you want to build AND push all containers, see the 'all-push' rule. all: all-container <ins> all-push: all-push-images push-manifest push-manifest: manifest-tool manifest-tool push from-args --platforms $(call join_platforms,$(ALL_ARCH)) --template $(IMAGE)-ARCH:$(TAG) --target $(IMAGE):$(TAG) </ins> sub-container-%: $(MAKE) ARCH=$* container

all-container: $(addprefix sub-container-,$(ALL_ARCH)) <del> all-push: $(addprefix sub-push-,$(ALL_ARCH)) </del> <ins> all-push-images: $(addprefix sub-push-,$(ALL_ARCH)) </ins> build: bin/$(BIN)-$(ARCH)

container: .container-$(ARCH) .container-$(ARCH): bin/$(BIN)-$(ARCH) <del> docker build --pull -t $(IMAGE):$(TAG) --build-arg ARCH=$(ARCH) . ifeq ($(ARCH),amd64) docker rmi $(LEGACY_AMD64_IMAGE):$(TAG) 2>/dev/null || true docker tag $(IMAGE):$(TAG) $(LEGACY_AMD64_IMAGE):$(TAG) endif </del> <ins> docker build --pull -t $(IMAGE_WITH_ARCH):$(TAG) --build-arg ARCH=$(ARCH) . </ins> touch $@ push: .push-$(ARCH) .push-$(ARCH): .container-$(ARCH) <del> gcloud docker -- push $(IMAGE):$(TAG) touch $@ push-legacy: .push-legacy-$(ARCH) .push-legacy-$(ARCH): .container-$(ARCH) ifeq ($(ARCH),amd64) gcloud docker -- push $(LEGACY_AMD64_IMAGE):$(TAG) endif </del> <ins> gcloud docker -- push $(IMAGE_WITH_ARCH):$(TAG) </ins> touch $@ # Useful for testing, not automatically included in container image

<ins> # Copyright 2018 The Kubernetes Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # #     http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. .PHONY: manifest-tool MANIFEST_TOOL_DIR := $(shell mktemp -d) export PATH := $(MANIFEST_TOOL_DIR):$(PATH) MANIFEST_TOOL_VERSION := v0.7.0 space := space += comma := , prefix_linux = $(addprefix linux/,$(strip $1)) join_platforms = $(subst $(space),$(comma),$(call prefix_linux,$(strip $1))) manifest-tool: curl -sSL https://github.com/estesp/manifest-tool/releases/download/$(MANIFEST_TOOL_VERSION)/manifest-tool-linux-amd64 > $(MANIFEST_TOOL_DIR)/manifest-tool chmod +x $(MANIFEST_TOOL_DIR)/manifest-tool </ins>