Accès aux référentiels de code privés

Un référentiel de code, tel que GitHub ou GitLab, stocke du code source. Grâce à Code Engine, vous pouvez ajouter un accès à un référentiel de code privé, puis référencer ce référentiel à partir de votre génération.

Lorsque vous avez créé l'accès à votre référentiel de code privé, vous pouvez extraire du code du référentiel, en générer et déployer une application ou un travail avec IBM Cloud® Code Engine.

Création d'un accès à un référentiel de code

Lorsque vous créez un accès à un référentiel de code privé, vous sauvegardez des données d'identification dans Code Engine. Ces données d'identification sont appelées secrets SSH.

Avant de commencer

Choix d'une clé SSH pour le référentiel de code

Pour GitHub et GitLab, vous avez le choix entre deux types de clés SSH pour vous connecter à votre référentiel source.

  1. Une clé SSH associée au référentiel de code source ; cette clé n'a accès qu'aux référentiels où vous l'avez enregistrée. Cet accès est en lecture seule, par défaut, ce qui est le niveau requis par Code Engine pour télécharger le code source. Vous pouvez sélectionner l'accès en écriture, si nécessaire. Envisagez de choisir cette option pour définir une clé SSH dont la portée est limitée à des référentiels spécifiques pour contrôler l'accès aux référentiels spécifiés seulement.

  2. Une clé SSH associée à un utilisateur, par exemple, votre propre compte utilisateur ou un ID fonctionnel disponible dans votre organisation. Cette clé SSH dispose des droits d'accès au référentiel du compte utilisateur. Code Engine requiert un accès en lecture pour télécharger le code source.

    Étant donné que la définition d'une clé SSH portée sur un compte utilisateur permet d'accéder au compte en totalité, il est important d'être totalement conscient des implications en matière de sécurité lorsque vous choisissez cette option.

Ne créez pas votre fichier de clés SSH avec une phrase passe sécurisée car cette action entraîne l'échec de la commande build.

Ajout d'un accès à un référentiel privé à partir de la console

Avant de commencer, créez un projet.

  1. Une fois que votre projet est en statut actif, cliquez sur le nom de votre projet sur la page Code Engine Projects.
  2. Sur la page Composants, cliquez sur Secrets et mappes de configuration.
  3. Sur la page Secrets et mappes de configuration, cliquez sur Créer pour créer votre secret.
  4. Dans la page Créer un secret ou une mappe de configuration, procédez comme suit:
    1. Sélectionnez SSH secret et cliquez sur Suivant.
    2. Indiquez un nom; par exemple, mysecret-ssh.
    3. Ajoutez la clé privée SSH pour ce secret.
    4. Cliquez sur Créer pour créer le secret.

Maintenant que votre secret est créé à partir de la console, allez à la page Secrets et cartes de configuration pour voir la liste des secrets et cartes de configuration définis. Vous pouvez appliquer des filtres pour personnaliser la liste en fonction de vos besoins.

Vous pouvez créer un accès lorsque vous générez une image.

Ajout d'un accès au référentiel privé avec l'interface de ligne de commande

À partir de la version de l'interface de programmation 1.42.0, la définition et l'utilisation des secrets dans l'interface de programmation sont unifiées sous le groupe de commandes secret sous le groupe de commandes Voir les commandes ibmcloud ce secret. Utilisez l'option --format pour spécifier la catégorie du secret, par exemple basic_auth, generic, hmac, ssh, tls, ou registry. Bien que vous puissiez continuer à utiliser le groupe de commande repo vous pouvez continuer à utiliser le groupe de commande, mais vous pouvez aussi tirer parti du groupe de commande unifié secret unifié. Pour créer un secret permettant d'accéder à un service avec une clé SSH, par exemple pour s'authentifier auprès d'un dépôt Git tel que GitHub ou GitLab,, utilisez la commande ibmcloud ce secret create --format ssh commande. Un secret SSH est également utilisé comme secret d'accès au référentiel Git. Pour en savoir plus sur le travail avec les secrets dans Code Engine, voir Travailler avec des secrets.

Un secret SSH contient les informations d'identification pour accéder au dépôt privé qui contient le code source pour construire votre image de conteneur. Un secret SSH est également utilisé comme secret d'accès au référentiel Git.

