Gérer les charts Helm

Cette page explique comment gérer des charts Helm 3 enregistrés en tant que conteneurs OCI images, y compris transfert (importation), extraction (téléchargement), listage, ajout de tags et suppression graphiques.

Avant de commencer

  1. Si le dépôt cible n'existe pas, créez un dépôt. Choisissez Docker comme le format du dépôt de données.
  2. Vérifiez que vous disposez des autorisations requises pour le un dépôt de clés.
  3. (Facultatif) Configurez des valeurs par défaut pour les commandes de la Google Cloud CLI.
  4. Installez Helm 3.8.0 ou version ultérieure. Dans les versions précédentes de Helm, la prise en charge des graphiques au format OCI est une fonctionnalité expérimentale.

    Exécutez helm version pour vérifier votre version.

  5. Configurez Helm pour qu'il authenticate à l'aide de Artifact Registry.

Créer ou obtenir un graphique

Cette documentation se concentre sur la gestion des images de vos graphiques et part du principe que vous vous possédez déjà des graphiques ou vous savez en créer. Pour en savoir plus sur créer des graphiques ou obtenir des graphiques accessibles au public dans Artifact Hub, consultez la consultez les informations suivantes dans la documentation de Helm.

Empaqueter un graphique

Avant de pouvoir transférer un graphique vers Artifact Registry, vous devez l'empaqueter en tant qu'archive de graphique.

  1. Accédez au répertoire qui contient votre graphique.

  2. Empaquetez le graphique.

    helm package CHART-PATH
    

    Remplacez CHART-PATH par le chemin d'accès au répertoire contenant votre fichier Chart.yaml.

Helm utilise le nom et la version du chart comme nom de fichier d'archive. Par exemple, si vous avez un graphique nommé my-chart et dont le numéro de version est 0.1.0, le nom du package est my-chart-0.1.0.tgz.

Vous pouvez maintenant transférer le graphique vers Artifact Registry.

Transférer un graphique

Une fois votre graphique empaqueté, vous pouvez le transférer vers Artifact Registry.

Pour transférer le graphique, exécutez la commande suivante:

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

Remplacez les valeurs suivantes :

Helm utilise les informations de Chart.yaml pour le nom de l'image de conteneur OCI et . Prenons l'exemple de commande suivant:

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

Helm importe l'archive du chart en tant qu'image my-chart avec la balise 0.1.0.

Pour vérifier que l'opération d'envoi a réussi, répertoriez les images dans le un dépôt de clés.

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

Extraire des graphiques

Pour extraire un graphique:

  1. Exécutez la commande suivante pour extraire l'archive du graphique:

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

    Si vous souhaitez extraire l'archive du graphique et extraire son contenu, ajoutez le --untar.

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

    Remplacez les valeurs suivantes :

    • LOCATION est le régional ou multirégional emplacement du dépôt.
    • PROJECT est votre projet Google Cloud ID. Si l'ID de votre projet contient un deux-points (:), consultez la section Projets à l'échelle du domaine.
    • REPOSITORY est le nom du dépôt où l'image est stockée.
    • IMAGE est le nom de l'image dans le dépôt.
    • VERSION est la version sémantique du graphique. Cet indicateur est obligatoire. Helm ne permet pas d'extraire un chart à l'aide d'un tag.

Installer un graphique

Installez un chart stocké dans Artifact Registry avec la commande helm installer .

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

L'exemple suivant installe une version nommée release1 utilisant la version 0.1.0 du graphique 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

Répertorier des graphiques

Vous pouvez répertorier des graphiques à l'aide de la console Google Cloud ou de la ligne de commande. Si vous stocker les images de conteneurs et les graphiques dans le même dépôt Docker, types d'artefacts s'affichent dans la liste.

Console

Pour afficher les images d'un dépôt:

  1. Ouvrez la page Dépôts de la console Google Cloud.

    Ouvrir la page "Dépôts"

  2. Cliquez sur le dépôt contenant l'image de conteneur.

  3. Cliquez sur une image pour afficher ses versions.

gcloud

Pour répertorier toutes les images dans le projet, le dépôt et l'emplacement par défaut lorsque les valeurs par défaut sont configurées :

gcloud artifacts docker images list

Pour répertorier les images d'un dépôt d'un emplacement spécifique, exécutez la :

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

Pour répertorier tous les condensés et tags d'une image spécifique, exécutez la commande suivante:

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

