DO NOT MERGE: buildah vendor treadmill#13808
DO NOT MERGE: buildah vendor treadmill#13808edsantiago wants to merge 2 commits intocontainers:mainfrom
Conversation
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: edsantiago The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
The first commit is the important one. This one must be hand-crafted by a human, there is no possible way to automate it. This is the one that, in case of emergency vendor, can be grabbed into a real PR. The second commit is a throwaway, ignore it. That's just automated fetch-the-latest-buildah. |
cda56d1 to
a833f6d
Compare
|
bud test failed, remote only, because the new This is still a proof-of-concept PR, and my feeling so far is positive: it has quickly identified multiple problems in the buildah merge that are easy to solve iteratively. A nightly cron job, or a non-gating step in buildah CI, would be utterly useless because neither one would have the crucial first-commit. Without that, there's no way to make it past the first or second or third failure. |
|
I just pushed a fix for this. |
4c3987c to
a58b300
Compare
|
How is this PR regularly updated? |
|
By a human, presumably me. There is actually no other way: this is not possible to solve via cron or PRs. I am working on a script to automate as much of it as possible. |
a58b300 to
2ee7d5b
Compare
2ee7d5b to
a44108d
Compare
a44108d to
c9c4a1f
Compare
|
Followup, because I don't want anyone to think this is abandonware: it's not. I'm running my script at least twice a day, one of those times in the evening. One of the nice features I added is: So I'm choosing to save CI cycles by not re-pushing today. Should anyone need to re-vendor buildah tomorrow or this weekend (when I'm unavailable), just cherry-pick the first commit from this PR. It's still valid. |
c9c4a1f to
2954d4f
Compare
|
Yippee, script has caught a bug! containers/buildah#3919 breaks when vendoring into podman: I could just force-push right now and let y'all see the breakage in CI, or I could just report it like I am right here. Or I could file an issue in containers/common since that's where the offending code seems to be? Anyhow, @rhatdan et al, PTAL because this is not going to vendor into podman. |
2954d4f to
3bf05d3
Compare
|
What the heck, I pushed anyway in case someone wants to pull & play. |
|
Thank you. Looks like a reasonable analysis. How do we fix that? |
But nothing here changed that looking at the diff, it used too work fine and I cannot see any config/compression chnages here What I do see however is containers/buildah#5478 AFAIK the libimage code treats a non empty platform as must pull or something like that if I remember correctly |
|
Hmm, this has been happening for a while, since I see it happening with both podman 4.9.4 and 5.0.0 as well, so it might not be the only cause. |
I had suspected as much, but at most, that should be changing the pull policy to "if-newer" under the covers, and I'm pretty sure that's already the value that's being passed in. |
Yeah not sure, but the fact is main is passing but this PR is not so the problem must be in the diff here and thankfully the diff is small so this is my best guess as of why. I can try to reproduce tomorrow. |
Nice catch, @Luap99 . Removing those three lines (and the |
|
That was added to make |
Sure but it fixed it in broken way, the default pull policy is ifmissing and not ifnewer which the code uses now due the well other not so great behavior in libimage. |
|
Tests now passing. This is safe to vendor into podman; no changes needed. Thank you @nalind for the quick fix. |
|
Treadmill has been broken for a few weeks, vendoring one of the c-* modules: cc @mheon |
|
Buildah's main branch is currently using containers/image v5.31.1, and podman's main branch is currently using an untagged commit on the containers/image main branch which is newer than that. Attempting to vendor in buildah is apparently pulling the version of image that buildah uses, which doesn't supply the new function that libpod already depends on. |
|
containers/buildah#5585 has just merged. Treadmill is now failing with: $ make
CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build \
\
-ldflags '-X github.com/containers/podman/v5/libpod/define.gitCommit=e7bf0e98bbaebe5dd703c2080cf03fecf244720c -X github.com/containers/podman/v5/libpod/define.buildInfo=1721044095 -X github.com/containers/podman/v5/libpod/config._installPrefix=/usr/local -X github.com/containers/podman/v5/libpod/config._etcDir=/etc -X github.com/containers/podman/v5/pkg/systemd/quadlet._binDir=/home/esm/bin/x86_64 -X github.com/containers/common/pkg/config.additionalHelperBinariesDir= ' \
-tags " systemd libsubid exclude_graphdriver_devicemapper seccomp " \
-o bin/podman ./cmd/podman
test -z "-Z" || chcon -t container_runtime_exec_t bin/podman
CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build \
\
-ldflags '-X github.com/containers/podman/v5/libpod/define.gitCommit=e7bf0e98bbaebe5dd703c2080cf03fecf244720c -X github.com/containers/podman/v5/libpod/define.buildInfo=1721044108 -X github.com/containers/podman/v5/libpod/config._installPrefix=/usr/local -X github.com/containers/podman/v5/libpod/config._etcDir=/etc -X github.com/containers/podman/v5/pkg/systemd/quadlet._binDir=/home/esm/bin/x86_64 -X github.com/containers/common/pkg/config.additionalHelperBinariesDir= ' \
-tags "remote exclude_graphdriver_btrfs btrfs_noversion exclude_graphdriver_devicemapper containers_image_openpgp" \
-o bin/podman-remote ./cmd/podman
package github.com/containers/podman/v5/cmd/podman
imports github.com/containers/podman/v5/cmd/podman/common
imports github.com/containers/buildah/define
imports github.com/containers/common/libimage: build constraints exclude all Go files in vendor/github.com/containers/common/libimage
make: *** [Makefile:393: bin/podman-remote] Error 1
buildah-vendor-treadmill-x: 'make' failed with new buildah. Cannot continue. |
|
Working on it. |
|
@nalind @edsantiago Looks like this is the culprit |
|
@aaronlehmann PTAL |
|
One option in containers/buildah#5628. |
Another option, which all things being equal, I prefer, in containers/common#2089. |
|
Aaaaand we're back to |
|
containers/buildah#5627 was a downgrade. |
|
We were not able to find or create Copr project Unless the HTTP status code above is >= 500, please check your configuration for:
|
|
Ephemeral COPR build failed. @containers/packit-build please check. |
|
Gah. I completely forgot about One possible solution will be to use a custom socket for each process, maybe derived from Good news is, though, THIS EFFORT IS WORTH IT! (parallelizing). Wow, 15 minutes for bud tests. |
|
*sniffle*. Look at this. Passing bud tests, all in less than sixteen minutes. (For comparison: bud tests are by far our biggest slowdown, taking ~35 minutes on a CI run). My changes here are absolutely not ready for prime time, but I think they're in good enough shape that someone else should be able to carry them through without much fuss. |
This is a JUNK COMMIT from buildah-vendor-treadmill v0.3. DO NOT MERGE! This is just a way to keep the buildah-podman vendoring in sync. Refer to: https://github.com/containers/podman/wiki/Buildah-Vendor-Treadmill Signed-off-by: Ed Santiago <santiago@redhat.com>
|
I was counting on the parallel work to get this time down.
Just to be clear we need to get the parallel test going in buildah first? Once that works we can enable it here for bud tests?! |
I believe so, yes. For context, that work is in containers/buildah#5552 but there's a weird flake that is blocking it. I am very curious to find out if we hit that flake here in podman testing. I'll keep re-pushing this PR today. On second thought, it might be worth thinking about pushing this into podman even before the buildah-parallel flake is fixed. Maybe by skipping the function run_buildah() {
if arg is "build" or "bud" or "build-using-dockerfile"; then
use podman build instead
else
invoke buildah directly
fi
}Maybe I should just submit a PR and force-merge it. That way all the nice kind wonderful touching things y'all have said about me will poof, vanish into thin air and be replaced by yells of anger.... |
As you run --sync, please update this commit message with your
actual changes.
Changes since 2024-11-14:
* EXPERIMENTAL: try running in parallel on fastvm
* line-offset-only changes to helpers.bash diffs, due to
new _prefetch()
* SUPER-EXPERIMENTAL AND POSSIBLY BROKEN: add parallelization
mechanism to podman-remote tests.
Signed-off-by: Ed Santiago <santiago@redhat.com>
Followup to Cabal discussion 2022-04-07, re: letting us vendor in buildah on a moment's notice.
Instead of cron'ing this, let's see if this works: keep this PR open perpetually, with daily updates to get latest podman and buildah.
See individual commit messages for details.