Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(build): Pre-push temporary manifest with linux/amd64. Fixes #4062 #4127

Merged
merged 1 commit into from
Sep 29, 2020
Merged

chore(build): Pre-push temporary manifest with linux/amd64. Fixes #4062 #4127

merged 1 commit into from
Sep 29, 2020

Conversation

lippertmarkus
Copy link
Member

@lippertmarkus lippertmarkus commented Sep 24, 2020

This is pre-pushing a temporary manifest to DockerHub referencing the linux/amd64 images right after those are built so we can release earlier without having to wait for the long-running arm64 image builds. After all images finished building the temporary manifest is overwritten with a new one with references to all images for amd64, arm64 and windows.

Details:

  1. Building and pushing all images for linux/amd64, e.g. argoproj/argoexec:v2.11-linux-amd64 - this will only take around 6minutes
  2. Create and push the manifest and reference only the linux/amd64 images yet, e.g. argoproj/argoexec:v2.11 referencing only argoproj/argoexec:v2.11-linux-amd64 for now
  3. When all other images for Windows and linux/arm64 finished building after 40mins, we update and push the manifest overwriting the one created before to reference all images now instead of only the linux/amd64 ones, e.g. override argoproj/argoexec:v2.11 now referencing argoproj/argoexec:v2.11-linux-amd64, argoproj/argoexec:v2.11-linux-arm64, argoproj/argoexec:v2.11-windows

Example run: https://github.com/lippertmarkus/argo/actions/runs/270351664

Checklist:

  • Either (a) I've created an enhancement proposal and discussed it with the community, (b) this is a bug fix, or (c) this is a chore.
  • The title of the PR is (a) conventional, (b) states what changed, and (c) suffixes the related issues number. E.g. "fix(controller): Updates such and such. Fixes #1234".
  • I've signed the CLA.
  • I have written unit and/or e2e tests for my change. PRs without these are unlikely to be merged. Not needed.
  • My builds are green. Try syncing with master if they are not.
  • My organization is added to USERS.md.

@alexec
Copy link
Contributor

alexec commented Sep 28, 2020

Is there any risk we're swapping reliability and ease of maintenance for speed?

@lippertmarkus
Copy link
Member Author

lippertmarkus commented Sep 29, 2020

The only risk I see is that there may be more Windows or ARM64 users in the future and some of them might rely on the images also being available as soon as a new version is released.

Another idea would be to automate the release process and run it after images are built. Then the time for image builds wouldn't matter anymore.

@alexec alexec added this to the v2.12 milestone Sep 29, 2020
@alexec
Copy link
Contributor

alexec commented Sep 29, 2020

OK. Lets merge and see what happens.

@alexec alexec merged commit c8eed1f into argoproj:master Sep 29, 2020
@alexec
Copy link
Contributor

alexec commented Sep 29, 2020

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants