See script https://github.com/redhat-developer/codeready-workspaces/blob/crw-2-rhel-8/product/getLatestIIBs.sh
# Get tab-separated values list of metadata containers, IIB bundles, and OCP versions ``` CRW_VERSION=2.12 for csv in operator-metadata operator-bundle; do lastcsv=$(curl -sSLk "https://datagrepper.engineering.redhat.com/raw?topic=/topic/VirtualTopic.eng.ci.redhat-container-image.index.built&delta=1728000&rows_per_page=30&contains=codeready-workspaces" | \ jq ".raw_messages[].msg.index | .added_bundle_images[0]" -r | sort -uV | grep "${csv}:${CRW_VERSION}" | tail -1 | \ sed -r -e "s#registry-proxy.engineering.redhat.com/rh-osbs/codeready-workspaces-##"); curl -sSLk "https://datagrepper.engineering.redhat.com/raw?topic=/topic/VirtualTopic.eng.ci.redhat-container-image.index.built&delta=1728000&rows_per_page=30&contains=codeready-workspaces" | \ jq ".raw_messages[].msg.index | [.added_bundle_images[0], .index_image, .ocp_version] | @tsv" -r | sort -uV | \ grep "${lastcsv}" | sed -r -e "s#registry-proxy.engineering.redhat.com/rh-osbs/codeready-workspaces-# #"; echo; done ``` ``` operator-metadata:2.12-113 registry-proxy.engineering.redhat.com/rh-osbs/iib:116041 v4.6 operator-metadata:2.12-113 registry-proxy.engineering.redhat.com/rh-osbs/iib:116042 v4.7 operator-metadata:2.12-113 registry-proxy.engineering.redhat.com/rh-osbs/iib:116043 v4.8 operator-metadata:2.12-113 registry-proxy.engineering.redhat.com/rh-osbs/iib:116044 v4.9 operator-bundle:2.12-46 registry-proxy.engineering.redhat.com/rh-osbs/iib:115858 v4.8 operator-bundle:2.12-46 registry-proxy.engineering.redhat.com/rh-osbs/iib:115859 v4.9 ``` ## Or this, for a specific OCP version: ``` curl -sSLk "https://datagrepper.engineering.redhat.com/raw?topic=/topic/VirtualTopic.eng.ci.redhat-container-image.index.built&delta=1728000&rows_per_page=30&contains=codeready-workspaces" | jq ".raw_messages[].msg.index | select(.ocp_version==\"v4.8\") | [.added_bundle_images[0], .index_image] | @tsv" -r | sort -uV | tail -2 ``` ``` registry-proxy.engineering.redhat.com/rh-osbs/codeready-workspaces-operator-metadata:2.10-6 registry-proxy.engineering.redhat.com/rh-osbs/iib:88814 registry-proxy.engineering.redhat.com/rh-osbs/codeready-workspaces-operator-metadata:2.10-7 registry-proxy.engineering.redhat.com/rh-osbs/iib:88834 ``` # Introspecting IIB bundles ## oc + sqlitebrowser oc image extract --file=/database/index.db --insecure registry-proxy.engineering.redhat.com/rh-osbs/iib:122676 sqlitebrowser index.db Then go to Browse Data tab, and sort by package_name to find CRW. ## podman + grpcul + jq podman run -p 50051:50051 registry-proxy.engineering.redhat.com/rh-osbs/iib:121356 & and then any grpcurl command. This will give you all the methods you can use: grpcurl -plaintext localhost:50051 list api.Registry Then you can call any method for example like this (this will get you list of packages in the bundle: grpcurl -plaintext localhost:50051 api.Registry/ListPackages or this (will get json of all metadata (array of all CRDs, SCV, ...): grpcurl -plaintext -d '{"pkgName":"codeready-workspaces", "channelName":"latest"}' \ localhost:50051 api.Registry/GetBundleForChannel | jq -cr "." | jq -r .object Putting it all together: # in one console podman run -it --rm -p 50051:50051 registry-proxy.engineering.redhat.com/rh-osbs/iib:122676 # in a second console echo;grpcurl -plaintext -d '{"pkgName":"codeready-workspaces", "channelName":"latest"}' \ localhost:50051 api.Registry/GetBundleForChannel | jq -r .csvJson | \ jq -r '[.metadata.annotations.createdAt, .metadata.annotations.description, .metadata.annotations.containerImage] | @tsv'; echo;grpcurl -plaintext -d '{"pkgName":"codeready-workspaces2", "channelName":"tech-preview-latest-all-namespaces"}' \ localhost:50051 api.Registry/GetBundleForChannel | jq -r .csvJson | \ jq -r '[.metadata.annotations.createdAt, .metadata.annotations.description, .metadata.annotations.containerImage] | @tsv'; ``` 2021-09-24T12:34:36+00:00 A Kube-native development solution that delivers portable and collaborative developer workspaces. registry.redhat.io/codeready-workspaces/crw-2-rhel8-operator@sha256:44112d0f3bb7792aabf96e255ef7822fd7f3f42bc63823bd112b8002317d54d1 2021-10-06T20:40:16+00:00 Technical Preview, OCP 4.8+: Devfile v2 development solution, 1 instance per cluster, for portable, collaborative k8s workspaces. registry.redhat.io/codeready-workspaces/crw-2-rhel8-operator@sha256:458802564043f3047e477045c9cf4e06ef6b9e41bd8de3a05f482250f326ea28 ```