Stocker des charts Helm dans Artifact Registry

Helm est le gestionnaire de paquets pour Kubernetes. Il utilise des charts qui définissent un ensemble de ressources Kubernetes à déployer.

Ce guide de démarrage rapide vous montre comment :

  • Créer un dépôt privé dans Artifact Registry
  • Créer un exemple de chart
  • S'authentifier auprès du dépôt
  • Transférer le chart vers le dépôt
  • Déployer le chart

Avant de commencer

  1. In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  3. Verify that billing is enabled for your Cloud de Confiance project.

  4. Enable the Artifact Registry, Google Kubernetes Engine APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

Rôles requis

Pour obtenir les autorisations nécessaires pour créer et gérer des charts Helm dans les dépôts de packages Docker Artifact Registry, demandez à votre administrateur de vous accorder le rôle IAM Administrateur Artifact Registry (roles/artifactregistry.admin) dans votre projet. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

Configurer une interface système locale

Pour installer gcloud CLI et Helm, procédez comme suit :

  1. Installez la gcloud CLI. Pour mettre à jour une installation existante, exécutez la commande gcloud components update.

  2. Installez Helm 3.8.0 ou une version ultérieure. Dans les versions précédentes de Helm, la prise en charge des charts au format OCI est une fonctionnalité expérimentale.

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

Créer un dépôt

Créez un dépôt Docker pour stocker l'exemple de chart fourni dans ce guide de démarrage rapide.

Console

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

    Ouvrir la page "Dépôts"

  2. Cliquez sur Créer un dépôt.

  3. Spécifiez quickstart-helm-repo comme nom de dépôt.

  4. Choisissez Docker comme format.

  5. Sous Type d'emplacement, sélectionnez Région, puis l'emplacement u-france-east1.

  6. Cliquez sur Créer.

Le dépôt est ajouté à la liste des dépôts.

gcloud

  1. Exécutez la commande suivante pour créer un dépôt Docker nommé quickstart-helm-repo à l'emplacement u-france-east1 avec la description "docker repository".

    gcloud artifacts repositories create quickstart-helm-repo --repository-format=docker \
    --location=u-france-east1 --description="Helm repository"
    
  2. Exécutez la commande suivante pour vérifier que votre dépôt a bien été créé.

    gcloud artifacts repositories list
    

Exécutez la commande gcloud artifacts pour obtenir plus d'informations sur les commandes Artifact Registry.

Créer un chart

Pour ce guide de démarrage rapide, vous allez créer un exemple de chart nommé hello-chart.

  1. Accédez au répertoire dans lequel vous souhaitez créer le chart.
  2. Exécutez la commande suivante pour créer le chart :

    helm create hello-chart
    

    Helm crée un répertoire nommé hello-chart avec un ensemble par défaut de fichiers de chart. L'un des fichiers est Chart.yaml, qui inclut des informations sur le chart.

  3. Empaquetez le chart dans une archive.

    helm package hello-chart/
    

    Helm crée une archive nommée hello-chart-0.1.0.tgz à l'aide du nom du chart et du numéro de version dans Chart.yaml.

S'authentifier auprès du dépôt

Avant de pouvoir transférer ou installer des images, Helm doit s'authentifier auprès d'Artifact Registry.

Helm peut utiliser les paramètres de registre existants dans un fichier de configuration Docker. Si vous n'avez pas encore configuré Docker pour l'utiliser avec Artifact Registry, vous pouvez vous authentifier avec un jeton d'accès pour ce guide de démarrage rapide.

Pour en savoir plus sur l'authentification, consultez Configurer l'authentification pour Helm.

S'authentifier avec votre configuration Docker

Par défaut, Helm est compatible avec les paramètres de registre dans le fichier de configuration Docker config.json. Helm recherche les paramètres de registre dans l'emplacement par défaut ou dans l'emplacement spécifié par la DOCKER_CONFIG variable d'environnement.

Si vous avez configuré Docker avec un assistant d'identification pour vous authentifier auprès d'Artifact Registry, Helm utilise votre configuration existante pour les dépôts Docker Artifact Registry.

S'authentifier avec un jeton d'accès

