Skip to content
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

CLID-17: feat: docker v2s2 manifest list / oci image index implementation #810

Merged
merged 1 commit into from Mar 15, 2024

Conversation

aguidirh
Copy link
Contributor

@aguidirh aguidirh commented Mar 12, 2024

Description

This PR contains changes required to allow the mirroring of multi-arch operator catalogs (manifest list / OCI image index).

The changes presented here take into account the case where the index.json contains a reference to a manifest list inside of blobs/sha256 folder and also when the index.json contains the platform information directly.

CLID-17

Type of change

Please delete options that are not relevant.

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

Mirroring multi-arch catalog (manifest list) scenario

Step 0 - Get the oci redhat-operator-index multi-arch with skopeo

skopeo copy --all docker://registry.redhat.io/redhat/redhat-operator-index:v4.15 oci:///home/aguidi/go/src/github.com/aguidirh/oc-mirror/alex-tests/redhat-operator-index --remove-signatures

Use this ImageSetConfiguration

kind: ImageSetConfiguration
apiVersion: mirror.openshift.io/v1alpha2
mirror:
  operators:
    - catalog: oci:///home/aguidi/go/src/github.com/aguidirh/oc-mirror/alex-tests/redhat-operator-index
      packages:
        - name: aws-load-balancer-operator

Step 1 - mirror to disk

./bin/oc-mirror -c /home/aguidi/go/src/github.com/aguidirh/oc-mirror/alex-tests/alex-isc/clid-17.yaml file:///home/aguidi/go/src/github.com/aguidirh/oc-mirror/alex-tests/clid-17-multi-arch --v2

Step 2 - disk to mirror

./bin/oc-mirror -c /home/aguidi/go/src/github.com/aguidirh/oc-mirror/alex-tests/alex-isc/clid-17.yaml --from file:///home/aguidi/go/src/github.com/aguidirh/oc-mirror/alex-tests/clid-17-multi-arch docker://localhost:7000 --v2

Step 3 - skopeo copy from your local registry to check the binaries

skopeo copy --all docker://localhost:7000/redhat-operator-index:ec835f0c9883554442c3306aebf5555766426b9cb7379388c16c4c457cfd89f8 oci:///ho
me/aguidi/go/src/github.com/aguidirh/oc-mirror/alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local --remove-signatures --src-tls-verify=false

Check the index.json which must be a reference to a manifest list inside of blobs/sha256 folder with for archs (amd64, arm, ppc, s390x)

Step 4 - create folder to store the binaries by arch

mkdir /home/aguidi/go/src/github.com/aguidirh/oc-mirror/alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/amd64
mkdir /home/aguidi/go/src/github.com/aguidirh/oc-mirror/alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/arm
mkdir /home/aguidi/go/src/github.com/aguidirh/oc-mirror/alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/ppc
mkdir /home/aguidi/go/src/github.com/aguidirh/oc-mirror/alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/s390x

Step 5 - untar all the blobs which contains the opm binary

untar opm for amd64

tar xvf ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/blobs/sha256/5a8a8d52ea677380025ae27b2d008f26430c7fa621da8c47f1d832d86127659e -C ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/amd64

untar opm for arm

tar xvf ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/blobs/sha256/3be23da3d332a73a6a8dacbfa1c363929853c9b5d5af9355fb17a0b0c28c6092 -C ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/arm

untar opm for ppc

tar xvf ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/blobs/sha256/62fb9b72c0134d464b47647f22fa8fcc34f1ee52de26ee03de5e3c2c79d5913a -C ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/ppc

untar opm for s390x

tar xvf ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/blobs/sha256/64a1efcdc4920cf6438b7997158ccb0c9dadf344716ab411889ff0075175b9f5 -C ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/s390x

Step 6 (last one) - Check if the binaries extracted are the expected by arch

amd64 opm binary

file ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/amd64/usr/bin/registry/opm