Remplacez les valeurs suivantes :

  • LOCATION est le régional ou multirégional emplacement du dépôt.
  • PROJECT est votre Google Cloud ID du projet. Si l'ID du projet contient le signe deux-points (":"), consultez la section Projets à l'échelle du domaine.
  • REPOSITORY est le nom du dépôt où l'image est stockée.
  • IMAGE est le nom de l'image dans le dépôt.
  • --include-tags affiche toutes les versions des images, y compris les condensés et . Si cet indicateur est omis, la liste renvoyée n'inclut que des images de conteneurs de premier niveau.

Prenons l'exemple d'une image présentant les caractéristiques suivantes :

  • Emplacement du dépôt : us-west1
  • Nom du dépôt : my-repo
  • ID du projet : my-project
  • Nom de l'image : my-image

Le nom complet du dépôt est le suivant:

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

Le nom complet de l'image est:

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

Pour en savoir plus sur le format du nom d'image, consultez Noms des dépôts et des images.

Répertorier les fichiers

Vous pouvez lister les fichiers d'un dépôt, les fichiers de toutes les versions d'une image de conteneur spécifiée ou les fichiers d'une version spécifique d'une image.

Pour toutes les commandes suivantes, vous pouvez définir un nombre maximal de fichiers à renvoyer en ajoutant l'option --limit à la commande.

Pour répertorier tous les fichiers du projet, du dépôt et lorsque les valeurs par défaut sont configurées:

gcloud artifacts files list

Pour répertorier les fichiers d'un projet, d'un dépôt et d'un emplacement spécifiés, exécutez la commande suivante:

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

Pour lister les fichiers de toutes les versions d'une image de conteneur spécifique :

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

Pour répertorier les fichiers d'une version d'image de conteneur spécifique:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE \
    --version=VERSION
Pour répertorier les fichiers d'un tag spécifique:

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

Remplacez les valeurs suivantes :

  • LOCATION: le régional ou multirégional emplacement du dépôt.
  • PROJECT : ID de votre projet Google Cloud. Si l'ID du projet contient le signe deux-points (":"), consultez la section Projets à l'échelle du domaine.
  • REPOSITORY: nom du dépôt dans lequel l'image sont stockées.
  • PACKAGE : nom de l'image.
  • VERSION : condensé de l'image, chaîne commençant par sha256:.
  • TAG: balise associée à l'image de conteneur.

Supprimer des images

Dans un dépôt Artifact Registry, vous pouvez supprimer une image de conteneur entière ou une version d'image spécifique associée à un tag ou à un condensé. Une fois une image supprimée, vous ne pouvez pas annuler l'action.

Pour supprimer une image stockée dans Artifact Registry:

Console

  1. Ouvrez la page Dépôts de la console Google Cloud.

    Ouvrir la page "Dépôts"

  2. Cliquez sur le nom de l'image pour afficher les versions de cette image.

  3. Sélectionnez les versions que vous souhaitez supprimer.

  4. Cliquez sur SUPPRIMER.

  5. Dans la boîte de dialogue de confirmation, cliquez sur SUPPRIMER.

gcloud

Pour supprimer une image et tous ses tags, exécutez la commande suivante :

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

Pour supprimer une version d'image spécifique, utilisez l'une des commandes suivantes.

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]

  • LOCATION est le régional ou multirégional emplacement du dépôt.
  • PROJECT est votre Google Cloud ID du projet. Si l'ID du projet contient le signe deux-points (":"), consultez la section Projets à l'échelle du domaine.
  • REPOSITORY est le nom du dépôt où l'image est stockée.
  • IMAGE est le nom de l'image dans le dépôt.
  • TAG est la balise de la version que vous souhaitez supprimer. Si plusieurs tags sont associés à la même version d'image, vous devez inclure --delete-tags pour supprimer la version d'image sans en supprimant d'abord les tags.
  • IMAGE-DIGEST est la valeur de hachage sha256 de la version. que vous souhaitez supprimer. Si un tag est associé au condensé de l'image, vous devez inclure --delete-tags pour supprimer la version d'image sans en supprimant d'abord le tag.
  • --delete-tags supprime tous les tags appliqués à la version de l'image. Cette option vous permet de forcer la suppression d'une version d'image lorsque :
    • Vous avez spécifié un tag, mais d'autres tags sont associés au version d'image.
    • Vous avez spécifié un condensé d'image comportant au moins un tag.

Étape suivante