Pour créer un secret SSH à l'aide de l'interface de ligne de commande, utilisez la commande secret create --format ssh. Cette commande requiert un nom et un chemin de clé et autorise également d'autres arguments facultatifs, tels que le chemin d'accès au fichier hosts connu. Pour obtenir la liste complète des options, voir la commande ibmcloud ce secret create --format ssh.

Par exemple, la commande suivante crée un secret SSH appelé myrepossh vers un référentiel à l'adresse github.com qui utilise votre clé privée SSH personnelle qui se trouve à l'emplacement par défaut sur votre système.

Mac OS ou Linux

ibmcloud ce secret create --format ssh --name myrepossh --key-path $HOME/.ssh/id_rsa --known-hosts-path $HOME/.ssh/known_hosts

Windows

ibmcloud ce secret create --format ssh --name myrepossh --key-path "%HOMEPATH%\.ssh\id_rsa" --known-hosts-path "%HOMEPATH%\.ssh\known_hosts"

Le tableau ci-dessous récapitule les options utilisées avec la commande repo create dans cet exemple. Pour plus d'informations sur la commande et ses options, voir la commande ibmcloud ce repo create.

Description de la commande
Option Description
--name

Nom du secret ssh. Utilisez un nom unique dans le projet. Cette valeur est requise.
-Le nom doit commencer et se terminer par un caractère alphanumérique en minuscules.

  • Le nom doit comporter 253 caractères ou moins et peut contenir des lettres minuscules, des nombres, des points (.) et des traits d'union (-).
--key-path Chemin d'accès local à la clé SSH privée non chiffrée. Si vous utilisez votre clé SSH privée personnelle, ce fichier se trouve généralement dans $HOME/.ssh/id_rsa (Mac OS ou Linux) ou %HOMEPATH%.ssh\id_rsa (Windows). Cette valeur est obligatoire.
--known-hosts-path Chemin d'accès à votre fichier hosts qui recense les hôtes connus. Cette valeur est une fonction de sécurité qui permet de s'assurer que la clé privée est utilisée uniquement pour s'authentifier sur des hôtes auxquels vous avez accédé précédemment, les hôtes GitHub ou GitLab. Ce fichier se trouve généralement sur $HOME/.ssh/known_hosts (Mac OS ou Linux) ou sur %HOMEPATH%.ssh\known_hosts (Windows).

Référencement d'un référentiel Git privé dans une génération

Vous pouvez référencer un accès existant ou créer un accès lorsque vous générez une image à partir de la console.

Référencement d'un référentiel Git privé dans une génération à partir de la console

Pour référencer votre référentiel Git privé dans une génération,

  1. Accédez au tableau de bord Code Engine.
  2. Sélectionnez un projet (ou créez-en un).
  3. Sur la page du projet, cliquez sur Générations d'image.
  4. Dans l'onglet Génération d'image, cliquez sur Créer.
  5. Pour spécifier un référentiel privé et ajouter un accès, entrez l'URL d'accès au référentiel dans la zone URL du référentiel de code, puis sélectionnez votre accès au référentiel de code existant ou choisissez de créer un accès.
  6. Entrez les informations relatives à votre génération, puis cliquez sur Terminé.

Pour plus d'informations sur la génération d'images, voir Génération d'une image de conteneur.

Le code repo URL doit être un SSH URL tel que git@github.com:IBM/CodeEngine.git au lieu d'un HTTPS URL tel que https://github.com/IBM/CodeEngine.git.

Référencement d'un secret SSH dans une génération à l'aide de l'interface de ligne de commande

Pour utiliser un secret SSH dans une compilation, utilisez l'option --git-repo-secret lorsque vous exécutez la commande build create ou la commande build update lorsque vous exécutez la commande Un secret SSH est également utilisé comme secret d'accès au référentiel Git.

Si vous disposez d'une génération existante, vous pouvez la mettre à jour à l'aide de la commande build update,

ibmcloud ce build update --name mybuild --git-repo-secret myrepossh

Si vous souhaitez créer une nouvelle génération, voir Création d'une configuration de génération via l'interface de ligne de commande.

Prochaines étapes pour l'accès aux dépôts Git

Après avoir créé votre secret SSH pour accéder à un référentiel Git, vous pouvez générer des images à partir du code source dans votre référentiel privé. Spécifiez votre secret SSH lorsque vous exécutez la commande build create avec l'option --git-repo-secret.