Expected output:

ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, Go BuildID=kxOdAx20T5HcBUtdduyV/qAdo3HcfDXtaTjJhIhdn/8X4-hXPbmZ15EYWN6uDL/sZLLN5NuWzI9mGQSIaJq, BuildID[sha1]=6ee12eb52e48f11a806309de28e81eb8c1cfc168, with debug_info, not stripped, too many notes (256)

arm opm binary

file ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/arm/usr/bin/registry/opm

Expected output:

ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, Go BuildID=41zgkAQisAWE-avGa4oI/bUDMtu54rwT8gd32xlH4/OOcdM00qAjtN-NULw0br/VbQTAImPFdnlFza7ZVmI, BuildID[sha1]=b27120537963df82a3c34d289b579efa361be994, with debug_info, not stripped, too many notes (256)

ppc opm binary

file ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/ppc/usr/bin/registry/opm

Expected output:

ELF 64-bit LSB executable, 64-bit PowerPC or cisco 7500, OpenPOWER ELF V2 ABI, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, for GNU/Linux 3.10.0, Go BuildID=2-O24C6A1C1eRiu83jAS/SD6m9kqwrBj2rSXAK15y/V6izCl7y6kSnTJJuYXRa/wf94iW0ZT8xoxnrCPrt2, BuildID[sha1]=dcced02867e41751cdb70dbae059d601d5363bef, with debug_info, not stripped, too many notes (256)

s390x opm binary

file ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/s390x/usr/bin/registry/opm

Expected output:

ELF 64-bit MSB executable, IBM S/390, version 1 (SYSV), dynamically linked, interpreter /lib/ld64.so.1, for GNU/Linux 3.2.0, Go BuildID=tb3T1QXe9AJEuGbNKr76/ciod0YfjbaEW-YAa4_Ih/xCRX1qiRjqmPxscU2Waq/q4fP-mVTNdOHIV1CVaBp, BuildID[sha1]=aa4221ea49c3af50ceec1f9ba594ec4fc01ba751, with debug_info, not stripped, too many notes (256)

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Mar 12, 2024
@openshift-ci-robot
Copy link

openshift-ci-robot commented Mar 12, 2024

@aguidirh: This pull request references CLID-17 which is a valid jira issue.

In response to this:

Description

This PR contains changes required to allow the mirroring of multi-arch operator catalogs (manifest list / OCI image index). In order to mirror multi-arch operator catalog the flag --all was added. This flag can be used in mirrorToDisk and diskToMirror workflows.

The changes presented here take into account the case where the index.json contains a reference to a manifest list inside of blobs/sha256 folder and also when the index.json contains the platform information directly.

CLID-17

Type of change

Please delete options that are not relevant.

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

Mirroring multi-arch catalog (manifest list) scenario

Step 0 - Get the oci redhat-operator-index multi-arch with skopeo

skopeo copy --all docker://registry.redhat.io/redhat/redhat-operator-index:v4.15 oci:///home/aguidi/go/src/github.com/aguidirh/oc-mirror/alex-tests/redhat-operator-index --remove-signatures

Use this ImageSetConfiguration

kind: ImageSetConfiguration
apiVersion: mirror.openshift.io/v1alpha2
mirror:
 operators:
   - catalog: oci:///home/aguidi/go/src/github.com/aguidirh/oc-mirror/alex-tests/redhat-operator-index
     packages:
       - name: aws-load-balancer-operator

Step 1 - mirror to disk with --all flag

./bin/oc-mirror -c /home/aguidi/go/src/github.com/aguidirh/oc-mirror/alex-tests/alex-isc/clid-17.yaml file:///home/aguidi/go/src/github.com/aguidirh/oc-mirror/alex-tests/clid-17-multi-arch --v2 --all

Step 2 - disk to mirror with --all flag

./bin/oc-mirror -c /home/aguidi/go/src/github.com/aguidirh/oc-mirror/alex-tests/alex-isc/clid-17.yaml --from file:///home/aguidi/go/src/github.com/aguidirh/oc-mirror/alex-tests/clid-17-multi-arch docker://localhost:7000 --v2 --all

Step 3 - skopeo copy from your local registry to check the binaries

