15.2. 非接続環境での更新の準備

Red Hat OpenShift Container Storage 環境がインターネットに直接接続されていない場合には、デフォルトの Operator Hub およびイメージレジストリーの代替オプションとして Operator Lifecycle Manager(OLM) を提供するために追加の設定が必要になります。

概要については OpenShift Container Platform ドキュメントを参照してください: Updating an Operator catalog image

クラスターで非接続更新を設定するには、以下を実行します。

これらの手順が完了したら、通常通りに 更新を継続 します。

15.2.1. ミラーレジストリーの認証情報の追加

前提条件

  • 既存の非接続クラスターが OpenShift Container Platform 4.3 以降を使用していることを確認します。
  • oc client がバージョン 4.4 以降であることを確認します。
  • ミラーレジストリーでミラーホストを準備します。詳細は、ミラーホストの準備 について参照してください。

手順

  1. cluster-admin ロールを使用して OpenShift Container Platform クラスターにログインします。
  2. auth.json ファイルを見つけます。

    このファイルは、podman または docker を使用してレジストリーにログインする際に生成されます。これは、以下のいずれかの場所にあります。

    • ~/.docker/auth.json
    • /run/user/<UID>/containers/auth.json
    • /var/run/containers/<UID>/auth.json
  3. 一意の Red Hat レジストリー プルシークレット を取得して auth.json ファイルに貼り付けます。以下のようになります。

    {
        "auths": {
            "cloud.openshift.com": {
                "auth": "*****************",
                "email": "user@example.com"
            },
            "quay.io": {
                "auth": "*****************",
                "email": "user@example.com"
            },
            "registry.connect.redhat.com": {
                "auth": "*****************",
                "email": "user@example.com"
            },
            "registry.redhat.io": {
                "auth": "*****************",
                "email": "user@example.com"
            }
        }
      }
  4. 設定に対応する詳細と共に環境変数をエクスポートします。

    $ export AUTH_FILE="<location_of_auth.json>"
    $ export MIRROR_REGISTRY_DNS="<your_registry_url>:<port>"
  5. podman を使用してミラーレジストリーにログインし、認証情報を ${AUTH_FILE} に保存します。

    $ podman login ${MIRROR_REGISTRY_DNS} --tls-verify=false --authfile ${AUTH_FILE}

    これにより、ミラーレジストリーが auth.json ファイルに追加されます。

    {
        "auths": {
            "cloud.openshift.com": {
                "auth": "*****************",
                "email": "user@example.com"
            },
            "quay.io": {
                "auth": "*****************",
                "email": "user@example.com"
            },
            "registry.connect.redhat.com": {
                "auth": "*****************",
                "email": "user@example.com"
            },
            "registry.redhat.io": {
                "auth": "*****************",
                "email": "user@example.com"
            },
            "<mirror_registry>": {
                "auth": "*****************",
            }
        }
      }