###### tags: `Container` # OLM offline ## Step --- ### fix insecure (if "Error: Source image rejected: A signature was required, but no signature exists"happened) ```shell= vim /etc/containers/policy.json ``` ::: change signature to insecure ```shell= { "default": [ { "type": "insecureAcceptAnything" } ], "transports": { "docker-daemon": { "": [{"type":"insecureAcceptAnything"}] }, "docker": { "registry.redhat.io/redhat/redhat-operator-index": [ { "type": "insecureAcceptAnything" } ], "registry.redhat.io/redhat/certified-operator-index": [ { "type": "signedBy", "keyType": "GPGKeys", "keyPath": "/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-isv" } ], "registry.redhat.io/redhat/community-operator-index": [ { "type": "insecureAcceptAnything" } ], "registry.redhat.io/redhat/redhat-marketplace-index": [ { "type": "signedBy", "keyType": "GPGKeys", "keyPath": "/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-isv" } ], "registry.redhat.io": [ { "type": "signedBy", "keyType": "GPGKeys", "keyPath": "/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release" } ] } } } ``` --- ### prune index ```shell= opm index prune -f registry.redhat.io/redhat/redhat-operator-index:v4.8 -p cluster-logging,elasticsearch-operator -t quay.bt.ocp4.lab/quayadmin/redhat-operator-index:v4.8 --skip-tls ``` --- ### opm tool secret (if secret error) ```shell= vim .docker/config.yaml ``` ```shell= { "auths": { "rh8hb.lab": { "auth": "YWRtaW46UEBzc3cwcmQ=" }, "quay.bt.ocp4.lab": { "auth": "cXVheWFkbWluOnBhc3N3b3Jk" }, "cloud.openshift.com": { "auth": "b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K29jbV9hY2Nlc3NfMTFlMmYxMmZkMzI2NDcxOGE2NWViZDlmMTZkZTczZWE6N1FTREdLOERMUFVRMDE5MjUzWVk2SDgxMUxUNkRXWFVDWDVVV1ZZTldQSERGNllKR0lVRFBYNTNOVDVZRlNTNg==", "email": "timwang@tw.ibm.com" }, "quay.io": { "auth": "b3BlbnNoaWZ0LXJlbGVhc2UtZGV2K29jbV9hY2Nlc3NfMTFlMmYxMmZkMzI2NDcxOGE2NWViZDlmMTZkZTczZWE6N1FTREdLOERMUFVRMDE5MjUzWVk2SDgxMUxUNkRXWFVDWDVVV1ZZTldQSERGNllKR0lVRFBYNTNOVDVZRlNTNg==", "email": "timwang@tw.ibm.com" }, "registry.connect.redhat.com": { "auth": "fHVoYy1wb29sLTI0OTdlNzAzLTlhZjQtNDNlNS1hMTg3LWRjZmQ3MmZjZjNkOTpleUpoYkdjaU9pSlNVelV4TWlKOS5leUp6ZFdJaU9pSmhOV015T0RSbFlUbGlaVFEwTURreVlqRTFNalUwT0dWak9EVXdZalUwTXlKOS5wZkViNG9YSjZ3ZXV0QURydnhUcDlKME1lWHR2UGFUVl9xdWIyQXBVRUhWVFc0WHBNY0tSUlRIQjVHZElTWnBPS1NtWjlWNWRWMVBDdFNSekVWbHlnQlotamtaWHZmWjJySW5JX1BVZEFEOW9Cc2xYZ0h3akJOSkRIVFE1N3lPOWhyblY1ZV9FVUlSTTJFZEJMMGloNVRrRF9fNTdQU2VlS01qRjVRcGtHUG4zYUNGcjVpWldFVDhVM3V5NjJURnlXMXZ0S2duSm1pbVVfbHRvOUZnVEdsTDNqOEUwQzEwU0wtSUtlQlhpaVFwZ3VORVlpX0x0TjVxZ0o5UFdmc3VseUU0R21ZeDBWQkNyTW92cE54V2cwVXZiUHZBcUNQNjFxaGhjWXU4dTlWSV9xaHd3U2hyLVB5d3Qxak1Mb0VHT3B5UlNIR3YyRUVrd3JVUWdOQUlCQUU3Vk9OXzgwcDhyUk1yN3BKbjNoYmxLd1BqMmppOHdldmZxR3phQWJEanNZdm5vNXNFbnNRdVNmSlFmeEhMZXpPTGdGSGdZSUtWWnJkenZ3NFBsdEdLWVkwWUg4bEh5UGZ1SkxBR3BjMmlfMWNyUm5vTTJ1bmRKMGRfLUt0WG0yeTVlSWYwTURHSHhlN0VZdjVrTVBWb283NlZMeTV2OHRRbHZfZGpPc25PaFNXLTdGTjl4T0dJVklaREYxVGRTWjNJbHdoQzRNUVVzcTFEM2hwUmhpaC1nNW44TjNzRFlZWXdHRmtjOHVzdWtRTWJraElTR0xUeHdQVU9KM216cDh0Ulg5QkxDZHNCTjhibk1BQTF1VTBnMTRzYjRDN1JIaE81UHFMLVc4TnppeWFkSVdfTWRoZFptN0o4bWpmb0hWNVB6bl93TjM4TE5LeWJwM2NRTjJzSQ==", "email": "timwang@tw.ibm.com" }, "registry.redhat.io": { "auth": "fHVoYy1wb29sLTI0OTdlNzAzLTlhZjQtNDNlNS1hMTg3LWRjZmQ3MmZjZjNkOTpleUpoYkdjaU9pSlNVelV4TWlKOS5leUp6ZFdJaU9pSmhOV015T0RSbFlUbGlaVFEwTURreVlqRTFNalUwT0dWak9EVXdZalUwTXlKOS5wZkViNG9YSjZ3ZXV0QURydnhUcDlKME1lWHR2UGFUVl9xdWIyQXBVRUhWVFc0WHBNY0tSUlRIQjVHZElTWnBPS1NtWjlWNWRWMVBDdFNSekVWbHlnQlotamtaWHZmWjJySW5JX1BVZEFEOW9Cc2xYZ0h3akJOSkRIVFE1N3lPOWhyblY1ZV9FVUlSTTJFZEJMMGloNVRrRF9fNTdQU2VlS01qRjVRcGtHUG4zYUNGcjVpWldFVDhVM3V5NjJURnlXMXZ0S2duSm1pbVVfbHRvOUZnVEdsTDNqOEUwQzEwU0wtSUtlQlhpaVFwZ3VORVlpX0x0TjVxZ0o5UFdmc3VseUU0R21ZeDBWQkNyTW92cE54V2cwVXZiUHZBcUNQNjFxaGhjWXU4dTlWSV9xaHd3U2hyLVB5d3Qxak1Mb0VHT3B5UlNIR3YyRUVrd3JVUWdOQUlCQUU3Vk9OXzgwcDhyUk1yN3BKbjNoYmxLd1BqMmppOHdldmZxR3phQWJEanNZdm5vNXNFbnNRdVNmSlFmeEhMZXpPTGdGSGdZSUtWWnJkenZ3NFBsdEdLWVkwWUg4bEh5UGZ1SkxBR3BjMmlfMWNyUm5vTTJ1bmRKMGRfLUt0WG0yeTVlSWYwTURHSHhlN0VZdjVrTVBWb283NlZMeTV2OHRRbHZfZGpPc25PaFNXLTdGTjl4T0dJVklaREYxVGRTWjNJbHdoQzRNUVVzcTFEM2hwUmhpaC1nNW44TjNzRFlZWXdHRmtjOHVzdWtRTWJraElTR0xUeHdQVU9KM216cDh0Ulg5QkxDZHNCTjhibk1BQTF1VTBnMTRzYjRDN1JIaE81UHFMLVc4TnppeWFkSVdfTWRoZFptN0o4bWpmb0hWNVB6bl93TjM4TE5LeWJwM2NRTjJzSQ==", "email": "timwang@tw.ibm.com" } } } ``` ### prune index ```shell= opm index prune -f registry.redhat.io/redhat/redhat-operator-index:v4.8 -p cluster-logging,elasticsearch-operator,jaeger-product,kiali-ossm,servicemeshoperator -t quay.bt.ocp4.lab/quayadmin/redhat-operator-index:v4.8 podman push quay.bt.ocp4.lab/quayadmin/redhat-operator-index:v4.8 ``` --- ### save index image ```shell= podman save -o redhat-operator-index-prune-48.tar quay.bt.ocp4.lab/quayadmin/redhat-operator-index:v4.8 ``` --- ### download operator image to file ```shell= mkdir ocp48operator cd ocp48operator oc adm catalog mirror quay.bt.ocp4.lab/quayadmin/redhat-operator-index:v4.8 file://local/index -a pull-secret.json --insecure --index-filter-by-os='linux/amd64' --max-components=2 cd .. tar czvf ocp48operator.tar.gz ocp48operator ``` --- ### restore index image to harbor ```shell= podman load -i redhat-operator-index-prune-48.tar podman tag quay.bt.ocp4.lab/quayadmin/redhat-operator-index:v4.8 rh8hb.lab/openshift/redhat-operator-index:v4.8 podman push rh8hb.lab/openshift/redhat-operator-index:v4.8 ``` --- ### (if podman load has uid issue) ```shell= vim /etc/containers/storage.conf ``` ```shell= ignore_chown_errors = "true" ``` --- ### upload image from file to offline harbor ```shell= tar zxvf ocp48operator.tar.gz cd ocp48operator oc adm catalog mirror file://local/index/quayadmin/redhat-operator-index:v4.8 rh8hb.lab/openshift --insecure ``` --- ### fix imagecatalogsourcepolicy ```shell= oc adm catalog mirror rh8hb.lab/openshift/redhat-operator-index:v4.8 rh8hb.lab/openshift --manifests-only --insecure ``` ---