Mirroring IBM Spectrum Protect Plus images

Mirror the IBM Spectrum Protect Plus images to your enterprise registry.

About this task

For more information about Air gap setup for network restricted Red Hat® OpenShift® Container Platform clusters, see Offline setup for network restricted Red Hat OpenShift Container Platform clusters.
Note: This procedure is only necessary if you plan to enable the Backup & Restore (Legacy) IBM Storage Fusion service.

Procedure

  1. Run the following command to login to Docker registry with your Red Hat enterprise credentials:
    docker login registry.redhat.io -u <Red Hat enterprise registry username> -p <Red Hat enterprise registry password>
    
    Log in to the IBM Entitled Container Registry using the IBM entitlement key:
    docker login cp.icr.io -u cp -p <your entitlement key>
    Note: Ensure that your entitlement key for IBM Storage Fusion contains the correct entitlement.
    Set the following environment variables:
    
    export LOCAL_SECRET_JSON='<relative path to pull-secret.json>'
    export LOCAL_ISF_REGISTRY="<Your enterprise registry host>:<port>"
    export LOCAL_ISF_REPOSITORY="<Your image path>"
    IFS='/' read -r NAMESPACE PREFIX <<< "$LOCAL_ISF_REPOSITORY"
    if [[ "$PREFIX" != "" ]]; then export TARGET_PATH="$LOCAL_ISF_REGISTRY/$NAMESPACE/$PREFIX"; export REPO_PREFIX=$(echo "$PREFIX"| sed -r 's/\//-/g')-; export NAMESPACE="$NAMESPACE"; else export TARGET_PATH="$LOCAL_ISF_REGISTRY/$NAMESPACE"; export REPO_PREFIX=""; fi
    #verify both variables set correctly
    echo "$TARGET_PATH"
    echo "$NAMESPACE"
    echo "$REPO_PREFIX" 
    Note: Port is a non-mandatory value when setting the LOCAL_ISF_REGISTRY variable. You can ignore this if your enterprise registry is accessible and has a secure connection.
    Sample value for without port:
    export LOCAL_ISF_REGISTRY="registryhost.com"
    See the following sample values:
    
    export LOCAL_SECRET_JSON='/home/mirror/pull-secret.json'
    export LOCAL_ISF_REGISTRY="registryhost.com:443"
    export LOCAL_ISF_REPOSITORY="fusion-mirror"

    LOCAL_ISF_REGISTRY is your entitlement registry.

    LOCAL_ISF_REPOSITORY is the image path in which you want to mirror the images. You can choose your own repository paths. For example, hci-2.6.1/isf or hci-2.6.1.

  2. Run the command to login to the Docker registry with your enterprise registry credentials.
    docker login $LOCAL_ISF_REGISTRY -u <your enterprise registry username> -p <your enterprise registry password>
    
  3. From the mirroring host, run the following copy command to copy images to be mirrored for IBM Spectrum Protect Plus agent:
    Note: Make sure you are logged into the source and destination repositories via docker login command.

    Ensure all commands are successful.

    
    skopeo copy --insecure-policy --all docker://cp.icr.io/cp/sppc/baas-datamover@sha256:99ad55dd7d2d63ea692d75d09fe9a01013cba9aac6999997653d111ded27dadb docker://$TARGET_PATH/sppc/baas-datamover@sha256:99ad55dd7d2d63ea692d75d09fe9a01013cba9aac6999997653d111ded27dadb
    skopeo copy --insecure-policy --all docker://cp.icr.io/cp/sppc/baas-minio@sha256:cbe25aaa6d9796a0b019c3f3473c159442d86f12234efb848683d2fe30984b93 docker://$TARGET_PATH/sppc/baas-minio@sha256:cbe25aaa6d9796a0b019c3f3473c159442d86f12234efb848683d2fe30984b93
    skopeo copy --insecure-policy --all docker://cp.icr.io/cp/sppc/baas-scheduler@sha256:ff85f931adf26dd047492a98f86179c62ec3012256d3664ccd183b693bf5fe0f docker://$TARGET_PATH/sppc/baas-scheduler@sha256:ff85f931adf26dd047492a98f86179c62ec3012256d3664ccd183b693bf5fe0f
    skopeo copy --insecure-policy --all docker://cp.icr.io/cp/sppc/baas-spp-agent@sha256:dfe00ea9f25c4cd7aa48d4ad3bb6daf19e34b1c60af973a69e0244f90973bc69 docker://$TARGET_PATH/sppc/baas-spp-agent@sha256:dfe00ea9f25c4cd7aa48d4ad3bb6daf19e34b1c60af973a69e0244f90973bc69
    skopeo copy --insecure-policy --all docker://cp.icr.io/cp/sppc/baas-transaction-manager-redis@sha256:1a2a52422d28af8cd2f260e99fb4bd30465e7b00243b6f75ac623d6f8e1deebc docker://$TARGET_PATH/sppc/baas-transaction-manager-redis@sha256:1a2a52422d28af8cd2f260e99fb4bd30465e7b00243b6f75ac623d6f8e1deebc
    skopeo copy --insecure-policy --all docker://cp.icr.io/cp/sppc/baas-transaction-manager-worker@sha256:250cf5ceee2d8e389c1d226b078790dd07cb123f5667e809c5fc8c7ba06eccbb docker://$TARGET_PATH/sppc/baas-transaction-manager-worker@sha256:250cf5ceee2d8e389c1d226b078790dd07cb123f5667e809c5fc8c7ba06eccbb
    skopeo copy --insecure-policy --all docker://cp.icr.io/cp/sppc/baas-transaction-manager@sha256:ab2cf25db3eb1b46e96aad3a216bee435bf72c03ca9042ba4b54b38932d41071 docker://$TARGET_PATH/sppc/baas-transaction-manager@sha256:ab2cf25db3eb1b46e96aad3a216bee435bf72c03ca9042ba4b54b38932d41071
    skopeo copy --insecure-policy --all docker://icr.io/cpopen/ibmsppc-operator-bundle-ocp@sha256:f3cb82f7bf647f8047213c7d047d16a8751e381c11002901e9ea3447bbe6c225 docker://$TARGET_PATH/ibmsppc-operator-bundle-ocp@sha256:f3cb82f7bf647f8047213c7d047d16a8751e381c11002901e9ea3447bbe6c225
    skopeo copy --insecure-policy --all docker://icr.io/cpopen/ibmsppc-operator@sha256:608f93542b954dc319eda22baa8861eafeb7e6dee48fdb4ed9d5e90235ccc3a2 docker://$TARGET_PATH/ibmsppc-operator@sha256:608f93542b954dc319eda22baa8861eafeb7e6dee48fdb4ed9d5e90235ccc3a2
    skopeo copy --insecure-policy --all docker://quay.io/strimzi/drain-cleaner@sha256:984595f016a92c762380b02ccc975e83f8a9ffdd8c6ca64cd5c2289cb4f61691 docker://$TARGET_PATH/strimzi/drain-cleaner@sha256:984595f016a92c762380b02ccc975e83f8a9ffdd8c6ca64cd5c2289cb4f61691
    skopeo copy --insecure-policy --all docker://quay.io/strimzi/jmxtrans@sha256:3a55a81790dc88b90d1bf858e2cfd7e591ad0e79f763c6d1667b2d3eb0d0c79d docker://$TARGET_PATH/strimzi/jmxtrans@sha256:3a55a81790dc88b90d1bf858e2cfd7e591ad0e79f763c6d1667b2d3eb0d0c79d
    skopeo copy --insecure-policy --all docker://quay.io/strimzi/kafka-bridge@sha256:c345c783d8fbbee4edeca2ebc47e7c454fcc2e26686820b8037de97369280ba0 docker://$TARGET_PATH/strimzi/kafka-bridge@sha256:c345c783d8fbbee4edeca2ebc47e7c454fcc2e26686820b8037de97369280ba0
    skopeo copy --insecure-policy --all docker://quay.io/strimzi/kafka@sha256:06e9bda15495feb2b92d9950e834cdeed6ef20064f021a879610f1b59dd46950 docker://$TARGET_PATH/strimzi/kafka@sha256:06e9bda15495feb2b92d9950e834cdeed6ef20064f021a879610f1b59dd46950
    skopeo copy --insecure-policy --all docker://quay.io/strimzi/kafka@sha256:7c04f65e216bb941458aeadffb85e9eeee43d5ca67da566017c2c93a0664c98e docker://$TARGET_PATH/strimzi/kafka@sha256:7c04f65e216bb941458aeadffb85e9eeee43d5ca67da566017c2c93a0664c98e
    skopeo copy --insecure-policy --all docker://quay.io/strimzi/operator@sha256:8b010c5fb8244b742a37f264feefc116d75bb2abd2d6895375cbeea250727b39 docker://$TARGET_PATH/strimzi/operator@sha256:8b010c5fb8244b742a37f264feefc116d75bb2abd2d6895375cbeea250727b39
    skopeo copy --insecure-policy --all docker://registry.access.redhat.com/ubi8/openjdk-11@sha256:d9739b266415be7c915daf3c61f8f1cc4e14d0b237a0ab664693bc2e0d3577e4 docker://$TARGET_PATH/ubi8/openjdk-11@sha256:d9739b266415be7c915daf3c61f8f1cc4e14d0b237a0ab664693bc2e0d3577e4
    skopeo copy --insecure-policy --all docker://registry.redhat.io/amq-streams/bridge-rhel8@sha256:f01c27ecb802e10d332939a4e1e5e95cd3bff8e98e7f1e7ca3a1ae8310f882f6 docker://$TARGET_PATH/sppc/bridge-rhel8@sha256:f01c27ecb802e10d332939a4e1e5e95cd3bff8e98e7f1e7ca3a1ae8310f882f6
    skopeo copy --insecure-policy --all docker://registry.redhat.io/amq-streams/kafka-33-rhel8@sha256:f7996a1c1de4f86cd962bc4b315d3abc1e8b48f754a276f74f4bfea9bf185ec3 docker://$TARGET_PATH/sppc/kafka-33-rhel8@sha256:f7996a1c1de4f86cd962bc4b315d3abc1e8b48f754a276f74f4bfea9bf185ec3
    skopeo copy --insecure-policy --all docker://registry.redhat.io/amq-streams/kafka-34-rhel8@sha256:308371218c18c558e2fc473d3b2bdf0daae6e895700f262178a915501c6820b2 docker://$TARGET_PATH/sppc/kafka-34-rhel8@sha256:308371218c18c558e2fc473d3b2bdf0daae6e895700f262178a915501c6820b2
    skopeo copy --insecure-policy --all docker://registry.redhat.io/amq-streams/strimzi-rhel8-operator@sha256:70d07d41a9d4c7fd937e5fb851feb4fba41ca71f976afb1dd4b1808ab05992ef docker://$TARGET_PATH/sppc/strimzi-rhel8-operator@sha256:70d07d41a9d4c7fd937e5fb851feb4fba41ca71f976afb1dd4b1808ab05992ef
    skopeo copy --insecure-policy --all docker://registry.redhat.io/amq7/amq-streams-bridge-rhel8@sha256:6ba9529ce2e03118f2ec31e56d812da12aa2ac05a06fecbd6336ef933beae8b7 docker://$TARGET_PATH/sppc/amq-streams-bridge-rhel8@sha256:6ba9529ce2e03118f2ec31e56d812da12aa2ac05a06fecbd6336ef933beae8b7
    skopeo copy --insecure-policy --all docker://registry.redhat.io/amq7/amq-streams-drain-cleaner-rhel8@sha256:00b9a0537c19ff5d77abb9b3fe41dd3594b31ea27717d12727d47d7d7456ea37 docker://$TARGET_PATH/sppc/amq-streams-drain-cleaner-rhel8@sha256:00b9a0537c19ff5d77abb9b3fe41dd3594b31ea27717d12727d47d7d7456ea37
    skopeo copy --insecure-policy --all docker://registry.redhat.io/amq7/amq-streams-kafka-31-rhel8@sha256:beee41b49ad466befd990f6148d44bcf42ce9e9e76a021aaae50363142101b2d docker://$TARGET_PATH/sppc/amq-streams-kafka-31-rhel8@sha256:beee41b49ad466befd990f6148d44bcf42ce9e9e76a021aaae50363142101b2d
    skopeo copy --insecure-policy --all docker://registry.redhat.io/amq7/amq-streams-kafka-32-rhel8@sha256:0152a85f2d0bc85881dacaee62c6e8b0b8b04f57a542b9b82dc93ad5303d6bf9 docker://$TARGET_PATH/sppc/amq-streams-kafka-32-rhel8@sha256:0152a85f2d0bc85881dacaee62c6e8b0b8b04f57a542b9b82dc93ad5303d6bf9
    skopeo copy --insecure-policy --all docker://registry.redhat.io/amq7/amq-streams-operator-bundle@sha256:80f561cd4f74bd25b7624e5afcaee799f0d3b4a72b8151b59222a329defcd23a docker://$TARGET_PATH/sppc/amq-streams-operator-bundle@sha256:80f561cd4f74bd25b7624e5afcaee799f0d3b4a72b8151b59222a329defcd23a
    skopeo copy --insecure-policy --all docker://registry.redhat.io/amq7/amq-streams-rhel8-operator@sha256:3a73d259c459284af40854ad7adc6bfb3d74065183a2ef32b30e54f645ae9d70 docker://$TARGET_PATH/sppc/amq-streams-rhel8-operator@sha256:3a73d259c459284af40854ad7adc6bfb3d74065183a2ef32b30e54f645ae9d70
    skopeo copy --insecure-policy --all docker://registry.redhat.io/oadp/oadp-kubevirt-velero-plugin-rhel8@sha256:7f00152aa25efdaf8e24bda16c4fc4086abe030efdc50fb7923020386f8b52b2 docker://$TARGET_PATH/sppc/oadp-kubevirt-velero-plugin-rhel8@sha256:7f00152aa25efdaf8e24bda16c4fc4086abe030efdc50fb7923020386f8b52b2
    skopeo copy --insecure-policy --all docker://registry.redhat.io/oadp/oadp-operator-bundle@sha256:2c52f43d86e90c3d78d8f3c2e937a3fb861990c0e4f06ada96c0a0c0115ecb32 docker://$TARGET_PATH/sppc/oadp-operator-bundle@sha256:2c52f43d86e90c3d78d8f3c2e937a3fb861990c0e4f06ada96c0a0c0115ecb32
    skopeo copy --insecure-policy --all docker://registry.redhat.io/oadp/oadp-rhel8-operator@sha256:f812d7cf3f7d5d1b42a795c0cd59314779dbb005d556dffe11de624e3c9872c1 docker://$TARGET_PATH/sppc/oadp-rhel8-operator@sha256:f812d7cf3f7d5d1b42a795c0cd59314779dbb005d556dffe11de624e3c9872c1
    skopeo copy --insecure-policy --all docker://registry.redhat.io/oadp/oadp-velero-plugin-for-aws-rhel8@sha256:c391b383a86a6a0cf2a4acd83172ba71c9370dbc4301c9e975c83996f25e55ca docker://$TARGET_PATH/sppc/oadp-velero-plugin-for-aws-rhel8@sha256:c391b383a86a6a0cf2a4acd83172ba71c9370dbc4301c9e975c83996f25e55ca
    skopeo copy --insecure-policy --all docker://registry.redhat.io/oadp/oadp-velero-plugin-for-csi-rhel8@sha256:1e6e8ac2ec19e236e559d220242938f227284d39f671b010c3cc92dd2d074373 docker://$TARGET_PATH/sppc/oadp-velero-plugin-for-csi-rhel8@sha256:1e6e8ac2ec19e236e559d220242938f227284d39f671b010c3cc92dd2d074373
    skopeo copy --insecure-policy --all docker://registry.redhat.io/oadp/oadp-velero-plugin-for-gcp-rhel8@sha256:8b2e260e1812e465c0c0cb518f70c189b20c0bc35c20a199fdbf7a451f5a0396 docker://$TARGET_PATH/sppc/oadp-velero-plugin-for-gcp-rhel8@sha256:8b2e260e1812e465c0c0cb518f70c189b20c0bc35c20a199fdbf7a451f5a0396
    skopeo copy --insecure-policy --all docker://registry.redhat.io/oadp/oadp-velero-plugin-for-microsoft-azure-rhel8@sha256:c0716317637c1488c5d21f8635fc7692e2257a60790e87b1aedb514b5d6300a5 docker://$TARGET_PATH/sppc/oadp-velero-plugin-for-microsoft-azure-rhel8@sha256:c0716317637c1488c5d21f8635fc7692e2257a60790e87b1aedb514b5d6300a5
    skopeo copy --insecure-policy --all docker://registry.redhat.io/oadp/oadp-velero-plugin-rhel8@sha256:8f599f2b819819c109ec064e77163b2cf6ebeedb763c2eea5da4b8ef1d742337 docker://$TARGET_PATH/sppc/oadp-velero-plugin-rhel8@sha256:8f599f2b819819c109ec064e77163b2cf6ebeedb763c2eea5da4b8ef1d742337
    skopeo copy --insecure-policy --all docker://registry.redhat.io/oadp/oadp-velero-restic-restore-helper-rhel8@sha256:628b4d91e16e9408d892fa0b7e6c6841fe92edfe06dfe5d59f780175d75b2fdc docker://$TARGET_PATH/sppc/oadp-velero-restic-restore-helper-rhel8@sha256:628b4d91e16e9408d892fa0b7e6c6841fe92edfe06dfe5d59f780175d75b2fdc
    skopeo copy --insecure-policy --all docker://registry.redhat.io/oadp/oadp-velero-rhel8@sha256:2c1c645410a77569705e5521f8abb652b2b46bcb6ee06b9650bde78fcf3e3061 docker://$TARGET_PATH/sppc/oadp-velero-rhel8@sha256:2c1c645410a77569705e5521f8abb652b2b46bcb6ee06b9650bde78fcf3e3061
    skopeo copy --insecure-policy --all docker://registry.redhat.io/oadp/oadp-volume-snapshot-mover-rhel8@sha256:088ca4640971d00c16c2fc414d75b603e592d6b51e71329d0bbdd2dfdfead74e docker://$TARGET_PATH/sppc/oadp-volume-snapshot-mover-rhel8@sha256:088ca4640971d00c16c2fc414d75b603e592d6b51e71329d0bbdd2dfdfead74e
    skopeo copy --insecure-policy --all docker://registry.redhat.io/openshift4/ose-kube-rbac-proxy@sha256:00c135c071609aad8f569416406d6510101b56740b0a326c1aff708622b4bde3 docker://$TARGET_PATH/openshift4/ose-kube-rbac-proxy@sha256:00c135c071609aad8f569416406d6510101b56740b0a326c1aff708622b4bde3
    skopeo copy --insecure-policy --all docker://registry.redhat.io/openshift4/ose-kube-rbac-proxy@sha256:8f527862ae195edfcc613496a686278d998b877a776f72ff58f3ea7a504534b5 docker://$TARGET_PATH/openshift4/ose-kube-rbac-proxy@sha256:8f527862ae195edfcc613496a686278d998b877a776f72ff58f3ea7a504534b5
    skopeo copy --insecure-policy --all docker://cp.icr.io/cp/sppserver/spp-awsebs@sha256:f8fc2a61b65053dfdd872dce67eed5030ada218d4edf6cad4857ff13f535e9d5 docker://$TARGET_PATH/sppserver/spp-awsebs@sha256:f8fc2a61b65053dfdd872dce67eed5030ada218d4edf6cad4857ff13f535e9d5
    skopeo copy --insecure-policy --all docker://cp.icr.io/cp/sppserver/spp-awsec2@sha256:4a8bd2623ced4e1ed7cf6b716f05a7c2f7a3b546b1c3c6a73aa58202393a89f2 docker://$TARGET_PATH/sppserver/spp-awsec2@sha256:4a8bd2623ced4e1ed7cf6b716f05a7c2f7a3b546b1c3c6a73aa58202393a89f2
    skopeo copy --insecure-policy --all docker://cp.icr.io/cp/sppserver/spp-kc@sha256:6122933c04a611c1bc074e94dbab4c7548e449582d85d80e7fc1f6a60641671d docker://$TARGET_PATH/sppserver/spp-kc@sha256:6122933c04a611c1bc074e94dbab4c7548e449582d85d80e7fc1f6a60641671d
    skopeo copy --insecure-policy --all docker://cp.icr.io/cp/sppserver/spp-manager@sha256:79fb5f35a92efc5588658900c5bddbee03d2ac6b8945db7f99ce4985f1b15085 docker://$TARGET_PATH/sppserver/spp-manager@sha256:79fb5f35a92efc5588658900c5bddbee03d2ac6b8945db7f99ce4985f1b15085
    skopeo copy --insecure-policy --all docker://cp.icr.io/cp/sppserver/spp-node@sha256:9f99422620aa00179e9642048c2a0a25dffbede7cbd3407d817a1efa57157a0e docker://$TARGET_PATH/sppserver/spp-node@sha256:9f99422620aa00179e9642048c2a0a25dffbede7cbd3407d817a1efa57157a0e
    skopeo copy --insecure-policy --all docker://cp.icr.io/cp/sppserver/spp-uinginx@sha256:5773d21946c36a21c9c5bac6e51be6c71ca6ca9fb7c1cbb52422e739cf394df7 docker://$TARGET_PATH/sppserver/spp-uinginx@sha256:5773d21946c36a21c9c5bac6e51be6c71ca6ca9fb7c1cbb52422e739cf394df7
    skopeo copy --insecure-policy --all docker://cp.icr.io/cp/sppserver/spp-vadp@sha256:aa0a0b4d8fa87217b8c41e002364dd98ee441216603c2b947346cb1253960751 docker://$TARGET_PATH/sppserver/spp-vadp@sha256:aa0a0b4d8fa87217b8c41e002364dd98ee441216603c2b947346cb1253960751
    skopeo copy --insecure-policy --all docker://cp.icr.io/cp/sppserver/spp@sha256:6d7c12c8559f4e9c8c56040d2dea0f30494805a5444d60936b3fca8107626b17 docker://$TARGET_PATH/sppserver/spp@sha256:6d7c12c8559f4e9c8c56040d2dea0f30494805a5444d60936b3fca8107626b17
    skopeo copy --insecure-policy --all docker://icr.io/cpopen/spp-operator@sha256:6575893edd65e90e8ce8a68794d05d73f7d40a7b21b973f5e8a800044e80549c docker://$TARGET_PATH/spp-operator@sha256:6575893edd65e90e8ce8a68794d05d73f7d40a7b21b973f5e8a800044e80549c
    skopeo copy --insecure-policy --all docker://registry.access.redhat.com/rhscl/mongodb-36-rhel7:latest docker://$TARGET_PATH/sppserver/mongodb-36-rhel7:latest
    skopeo copy --insecure-policy --all docker://registry.access.redhat.com/rhscl/mongodb-36-rhel7@sha256:ffc67a5d76944cbb073862a61b9928400bb948ca0cb220d6718116b9f5637c24 docker://$TARGET_PATH/sppserver/mongodb-36-rhel7@sha256:ffc67a5d76944cbb073862a61b9928400bb948ca0cb220d6718116b9f5637c24
    skopeo copy --insecure-policy --all docker://registry.redhat.io/rhel8/postgresql-13:latest docker://$TARGET_PATH/sppserver/postgresql-13:latest
    skopeo copy --insecure-policy --all docker://registry.redhat.io/rhel8/postgresql-13@sha256:3960568b197d8a19b6531bffb6cf56578527b9a4f5e32e5db91e4e962f09d3c6 docker://$TARGET_PATH/sppserver/postgresql-13@sha256:3960568b197d8a19b6531bffb6cf56578527b9a4f5e32e5db91e4e962f09d3c6
    skopeo copy --insecure-policy --all docker://registry.redhat.io/rhel8/postgresql-96:latest docker://$TARGET_PATH/sppserver/postgresql-96:latest
    skopeo copy --insecure-policy --all docker://registry.redhat.io/rhel8/postgresql-96@sha256:314747a4a64ac16c33ead6a34479dccf16b9a07abf440ea7eeef7cda4cd19e32 docker://$TARGET_PATH/sppserver/postgresql-96@sha256:314747a4a64ac16c33ead6a34479dccf16b9a07abf440ea7eeef7cda4cd19e32
    skopeo copy --insecure-policy --all docker://registry.redhat.io/rhscl/nginx-116-rhel7:latest docker://$TARGET_PATH/sppserver/nginx-116-rhel7:latest
    skopeo copy --insecure-policy --all docker://registry.redhat.io/rhscl/nginx-116-rhel7@sha256:73044ed47df248eba71c3af06e5af23add6d2ee7140000208aa32d42ef31b8bf docker://$TARGET_PATH/sppserver/nginx-116-rhel7@sha256:73044ed47df248eba71c3af06e5af23add6d2ee7140000208aa32d42ef31b8bf
    skopeo copy --insecure-policy --all docker://registry.redhat.io/rhscl/redis-5-rhel7:latest docker://$TARGET_PATH/sppserver/redis-5-rhel7:latest
    skopeo copy --insecure-policy --all docker://registry.redhat.io/rhscl/redis-5-rhel7@sha256:91781cf512d695339f5a92da8bfae40b42a5585d3b5627d30e6fea08afc932a4 docker://$TARGET_PATH/sppserver/redis-5-rhel7@sha256:91781cf512d695339f5a92da8bfae40b42a5585d3b5627d30e6fea08afc932a4
    skopeo copy --insecure-policy --all docker://icr.io/cpopen/ibmsppc-operator-catalog-ocp:10.112.6-20230712a docker://$TARGET_PATH/ibmsppc-operator-catalog-ocp:10.112.6-20230712a
    skopeo copy --insecure-policy --all docker://icr.io/cpopen/ibmsppc-operator-catalog-ocp@sha256:1ace4d4aa9a03f1f2094accb012ad9dabc96179e20da6cfa642b94cebd5dc6d0 docker://$TARGET_PATH/ibmsppc-operator-catalog-ocp@sha256:1ace4d4aa9a03f1f2094accb012ad9dabc96179e20da6cfa642b94cebd5dc6d0
    skopeo copy --insecure-policy --all docker://registry.redhat.io/openshift4/ose-kube-rbac-proxy@sha256:00c135c071609aad8f569416406d6510101b56740b0a326c1aff708622b4bde3 docker://$LOCAL_ISF_REGISTRY/$NAMESPACE/$(echo $REPO_PREFIX)openshift4-ose-kube-rbac-proxy@sha256:00c135c071609aad8f569416406d6510101b56740b0a326c1aff708622b4bde3
    skopeo copy --insecure-policy --all docker://registry.redhat.io/openshift4/ose-kube-rbac-proxy@sha256:8f527862ae195edfcc613496a686278d998b877a776f72ff58f3ea7a504534b5 docker://$LOCAL_ISF_REGISTRY/$NAMESPACE/$(echo $REPO_PREFIX)openshift4-ose-kube-rbac-proxy@sha256:8f527862ae195edfcc613496a686278d998b877a776f72ff58f3ea7a504534b5
    
  4. Add ImageContentSourcePolicy after skopeo commands are executed successfully on the cluster.
    See the following ImageContentSourcePolicy for 2.6.1:
    apiVersion: operator.openshift.io/v1alpha1
    kind: ImageContentSourcePolicy
    metadata:
      labels:
        operators.openshift.org/catalog: "true"
      name: spp-offline-mirrors
    spec:
      repositoryDigestMirrors:
      - mirrors:
        - $TARGET_PATH/sppc/amq-streams-operator-bundle
        source: registry.redhat.io/amq7/amq-streams-operator-bundle
      - mirrors:
        - $TARGET_PATH/sppc/oadp-operator-bundle
        source: registry.redhat.io/oadp/oadp-operator-bundle