Pour vous authentifier avec un jeton d'accès :

  1. Obtenez un jeton d'accès en tant qu'identifiant lorsque vous vous authentifiez auprès d'Artifact Registry avec Helm.

    Linux / macOS

    Exécutez la commande suivante :

    gcloud auth print-access-token | helm registry login -u oauth2accesstoken \
    --password-stdin https://u-france-east1-docker.s3nsregistry.fr
    

    Windows

    Exécutez la commande suivante :

    gcloud auth print-access-token
    ya29.8QEQIfY_...
    
    helm registry login -u oauth2accesstoken -p "ya29.8QEQIfY_..." \
    https://u-france-east1-docker.s3nsregistry.fr/PROJECT-ID/REPOSITORY
    

    Où :

    • oauth2accesstoken correspond au nom d'utilisateur à utiliser pour s'authentifier avec un jeton d'accès.
    • gcloud auth print-access-token est la commande gcloud permettant d'obtenir le jeton d'accès. Votre jeton d'accès est le mot de passe pour l'authentification.

Helm est désormais authentifié auprès d'Artifact Registry. Vous pouvez transférer le chart vers le dépôt.

Transférer le chart vers Artifact Registry

Une fois que vous avez créé votre archive de chart et que vous vous êtes authentifié auprès du dépôt Artifact Registry, vous pouvez transférer le chart vers le dépôt.

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

helm push hello-chart-0.1.0.tgz oci://u-france-east1-docker.s3nsregistry.fr/PROJECT/quickstart-helm-repo

Remplacez PROJECT par votre Cloud de Confiance by S3NS ID du projet.

Helm utilise les valeurs de Chart.yaml pour l'image :

  • Le nom du chart est le nom de l'image : hello-chart
  • La version du chart est le tag de l'image : 0.1.0

Helm renvoie un résultat semblable à l'exemple suivant :

Login Succeeded
Pushed: u-france-east1-docker.s3nsregistry.fr/my-project/quickstart-helm-repo/hello-chart:0.1.0
Digest: sha256:67a72...

Exécutez la commande suivante pour vérifier que le chart est désormais stocké dans le dépôt :

gcloud artifacts docker images list u-france-east1-docker.s3nsregistry.fr/PROJECT/quickstart-helm-repo

Le résultat de la commande ressemble à ceci :

Listing items under project my-project, location u-france-east1, repository quickstart-helm-repo.

IMAGE: u-france-east1-docker.s3nsregistry.fr/my-project/quickstart-helm-repo/hello-chart
DIGEST: sha256:67a72...
CREATE_TIME: 2021-11-08T22:59:57
UPDATE_TIME: 2021-11-08T22:59:57

Vous pouvez maintenant déployer une version à l'aide du chart stocké dans Artifact Registry.

Déployer le chart

Dans Helm, une instance déployée de votre application est appelée version. Une fois que vous avez ajouté votre dépôt à la configuration Helm, vous pouvez déployer une version de votre chart.

  1. Créez un cluster nommé chart-cluster pour votre déploiement à l'aide de la commande suivante :

    gcloud container clusters create --zone u-france-east1-a chart-cluster
    

    Une fois le cluster créé, la commande renvoie un résumé semblable à l'exemple suivant :

    kubeconfig entry generated for chart-cluster.
    NAME: chart-cluster
    LOCATION: u-france-east1-a
    MASTER_VERSION: 1.20.10-gke.1600
    MASTER_IP: 34.66.36.211
    MACHINE_TYPE: e2-medium
    NODE_VERSION: 1.20.10-gke.1600
    NUM_NODES: 3
    STATUS: RUNNING
    
  2. Obtenez les identifiants du cluster afin que kubectl puisse y accéder :

    gcloud container clusters get-credentials --zone u-france-east1-a chart-cluster
    
  3. Exécutez la commande suivante pour déployer une version de hello-chart à l'aide des fichiers de chart extraits localement :

    helm install hello-chart oci://u-france-east1-docker.s3nsregistry.fr/PROJECT/quickstart-helm-repo/hello-chart --version 0.1.0
    

    La commande renvoie un résumé du déploiement :

    NAME: hello-chart
    LAST DEPLOYED: Mon Nov  8 23:15:13 2021
    NAMESPACE: default
    STATUS: deployed
    REVISION: 1
    

Vous avez déployé une version à l'aide du chart que vous avez créé et transféré vers Artifact Registry.

Libérer de l'espace

Pour éviter que les ressources utilisées dans cette démonstration soient facturées sur votre Cloud de Confiance compte pour les ressources utilisées sur cette page, procédez comme suit :

  1. Supprimez le dépôt que vous avez créé à l'aide de la commande suivante :

    gcloud artifacts repositories delete quickstart-helm-repo --location=u-france-east1
    
  2. Supprimez le cluster que vous avez créé :

    gcloud container clusters delete --zone=u-france-east1-a chart-cluster
    

Étape suivante