skopeo copy --all docker://localhost:7000/redhat-operator-index:ec835f0c9883554442c3306aebf5555766426b9cb7379388c16c4c457cfd89f8 oci:///ho
me/aguidi/go/src/github.com/aguidirh/oc-mirror/alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local --remove-signatures --src-tls-verify=false

Check the index.json which must be a reference to a manifest list inside of blobs/sha256 folder with for archs (amd64, arm, ppc, s390x)

Step 4 - create folder to store the binaries by arch

mkdir /home/aguidi/go/src/github.com/aguidirh/oc-mirror/alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/amd64
mkdir /home/aguidi/go/src/github.com/aguidirh/oc-mirror/alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/arm
mkdir /home/aguidi/go/src/github.com/aguidirh/oc-mirror/alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/ppc
mkdir /home/aguidi/go/src/github.com/aguidirh/oc-mirror/alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/s390x

Step 5 - untar all the blobs which contains the opm binary

untar opm for amd64

tar xvf ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/blobs/sha256/5a8a8d52ea677380025ae27b2d008f26430c7fa621da8c47f1d832d86127659e -C ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/amd64

untar opm for arm

tar xvf ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/blobs/sha256/3be23da3d332a73a6a8dacbfa1c363929853c9b5d5af9355fb17a0b0c28c6092 -C ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/arm

untar opm for ppc

tar xvf ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/blobs/sha256/62fb9b72c0134d464b47647f22fa8fcc34f1ee52de26ee03de5e3c2c79d5913a -C ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/ppc

untar opm for s390x

tar xvf ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/blobs/sha256/64a1efcdc4920cf6438b7997158ccb0c9dadf344716ab411889ff0075175b9f5 -C ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/s390x

Step 6 (last one) - Check if the binaries extracted are the expected by arch

amd64 opm binary

file ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/amd64/usr/bin/registry/opm

Expected output:

ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, Go BuildID=kxOdAx20T5HcBUtdduyV/qAdo3HcfDXtaTjJhIhdn/8X4-hXPbmZ15EYWN6uDL/sZLLN5NuWzI9mGQSIaJq, BuildID[sha1]=6ee12eb52e48f11a806309de28e81eb8c1cfc168, with debug_info, not stripped, too many notes (256)

arm opm binary

file ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/arm/usr/bin/registry/opm

Expected output:

ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, Go BuildID=41zgkAQisAWE-avGa4oI/bUDMtu54rwT8gd32xlH4/OOcdM00qAjtN-NULw0br/VbQTAImPFdnlFza7ZVmI, BuildID[sha1]=b27120537963df82a3c34d289b579efa361be994, with debug_info, not stripped, too many notes (256)

ppc opm binary

file ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/ppc/usr/bin/registry/opm

Expected output:

ELF 64-bit LSB executable, 64-bit PowerPC or cisco 7500, OpenPOWER ELF V2 ABI, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, for GNU/Linux 3.10.0, Go BuildID=2-O24C6A1C1eRiu83jAS/SD6m9kqwrBj2rSXAK15y/V6izCl7y6kSnTJJuYXRa/wf94iW0ZT8xoxnrCPrt2, BuildID[sha1]=dcced02867e41751cdb70dbae059d601d5363bef, with debug_info, not stripped, too many notes (256)

s390x opm binary

file ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/s390x/usr/bin/registry/opm

Expected output:

ELF 64-bit MSB executable, IBM S/390, version 1 (SYSV), dynamically linked, interpreter /lib/ld64.so.1, for GNU/Linux 3.2.0, Go BuildID=tb3T1QXe9AJEuGbNKr76/ciod0YfjbaEW-YAa4_Ih/xCRX1qiRjqmPxscU2Waq/q4fP-mVTNdOHIV1CVaBp, BuildID[sha1]=aa4221ea49c3af50ceec1f9ba594ec4fc01ba751, with debug_info, not stripped, too many notes (256)

Scenario mirroring single-arch catalog (single manifest)

To test the single-arch catalog repeat all the steps above without using the flag --all in mirrorToDisk and diskToMirror (the flag works in both workflows)

