-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
[CI:BUILD] Contrib: Add containerfile to create podman-remote binary image #15813
[CI:BUILD] Contrib: Add containerfile to create podman-remote binary image #15813
Conversation
657931f
to
23a9733
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM other than two nits above.
contrib/podmanremoteimage/README.md
Outdated
|
||
- For Linux binary | ||
```bash | ||
$ podman cp $(podman create --name remote-temp quay.io/praveenkumar/podman-remote-artifacts:latest):/podman-remote-static . && podman rm remote-temp |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
$ podman cp $(podman create --name remote-temp quay.io/praveenkumar/podman-remote-artifacts:latest):/podman-remote-static . && podman rm remote-temp | |
$ podman cp $(podman create --name remote-temp quay.io/containers/podman-remote-artifacts:latest):/podman-remote-static . && podman rm remote-temp |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Points to personal repo, are we expecting to create similar repo/tag in containers
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think similar comment goes for darwin
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@flouthoc yes I forgot to remove my personal repo :) . I think we should have similar repo/tag in containers
org for consumption.
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: flouthoc, praveenkumar The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
@mheon @cevich @vrothberg PTAL |
contrib/podmanremoteimage/README.md
Outdated
|
||
This directory contains the containerfile for creating a container image which consist podman-remote binary | ||
for each platform (win/linux/mac). Plan is to hook it with quay github build trigger to generate this image | ||
for each PR merged (in any 4.x branch or tags). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
for each PR merged (in any 4.x branch or tags). | |
for each PR merged (for any branch or tag). |
23a9733
to
6c162a3
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is the benefit over curl-ing the binaries from the release pages? I assume for testing purposes but I'd appreciate making the intention explicit in the README.
I'd like some more maintainers to have a look.
contrib/podmanremoteimage/README.md
Outdated
for each platform (win/linux/mac). Plan is to hook it with quay github build trigger to generate this image | ||
for each PR merged (in any 4.x branch or tags). | ||
|
||
User can copy those binary on specific platform using following |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
User can copy those binary on specific platform using following | |
Users can copy the binaries onto the specific platforms using following instructions |
Yeah, can't use quay. We have two Cirrus-CI tasks setup to build multi-arch image manifests, |
So on your next force-push, you'll see the |
Q: @rhatdan @TomSweeneyRedHat or anyone else: do we want to provide the |
@@ -0,0 +1,10 @@ | |||
FROM registry.access.redhat.com/ubi8/go-toolset:latest AS builder |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All of our other container images are based on registry.fedoraproject.org/fedora:latest
, for consistency it would be good to use that here too. An alternative could be registry.fedoraproject.org/fedora-minimal:latest
. In either case, check out the contrib/podmanimage/*/Containerfiles
to see how we install podman
. It's MUCH faster to install than to compile during image-build time (due to needing emulation).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
errr...nevermind 😞 that won't work for Mac or Windows will it? My concern is the multi-arch compiles are extremely slow under emulation. Hmmmm. Perhaps the thing to do is just grab the binaries directly from the CI system's artifacts
task. They're not signed, but will be posted continuously for main
, and recent release-branches (where we added ARM64 builds).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@cevich Does it also published for specific tags like rc one? One of the use case which I am trying to solve with it, if we do any release on github (with specific branch) be it alpha, beta, rc we should have release binaries for those bits (longer term) either through the container image or from the CI artifacts. If I see #15202 (which is the PR for rc3) then looks like we just use the rc3 commit to do the tagging and there is no CI artifact for it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mostly, I don't think tags to, but for sure on most recent branches (and going forward) the CI system continuously publishes artifacts at a consistent URL. The URL will be of the form specified here: https://cirrus-ci.org/guide/writing-tasks/#latest-build-artifacts
COPY . . | ||
RUN make podman-remote-static | ||
RUN GOOS=windows make podman-remote | ||
RUN GOOS=darwin make podman-remote |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What do you think of: Instead of compiling, curl the latest binaries from CI system using the branch-name specified as a build-arg?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like that idea, then we know everyone is using the exact same binary.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@cevich if we are adding this to CI for each PR then first we have to wait for other CI run to be succeed (to generate required images) as part of some step builds?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not the way the builds run today. They're optional on [CI:BUILD]
PRs (to support testing/development). Otherwise they only run via a daily cron-job on main
.
Try to partial address containers#14664 Signed-off-by: Praveen Kumar <[email protected]>
6c162a3
to
8c627df
Compare
/lgtm |
Overview | ||
-------- | ||
|
||
This directory contains the containerfile for creating a container image which consist podman-remote binary |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit and way past, but just in case containerfile -> Containerfile
This directory contains the containerfile for creating a container image which consist podman-remote binary | ||
for each platform (win/linux/mac). | ||
|
||
Users can copy those binaries onto the specific platforms using following instructions |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
following -> the following
Try to partial address #14664
Longer term plan is to have it attach either to quay and add github trigger to generate the image for each 4.x tag/branch. Only issue is as of now quay github trigger can only generate
amd64
images not thearm64
one so may be we need to attach it to current cirrus CI to generate image for different arch and push to quay, same way we are doing forquay.io/containers/podman
.Another gap is created binaries for mac/windows are not signed one and we need to check if user try to copy those binary from the container image does it showing the signing warning.