Skip to content

Conversation

@inknos
Copy link
Collaborator

@inknos inknos commented Oct 22, 2025

Fixes: https://issues.redhat.com/browse/RUN-3578
Depends on: containers/container-libs#411

Does this PR introduce a user-facing change?

None

@openshift-ci openshift-ci bot added the do-not-merge/release-note-label-needed Enforce release-note requirement, even if just None label Oct 22, 2025
@openshift-ci openshift-ci bot added release-note-none and removed do-not-merge/release-note-label-needed Enforce release-note requirement, even if just None labels Oct 22, 2025
@inknos
Copy link
Collaborator Author

inknos commented Oct 22, 2025

@baude @Luap99 I am confused on how to write tests for this PR and how to build in this PR when code from container-libs/common is needed

@packit-as-a-service
Copy link

[NON-BLOCKING] Packit jobs failed. @containers/packit-build please check. Everyone else, feel free to ignore.

1 similar comment
@packit-as-a-service
Copy link

[NON-BLOCKING] Packit jobs failed. @containers/packit-build please check. Everyone else, feel free to ignore.

@Luap99
Copy link
Member

Luap99 commented Oct 22, 2025

you need a go mod replace to build and test temporarily here in podman

https://github.com/containers/container-libs/blob/main/CONTRIBUTING_GO.md#testing-changes-in-a-dependent-repository

I am not sure we need to add a test

@baude baude added the 6.0 Breaking changes for Podman 6.0 label Oct 22, 2025
@baude
Copy link
Member

baude commented Oct 22, 2025

im ok with no new tests for now.

@baude baude added the No New Tests Allow PR to proceed without adding regression tests label Oct 22, 2025
@TomSweeneyRedHat
Copy link
Member

Changes LGTM with a quick breeze

@inknos inknos marked this pull request as draft October 23, 2025 15:20
@openshift-ci openshift-ci bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Oct 23, 2025
@inknos
Copy link
Collaborator Author

inknos commented Oct 23, 2025

@Luap99 tbh I got lost a little bit thinking how we could append the podman version as a tag. Ideally, that is only when endpoint is the same as config.Machine.Image. I think my implementation is far from being nice, but I am getting closer to the solution.

@Luap99
Copy link
Member

Luap99 commented Oct 23, 2025

Ideally, that is only when endpoint is the same as config.Machine.Image

I don't think is is important and likely not what we want in case RHEL overrides that with a custom image. I think the logic could be quite simple, if it doesn't specify a tag/digest then append the current version. That seems the most logical and consitent behavior for users and documentation purposes because the cli and config values still behave the same then.

@inknos inknos force-pushed the run-3578 branch 3 times, most recently from a76e6b6 to 0f2cbae Compare November 5, 2025 17:12
@inknos inknos marked this pull request as ready for review November 5, 2025 17:12
@openshift-ci openshift-ci bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Nov 5, 2025
Copy link
Member

@Luap99 Luap99 left a comment

Choose a reason for hiding this comment

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

Without the corresponding common update this will beak podman machine init.

Since the common PR is merged to update then vendor during dev cycles please run

go get go.podman.io/storage@main && go get go.podman.io/image/v5@main &&  go get go.podman.io/common@main && make vendor

then commit this. (Note vendor will fail currently due the cgroupv2 removal, @lsm5 will revert it in common then it should work afterwards)

Also machine test are failing as they don't hard code the image so they have none, the test should not parse the config file so just hard code the location in pkg/machine/e2e/machine_pull_test.go

@inknos
Copy link
Collaborator Author

inknos commented Nov 6, 2025

@Luap99 I addressed the comments. should I squash the commits with the vendor?

also, I am hitting
libpod/oci_conmon_linux.go:378:21: cannot use resource.Pids.Limit (variable of type int64) as *int64 value in assignment on make podman. is it caused by vendoring?

@Luap99
Copy link
Member

Luap99 commented Nov 6, 2025

@Luap99 I addressed the comments. should I squash the commits with the vendor?

No, extra commits for vendor is what I usually prefer unless it breaks the build then we need the fix in the same commit as we require all commits to compile.

