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 以降)。
手順
- mirror.openshift.com または Google Cloud Storage (GCS) のいずれかからアップグレードするバージョンのイメージ署名を取得します。
-
oc
コマンドラインインターフェース (CLI) を使用して、アップグレードしているクラスターにログインします。 ミラーリングされたリリースイメージ署名 ConfigMap を接続されたクラスターに適用します。
$ oc apply -f <image_signature_file> 1
- 1
<image_signature_file>
について、ファイルのパスおよび名前を指定します (例:mirror/config/signature-sha256-81154f5c03294534.yaml
)。
5.4.2. イメージ署名 ConfigMap の手動での作成
イメージ署名 ConfigMap を作成し、更新するクラスターに適用します。
クラスターを更新するたびに以下の手順を実行する必要があります。
手順
- OpenShift Container Platform アップグレードパス についてのナレッジベースの記事を参照し、クラスターの有効なパスを判別します。
バージョンを
OCP_RELEASE_NUMBER
環境変数に追加します。$ OCP_RELEASE_NUMBER=<release_version> 1
- 1
<release_version>
について、クラスターを更新する OpenShift Container Platform のバージョンに対応するタグを指定します (例:4.4.0
)。
クラスターのシステムアーキテクチャーを
ARCHITECTURE
環境変数に追加します。$ ARCHITECTURE=<server_architecture> 1
server_architecture
について、サーバーのアーキテクチャー (例:x86_64
) を指定します。
Quay からリリースイメージダイジェストを取得します。
$ DIGEST="$(oc adm release info quay.io/openshift-release-dev/ocp-release:${OCP_RELEASE_NUMBER}-${ARCHITECTURE} | sed -n 's/Pull From: .*@//p')"
ダイジェストアルゴリズムを設定します。
$ DIGEST_ALGO="${DIGEST%%:*}"
ダイジェスト署名を設定します。
$ DIGEST_ENCODED="${DIGEST#*:}"
イメージ署名を 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)
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
ConfigMap をクラスターに適用し、更新します。
$ oc apply -f checksum-${OCP_RELEASE_NUMBER}.yaml