When the --all flag is not used the expected result is an index.json which must be a reference to an image manifest (single manifest) inside of blobs/sha256 folder. This image manifest will contains only one opm binary which is the one that matchs the arch from the computer where oc-mirror command was ran.

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 openshift-eng/jira-lifecycle-plugin repository.

Copy link

openshift-ci bot commented Mar 12, 2024

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: aguidirh

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 Mar 12, 2024
Copy link
Contributor

@sherine-k sherine-k left a comment

Choose a reason for hiding this comment

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

Hi Alex,

Thanks for your hard work.

As discussed, I am a bit concerned about the impact on digest preservation. Can we make sure the digests are preserved for all images even when the user does not explicitely use the --all flag?

The default behavior of oc-mirror v2 (no --all flag in the command line) will change from multi-arch to single-arch (compatible with current arch) with this PR.

So the scenario that hurts most for people switching from v1 to v2 is:

  • v2: I mirror using a MAC for a cluster that has AMD, without setting the --all flag. I'll end up with images that aren't usable for the cluster.
  • v1: I mirror using a MAC for a cluster that has AMD, the images mirrored work on the cluster because they are all multi arch by default

v2/pkg/operator/local_stored_collector.go Outdated Show resolved Hide resolved
v2/pkg/operator/local_stored_collector.go Show resolved Hide resolved
v2/pkg/operator/local_stored_collector.go Show resolved Hide resolved
v2/pkg/cli/executor.go Show resolved Hide resolved
@aguidirh aguidirh force-pushed the CLID-17 branch 3 times, most recently from 238e7eb to 6e091bd Compare March 14, 2024 10:36
Copy link

openshift-ci bot commented Mar 14, 2024

@aguidirh: all tests passed!

Full PR test history. Your PR dashboard.

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/test-infra repository. I understand the commands that are listed here.

@openshift-ci-robot
Copy link

openshift-ci-robot commented Mar 14, 2024

@aguidirh: This pull request references CLID-17 which is a valid jira issue.

In response to this:

Description

This PR contains changes required to allow the mirroring of multi-arch operator catalogs (manifest list / OCI image index).

The changes presented here take into account the case where the index.json contains a reference to a manifest list inside of blobs/sha256 folder and also when the index.json contains the platform information directly.

CLID-17

Type of change

Please delete options that are not relevant.

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

Mirroring multi-arch catalog (manifest list) scenario

Step 0 - Get the oci redhat-operator-index multi-arch with skopeo

skopeo copy --all docker://registry.redhat.io/redhat/redhat-operator-index:v4.15 oci:///home/aguidi/go/src/github.com/aguidirh/oc-mirror/alex-tests/redhat-operator-index --remove-signatures

Use this ImageSetConfiguration

kind: ImageSetConfiguration
apiVersion: mirror.openshift.io/v1alpha2
mirror:
 operators:
   - catalog: oci:///home/aguidi/go/src/github.com/aguidirh/oc-mirror/alex-tests/redhat-operator-index
     packages:
       - name: aws-load-balancer-operator

Step 1 - mirror to disk

./bin/oc-mirror -c /home/aguidi/go/src/github.com/aguidirh/oc-mirror/alex-tests/alex-isc/clid-17.yaml file:///home/aguidi/go/src/github.com/aguidirh/oc-mirror/alex-tests/clid-17-multi-arch --v2

Step 2 - disk to mirror

./bin/oc-mirror -c /home/aguidi/go/src/github.com/aguidirh/oc-mirror/alex-tests/alex-isc/clid-17.yaml --from file:///home/aguidi/go/src/github.com/aguidirh/oc-mirror/alex-tests/clid-17-multi-arch docker://localhost:7000 --v2

Step 3 - skopeo copy from your local registry to check the binaries

skopeo copy --all docker://localhost:7000/redhat-operator-index:ec835f0c9883554442c3306aebf5555766426b9cb7379388c16c4c457cfd89f8 oci:///ho
me/aguidi/go/src/github.com/aguidirh/oc-mirror/alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local --remove-signatures --src-tls-verify=false