also, I am hitting libpod/oci_conmon_linux.go:378:21: cannot use resource.Pids.Limit (variable of type int64) as *int64 value in assignment on make podman. is it caused by vendoring?

Yeah, that is caused due the cgroups dependency update that got dragged in via common containers/container-libs#428, we need to update that in podman first. I try to take care of that now.

Also opencontainers/cgroups#48, looks like there are more changes around that need also for #27440 but that should not affect you here to much for now I think.

@Luap99
Copy link
Member

Luap99 commented Nov 6, 2025

Ah, one other things please don't just name the commit Vendor, we vendor a lot of things so a bit more info would be nice, like: vendor: update common, image, storage

@inknos
Copy link
Collaborator Author

inknos commented Nov 6, 2025

Let me squash the commits then

@Luap99
Copy link
Member

Luap99 commented Nov 6, 2025

it should work once #27454 merged and you rebase

@inknos
Copy link
Collaborator Author

inknos commented Nov 6, 2025

awesome, thanks a lot

@Luap99
Copy link
Member

Luap99 commented Nov 6, 2025

Did you run git add . before commiting? Looks like you did not commit all vendor files.

@inknos
Copy link
Collaborator Author

inknos commented Nov 6, 2025

Idk how I excluded them, now all should be up to date

@Luap99
Copy link
Member

Luap99 commented Nov 13, 2025

@inknos Can you rebase and fix the CI issues so we can get this moving, for th elinter you can just add a nolint like here for example f47f74c

And you will need to specify the machine image in the machine e2e test as they don't read the containers.conf there.

This could be blocking others from vendoring common,image,storage.

@inknos
Copy link
Collaborator Author

inknos commented Nov 13, 2025

ok there are a few things I am not understanding here.

  1. I rebased the pr but there were conflicts of course. so I removed the vendor, restored main's go.mod and go.sum, and vendored again, which now gives this error. do I actually need to vendor now?
$ go get go.podman.io/storage@main && go get go.podman.io/image/v5@main &&  go get go.podman.io/common@main && make vendo
r                                                                               
go: downloading cyphar.com/go-pathrs v0.2.1       
go: upgraded github.com/containerd/stargz-snapshotter/estargz v0.17.0 => v0.18.1 
go: upgraded github.com/cyphar/filepath-securejoin v0.5.1 => v0.6.0                                                                                             
go: upgraded github.com/klauspost/compress v1.18.0 => v1.18.1
go: added github.com/mistifyio/go-zfs/v4 v4.0.0             
go: upgraded github.com/opencontainers/selinux v1.12.0 => v1.13.0       
go: upgraded github.com/vbatts/tar-split v0.12.1 => v0.12.2                                                                                                     
go: upgraded go.podman.io/storage v1.61.0 => v1.61.1-0.20251112195944-4afce3558e66
go: upgraded github.com/go-jose/go-jose/v4 v4.1.2 => v4.1.3
go: upgraded go.opentelemetry.io/auto/sdk v1.1.0 => v1.2.1
go: upgraded go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 => v0.63.0
go: upgraded go.opentelemetry.io/otel v1.37.0 => v1.38.0
go: upgraded go.opentelemetry.io/otel/metric v1.37.0 => v1.38.0
go: upgraded go.opentelemetry.io/otel/trace v1.37.0 => v1.38.0         
go: upgraded go.podman.io/image/v5 v5.38.0 => v5.38.1-0.20251112195944-4afce3558e66
go: upgraded golang.org/x/oauth2 v0.32.0 => v0.33.0
go: upgraded google.golang.org/genproto/googleapis/api v0.0.0-20250804133106-a7a43d27e69b => v0.0.0-20250825161204-c5933d9347a5
go: upgraded google.golang.org/genproto/googleapis/rpc v0.0.0-20250804133106-a7a43d27e69b => v0.0.0-20250825161204-c5933d9347a5
go: upgraded github.com/pkg/sftp v1.13.9 => v1.13.10            
go: upgraded go.podman.io/common v0.66.0 => v0.66.1-0.20251112195944-4afce3558e66
go mod tidy      
go: downloading cyphar.com/go-pathrs v0.2.1
go: github.com/containers/podman/v6/libpod imports
        github.com/cyphar/filepath-securejoin/pathrs-lite imports
        cyphar.com/go-pathrs: unrecognized import path "cyphar.com/go-pathrs": parse https://cyphar.com/go-pathrs?go-get=1: no go-import meta tags ()
