Skip to content

Update "latest" tagged images on new tag#248

Merged
davdhacs merged 17 commits intomainfrom
davdhacs/apollo-ci-latest-tag
Apr 16, 2026
Merged

Update "latest" tagged images on new tag#248
davdhacs merged 17 commits intomainfrom
davdhacs/apollo-ci-latest-tag

Conversation

@davdhacs
Copy link
Copy Markdown
Contributor

@davdhacs davdhacs commented Apr 9, 2026

Summary

  • On tag pushes, also push a <flavor>-latest tag alongside the versioned tag.
  • add on-demand workflow to push <flavor>-stable tag based on a version[default is latest]

This allows openshift-release mirror config to reference the floating tags latest and stable, removing the need to request testplatform review for every version bump.
To use this: openshift/release#77606 adds the "-latest"(and -stable) image mirroring into the openshift-release config, and then tests will be able to use a "latest" or "stable" tagged rox-ci-image.

Test plan

  • Verify PR build does NOT push latest tags
  • Verify tag/main push DOES push latest tags

🤖 Generated with Claude Code

On non-PR builds (tag/main pushes), also push a
<flavor>-latest tag alongside the versioned tag. This
allows consumers to reference a stable floating tag
without needing to update on every release.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@davdhacs davdhacs force-pushed the davdhacs/apollo-ci-latest-tag branch from 064adca to 2adceb7 Compare April 9, 2026 16:21
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@davdhacs davdhacs requested a review from porridge April 9, 2026 16:29
@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 9, 2026

Build Images

Image Flavor Image Tag
jenkins-plugin quay.io/stackrox-io/apollo-ci:jenkins-plugin-0.5.7-17-g489be724cf
scanner-build quay.io/stackrox-io/apollo-ci:scanner-build-0.5.7-17-g489be724cf
scanner-test quay.io/stackrox-io/apollo-ci:scanner-test-0.5.7-17-g489be724cf
stackrox-build quay.io/stackrox-io/apollo-ci:stackrox-build-0.5.7-17-g489be724cf
stackrox-test quay.io/stackrox-io/apollo-ci:stackrox-test-0.5.7-17-g489be724cf
stackrox-ui-test quay.io/stackrox-io/apollo-ci:stackrox-ui-test-0.5.7-17-g489be724cf

@davdhacs davdhacs requested a review from tommartensen April 9, 2026 17:10
davdhacs and others added 5 commits April 9, 2026 11:12
Adds a manually triggered workflow that retags an existing
versioned image as stable without rebuilding. Usage:
  gh workflow run promote-stable.yaml -f version=0.5.7

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Use docker buildx imagetools create for server-side manifest
copy instead of pull/tag/push. Run all flavors in one job.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Temporary: adds push tag trigger and shell default for VERSION.
Will revert after testing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove temporary push tag trigger used for testing.
Keep shell default for VERSION.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@davdhacs davdhacs requested review from janisz and mclasmeier April 9, 2026 19:08
@davdhacs davdhacs changed the title Push latest floating tag for apollo-ci images Update "latest" tagged images on new release. Apr 10, 2026
davdhacs and others added 2 commits April 9, 2026 21:54
Check that the current tag is the highest semver tag
reachable from main before pushing latest. This prevents
older tags or tags on non-main branches from overwriting
the latest images.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@davdhacs davdhacs changed the title Update "latest" tagged images on new release. Update "latest" tagged images on new tag Apr 10, 2026
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown
Contributor

@porridge porridge left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be good to add a short HOWTO describing the new process, to make sure everyone is on the same page (e.g. AFAICT we should only use -latest in PRs against openshift/release that should not be merged, right)?

@davdhacs
Copy link
Copy Markdown
Contributor Author

It would be good to add a short HOWTO describing the new process, to make sure everyone is on the same page (e.g. AFAICT we should only use -latest in PRs against openshift/release that should not be merged, right)?

Good point. I'll add a doc. And we can add a check for this into the stackrox step in osci/prow to show up as a github check failure to prevent PRs to release configs(and probably all stackrox configs) from having the "latest" tag.

davdhacs and others added 3 commits April 13, 2026 12:41
Describe the versioned/latest/stable tagging strategy,
how to promote to stable, and how prow jobs should
reference images in openshift/release.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@davdhacs davdhacs requested a review from porridge April 13, 2026 18:51
@davdhacs
Copy link
Copy Markdown
Contributor Author

Comment thread README.md Outdated
Comment thread README.md Outdated
Comment thread README.md Outdated
Comment thread README.md
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is all very nice and describes various bits and pieces. But what a random person who wants to bump a random dependency would look for is a step-by-step guide on how to get it out of the door.

We also need to agree on some sort of synchronization against multiple changes to this repo that are in flight. because there can only be one latest tag at a time so a single change to openshift/release can be tested at a given moment.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Understood. I'll add a step-by-step walkthrough

And you're right, if someone is testing a latest (current master of rox-ci-image) and a PR merges to rox-ci-image and pushes a new latest image and that gets mirrored, then the testing could get a newer "latest" than they expected.

However, I think that is rare because we do not change these images often. Would it be helped or prevented if I add a GHA check that warns on PRs if the "stable" tag is older than the last "latest" tag on master? (So the PR creator could look at master to see what other changes are "in-flight" and not promoted to stable yet)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@porridge I merged this to unblock m.clasmeier. Does the updated readme look better, or what can be improved?

Co-authored-by: Marcin Owsiany <porridge@redhat.com>
davdhacs and others added 3 commits April 15, 2026 14:07
Co-authored-by: Marcin Owsiany <porridge@redhat.com>
Co-authored-by: Marcin Owsiany <porridge@redhat.com>
Address review feedback requesting a concrete walkthrough for
someone bumping a dependency, including the coordination note
about the single `latest` tag.

Partially generated by AI.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@davdhacs davdhacs requested a review from porridge April 15, 2026 20:51
@davdhacs davdhacs merged commit 828431e into main Apr 16, 2026
8 checks passed
@davdhacs davdhacs deleted the davdhacs/apollo-ci-latest-tag branch April 16, 2026 12:29
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.

4 participants