Check the index.json which must be a reference to a manifest list inside of blobs/sha256 folder with for archs (amd64, arm, ppc, s390x)

Step 4 - create folder to store the binaries by arch

mkdir /home/aguidi/go/src/github.com/aguidirh/oc-mirror/alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/amd64
mkdir /home/aguidi/go/src/github.com/aguidirh/oc-mirror/alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/arm
mkdir /home/aguidi/go/src/github.com/aguidirh/oc-mirror/alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/ppc
mkdir /home/aguidi/go/src/github.com/aguidirh/oc-mirror/alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/s390x

Step 5 - untar all the blobs which contains the opm binary

untar opm for amd64

tar xvf ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/blobs/sha256/5a8a8d52ea677380025ae27b2d008f26430c7fa621da8c47f1d832d86127659e -C ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/amd64

untar opm for arm

tar xvf ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/blobs/sha256/3be23da3d332a73a6a8dacbfa1c363929853c9b5d5af9355fb17a0b0c28c6092 -C ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/arm

untar opm for ppc

tar xvf ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/blobs/sha256/62fb9b72c0134d464b47647f22fa8fcc34f1ee52de26ee03de5e3c2c79d5913a -C ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/ppc

untar opm for s390x

tar xvf ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/blobs/sha256/64a1efcdc4920cf6438b7997158ccb0c9dadf344716ab411889ff0075175b9f5 -C ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/s390x

Step 6 (last one) - Check if the binaries extracted are the expected by arch

amd64 opm binary

file ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/amd64/usr/bin/registry/opm

Expected output:

ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, Go BuildID=kxOdAx20T5HcBUtdduyV/qAdo3HcfDXtaTjJhIhdn/8X4-hXPbmZ15EYWN6uDL/sZLLN5NuWzI9mGQSIaJq, BuildID[sha1]=6ee12eb52e48f11a806309de28e81eb8c1cfc168, with debug_info, not stripped, too many notes (256)

arm opm binary

file ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/arm/usr/bin/registry/opm

Expected output:

ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, Go BuildID=41zgkAQisAWE-avGa4oI/bUDMtu54rwT8gd32xlH4/OOcdM00qAjtN-NULw0br/VbQTAImPFdnlFza7ZVmI, BuildID[sha1]=b27120537963df82a3c34d289b579efa361be994, with debug_info, not stripped, too many notes (256)

ppc opm binary

file ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/ppc/usr/bin/registry/opm

Expected output:

ELF 64-bit LSB executable, 64-bit PowerPC or cisco 7500, OpenPOWER ELF V2 ABI, version 1 (SYSV), dynamically linked, interpreter /lib64/ld64.so.2, for GNU/Linux 3.10.0, Go BuildID=2-O24C6A1C1eRiu83jAS/SD6m9kqwrBj2rSXAK15y/V6izCl7y6kSnTJJuYXRa/wf94iW0ZT8xoxnrCPrt2, BuildID[sha1]=dcced02867e41751cdb70dbae059d601d5363bef, with debug_info, not stripped, too many notes (256)

s390x opm binary

file ./alex-tests/alex-clid-17-tests/redhat-operator-index-multi-arch-from-local/s390x/usr/bin/registry/opm

Expected output:

ELF 64-bit MSB executable, IBM S/390, version 1 (SYSV), dynamically linked, interpreter /lib/ld64.so.1, for GNU/Linux 3.2.0, Go BuildID=tb3T1QXe9AJEuGbNKr76/ciod0YfjbaEW-YAa4_Ih/xCRX1qiRjqmPxscU2Waq/q4fP-mVTNdOHIV1CVaBp, BuildID[sha1]=aa4221ea49c3af50ceec1f9ba594ec4fc01ba751, with debug_info, not stripped, too many notes (256)

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 openshift-eng/jira-lifecycle-plugin repository.

Copy link
Contributor

@sherine-k sherine-k 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 Mar 15, 2024
@sherine-k
Copy link
Contributor

