Skip to content

Migrate containers libs to new mono repo#10599

Open
rh-roman wants to merge 1 commit into
openshift:mainfrom
rh-roman:update-container-dependency
Open

Migrate containers libs to new mono repo#10599
rh-roman wants to merge 1 commit into
openshift:mainfrom
rh-roman:update-container-dependency

Conversation

@rh-roman

@rh-roman rh-roman commented Jun 4, 2026

Copy link
Copy Markdown

Around August 2025 container containers/common, containers/storage, and containers/image were consolidated into containers/container-libs monorepo. All maintenance work has been happening in the monorepo since then.

Migrating from legacy container imports to the new Podman import paths.

Updating to newest version of image and storage dependencies

  • github.com/containers/image/v5 v5.31.0 → go.podman.io/image/v5 v5.40.0
  • github.com/containers/storage v1.54.0 → go.podman.io/storage v1.63.0

https://blog.podman.io/2025/08/upcoming-migration-of-three-containers-repositories-to-monorepo/

Summary by CodeRabbit

  • Chores
    • Updated Go module dependencies and bumped core libraries to newer stable versions.
    • Advanced observability/telemetry and related instrumentation to recent releases.
    • Replaced/standardized image and registry-related provider packages across the codebase.
    • Updated compression, runtime spec, storage, and related platform libraries.
    • Minor test/build metadata adjustments to align with dependency changes.

@openshift-ci openshift-ci Bot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jun 4, 2026
@coderabbitai

coderabbitai Bot commented Jun 4, 2026

Copy link
Copy Markdown

Note

.coderabbit.yaml has unrecognized properties

CodeRabbit is using all valid settings from your configuration. Unrecognized properties (listed below) have been ignored and may indicate typos or deprecated fields that can be removed.

⚠️ Parsing warnings (1)
Validation error: Unrecognized key: "tools"
⚙️ Configuration instructions
  • Please see the configuration documentation for more information.
  • You can also validate your configuration using the online YAML validator.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: 746a2753-09c6-4a95-a8e9-26e589d771ee

📥 Commits

Reviewing files that changed from the base of the PR and between 249a55c and 70c18c5.

