Menu Close

5.4. イメージ ConfigMap の作成

クラスターを更新する前に、使用するリリースイメージの署名が含まれる ConfigMap を手動で作成する必要があります。この署名により、Cluster Version Operator (CVO) では、予想されるイメージと実際のイメージの署名を比較することでリリースイメージが変更されていないことを確認できます。

5.4.1. oc CLI の使用によるイメージ署名の検証用の ConfigMap の作成

クラスターを更新する前に、使用するリリースイメージの署名が含まれる ConfigMap を手動で作成する必要があります。この署名により、Cluster Version Operator (CVO) では、予想されるイメージと実際のイメージの署名を比較することでリリースイメージが変更されていないことを確認できます。

注記

バージョン 4.4.8 より前のリリースからアップグレードする場合は、この手順ではなく ConfigMap を作成するために手動の方法を使用する必要があります。この手順で使用するコマンドは、以前のバージョンの oc コマンドラインインターフェース (CLI) では提供されていません。

前提条件

  • oc として知られる OpenShift コマンドラインインターフェース (CLI) のインストール (バージョン 4.4.8 以降)。

手順

  1. mirror.openshift.com または Google Cloud Storage (GCS) のいずれかからアップグレードするバージョンのイメージ署名を取得します。
  2. oc コマンドラインインターフェース (CLI) を使用して、アップグレードしているクラスターにログインします。
  3. ミラーリングされたリリースイメージ署名 ConfigMap を接続されたクラスターに適用します。

    $ oc apply -f <image_signature_file> 1
    1
    <image_signature_file> について、ファイルのパスおよび名前を指定します (例: mirror/config/signature-sha256-81154f5c03294534.yaml)。

5.4.2. イメージ署名 ConfigMap の手動での作成

イメージ署名 ConfigMap を作成し、更新するクラスターに適用します。

注記

クラスターを更新するたびに以下の手順を実行する必要があります。

手順

  1. OpenShift Container Platform アップグレードパス についてのナレッジベースの記事を参照し、クラスターの有効なパスを判別します。
  2. バージョンを OCP_RELEASE_NUMBER 環境変数に追加します。

    $ OCP_RELEASE_NUMBER=<release_version> 1
    1
    <release_version> について、クラスターを更新する OpenShift Container Platform のバージョンに対応するタグを指定します (例: 4.4.0)。
  3. クラスターのシステムアーキテクチャーを ARCHITECTURE 環境変数に追加します。

    $ ARCHITECTURE=<server_architecture> 1
    server_architecture について、サーバーのアーキテクチャー (例: x86_64) を指定します。
  4. Quay からリリースイメージダイジェストを取得します。

    $ DIGEST="$(oc adm release info quay.io/openshift-release-dev/ocp-release:${OCP_RELEASE_NUMBER}-${ARCHITECTURE} | sed -n 's/Pull From: .*@//p')"
  5. ダイジェストアルゴリズムを設定します。

    $ DIGEST_ALGO="${DIGEST%%:*}"
  6. ダイジェスト署名を設定します。

    $ DIGEST_ENCODED="${DIGEST#*:}"
  7. イメージ署名を mirror.openshift.com Web サイトから取得します。

    $ SIGNATURE_BASE64=$(curl -s "https://mirror.openshift.com/pub/openshift-v4/signatures/openshift/release/${DIGEST_ALGO}=${DIGEST_ENCODED}/signature-1" | base64 -w0 && echo)
  8. ConfigMap を作成します。

    $ cat >checksum-${OCP_RELEASE_NUMBER}.yaml <<EOF
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: release-image-${OCP_RELEASE_NUMBER}
      namespace: openshift-config-managed
      labels:
        release.openshift.io/verification-signatures: ""
    binaryData:
      ${DIGEST_ALGO}-${DIGEST_ENCODED}: ${SIGNATURE_BASE64}
    EOF
  9. ConfigMap をクラスターに適用し、更新します。

    $ oc apply -f checksum-${OCP_RELEASE_NUMBER}.yaml