Partilhar via


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.0e 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-be contoso-c. Em seguida, procura em myregistry.azurecr.io/test, onde descobre contoso-test.

Próximos passos