⛔ Files ignored due to path filters (289)
  • go.sum is excluded by !**/*.sum
  • vendor/github.com/BurntSushi/toml/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/BurntSushi/toml/decode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/BurntSushi/toml/encode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/BurntSushi/toml/error.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/BurntSushi/toml/lex.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/BurntSushi/toml/meta.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/BurntSushi/toml/parse.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/containers/image/v5/pkg/sysregistriesv2/paths_common.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/containers/image/v5/pkg/sysregistriesv2/paths_freebsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/containers/storage/pkg/homedir/homedir_others.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/containers/storage/pkg/mount/mountinfo_linux.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/containers/storage/pkg/unshare/unshare.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/.gitattributes is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/.goreleaser.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/fse/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/fse/bitwriter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/fse/compress.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/huff0/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/huff0/bitwriter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/huff0/compress.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/huff0/decompress.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/huff0/decompress_amd64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/huff0/decompress_generic.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/huff0/huff0.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/internal/cpuinfo/cpuinfo_amd64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/internal/le/unsafe_disabled.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/internal/le/unsafe_enabled.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/internal/snapref/decode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/internal/snapref/encode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/zstd/bitwriter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/zstd/blockdec.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/zstd/blockenc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/zstd/decoder.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/zstd/decoder_options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/zstd/dict.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/zstd/enc_base.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/zstd/enc_best.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/zstd/enc_better.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/zstd/enc_dfast.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/zstd/enc_fast.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/zstd/encoder.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/zstd/encoder_options.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/zstd/framedec.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/zstd/fse_decoder_amd64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/zstd/fse_decoder_generic.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/zstd/fse_encoder.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_other.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/zstd/matchlen_amd64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/zstd/matchlen_generic.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/zstd/seqdec.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/zstd/seqdec_amd64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/zstd/seqdec_generic.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/zstd/simple_go124.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/zstd/snappy.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/zstd/zip.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/klauspost/compress/zstd/zstd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/sys/capability/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/sys/capability/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/sys/capability/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/sys/capability/capability.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/sys/capability/capability_linux.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/sys/capability/capability_noop.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/sys/capability/enum.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/sys/capability/enum_gen.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/moby/sys/capability/syscall_linux.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/runtime-spec/specs-go/config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/opencontainers/runtime-spec/specs-go/version.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/sirupsen/logrus/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/sirupsen/logrus/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/sirupsen/logrus/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/sirupsen/logrus/appveyor.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/sirupsen/logrus/entry.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/sirupsen/logrus/hooks.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/sirupsen/logrus/hooks/test/test.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/sirupsen/logrus/logger.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/sirupsen/logrus/logrus.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/sirupsen/logrus/text_formatter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/syndtr/gocapability/capability/capability.go is excluded by !vendor/**, !**/vendor/**
  • vendor/github.com/syndtr/gocapability/capability/capability_noop.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/handler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/request/resp_writer_wrapper.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/client.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/server.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv/util.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/transport.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/version.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/.golangci.yml is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/CHANGELOG.md is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/CONTRIBUTING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/Makefile is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/RELEASING.md is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/attribute/encoder.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/attribute/hash.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/attribute/internal/attribute.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/attribute/kv.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/attribute/type_string.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/attribute/value.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/baggage/baggage.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/dependencies.Dockerfile is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/internal/errorhandler/errorhandler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/internal/global/handler.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/internal/global/state.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/metric/asyncfloat64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/metric/asyncint64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/metric/meter.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/metric/syncfloat64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/metric/syncint64.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/propagation/baggage.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/propagation/trace_context.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/requirements.txt is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/sdk/internal/x/features.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/sdk/metric/config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/sdk/metric/internal/aggregate/exponential_histogram.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/sdk/metric/internal/aggregate/histogram.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/sdk/metric/internal/aggregate/lastvalue.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/sdk/metric/internal/aggregate/sum.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/sdk/metric/internal/observ/instrumentation.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/sdk/metric/manual_reader.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/sdk/metric/periodic_reader.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/sdk/metric/pipeline.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/sdk/metric/reader.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/sdk/metric/version.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/sdk/resource/builtin.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/sdk/resource/config.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/sdk/resource/container.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/sdk/resource/env.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/sdk/resource/host_id.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/sdk/resource/host_id_readfile.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/sdk/resource/os.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/sdk/resource/process.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/sdk/resource/resource.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/sdk/version.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/semconv/v1.39.0/MIGRATION.md is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/semconv/v1.39.0/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/semconv/v1.40.0/MIGRATION.md is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/semconv/v1.40.0/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/semconv/v1.40.0/attribute_group.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/semconv/v1.40.0/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/semconv/v1.40.0/error_type.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/semconv/v1.40.0/exception.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/semconv/v1.40.0/httpconv/metric.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/semconv/v1.40.0/otelconv/metric.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/semconv/v1.40.0/schema.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/trace/auto.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/trace/trace.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/trace/tracestate.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/version.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.opentelemetry.io/otel/versions.yaml is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/image/v5/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/image/v5/docker/reference/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/image/v5/docker/reference/helpers.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/image/v5/docker/reference/normalize.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/image/v5/docker/reference/reference.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/image/v5/docker/reference/regexp-additions.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/image/v5/docker/reference/regexp.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/image/v5/internal/multierr/multierr.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/image/v5/internal/rootless/rootless.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/image/v5/pkg/compression/internal/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/image/v5/pkg/compression/types/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/image/v5/pkg/sysregistriesv2/shortnames.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/image/v5/pkg/sysregistriesv2/system_registries_v2.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/image/v5/types/types.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/AUTHORS is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/LICENSE is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/NOTICE is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/internal/rawfilelock/rawfilelock.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/internal/rawfilelock/rawfilelock_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/internal/rawfilelock/rawfilelock_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/configfile/doc.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/configfile/parse.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/configfile/path.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/configfile/path_freebsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/configfile/path_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/configfile/path_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/configfile/slice.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/fileutils/exists_freebsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/fileutils/exists_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/fileutils/exists_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/fileutils/fileutils.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/fileutils/fileutils_darwin.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/fileutils/fileutils_solaris.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/fileutils/fileutils_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/fileutils/fileutils_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/fileutils/reflink_linux.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/fileutils/reflink_unsupported.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/homedir/homedir.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/homedir/homedir_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/homedir/homedir_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/idtools/idtools.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/idtools/idtools_supported.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/idtools/idtools_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/idtools/idtools_unsupported.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/idtools/idtools_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/idtools/parser.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/idtools/usergroupadd_linux.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/idtools/usergroupadd_unsupported.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/idtools/utils_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/lockfile/lastwrite.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/lockfile/lockfile.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/lockfile/lockfile_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/lockfile/lockfile_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/mount/flags.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/mount/flags_freebsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/mount/flags_linux.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/mount/flags_unsupported.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/mount/mount.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/mount/mounter_freebsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/mount/mounter_linux.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/mount/mounter_unsupported.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/mount/mountinfo.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/mount/sharedsubtree_linux.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/mount/unmount_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/mount/unmount_unsupported.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/reexec/README.md is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/reexec/command_freebsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/reexec/command_linux.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/reexec/command_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/reexec/command_unsupported.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/reexec/command_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/reexec/reexec.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/regexp/regexp.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/regexp/regexp_dontprecompile.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/regexp/regexp_precompile.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/chmod.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/chtimes.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/chtimes_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/chtimes_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/errors.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/exitcode.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/extattr_freebsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/extattr_unsupported.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/init.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/init_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/lchflags_bsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/lchown.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/lcow_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/lcow_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/lstat_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/lstat_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/meminfo.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/meminfo_freebsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/meminfo_linux.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/meminfo_solaris.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/meminfo_unsupported.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/meminfo_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/mknod.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/mknod_freebsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/mknod_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/path.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/path_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/path_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/process_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/rm.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/rm_common.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/rm_freebsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/stat_common.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/stat_darwin.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/stat_freebsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/stat_linux.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/stat_netbsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/stat_openbsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/stat_solaris.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/stat_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/stat_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/syncfs_linux.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/syncfs_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/syncfs_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/syscall_unix.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/syscall_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/umask.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/umask_windows.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/utimes_freebsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/utimes_linux.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/utimes_unsupported.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/xattrs_darwin.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/xattrs_freebsd.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/xattrs_linux.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/system/xattrs_unsupported.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/unshare/getenv_linux_cgo.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/unshare/getenv_linux_nocgo.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/unshare/unshare.c is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/unshare/unshare.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/unshare/unshare_cgo.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/unshare/unshare_darwin.go is excluded by !vendor/**, !**/vendor/**
  • vendor/go.podman.io/storage/pkg/unshare/unshare_freebsd.c is excluded by !vendor/**, !**/vendor/**
📒 Files selected for processing (8)
  • go.mod
  • pkg/asset/agent/mirror/registriesconf.go
  • pkg/asset/ignition/bootstrap/common.go
  • pkg/asset/imagebased/image/ignition_test.go
  • pkg/asset/imagebased/image/imagebased_config.go
  • pkg/asset/imagebased/image/registriesconf.go
  • pkg/asset/releaseimage/pullspec.go
  • pkg/types/validation/installconfig.go
✅ Files skipped from review due to trivial changes (3)
  • pkg/asset/releaseimage/pullspec.go
  • pkg/asset/agent/mirror/registriesconf.go
  • pkg/asset/ignition/bootstrap/common.go
🚧 Files skipped from review as they are similar to previous changes (5)
  • pkg/asset/imagebased/image/ignition_test.go
  • pkg/asset/imagebased/image/imagebased_config.go
  • pkg/asset/imagebased/image/registriesconf.go
  • pkg/types/validation/installconfig.go
  • go.mod

📝 Walkthrough

Walkthrough

Migrate module and imports from github.com/containers/image/v5 to go.podman.io/image/v5, update go.mod dependency versions (including OpenTelemetry and golang.org/x/*), and update all affected source and test import paths accordingly.

Changes

Image Dependency Migration

Layer / File(s) Summary
Module dependency updates
go.mod
Remove github.com/containers/image/v5, add go.podman.io/image/v5 v5.40.0, normalize github.com/sirupsen/logrus to v1.9.4, bump OpenTelemetry packages to v1.43.0, refresh golang.org/x modules, compression, runtime-spec, and other indirect dependencies.
Sysregistriesv2 import migration
pkg/asset/agent/mirror/registriesconf.go, pkg/asset/ignition/bootstrap/common.go, pkg/asset/imagebased/image/registriesconf.go, pkg/asset/imagebased/image/ignition_test.go
Update sysregistriesv2 imports to go.podman.io/image/v5/pkg/sysregistriesv2 in source and test files without other logic changes.
Dockerref import migration
pkg/asset/imagebased/image/imagebased_config.go, pkg/asset/releaseimage/pullspec.go, pkg/types/validation/installconfig.go
Update dockerref imports to go.podman.io/image/v5/docker/reference (alias dockerref) for repository parsing/validation and pullspec parsing.

🎯 2 (Simple) | ⏱️ ~10 minutes

🚥 Pre-merge checks | ✅ 15
✅ Passed checks (15 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Migrate containers libs to new mono repo' clearly summarizes the main change: migrating from legacy containers imports (github.com/containers/) to new Podman import paths (go.podman.io/) following the monorepo consolidation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Stable And Deterministic Test Names ✅ Passed No Ginkgo tests found in codebase. Modified test file uses standard Go testing with static, deterministic test name ("comprehensive configuration"). No dynamic test names were added or changed.
Test Structure And Quality ✅ Passed No Ginkgo test code in PR—only import path updates to existing standard Go tests using testify. Check not applicable to dependency migration PR.
Microshift Test Compatibility ✅ Passed No new Ginkgo e2e tests added; PR contains only dependency updates and import path migrations with zero test definitions (0/8 modified files contain Ginkgo tests).
Single Node Openshift (Sno) Test Compatibility ✅ Passed No new Ginkgo e2e tests added. Changes are import path migrations from github.com/containers/* to go.podman.io/* and go.mod dependency updates only.
Topology-Aware Scheduling Compatibility ✅ Passed PR only updates import paths from github.com/containers/* to go.podman.io/* in utility/config files. No deployment manifests, operators, controllers, or scheduling constraints are added or modified.
Ote Binary Stdout Contract ✅ Passed PR contains only dependency version updates and import path migrations (github.com/containers → go.podman.io) with no new stdout-writing code or process-level modifications.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed PR contains only dependency updates and import path migrations, no new Ginkgo e2e tests. The single new test file uses standard Go testing with testing.T, not Ginkgo patterns.
No-Weak-Crypto ✅ Passed PR only migrates import paths from containers/* to go.podman.io/* with no code changes. No MD5, SHA1, DES, RC4, 3DES, Blowfish, ECB, custom crypto, or unsafe secret comparisons detected.
Container-Privileges ✅ Passed PR modifies only Go source files and go.mod for dependency migration; no container/K8s manifests with privileged configurations are introduced.
No-Sensitive-Data-In-Logs ✅ Passed PR only updates import paths and dependency versions. No new logging code was added; existing logs appropriately avoid sensitive data.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 golangci-lint (2.12.2)

Error: can't load config: unsupported version of the configuration: "" See https://golangci-lint.run/docs/product/migration-guide for migration instructions
The command is terminated due to an error: can't load config: unsupported version of the configuration: "" See https://golangci-lint.run/docs/product/migration-guide for migration instructions


Comment @coderabbitai help to get the list of available commands and usage tips.

@openshift-ci openshift-ci Bot requested review from tsorya and tthvo June 4, 2026 19:22
@openshift-ci

openshift-ci Bot commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign pawanpinjarkar for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details 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

@rh-roman rh-roman force-pushed the update-container-dependency branch from 94af925 to 249a55c Compare June 4, 2026 19:22
@openshift-ci openshift-ci Bot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jun 4, 2026
@rh-roman rh-roman marked this pull request as draft June 4, 2026 21:13
@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 Jun 4, 2026
@rh-roman

rh-roman commented Jun 5, 2026

Copy link
Copy Markdown
Author

/retest

@rh-roman rh-roman force-pushed the update-container-dependency branch from 249a55c to 8fbebc9 Compare June 5, 2026 23:06
Around August 2025 container containers/common, containers/storage, and
containers/image were consolidated into containers/container-libs
monorepo. All maintenance work has been happening in the monorepo since
then.

Migrating from legacy container imports to the new Podman import paths.

Updating to newest version of image and storage dependencies
  - github.com/containers/image/v5 v5.31.0 → go.podman.io/image/v5 v5.40.0
  - github.com/containers/storage v1.54.0 → go.podman.io/storage v1.63.0

https://blog.podman.io/2025/08/upcoming-migration-of-three-containers-repositories-to-monorepo/
@rh-roman rh-roman force-pushed the update-container-dependency branch from 8fbebc9 to 70c18c5 Compare June 5, 2026 23:07
@rh-roman rh-roman marked this pull request as ready for review June 8, 2026 20:51
@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 Jun 8, 2026
@rh-roman

rh-roman commented Jun 8, 2026

Copy link
Copy Markdown
Author

/retest

@openshift-ci openshift-ci Bot requested review from eranco74 and pawanpinjarkar June 8, 2026 20:52
@openshift-ci

openshift-ci Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

@rh-roman: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-agent-5control-ipv4 70c18c5 link false /test e2e-agent-5control-ipv4
ci/prow/unit 70c18c5 link true /test unit
ci/prow/e2e-gcp-ovn-byo-vpc 70c18c5 link false /test e2e-gcp-ovn-byo-vpc
ci/prow/e2e-gcp-xpn-custom-dns 70c18c5 link false /test e2e-gcp-xpn-custom-dns
ci/prow/e2e-agent-compact-ipv4-appliance-diskimage 70c18c5 link false /test e2e-agent-compact-ipv4-appliance-diskimage
ci/prow/integration-tests-nodejoiner 70c18c5 link true /test integration-tests-nodejoiner
ci/prow/e2e-agent-compact-ipv4-rhel10-techpreview 70c18c5 link false /test e2e-agent-compact-ipv4-rhel10-techpreview
ci/prow/e2e-agent-two-node-fencing-ipv4 70c18c5 link false /test e2e-agent-two-node-fencing-ipv4

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@tthvo tthvo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@rh-roman I haven't looked closely, but I strongly recommend splitting the changes into several commits, for example:

  1. Changes to go.mod and go.sum
  2. Changes to vendor/ directory after running go mod vendor
  3. Any other changes to installer source files to update the import path.

Also, if you can create a Jira card with this PR contexts, it would be great. Thanks!

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