Saiba como a extensão da CLI do Gerenciador de Serviço do Operador do Azure (AOSM) descobre imagens de contêiner nos ACRs de origem com base na configuração do gráfico do Helm

Esse documento explica como a extensão de AOSM da CLI do Azure descobre imagens em gráficos do Helm, as extrai de um registro de contêiner e as carrega em um Repositório de Artefatos do AOSM. A extensão de AOSM da CLI do Azure é compatível com o Registro de Contêiner do Azure (ACR) e com qualquer registro de contêiner que seja compatível com a API do Docker.

Descoberta de Imagem

O arquivo de entrada da Versão de Definição da Função de Rede (NFDV) da extensão de AOSM da CLI do Azure, gerado por 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 de 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, a um namespace nesse registro.

A extensão AOSM da CLI do Az:

  • Analisa os arquivos de definição do Kubernetes gerados pelo helm template para descobrir as referências de imagem de contêiner.
  • Pesquisa 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 do AOSM.

Importante

A CLI do AOSM requer que as imagens no seu registro de origem correspondam à estrutura do namespace escrita no seu gráfico do Helm. Por exemplo, uma imagem incluída em um gráfico do Helm como core/contoso-a:1.0.0 precisa estar disponível no registro de origem em um caminho que termine em core/contoso-a:1.0.0. Qualquer prefixo adicional precisa ser incluído no parâmetro "image_sources" no arquivo cnf-input.jsonc gerado pelo comando az aosm nfd generate-config --definition-type cnf.

Exemplo trabalhado

Esse exemplo descreve uma Função de Rede Conteinerizada (CNF) fictícia. Essa CNF é criada com três imagens que fornecem a função básica da CNF e uma imagem de teste que pode ser implantada para executar consultas de teste da CNF. O registro de origem das imagens é um ACR chamado myregistry. Nesse exemplo, integramos todas as quatro imagens.

O campo "image_sources" no arquivo de entrada da NFDV é definido da seguinte maneira:

  // 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 do helm template para os gráficos do Helm dessa CNF fornece quatro linhas de imagem na definição de 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 de AOSM da CLI do Azure usa as linhas de imagem acima e remove o repository (o AOSM substitui o repositório com o novo registro que sustenta o Repositório de Artefatos do AOSM). Em seguida, a extensão de AOSM da CLI do Azure pesquisa 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 precisam estar disponíveis nesses caminhos.

Espaçamento de nomes

A extensão de AOSM da CLI do Azure também dá suporte ao espaçamento de nomes de imagem nos registros de contêiner de origem. Por exemplo, a imagem contoso-test pode ser carregada em test/test-release/contoso-test:1.0.0 no registro de origem. Nesse caso, o prefixo adicional, test, precisa ser configurado no parâmetro "image_sources" do arquivo de entrada da 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 de AOSM da CLI do Azure procura as imagens no myregistry.azurecr.io, onde descobre contoso-a, contoso-b e contoso-c. Em seguida, procura em myregistry.azurecr.io/test, onde descobre contoso-test.

Próximas etapas