Mirroring IBM Storage Fusion images

Mirror the IBM Storage Fusion images to your enterprise registry.

About this task

If you do not have Docker, you can use Podman.

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_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')-; else export TARGET_PATH="$LOCAL_ISF_REGISTRY/$NAMESPACE"; export REPO_PREFIX=""; fi
    #verify both variables set correctly
    echo "$TARGET_PATH"
    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_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, sds-2.8.0/isf or sds-2.8.0 or sds-2.8.1/isf or sds-2.8.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 IBM Storage Fusion images to the host:
    Note:
    • Make sure that you are logged in to the source and destination repositories by using the docker login command.
    • If you mirror to a Quay registry, use a destination tag name (<image-name>:xxxxxx) rather than the digest name to prevent Red Hat Quay from deleting your downloaded images.
      skopeo copy --all docker://cp.icr.io/cp/isf-sds/<image-name>@sha256:xxxxx docker://$TARGET_PATH/<image-name>:xxxxx
      Example skopeo command:
      
      skopeo copy --all docker://cp.icr.io/cp/isf-sds/fusion-ui@sha256:705b20557b63315e6ddc403808aa57ee9cf0a621d531ddf2f3f196b63ca11acb docker://$TARGET_PATH/fusion-ui:705b20557b63315e6ddc403808aa57ee9cf0a621d531ddf2f3f196b63ca11acb
      For more information about Red Hat Quay garbage collection, see https://access.redhat.com/documentation/en-us/red_hat_quay/3.10/html/manage_red_hat_quay/garbage-collection
    For 2.8.2:
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/callhomeclient@sha256:93b61a148d4b87498f4db6a4ab1b75fc5d99be7a46f14cf5c1d077029030dc01 docker://$TARGET_PATH/callhomeclient@sha256:93b61a148d4b87498f4db6a4ab1b75fc5d99be7a46f14cf5c1d077029030dc01 
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/eventmanager@sha256:11028c570939512cb1c4ee66f5c086b07547acccfd07dbc2c8ee12a93006d43b docker://$TARGET_PATH/eventmanager@sha256:11028c570939512cb1c4ee66f5c086b07547acccfd07dbc2c8ee12a93006d43b 
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/eventmanager-snmp3@sha256:68a2e8c44fc79286cd106c6354b12a0884d846a57d57c743ffb978aacc8bf8d6 docker://$TARGET_PATH/eventmanager-snmp3@sha256:68a2e8c44fc79286cd106c6354b12a0884d846a57d57c743ffb978aacc8bf8d6 
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/fusion-ui@sha256:4d64e52fd9d2a400400eb18d578bfc7aa557f0be928239bca02a7c3c5ff37b0c docker://$TARGET_PATH/fusion-ui@sha256:4d64e52fd9d2a400400eb18d578bfc7aa557f0be928239bca02a7c3c5ff37b0c 
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/isf-application-operator@sha256:c1a7fc1b5a0f1c414a1c8f51d8e9bd3b288cf110066209a15138163809088efe docker://$TARGET_PATH/isf-application-operator@sha256:c1a7fc1b5a0f1c414a1c8f51d8e9bd3b288cf110066209a15138163809088efe 
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/isf-cns-operator@sha256:0f16b0f2ef6669ff620297bbe90c52641abcedb3bd13f75a469f8458cb82973f docker://$TARGET_PATH/isf-cns-operator@sha256:0f16b0f2ef6669ff620297bbe90c52641abcedb3bd13f75a469f8458cb82973f 
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/isf-data-protection-operator@sha256:00959e375f31987d848b2f6e116dc03b36d6021a01436ac71b270cea1d94e0a3 docker://$TARGET_PATH/isf-data-protection-operator@sha256:00959e375f31987d848b2f6e116dc03b36d6021a01436ac71b270cea1d94e0a3 
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/isf-hcp-manager@sha256:62edc709c48d30228a2fd078c93c7d388fce81e4891014a8c1b268b252cca8b3 docker://$TARGET_PATH/isf-hcp-manager@sha256:62edc709c48d30228a2fd078c93c7d388fce81e4891014a8c1b268b252cca8b3 
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/isf-management-consoleplugin@sha256:8b0329187fabcacf2d827c5339daa6052b64ab94d0201ebbcf8c231206d8df80 docker://$TARGET_PATH/isf-management-consoleplugin@sha256:8b0329187fabcacf2d827c5339daa6052b64ab94d0201ebbcf8c231206d8df80 
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/isf-prereq-operator@sha256:278de456a08470d6613abcfb75f35a5cee8ff6714971019d10719e86201e4818 docker://$TARGET_PATH/isf-prereq-operator@sha256:278de456a08470d6613abcfb75f35a5cee8ff6714971019d10719e86201e4818 
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/isf-proxy@sha256:9df1ad1325c2b7af8ba991a6d57d50905b57239ac08a99ea09f953c0c6df21c5 docker://$TARGET_PATH/isf-proxy@sha256:9df1ad1325c2b7af8ba991a6d57d50905b57239ac08a99ea09f953c0c6df21c5 
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/isf-serviceability-operator@sha256:76fbc7e720a14397a06ad8a78d7b0d7cc99f049c3f7359a40f86e5c445e3048c docker://$TARGET_PATH/isf-serviceability-operator@sha256:76fbc7e720a14397a06ad8a78d7b0d7cc99f049c3f7359a40f86e5c445e3048c 
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/isf-ui-operator@sha256:7411277bf578d085d3f05eb1ff15487c9a11c611eef1067f11834b245ba0fdb9 docker://$TARGET_PATH/isf-ui-operator@sha256:7411277bf578d085d3f05eb1ff15487c9a11c611eef1067f11834b245ba0fdb9 
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/isf-update-operator@sha256:e0ff8b242503ef3c01cd433ec251af0acca70f0c8f401d041e67ea0c93fc1b5a docker://$TARGET_PATH/isf-update-operator@sha256:e0ff8b242503ef3c01cd433ec251af0acca70f0c8f401d041e67ea0c93fc1b5a 
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/logcollector@sha256:8736704dc73c0ae02871cca518610c73815cc0be1b199e1f87f939a458dac149 docker://$TARGET_PATH/logcollector@sha256:8736704dc73c0ae02871cca518610c73815cc0be1b199e1f87f939a458dac149 
    skopeo copy --insecure-policy --preserve-digests --all docker://icr.io/cpopen/isf-operator-software-bundle@sha256:b586b3de52682aef8a7494950497ad4e98c1db45a2402437687593ab88c14240 docker://$TARGET_PATH/isf-operator-software-bundle@sha256:b586b3de52682aef8a7494950497ad4e98c1db45a2402437687593ab88c14240 
    skopeo copy --insecure-policy --preserve-digests --all docker://icr.io/cpopen/isf-operator-software-catalog:2.8.2 docker://$TARGET_PATH/isf-operator-software-catalog:2.8.2
    skopeo copy --insecure-policy --preserve-digests --all docker://registry.redhat.io/openshift4/ose-kube-rbac-proxy@sha256:767682dd3bd65651a8204c9fb732b9c48b99127189992b43abc6ecce027f4589 docker://$TARGET_PATH-openshift4-ose-kube-rbac-proxy@sha256:767682dd3bd65651a8204c9fb732b9c48b99127189992b43abc6ecce027f4589 
    For 2.8.1:
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/callhomeclient@sha256:7757b656997936aec8b7db1c68e08a51dc3c1e1becda59beb2651c1ef2011502 docker://$TARGET_PATH/callhomeclient@sha256:7757b656997936aec8b7db1c68e08a51dc3c1e1becda59beb2651c1ef2011502 
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/eventmanager@sha256:20f8126e92ed72c857162a0f3ce6aefd3ac62087095e9734d5c48998fa485162 docker://$TARGET_PATH/eventmanager@sha256:20f8126e92ed72c857162a0f3ce6aefd3ac62087095e9734d5c48998fa485162 
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/eventmanager-snmp3@sha256:8b7bb330cbdd4ee18dbad22d5d582129ec0a17c42c88a929394727c5c88257aa docker://$TARGET_PATH/eventmanager-snmp3@sha256:8b7bb330cbdd4ee18dbad22d5d582129ec0a17c42c88a929394727c5c88257aa 
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/fusion-ui@sha256:cdd58c5e59c52a31ee20dc9d824f5612b26c8b8ab43eb2d7eef24bf22b073439 docker://$TARGET_PATH/fusion-ui@sha256:cdd58c5e59c52a31ee20dc9d824f5612b26c8b8ab43eb2d7eef24bf22b073439 
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/isf-application-operator@sha256:a4b15911fd3da19c1263d22ea77bae9b98eb4df1b29a0b6f507a7e99e6c5e788 docker://$TARGET_PATH/isf-application-operator@sha256:a4b15911fd3da19c1263d22ea77bae9b98eb4df1b29a0b6f507a7e99e6c5e788 
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/isf-cns-operator@sha256:b8667fdcfd5f3f185acec07a083073aa68f5ee6961356c6b91aa85774df202db docker://$TARGET_PATH/isf-cns-operator@sha256:b8667fdcfd5f3f185acec07a083073aa68f5ee6961356c6b91aa85774df202db 
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/isf-data-protection-operator@sha256:cc3ab596fb538a86617884e60d61497e18b01ca25515a2020e7c1a2d4d7bb1af docker://$TARGET_PATH/isf-data-protection-operator@sha256:cc3ab596fb538a86617884e60d61497e18b01ca25515a2020e7c1a2d4d7bb1af 
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/isf-hcp-manager@sha256:9714f988a03340db95b2fd2c9dcaef3879f2da3228f87d57531de0b0c2bf5a13 docker://$TARGET_PATH/isf-hcp-manager@sha256:9714f988a03340db95b2fd2c9dcaef3879f2da3228f87d57531de0b0c2bf5a13 
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/isf-management-consoleplugin@sha256:29e77a2edba10a9b675d3c20c7e8de3c333c1384229c10f2de27000bcec73a58 docker://$TARGET_PATH/isf-management-consoleplugin@sha256:29e77a2edba10a9b675d3c20c7e8de3c333c1384229c10f2de27000bcec73a58 
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/isf-prereq-operator@sha256:bf31104497b4585d78c2e4e6872980389b2adab5e4524186e9fba801fdf0ca43 docker://$TARGET_PATH/isf-prereq-operator@sha256:bf31104497b4585d78c2e4e6872980389b2adab5e4524186e9fba801fdf0ca43 
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/isf-proxy@sha256:1ed7e407d308874f54d6bddd4b602fcf498c7012a44030f573a15a7fed46b80c docker://$TARGET_PATH/isf-proxy@sha256:1ed7e407d308874f54d6bddd4b602fcf498c7012a44030f573a15a7fed46b80c 
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/isf-serviceability-operator@sha256:fa1660bc58d8225a5ac319111e51c2401afaa6d7ffd69e0e8c7865ff8ddf677f docker://$TARGET_PATH/isf-serviceability-operator@sha256:fa1660bc58d8225a5ac319111e51c2401afaa6d7ffd69e0e8c7865ff8ddf677f 
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/isf-ui-operator@sha256:e4187d6a6fca8fe1c8624e0c0b375bea8a3ab3fb29074a50d6be37d84767c886 docker://$TARGET_PATH/isf-ui-operator@sha256:e4187d6a6fca8fe1c8624e0c0b375bea8a3ab3fb29074a50d6be37d84767c886 
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/isf-update-operator@sha256:3ed2fe1dd0ef2fb4503ebc456a1d32581ac38d8d651dcc66a98c560b793e6a37 docker://$TARGET_PATH/isf-update-operator@sha256:3ed2fe1dd0ef2fb4503ebc456a1d32581ac38d8d651dcc66a98c560b793e6a37 
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/logcollector@sha256:6341d40ad8c779ff06d9c2b5cafc1e968e96ba211587a80730021316b77a2225 docker://$TARGET_PATH/logcollector@sha256:6341d40ad8c779ff06d9c2b5cafc1e968e96ba211587a80730021316b77a2225 
    skopeo copy --insecure-policy --preserve-digests --all docker://icr.io/cpopen/isf-operator-software-bundle@sha256:b6398c650f77b59ec4d9c59b8b556e4e31ebed7a2618875635e485fe039e20b4 docker://$TARGET_PATH/isf-operator-software-bundle@sha256:b6398c650f77b59ec4d9c59b8b556e4e31ebed7a2618875635e485fe039e20b4 
    skopeo copy --insecure-policy --preserve-digests --all docker://icr.io/cpopen/isf-operator-software-catalog:2.8.1 docker://$TARGET_PATH/isf-operator-software-catalog:2.8.1
    skopeo copy --insecure-policy --preserve-digests --all docker://registry.redhat.io/openshift4/ose-kube-rbac-proxy@sha256:767682dd3bd65651a8204c9fb732b9c48b99127189992b43abc6ecce027f4589 docker://$TARGET_PATH-openshift4-ose-kube-rbac-proxy@sha256:767682dd3bd65651a8204c9fb732b9c48b99127189992b43abc6ecce027f4589 
    For 2.8.0:
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/callhomeclient@sha256:964e5d16b2a570d15a54effbb73f653298012fbe53a8532f83a228a3af68a8e7 docker://$TARGET_PATH/callhomeclient@sha256:964e5d16b2a570d15a54effbb73f653298012fbe53a8532f83a228a3af68a8e7
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/eventmanager@sha256:1586572bae1ffc44cd5bc7e68f3f37cd8d5c3e2c788b6d3d23f14c2e5854d448 docker://$TARGET_PATH/eventmanager@sha256:1586572bae1ffc44cd5bc7e68f3f37cd8d5c3e2c788b6d3d23f14c2e5854d448
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/eventmanager-snmp3@sha256:f379b7dffcee22ce51a34464455309dc803786d523cb6b8c40a2bddf73341f95 docker://$TARGET_PATH/eventmanager-snmp3@sha256:f379b7dffcee22ce51a34464455309dc803786d523cb6b8c40a2bddf73341f95
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/fusion-ui@sha256:705b20557b63315e6ddc403808aa57ee9cf0a621d531ddf2f3f196b63ca11acb docker://$TARGET_PATH/fusion-ui@sha256:705b20557b63315e6ddc403808aa57ee9cf0a621d531ddf2f3f196b63ca11acb
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/isf-application-operator@sha256:8b654f88051f81746d3cb0a350c38f30df5da3151a4b8846655ca4fdc6238788 docker://$TARGET_PATH/isf-application-operator@sha256:8b654f88051f81746d3cb0a350c38f30df5da3151a4b8846655ca4fdc6238788
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/isf-cns-operator@sha256:13217921c6c64607ad0cd3cbc14fd156af3ec5f439b96ec9f81670dcd574a53e docker://$TARGET_PATH/isf-cns-operator@sha256:13217921c6c64607ad0cd3cbc14fd156af3ec5f439b96ec9f81670dcd574a53e
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/isf-data-protection-operator@sha256:204a23a5836d1274481576b46681bd80ae06240ace2740036010f6448650fe11 docker://$TARGET_PATH/isf-data-protection-operator@sha256:204a23a5836d1274481576b46681bd80ae06240ace2740036010f6448650fe11
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/isf-management-consoleplugin@sha256:ddbab64895bea43b0fa1fc3cbb39d3ac2a12f23b041db70793696d3822bb3153 docker://$TARGET_PATH/isf-management-consoleplugin@sha256:ddbab64895bea43b0fa1fc3cbb39d3ac2a12f23b041db70793696d3822bb3153
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/isf-prereq-operator@sha256:05b169dcf76ad9a7b34eb85abf441c0836318cec14072a86a5f4a00e01803a86 docker://$TARGET_PATH/isf-prereq-operator@sha256:05b169dcf76ad9a7b34eb85abf441c0836318cec14072a86a5f4a00e01803a86
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/isf-proxy@sha256:e7ace0060bd473743e70cdfe1c469394600c2b6642bd9a23e8858d3bea53da35 docker://$TARGET_PATH/isf-proxy@sha256:e7ace0060bd473743e70cdfe1c469394600c2b6642bd9a23e8858d3bea53da35
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/isf-serviceability-operator@sha256:f8f4460b9de8f754ff1f58c027596e8dee0a621d008b1bb52746263be127863a docker://$TARGET_PATH/isf-serviceability-operator@sha256:f8f4460b9de8f754ff1f58c027596e8dee0a621d008b1bb52746263be127863a
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/isf-ui-operator@sha256:a40346c44a49e7990e75fab813f2ef209272043a57c7a6499d8ce0d805bc9cde docker://$TARGET_PATH/isf-ui-operator@sha256:a40346c44a49e7990e75fab813f2ef209272043a57c7a6499d8ce0d805bc9cde
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/isf-update-operator@sha256:9fc4fc0dc5545e9d2dd04f96b0760025909520a01c0549d229b7a5abccc493a8 docker://$TARGET_PATH/isf-update-operator@sha256:9fc4fc0dc5545e9d2dd04f96b0760025909520a01c0549d229b7a5abccc493a8
    skopeo copy --insecure-policy --preserve-digests --all docker://cp.icr.io/cp/isf-sds/logcollector@sha256:9238c5cfe576e0511849dbd3bf75f39f11fbc71310ee4db49d783717190243f2 docker://$TARGET_PATH/logcollector@sha256:9238c5cfe576e0511849dbd3bf75f39f11fbc71310ee4db49d783717190243f2
    skopeo copy --insecure-policy --preserve-digests --all docker://icr.io/cpopen/isf-operator-software-bundle@sha256:b79a0d3ee86abb12636b6cdc02486da3fef09584b7c953be7ee765bfaf516c21 docker://$TARGET_PATH/isf-operator-software-bundle@sha256:b79a0d3ee86abb12636b6cdc02486da3fef09584b7c953be7ee765bfaf516c21
    skopeo copy --insecure-policy --preserve-digests --all docker://icr.io/cpopen/isf-operator-software-catalog:2.8.0 docker://$TARGET_PATH/isf-operator-software-catalog:2.8.0
    skopeo copy --insecure-policy --preserve-digests --all docker://registry.redhat.io/openshift4/ose-kube-rbac-proxy@sha256:767682dd3bd65651a8204c9fb732b9c48b99127189992b43abc6ecce027f4589 docker://$TARGET_PATH/openshift4/ose-kube-rbac-proxy@sha256:767682dd3bd65651a8204c9fb732b9c48b99127189992b43abc6ecce027f4589
    
    Note: Ensure all the copy commands complete successfully without errors. For example, if you have the correct entitlement key but still observe the following error for any or all of the copy commands, then contact IBM support:
    denied: insufficient scope
  4. Add ImageContentSourcePolicy.
    Note:
    • The ImageContentSourcePolicy contains list of repositories, copy digests for the IBM Storage Fusion.
    • Replace the variable $TARGET_PATH with your registry details where images are mirrored.
    See the following ImageContentSourcePolicy:
    apiVersion: operator.openshift.io/v1alpha1
    kind: ImageContentSourcePolicy
    metadata:
      name: isf-fusion-icsp
    spec:
      repositoryDigestMirrors:
      - mirrors:
        - $TARGET_PATH
        source: cp.icr.io/cp/isf-sds
      - mirrors:
        - $TARGET_PATH
        source: icr.io/cpopen
      - mirrors:
        - $TARGET_PATH/openshift4
        source: registry.redhat.io/openshift4