Saiba como a extensão da CLI do Azure Operator Service Manager (AOSM) descobre imagens de contêiner em ACRs de origem com base na configuração do gráfico de leme
Este documento explica como a extensão AOSM da CLI do Azure descobre imagens em gráficos de leme, extrai-as de um registro de contêiner e as carrega em um Repositório de Artefatos do AOSM. A extensão AOSM da CLI do Azure dá suporte ao Registro de Contêiner do Azure (ACR) e a qualquer registro de contêiner que ofereça suporte à API do Docker.
Descoberta de imagens
O arquivo de entrada NFDV (Network Function Definition Version) da extensão AOSM da CLI do Azure, gerado pelo az aosm nfd generate-config --definition-type cnf
, contém um parâmetro que especifica os registros de origem (e, opcionalmente, os namespaces) que a CLI do AOSM consulta durante a integração da imagem do contêiner.
// 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"
é uma matriz de cadeias de caracteres. Cada cadeia de caracteres é uma referência a um registro de contêiner e, opcionalmente, um namespace nesse registro.
A extensão Az CLI AOSM:
- Analisa os arquivos de definição do Kubernetes gerados para
helm template
descobrir as referências de imagem de contêiner. - Pesquisas nos registros e namespaces incluídos na matriz "image_sources" para as referências de imagem de contêiner.
- Copia as imagens dos registros de origem para o repositório de artefatos AOSM.
Importante
A CLI do AOSM requer que as imagens no registro de origem correspondam à estrutura de namespace escrita no gráfico de leme. Por exemplo, uma imagem incluída em um gráfico de leme deve core/contoso-a:1.0.0
estar disponível no registro de origem em um caminho que termina em core/contoso-a:1.0.0
. Qualquer prefixo "image_sources"
adicional deve ser incluído no parâmetro no cnf-input.jsonc
arquivo gerado pelo az aosm nfd generate-config --definition-type cnf
comando.
Exemplo trabalhado
Este exemplo descreve uma função de rede conteinerizada (CNF) fictícia. Este CNF é construído de três imagens que fornecem a função CNF principal e uma imagem de teste que pode ser implantada para executar consultas de teste em relação ao CNF. O registro de origem para as imagens é um ACR chamado myregistry
. Neste exemplo, integramos as quatro imagens.
O campo "image_sources" no arquivo de entrada NFDV é definido da seguinte forma:
// 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"],
A saída de contra os gráficos de leme para este CNF fornece quatro linhas de imagem na definição de helm template
implantação do Kubernetes.
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
A extensão AOSM da CLI do Azure recebe as linhas de imagem acima e remove o (o repository
AOSM substitui o repositório com o novo registro que dá suporte ao Repositório de Artefatos do AOSM). Em seguida, a extensão AOSM da CLI do Azure procura as imagens em 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
e myregistry.azurecr.io/test-release/contoso-test:1.0.0
. As imagens devem estar disponíveis nestes caminhos.
Nomespacing
A extensão AOSM da CLI do Azure também dá suporte a nomespacing de imagem em registros de contêiner de origem. Por exemplo, a contoso-test
imagem pode ser carregada test/test-release/contoso-test:1.0.0
no registro de origem. Nesse caso, o prefixo extra, test
, deve ser configurado no "image_sources"
parâmetro no arquivo de entrada NFDV.
// 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"],
A extensão da CLI do Azure AOSM procura as imagens em myregistry.azurecr.io
, onde descobre contoso-a
, contoso-b
e contoso-c
. Em seguida, procura em myregistry.azurecr.io/test
, onde descobre contoso-test
.