8.5. イメージ署名設定マップの作成
クラスターを更新する前に、使用するリリースイメージの署名が含まれる設定マップを手動で作成する必要があります。この署名により、Cluster Version Operator (CVO) では、予想されるイメージと実際のイメージの署名を比較することでリリースイメージが変更されていないことを確認できます。
バージョン 4.4.8 以降からアップグレードする場合は、oc
CLI を使用して設定マップを作成できます。以前のバージョンからアップグレードする場合は、手動の方法を使用する必要があります。
8.5.1. イメージ署名設定マップの手動での作成
イメージ署名設定マップを作成し、更新するクラスターに適用します。
クラスターを更新するたびに以下の手順を実行する必要があります。
手順
- 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
- 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)
設定マップを作成します。
$ 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
設定マップをクラスターに適用し、更新します。
$ oc apply -f checksum-${OCP_RELEASE_NUMBER}.yaml