Gerenciar gráficos do Helm

Nesta página, explicamos como gerenciar gráficos do Helm 3 salvos como contêiner da OCI imagens, incluindo envio (upload), extração (download), listagem, inclusão de tag e exclusão gráficos.

Antes de começar

  1. Se o repositório de destino não existir, crie um novo repositório. Escolha Docker como o formato de repositório.
  2. Verifique se você tem as permissões necessárias para o repositório de dados.
  3. (Opcional) Configure padrões para os comandos da Google Cloud CLI.
  4. Instale o Helm 3.8.0 ou mais recente. Nas versões anteriores do Helm, o suporte a gráficos no formato OCI é um recurso experimental.

    Execute helm version para verificar sua versão.

  5. Configure o Helm para authenticate com o Artifact Registry.

Como criar ou receber um gráfico

Esta documentação se concentra no gerenciamento das imagens de gráficos e pressupõe que você já tem gráficos ou está familiarizado com a criação de gráficos. Para saber mais sobre criar gráficos ou acessar gráficos disponíveis publicamente no Artifact Hub, consulte na documentação do Helm.

Como empacotar um gráfico

Antes de enviar um gráfico para o Artifact Registry, você precisa empacotá-lo como um arquivo de gráfico.

  1. Acesse o diretório que contém o gráfico.

  2. Empacote o gráfico.

    helm package CHART-PATH
    

    Substitua CHART-PATH pelo caminho do diretório que contém seu arquivo Chart.yaml.

O Helm usa o nome e a versão do gráfico como nome de arquivo. Por exemplo, se você tiver um gráfico com o nome my-chart e o número da versão 0.1.0, o nome do pacote será my-chart-0.1.0.tgz.

Agora é possível enviar o gráfico para o Artifact Registry.

Como enviar um gráfico

Depois de empacotar o gráfico, é possível enviá-lo para o Artifact Registry.

Para enviar o gráfico por push, execute o seguinte comando:

helm push my-chart-0.1.0.tgz oci://LOCATION-docker.pkg.dev/PROJECT/REPOSITORY

Substitua os seguintes valores:

  • LOCATION é o regional ou multirregional local do repositório.
  • PROJECT é seu projeto do Google Cloud ID. Caso o ID do projeto contenha dois pontos (`:`), consulte Projetos com escopo de domínio.
  • REPOSITORY é o nome do repositório.

O Helm usa informações de Chart.yaml para o nome e a tag da imagem do contêiner do OCI. Confira o exemplo de comando a seguir:

helm push my-chart-0.1.0.tgz oci://us-west1-docker.pkg.dev/my-project/my-repo

O Helm faz upload do arquivo do gráfico como a imagem my-chart com a tag 0.1.0.

Para verificar se a operação de push foi bem-sucedida, liste as imagens no repositório de dados.

gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT/REPOSITORY

Como extrair gráficos

Para extrair um gráfico:

  1. Execute este comando para extrair o arquivo do gráfico:

    helm pull oci://LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE \
        --version VERSION
    

    Se quiser extrair o arquivo do gráfico e extrair o conteúdo dele, adicione a sinalização --untar.

    helm pull oci://LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE \
        --version VERSION \
        --untar
    

    Substitua os seguintes valores:

    • LOCATION é o regional ou multirregional local do repositório.
    • PROJECT é seu projeto do Google Cloud ID. Caso o ID do projeto contenha dois pontos (`:`), consulte Projetos com escopo de domínio.
    • REPOSITORY é o nome do repositório em que a imagem é armazenados.
    • IMAGE é o nome da imagem no repositório.
    • VERSION é a versão semântica do gráfico. Essa flag é obrigatória. O Helm não oferece suporte à extração de um gráfico usando uma tag.

Como instalar um gráfico

Instale um gráfico armazenado no Artifact Registry com o helm instalar kubectl.

helm install RELEASE \
    oci://LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE \
    --version VERSION

O exemplo a seguir instala uma versão chamada release1 usando a versão 0.1.0 do gráfico us-west1-docker.pkg.dev/nyap-test/helm-repo/my-chart:

helm install release1 oci://us-west1-docker.pkg.dev/nyap-test/helm-repo/my-chart --version 0.1.0

Como listar gráficos

É possível listar gráficos usando o Console do Google Cloud ou a linha de comando. Se você armazenar imagens e gráficos de contêiner no mesmo repositório do Docker, tipos de artefatos aparecem na lista.

Console

Para ver imagens em um repositório:

  1. Abra a página Repositórios no console do Google Cloud.

    Abrir a página Repositórios

  2. Clique no repositório com a imagem do contêiner.

  3. Clique em uma imagem para conferir as versões dela.

gcloud

