Azure Operator Service Manager (AOSM) CLI 拡張機能で、Helm チャート構成に基づいてソース ACR 内のコンテナー イメージを検出する方法について説明します
このドキュメントでは、Azure CLI AOSM 拡張機能で Helm チャート内のイメージを検出し、それらをコンテナー レジストリから取得して AOSM アーティファクト ストアにアップロードする方法について説明します。 Azure CLI AOSM 拡張機能は、Azure Container Registry (ACR) と、Docker API に対応した任意のコンテナー レジストリの両方をサポートします。
イメージの検出
Azure CLI AOSM 拡張機能のネットワーク機能定義バージョン (NFDV) 入力ファイルは、az aosm nfd generate-config --definition-type cnf
によって生成され、コンテナー イメージのオンボード時に AOSM CLI でクエリが実行されるソース レジストリ (および必要に応じて名前空間) を指定する 1 つのパラメーターを含みます。
// List of registries from which to pull the image(s).
// For example ["sourceacr.azurecr.io/test", "myacr2.azurecr.io", "ghcr.io/path"].
// For non Azure Container Registries, ensure you have run a docker login command before running build.
"image_sources": [],
"image_sources"
は文字列の配列です。 各文字列は、コンテナー レジストリ、および必要に応じて、そのレジストリ内の名前空間への参照です。
Az CLI AOSM 拡張機能:
helm template
で生成された Kubernetes 定義ファイルを解析して、コンテナー イメージ参照を検出します。- "image_sources" 配列に含まれるレジストリと名前空間で、コンテナー イメージ参照を検索します。
- ソース レジストリから AOSM アーティファクト ストアにイメージをコピーします。
重要
AOSM CLI では、ソース レジストリ内のイメージが、Helm チャートに記述された名前空間構造と一致している必要があります。 たとえば、Helm チャートに core/contoso-a:1.0.0
として含まれるイメージは、core/contoso-a:1.0.0
で終わるパスのソース レジストリで使用できる必要があります。 追加のプレフィックスは、az aosm nfd generate-config --definition-type cnf
コマンドによって生成される cnf-input.jsonc
ファイルの "image_sources"
パラメーターに含まれている必要があります。
作業例
この例では、架空のコンテナー化されたネットワーク機能 (CNF) について説明します。 この CNF は、コア CNF 機能を提供する 3 つのイメージと、CNF に対してテスト クエリを実行するためにデプロイできる 1 つのテスト イメージで構成されています。 イメージのソース レジストリは、myregistry
という ACR です。 この例では、4 つのイメージをすべてオンボードします。
NFDV 入力ファイルの "image_sources" フィールドは次のように設定されています。
// List of registries from which to pull the image(s).
// For example ["sourceacr.azurecr.io/test", "myacr2.azurecr.io", "ghcr.io/path"].
// For non Azure Container Registries, ensure you have run a docker login command before running build.
"image_sources": ["myregistry.azurecr.io"],
この CNF の Helm チャートに対する helm template
の出力には、Kubernetes デプロイ定義に 4 つのイメージの行が表示されます。
image: repository/release/contoso-a:1.0.0
image: repository/release/contoso-b:1.0.0
image: repository/release/contoso-c:1.0.0
image: repository/test-release/contoso-test:1.0.0
Azure CLI AOSM 拡張機能は、上記のイメージ行を取り込み、repository
を削除します (AOSM は、AOSM アーティファクト ストアをサポートする新しいレジストリでリポジトリを上書きします)。 次に、Azure CLI AOSM 拡張機能は、myregistry.azurecr.io/release/contoso-a:1.0.0
、myregistry.azurecr.io/release/contoso-b:1.0.0
、myregistry.azurecr.io/release/contoso-c:1.0.0
、myregistry.azurecr.io/test-release/contoso-test:1.0.0
でイメージを検索します。 イメージは、これらのパスにあるはずです。
名前空間の指定
Azure CLI AOSM 拡張機能では、ソース コンテナー レジストリでのイメージ名前空間の指定もサポートされています。 たとえば、contoso-test
イメージは、ソース レジストリの test/test-release/contoso-test:1.0.0
にアップロードできます。 この場合、追加のプレフィックスである test
が、NFDV 入力ファイルの "image_sources"
パラメーターで構成されている必要があります。
// List of registries from which to pull the image(s).
// For example ["sourceacr.azurecr.io/test", "myacr2.azurecr.io", "ghcr.io/path"].
// For non Azure Container Registries, ensure you have run a docker login command before running build.
"image_sources": ["myregistry.azurecr.io", "myregistry.azurecr.io/test"],
Azure AOSM CLI 拡張機能は myregistry.azurecr.io
でイメージを検索し、そこで contoso-a
、contoso-b
、contoso-c
が検出されます。 次に myregistry.azurecr.io/test
で検索し、そこで contoso-test
が検出されます。