Gérer les charts Helm

Le stockage des charts Helm 3 en tant qu'images de conteneurs OCI vous permet de les gérer de la même manière que les images Docker dans Artifact Registry. Vous pouvez importer (push), télécharger (pull), lister, taguer et supprimer des charts pour gérer leur cycle de vie dans vos dépôts.

Avant de commencer

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

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

  5. Configurez Helm pour qu'il s'authentifie auprès d'Artifact Registry.

Créer ou obtenir un graphique

Cette documentation se concentre sur la gestion des images de vos graphiques et suppose que vous disposez de graphiques existants ou que vous savez comment en créer. Pour en savoir plus sur la création de charts ou l'obtention de charts accessibles au public dans Artifact Hub, consultez les informations suivantes dans la documentation Helm.

Empaqueter un graphique

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

  1. Accédez au répertoire contenant votre chart.

  2. Empaquetez le chart.

    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 de la chart pour le nom du fichier d'archive. Par exemple, si vous avez un chart nommé my-chart et portant le numéro de version 0.1.0, le nom du package est my-chart-0.1.0.tgz.

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

Transférer un chart

Après avoir empaqueté votre chart, vous pouvez le transférer vers Artifact Registry.

Pour transférer le chart, 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 et le tag de l'image de conteneur OCI. 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 le tag 0.1.0.

Pour vérifier que l'opération de transfert a réussi, listez les images du dépôt.

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

Récupération 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 chart et son contenu, ajoutez l'option --untar.

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

    Remplacez les valeurs suivantes :

  • LOCATION est l'emplacement régional ou multirégional du dépôt.
  • PROJECT est l'ID de votre projet Google Cloud . Si l'ID de votre projet contient un signe deux-points (:), consultez Projets limités à un 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 chart. Cette option est obligatoire. Helm ne permet pas d'extraire un chart à l'aide d'un tag.

Installer un chart

Installez un chart stocké dans Artifact Registry à l'aide de la commande helm install.

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

L'exemple suivant installe une version nommée release1 à l'aide de la version 0.1.0 du chart 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 les graphiques

Vous pouvez lister les graphiques à l'aide de Google Cloud console ou de la ligne de commande. Si vous stockez des images de conteneurs et des charts dans le même dépôt Docker, les deux types d'artefacts apparaissent 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 lister toutes les images du projet, du dépôt et de l'emplacement par défaut lorsque les valeurs par défaut sont configurées :

gcloud artifacts docker images list

Pour lister les images d'un dépôt dans un emplacement spécifique, exécutez la commande suivante :

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

Pour lister 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 l'emplacement régional ou multirégional du dépôt.
  • PROJECT est l'ID de votre projet Google Cloud . Si l'ID de votre projet contient un signe deux-points (:), consultez Projets limités à un 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 les tags. Si cette option est omise, la liste renvoyée n'inclut que les images de conteneur 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 le suivant :

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

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

Création de la liste des 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 lister tous les fichiers du projet, du dépôt et de l'emplacement par défaut lorsque les valeurs par défaut sont configurées :

gcloud artifacts files list

Pour lister les fichiers d'un projet, d'un dépôt et d'un emplacement spécifiques, 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 lister 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 lister 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 : emplacement régional ou multirégional du dépôt.
  • PROJECT : ID de votre projet Google Cloud . Si l'ID de votre projet contient un signe deux-points (:), consultez Projets limités à un domaine.
  • REPOSITORY : nom du dépôt où l'image est stockée.
  • PACKAGE : nom de l'image.
  • VERSION : condensé de l'image, une chaîne commençant par sha256:.
  • TAG : tag associé à 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 que vous avez supprimé une image, 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 ses versions.

  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]

Où

  • LOCATION est l'emplacement régional ou multirégional du dépôt.
  • PROJECT est l'ID de votre projet Google Cloud . Si l'ID de votre projet contient un signe deux-points (:), consultez Projets limités à un 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 le tag 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 supprimer les tags au préalable.
  • 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 de l'image sans supprimer le tag au préalable.
  • --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 à la version de l'image.
    • Vous avez spécifié un condensé d'image comportant au moins un tag.

Étapes suivantes