/hold

@openshift-ci openshift-ci bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Mar 15, 2024
@lmzuccarelli
Copy link
Contributor

@aguidirh - followed the steps described in your initial comment, only thing is I had to do is

curl http://localhost:5000/v2/redhat-operator-index/tags/list | jq

to get the correct tag (mine was 3fbd5128aae6920fdabe9d42f1658fe14d97d0dd78ef00dd48345147282bca5b)

I could then download the multi from the remote registry

skopeo copy --all docker://localhost:5000/redhat-operator-index:3fbd5128aae6920fdabe9d42f1658fe14d97d0dd78ef00dd48345147282bca5b oci:redhat-operator-index-multi-arch-from-local --remove-signatures --src-tls-verify=false
Copying 4 images generated from 4 images in list
Copying image sha256:6dbc1a76716e3d30b5cca67360e64c8bd6b06716fe5b8523d99223ac97ca5e65 (1/4)
Copying blob 766eb4e6e310 done   | 
Copying blob 5e693a990bff done   | 
Copying blob 93809c7db2a0 done   | 
Copying blob 493e68677a55 done   | 
Copying blob 18e1e93ede88 done   | 
Copying blob c59367ffec71 done   | 
Copying config 85835fed69 done   | 
Writing manifest to image destination
Copying image sha256:1435021a2a238ce3619368e3bca9709338bb774b3f29f68afa0d84ebd7054237 (2/4)
Copying blob 1b459e37b6c3 done   | 
Copying blob 47a424328612 done   | 
Copying blob d0ee8d512525 done   | 
Copying blob 56ff0ea27200 done   | 
Copying blob 9226655b70b2 done   | 
Copying blob b646db5fcf9c done   | 
Copying config dad67326c5 done   | 
Writing manifest to image destination
Copying image sha256:23de8d7cee8e08ab5bd76815e8e6119f4c8b3e7fec2b6106b29e056e3154a55f (3/4)
Copying blob 2bfd332a47db done   | 
Copying blob a6d175914233 done   | 
Copying blob 3cad1ada68dd done   | 
Copying blob b37809d3a336 done   | 
Copying blob 6d1746ee3aa0 done   | 
Copying blob 60cf7c5a1bae done   | 
Copying config 4e444add41 done   | 
Writing manifest to image destination
Copying image sha256:276f9227ebf8128a1514b242264d31d4d5591d3f59f71af6e58b9738fef93932 (4/4)
Copying blob 301c534b5faf done   | 
Copying blob d216d196b763 done   | 
Copying blob b4b932c16d8e done   | 
Copying blob af026e7c9096 done   | 
Copying blob 54af59ad79cd done   | 
Copying blob d4dd39f15aa3 done   | 
Copying config 115f91ae32 done   | 
Writing manifest to image destination
Writing manifest list to image

Then continued to verify the contents of each

@lmzuccarelli
Copy link
Contributor

@aguidirh - nice work !!!. I liked the clear steps to verify this PR

@lmzuccarelli
Copy link
Contributor

/unhold

@openshift-ci openshift-ci bot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Mar 15, 2024
@lmzuccarelli
Copy link
Contributor

/label acknowledge-critical-fixes-only

@aguidirh
Copy link
Contributor Author

/label acknowledge-critical-fixes-only

@openshift-ci openshift-ci bot added the acknowledge-critical-fixes-only Indicates if the issuer of the label is OK with the policy. label Mar 15, 2024
@openshift-merge-bot openshift-merge-bot bot merged commit 0a82d04 into openshift:main Mar 15, 2024
5 checks passed
@openshift-bot
Copy link
Contributor

[ART PR BUILD NOTIFIER]

This PR has been included in build oc-mirror-plugin-container-v4.16.0-202403180813.p0.g0a82d04.assembly.stream.el9 for distgit oc-mirror-plugin.
All builds following this will include this PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
acknowledge-critical-fixes-only Indicates if the issuer of the label is OK with the policy. approved Indicates a PR has been approved by an approver from all required OWNERS files. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants