Conversation
|
I don't have enough permission to do a real manifest push but I think the following dryrun output is what we need. For example, from calicoctl folder: |
| # push multi-arch manifest where supported. | ||
| push-manifests: var-require-all-IMAGETAG $(addprefix sub-manifest-,$(call escapefs,$(PUSH_MANIFEST_IMAGES))) | ||
| sub-manifest-%: | ||
| $(DOCKER) manifest create $(call unescapefs,$*):$(IMAGETAG) $(addprefix --amend ,$(addprefix $(call unescapefs,$*):$(IMAGETAG)-,$(VALIDARCHES))) |
There was a problem hiding this comment.
any specific reason not to restore MANIFEST_TOOL and MANIFEST_TOOL_CMD exactly as it is in https://github.com/projectcalico/calico/pull/8103/files#diff-abfd44a7d28b43da680f905985a06fe893b7e4aa8920d87fee8070b261645b55L915?
In particular, I believe the -v $(DOCKER_CONFIG):/root/.docker/config.json arg will be necessary for credentials when running on semaphore... I had to do something similar for windows manifests:
Lines 1319 to 1345 in 004a6e3
There was a problem hiding this comment.
The manifest tool is removed from go-build v0.90. docker manifest command (even though still experimental) was merged into docker cli back in 2017. After that, projects from kubernetes, aws, ibm switched to that. I think it would make more sense for us to use the official utility as well.
There was a problem hiding this comment.
For semaphore build, we do docker login first. docker manifest command will use the same credential once we login to a registry.
There was a problem hiding this comment.
Oh I see! Yes, just noticed that the manifest cmd for the windows images is just docker manifest
Reimplement `push-manifests` in `lib.Makefile` using `docker manifest` command [1]. It was accidentally removed in [2]. [1] https://docs.docker.com/engine/reference/commandline/manifest/ [2] https://github.com/projectcalico/calico/pull/8103/files#diff-abfd44a7d28b43da680f905985a06fe893b7e4aa8920d87fee8070b261645b55L915
60af20f to
1123744
Compare
Reimplement `push-manifests` in `Makefile.common` using `docker manifest` command [1]. It was removed in [2]. This change is ported from [3]. [1] https://docs.docker.com/engine/reference/commandline/manifest/ [2] https://github.com/projectcalico/go-build/pull/490/files#diff-f190d29e2cad4f32539c8b73d8af07c77f0aac63b5c6553c06b117c08a70b494L876 [3] projectcalico/calico#8254
Reimplement `push-manifests` in `Makefile.common` using `docker manifest` command [1]. It was removed in [2]. This change is ported from [3]. [1] https://docs.docker.com/engine/reference/commandline/manifest/ [2] https://github.com/projectcalico/go-build/pull/490/files#diff-f190d29e2cad4f32539c8b73d8af07c77f0aac63b5c6553c06b117c08a70b494L876 [3] projectcalico/calico#8254
Description
Reimplement
push-manifestsinlib.Makefileusingdocker manifestcommand [1]. It was accidentally removed in [2].[1] https://docs.docker.com/engine/reference/commandline/manifest/
[2] https://github.com/projectcalico/calico/pull/8103/files#diff-abfd44a7d28b43da680f905985a06fe893b7e4aa8920d87fee8070b261645b55L915
Related issues/PRs
Todos
Release Note
Reminder for the reviewer
Make sure that this PR has the correct labels and milestone set.
Every PR needs one
docs-*label.docs-pr-required: This change requires a change to the documentation that has not been completed yet.docs-completed: This change has all necessary documentation completed.docs-not-required: This change has no user-facing impact and requires no docs.Every PR needs one
release-note-*label.release-note-required: This PR has user-facing changes. Most PRs should have this label.release-note-not-required: This PR has no user-facing changes.Other optional labels:
cherry-pick-candidate: This PR should be cherry-picked to an earlier release. For bug fixes only.needs-operator-pr: This PR is related to install and requires a corresponding change to the operator.