go: github.com/containers/podman/v6/libpod imports               
        github.com/opencontainers/selinux/go-selinux imports
        github.com/cyphar/filepath-securejoin/pathrs-lite/procfs imports
        cyphar.com/go-pathrs/procfs: unrecognized import path "cyphar.com/go-pathrs": parse https://cyphar.com/go-pathrs?go-get=1: no go-import meta tags ()
make: *** [Makefile:354: vendor] Error 1 
  1. now, make validatepr is sane now though, so I don't think I need any nolint right now

@Luap99
Copy link
Member

Luap99 commented Nov 13, 2025

@inknos I saw that do, you can try setting GOPROXY="https://proxy.golang.org" env when you see such issues, generally means the website seems to have an issue. I can chase that down and report in the right place.

You still have to fix the machine test so they actually fin the image now

something like this I think
diff

$ git diff
diff --git a/pkg/machine/e2e/machine_pull_test.go b/pkg/machine/e2e/machine_pull_test.go
index bf05219aed..9528784c1b 100644
--- a/pkg/machine/e2e/machine_pull_test.go
+++ b/pkg/machine/e2e/machine_pull_test.go
@@ -25,7 +25,7 @@ func pullOCITestDisk(finalDir string, vmType define.VMType) error {
        dirs := define.MachineDirs{ImageCacheDir: imageCacheDir}
 
        var skipTlsVerify types.OptionalBool
-       ociArtPull, err := ocipull.NewOCIArtifactPull(context.Background(), &dirs, "", "e2emachine", vmType, unusedFinalPath, skipTlsVerify)
+       ociArtPull, err := ocipull.NewOCIArtifactPull(context.Background(), &dirs, "docker://quay.io/podman/machine-os", "e2emachine", vmType, unusedFinalPath, skipTlsVerify)
        if err != nil {
                return err
        }

@Luap99
Copy link
Member

Luap99 commented Nov 13, 2025

Oh an yes you still need to vendor this as common hasn't been updated here yet

@Luap99
Copy link
Member

Luap99 commented Nov 13, 2025

I am unable to reproducer the vendor problem now even with clean caches, it might have been a temporary server thing.

If it still doesn't work there is also make vendor-in-container which may work better

@inknos
Copy link
Collaborator Author

inknos commented Nov 13, 2025

GOPROXY="https://proxy.golang.org"

This did it, thanks.

You still have to fix the machine test so they actually fin the image now

now everything should be done. thanks for the help with this

Fixes: https://issues.redhat.com/browse/RUN-3578

Signed-off-by: Nicola Sella <nsella@redhat.com>
image got converted to the new docker modules which were finally renamed
to moby[1]. Podman however still uses docker so now the swagger lookup
seems to find duplicated types which in general breaks the generation so
exclude the new module for now until we convert podman and fix the new
type issues swagger found.

[1] containers/container-libs#459

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
@baude
Copy link
Member

baude commented Nov 14, 2025

LGTM

@github-actions github-actions bot added the kind/api-change Change to remote API; merits scrutiny label Nov 14, 2025
@Luap99
Copy link
Member

Luap99 commented Nov 14, 2025

Looks like swagger was not happy with the new moby/docker types that got tragged in so I pushed a small commit here to fix so we can get this merged.

Copy link
Member

@Luap99 Luap99 left a comment

Choose a reason for hiding this comment

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

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Nov 14, 2025
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Nov 14, 2025

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: inknos, Luap99

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 /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Nov 14, 2025
@openshift-merge-bot openshift-merge-bot bot merged commit d388f9b into containers:main Nov 14, 2025
86 of 87 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

6.0 Breaking changes for Podman 6.0 approved Indicates a PR has been approved by an approver from all required OWNERS files. kind/api-change Change to remote API; merits scrutiny lgtm Indicates that a PR is ready to be merged. machine No New Tests Allow PR to proceed without adding regression tests release-note-none

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants