5.3. オフラインデプロイ用の MicroShift コンテナーの埋め込み
Image Builder を使用して、MicroShift コンテナーイメージが埋め込まれた rpm-ostree
システムイメージを作成できます。コンテナーイメージを埋め込むには、Image Builder ブループリントにイメージ参照を追加する必要があります。
前提条件
- ビルドホストへの root ユーザーアクセス権がある。
- ビルドホストが Image Builder のシステム要件を満たしている。
-
Image Builder と
composer-cli
ツールをインストールしてセットアップしている。 - RHEL for Edge イメージのブループリントを作成済みである。
- jq がインストールされている。
手順
-
デプロイする MicroShift バージョンで使用されるコンテナーイメージ参照の正確なリストを取得します。手順 2 に従って
microshift-release-info
RPM パッケージをインストールするか、手順 3 に従って RPM をダウンロードして展開します。 microshift-release-info
RPM パッケージをインストールするには、以下を実行します。次のコマンドを実行して、
microshift-release-info
RPM パッケージをインストールします。$ sudo dnf install -y microshift-release-info-<release_version>
<release_version>
は、デプロイするリリースの暗号き換えます。完全なバージョン番号 (4.16.0
など) を使用してください。次のコマンドを実行して、
/usr/share/microshift/release
ディレクトリーの内容をリスト表示し、リリース情報ファイルの存在を確認します。$ ls /usr/share/microshift/release
出力例
release-x86_64.json release-aarch64.json
microshift-release-info
RPM をインストールした場合は、手順 4 に進むことができます。
手順 2 を完了していない場合は、
microshift-release-info
RPM をインストールせずにダウンロードして展開します。次のコマンドを実行して、RPM パッケージをダウンロードします。
$ sudo dnf download microshift-release-info-<release_version>
<release_version>
は、デプロイするリリースの暗号き換えます。完全なバージョン番号 (4.16.0
など) を使用してください。rpm の例
microshift-release-info-4.16.0.*.el9.noarch.rpm 1
- 1
*
は日付とコミット ID を表します。両方が出力に含まれているはずです (例:-202311101230.p0.g7dc6a00.assembly.4.16.0
)。
次のコマンドを実行して、RPM パッケージをインストールせずに展開します。
$ rpm2cpio <my_microshift_release_info> | cpio -idmv 1 ./usr/share/microshift/release/release-aarch64.json ./usr/share/microshift/release/release-x86_64.json
- 1
<my_microshift_release_info>
は、前の手順の RPM パッケージの名前に置き換えます。
次のコマンドを実行して、コンテナー参照情報が含まれる JSON ファイルの場所を定義します。
$ RELEASE_FILE=</path/to/your/release-$(uname -m).json>
</path/to/your/release-$(uname -m).json>
は、JSON ファイルへのフルパスに置き換えます。必ずアーキテクチャーに必要なファイルを使用してください。次のコマンドを実行して、イメージをビルドする手順が含まれる TOML ファイルの場所を定義します。
$ BLUEPRINT_FILE=</path/to/your/blueprint.toml>
</path/to/your/blueprint.toml>
は、JSON ファイルへのフルパスに置き換えます。次のコマンドを実行して、コンテナーイメージ参照を生成し、ブループリント TOML ファイルに埋め込みます。
$ jq -r '.images | .[] | ("[[containers]]\nsource = \"" + . + "\"\n")' "${RELEASE_FILE}" >> "${BLUEPRINT_FILE}"
コンテナー参照を示す生成された
<my_blueprint.toml>
フラグメントの例[[containers]] source = "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:82cfef91557f9a70cff5a90accba45841a37524e9b93f98a97b20f6b2b69e5db" [[containers]] source = "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:82cfef91557f9a70cff5a90accba45841a37524e9b93f98a97b20f6b2b69e5db"
次の例を使用して、コンテナーイメージを Image Builder ブループリントに追加することで、コンテナーイメージを手動で埋め込むことができます。
Image Builder にコンテナーイメージを手動で埋め込むためのセクションの例
[[containers]] source = "<my_image_pullspec_with_tag_or_digest>"
<my_image_pullspec_with_tag_or_digest>
は、デプロイする MicroShift バージョンで使用されるコンテナーイメージへの正確な参照に置き換えます。