Exécuter des compilations dans un pool privé

Ce document explique comment exécuter des compilations dans des pools privés. Si vous débutez avec les pools privés, consultez la présentation des pools privés.

Avant de commencer

  • Assurez-vous d'avoir créé un pool privé en suivant la procédure décrite sur la page Créer et gérer des pools privés.

  • Pour utiliser les exemples de ligne de commande de ce guide, installez et configurez la CLI Google Cloud.

  • Vous pouvez utiliser le même projet Cloud pour créer votre pool privé et vos compilations Cloud Build, ou utiliser des projets différents. Si vos builds se trouvent dans un projet différent de votre pool privé, définissez le projet par défaut dans la CLI gcloud sur le projet d'où proviennent vos builds:

    gcloud config set project BUILD_ORIGIN_PROJECT_ID
    

Autorisations IAM

  • Pour exécuter des builds via la CLI gcloud ou l'API Cloud Build, accordez le rôle Utilisateur de pool de nœuds de calcul dans le projet de pool privé à l'utilisateur ou au compte de service qui demande la compilation.

  • Pour exécuter des compilations automatiques à l'aide de déclencheurs, procédez comme suit :

    • Si le projet dans lequel vous démarrez la compilation est identique à celui dans lequel se trouve le pool privé, vous n'avez pas besoin d'accorder d'autorisations.
    • Si le projet dans lequel vous démarrez la compilation est différent de celui dans lequel se trouve le pool privé, attribuez le rôle Utilisateur de pool de nœuds de calcul au compte de service Cloud Build du projet déclencheur sur Le projet de pool de nœuds de calcul dans lequel vos compilations sont créées:

    Console

    1. Ouvrez la page IAM dans Google Cloud Console.

      Ouvrir la page Autorisations IAM

    2. Dans le menu déroulant permettant de sélectionner le projet, en haut de la page, sélectionnez le projet contenant votre pool privé.

    3. Cliquez sur Ajouter.

    4. Saisissez les paramètres de comptes principaux et de rôle suivants:

      • Nouveaux comptes principaux: saisissez l'adresse e-mail du compte de service Cloud Build par défaut du projet contenant votre déclencheur de compilation. Vous pouvez obtenir cette adresse e-mail en procédant comme suit:

        1. Ouvrir la page IAM
        2. Sélectionnez le projet contenant le déclencheur de compilation.
        3. Dans le tableau des autorisations, recherchez l'adresse e-mail se terminant par @cloudbuild.gserviceaccount.com. Il s'agit du compte de service Cloud Build.
      • Sélectionnez un rôle: sélectionnez le rôle Utilisateur de pool de nœuds de calcul Cloud Build.

    5. Cliquez sur Enregistrer pour enregistrer les nouvelles autorisations IAM.

    gcloud

    Pour ajouter le compte de service Cloud Build par défaut du projet déclencheur au projet de pool de nœuds de calcul avec le rôle cloudbuild.workerpoolUser:

      gcloud projects add-iam-policy-binding PRIVATEPOOL_PROJECT_ID \
          --member=TRIGGER_PROJECT_NUMBER@cloudbuild.gserviceaccount.com \
          --role=roles/cloudbuild.workerpoolUser
    

    Remplacez les valeurs d'espace réservé dans la commande ci-dessus par les éléments suivants :

    • PRIVATEPOOL_PROJECT_ID est l'ID du projet dans lequel le pool privé exécute la compilation.
    • TRIGGER_PROJECT_NUMBER est le numéro du projet du déclencheur qui exécute la compilation.

Exécuter des compilations

Vous pouvez envoyer des compilations depuis le même projet Cloud que celui dans lequel vous avez créé le pool privé ou à partir d'un autre projet Cloud. Vous pouvez spécifier le pool privé dans votre fichier de configuration de compilation ou directement dans la commande gcloud:

Spécifier le pool privé dans le fichier de configuration de compilation:

  1. Dans votre fichier de configuration Cloud Build, ajoutez une option pool et spécifiez le nom complet de la ressource du pool privé pour exécuter la compilation :

    YAML

    steps:
    - name: 'bash'
      args: ['echo', 'I am running in a private pool!']
    options:
      pool:
        name: 'projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID'
    

    JSON

    {
      "steps": [
      {
        "name": "bash",
        "args": [
          "echo",
          "I am running in a private pool!"
        ]
      }
      ],
      "options": {
        "pool" : {
          "name" : "projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID"
        }
      }
    }
    

    Remplacez les valeurs d'espace réservé dans le fichier de configuration ci-dessus par les éléments suivants :

    • PRIVATEPOOL_PROJECT_ID: projet Cloud dans lequel se trouve votre pool privé.
    • REGION: région dans laquelle vous avez créé votre pool privé.
    • PRIVATEPOOL_ID: ID de pool privé unique que vous avez spécifié lors de la création du pool privé.
  2. Utilisez le fichier de configuration de compilation créé ci-dessus pour exécuter la compilation via gcloud ou l'API ou à l'aide de déclencheurs. Si votre instance est hébergée sur site, Cloud Build fournit également une fonctionnalité de déclenchement pour plusieurs systèmes de gestion de code source externes, tels que GitHub Enterprise ou Bitbucket Server.

Spécifier le pool privé dans la commande gcloud:

Vous pouvez spécifier le pool privé dans la commande gcloud au lieu du fichier de configuration de compilation. Par exemple, supposons que vous disposiez du fichier de configuration de compilation suivant:

YAML

  steps:
  - name: 'bash'
    args: ['echo', 'I am running in a private pool!']

JSON

  {
    "steps": [
    {
      "name": "bash",
      "args": [
        "echo",
        "I am running in a private pool!"
      ]
    }
    ],
  }

La commande suivante effectue la compilation en utilisant le fichier de configuration de compilation et spécifie le pool de nœuds de calcul dans la commande:

gcloud builds submit --config=CONFIG_FILE
  --worker-pool=projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID

Remplacez les valeurs d'espace réservé dans les commandes ci-dessus par les éléments suivants :

  • CONFIG_FILE: chemin d'accès à votre fichier de configuration de compilation.
  • PRIVATEPOOL_ID: ID de pool privé unique que vous avez spécifié lors de la création du pool privé.
  • PRIVATEPOOL_PROJECT_ID: projet Cloud dans lequel se trouve votre pool privé.
  • REGION: région dans laquelle vous avez créé votre pool privé.

Étape suivante