Para listar todas as imagens no projeto, repositório e local quando os valores padrão estiverem configurados:

gcloud artifacts docker images list

Para listar as imagens de um repositório em um local específico, execute o comando comando:

gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT/REPOSITORY

Para listar todos os resumos e tags de uma imagem específica, execute o comando:

gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE \
--include-tags

Substitua os seguintes valores:

  • LOCATION é o regional ou multirregional local do repositório.
  • PROJECT é seu Google Cloud ID do projeto. Caso o ID do projeto contenha dois pontos (`:`), consulte Projetos com escopo de domínio.
  • REPOSITORY é o nome do repositório em que a imagem está armazenada.
  • IMAGE é o nome da imagem no repositório.
  • --include-tags mostra todas as versões das imagens, incluindo resumos e tags. Se essa sinalização for omitida, a lista retornada incluirá apenas imagens de contêiner de nível superior.

Por exemplo, considere uma imagem com as seguintes características:

  • Local do repositório: us-west1
  • Nome do repositório: my-repo
  • ID do projeto: my-project
  • Nome da imagem: my-image

O nome completo do repositório é:

us-west1-docker.pkg.dev/my-project/my-repo

O nome completo da imagem é:

us-west1-docker.pkg.dev/my-project/my-repo/my-image

Para detalhes sobre o formato de nome da imagem, consulte Nomes de repositório e de imagens.

Como listar arquivos

É possível listar arquivos em um repositório, arquivos em todas as versões de uma imagem de contêiner especificada ou arquivos em uma versão específica de uma imagem.

Para todos os comandos a seguir, você pode definir um número máximo de arquivos a serem retornados adicionando a sinalização --limit ao comando.

Para listar todos os arquivos no projeto, repositório e local padrão quando os valores padrão estiverem configurados:

gcloud artifacts files list

Para listar arquivos em um projeto, repositório e local especificados, execute o comando:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION

Para listar arquivos de todas as versões de uma imagem de contêiner específica:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE

Para listar arquivos de uma versão específica da imagem do contêiner:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE \
    --version=VERSION
Para listar arquivos de uma tag específica:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE \
    --tag=TAG

Substitua os seguintes valores:

  • LOCATION: o regional ou multirregional local do repositório.
  • PROJECT: seuID de projeto no Google Cloud. Caso o ID do projeto contenha dois pontos (`:`), consulte Projetos com escopo de domínio.
  • REPOSITORY: o nome do repositório em que a imagem está armazenada.
  • PACKAGE: o nome da imagem.
  • VERSION: resumo da imagem, uma string que começa com sha256:.
  • TAG: a tag associada à imagem do contêiner.

Como excluir imagens

Em um repositório do Artifact Registry, é possível excluir um contêiner inteiro imagem ou excluir uma versão de imagem específica associada a uma tag ou resumo. Uma vez você excluiu uma imagem, não é possível desfazer a ação.

Para excluir uma imagem armazenada no Artifact Registry:

Console

  1. Abra a página Repositórios no console do Google Cloud.

    Abrir a página Repositórios

  2. Clique no nome da imagem para ver as versões dessa imagem.

  3. Selecione as versões que você quer excluir.

  4. Clique em EXCLUIR.

  5. Na caixa de diálogo de confirmação, clique em Excluir.

gcloud

Para excluir uma imagem e todas as tags dela, execute o seguinte comando:

gcloud artifacts docker images delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE --delete-tags

Para excluir uma versão de imagem específica, use um dos comandos a seguir.

gcloud artifacts docker images delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE:TAG [--delete-tags]

ou

gcloud artifacts docker images delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE@IMAGE-DIGEST [--delete-tags]

Onde

  • LOCATION é o regional ou multirregional local do repositório.
  • PROJECT é seu Google Cloud ID do projeto. Caso o ID do projeto contenha dois pontos (`:`), consulte Projetos com escopo de domínio.
  • REPOSITORY é o nome do repositório em que a imagem está armazenada.
  • IMAGE é o nome da imagem no repositório.
  • TAG é a tag da versão que você quer excluir. Se várias tags estiverem associadas à mesma versão de imagem, será necessário incluir --delete-tags para excluir a versão de imagem sem remover as tags primeiro.
  • IMAGE-DIGEST é o valor de hash sha256 da versão que você quer excluir. Se uma tag estiver associada ao resumo da imagem, você precisará incluir --delete-tags para excluir a versão da imagem sem remover a tag primeiro.
  • --delete-tags remove todas as tags aplicadas à versão da imagem. Essa sinalização permite forçar a exclusão de uma versão de imagem quando:
    • Você tiver especificado uma tag, mas existir outras tags associadas à versão da imagem.
    • Você tiver especificado um resumo de imagem com pelo menos uma tag.

A seguir