Traitement des incidents liés aux chaînes d'outils
Les problèmes généraux liés à l'utilisation des chaînes d'outils peuvent concerner la configuration de l'intégration des outils ou des modèles de chaînes d'outils. Dans de nombreux cas, ces problèmes peuvent être résolus en quelques opérations simples.
Pourquoi ne puis-je pas créer une chaîne d'outils à partir d'un modèle qui utilise un référentiel privé dans une autre région ?
Le modèle de chaîne d'outils que vous utilisez fait référence à un référentiel Git Repos and Issue Tracking privé.
Git Repos and Issue Tracking est spécifique à une région. Lorsque vous essayez de créer une chaîne d'outils à partir d'un modèle et de cibler une région dans laquelle le référentiel privé n'est pas situé, la configuration de l'intégration Git échoue.
Lorsque vous ajoutez un référentiel Git Repos and Issue Tracking à une chaîne d'outils dans une région spécifique, votre identifiant IBM est associé à un nom d'utilisateur GitLab qui vous donne accès au GitLab dans cette région. Même si votre nom d'utilisateur GitLab est le même dans toutes les régions, l'utilisateur GitLab associé est différent dans chaque région car chaque région a une installation séparée de GitLab. L'accès aux utilisateurs de GitLab dans d'autres régions n'est pas automatiquement accordé aux chaînes d'outils même lorsque le nom d'utilisateur GitLab semble être le même.
Rendez public le référentiel Git Repos and Issue Tracking afin qu'il soit accessible de n'importe où, y compris à partir d'autres régions IBM Cloud.
Si le référentiel doit être privé, le propriétaire du référentiel peut y donner accès en créant un jeton d'accès personnel sur le serveur GitLab où le référentiel source est situé. Vous n'avez besoin d'accéder qu'au référentiel privé pour cloner le contenu lors de la création de la chaîne d'outils. Le jeton d'accès personnel peut être créé avec une date d'expiration pour limiter sa durée de vie à un jour.
Une fois que vous avez un jeton d'accès personnel, vous pouvez créer une URL pour accéder au référentiel à partir d'autres régions. Pendant que vous configurez l'intégration d'outils, dans la zone URL du référentiel source, mettez à jour l'URL du référentiel avec votre nom d'utilisateur et votre jeton d'accès.
https://user:XXXXXXX@us-south.git.cloud.ibm.com/group/node-hello-world
Où user est votre nom d'utilisateur GitLab, XXXXXXX est le jeton d'accès, group est le groupe où le repo est
stocké, et node-hello-world est le nom du repo.
Si votre référentiel GitLab n'est pas situé dans un groupe GitLab, la valeur de group est la même que votre nom d'utilisateur.
J'ai configuré une intégration d'outils pour ma chaîne d'outils, pourquoi n'a-t-elle pas été configurée ?
Si une erreur se produit pendant le processus de configuration ou si la communication entre la chaîne d'outils et l'outil ne se termine pas correctement, la configuration échoue.
Après avoir ajouté et configuré une intégration d'outils pour votre chaîne d'outils, un message d'erreur s'affiche pour indiquer que la configuration a échoué.
Lorsque vous ajoutez une intégration d'outils, la chaîne d'outils communique avec l'outil qui est représenté par l'intégration d'outils pour mettre à disposition les ressources nécessaires et les associer à la chaîne d'outils. Si une erreur se produit pendant le processus de configuration ou si la communication entre la chaîne d'outils et l'outil ne s'établit pas correctement, l'intégration d'outils passe à l'état d'erreur.
Vous pouvez tenter de reconfigurer l'intégration d'outils :
-
Sur sa carte d'outil, survolez le message
Setup failedet cliquez sur Reconfigurer.
{: caption="de reconfigurationReconfiguration de l'" caption-side="bottom"} des outils -
Assurez-vous que vous utilisez des paramètres de configuration valides. Si l'erreur a été provoquée par une configuration non valide, un message d'erreur s'affiche ; par exemple,
The integration could not be set up. Check the settings and try again. Reason: Invalid api_key:fakeKey. Mettez à jour les paramètres de l'intégration d'outils, puis cliquez sur Sauvegarder l'intégration. -
Si l'erreur a été provoquée par un problème de communication, cliquez sur Sauvegarder l'intégration pour réessayer.
Pourquoi n'est-il pas possible de supprimer de chaînes d'outils à l'aide de l'interface de ligne de commande ibmcloud ?
Actuellement, vous ne pouvez pas supprimer les chaînes d'outils à l'aide de l'interface de ligne de commande ibmcloud resource.
J'ai essayé de supprimer une chaîne d'outils à partir de la ligne de commande à l'aide de la commande ibmcloud resource service-instance-delete et la commande échoue avec le message d'erreur suivant :
Error Code: RC-ServiceBrokerErrorResponse Message: description : Toolchain delete must be performed from the toolchain dashboard
Les chaînes d'outils sont un type de ressource spéciale sur la plateforme Cloud que vous ne pouvez pas supprimer actuellement à l'aide de l'interface de ligne de commande ibmcloud resource.
Pour supprimer une chaîne d'outils :
- Dans la IBM Cloud console, cliquez sur l'icône Menu (
) > Automatisation de la plateforme > Chaînes d'outils. Sur la page Chaînes d'outils, cliquez sur la chaîne d'outils à supprimer.
- Cliquez sur le menu Actions, puis sélectionnez Supprimer. La suppression d'une chaîne d'outils supprime toutes ses intégrations d'outils, et donc éventuellement les ressources gérées par ces intégrations.
- Confirmez la suppression en entrant le nom de la chaîne d'outils et en cliquant sur Supprimer.
Vous pouvez utiliser les commandes IBM Cloud CLI Developer Tools (ibmcloud dev) pour supprimer des chaînes d'outils. Après avoir installer l'interface de ligne de commande IBM Cloud,
vous pouvez supprimer une chaîne d'outils à partir de la ligne de commande à l'aide de la commande ibmcloud dev toolchain-delete.
Pourquoi ne puis-je pas afficher mes chaînes d'outils dans mon tableau de bord DevOps ?
Lorsque vous accédez au tableau de bord DevOps, vos chaînes d'outils ne sont pas affichées.
Votre chaîne d'outils ne s'affiche pas dans la chaîne d'outils, sauf si vous avez sélectionné l'emplacement approprié. DevOps Insights n'est disponible que dans trois emplacements : Dallas, Francfort et Londres.
Sur votre page de chaîne d'outils, remplacez l'emplacement par Dallas, Francfort ou Londres pour afficher toutes vos chaînes d'outils intégrées DevOps Insights.
Pourquoi ne puis-je pas créer de chaîne d'outils lorsque la clé racine est désactivée?
Lorsque vous tentez de créer une chaîne d'outils, la notification suivante s'affiche: The root key of the Key Management Service instance that was configured for the Continuous Delivery service in the selected resource group and region is disabled.
Lorsque vous créez une chaîne d'outils, vous devez la protéger à l'aide d'une clé racine pour le chiffrement qui est activée.
Utilisez l'une des méthodes suivantes pour activer la clé racine pour le chiffrement:
-
Activez la clé racine pour l'instance IBM® Key Protect for IBM Cloud® associée à votre service Continuous Delivery, dans la région où vous souhaitez créer une chaîne d'outils.
-
Activez la clé racine pour l'instance IBM Cloud® Hyper Protect Crypto Services associée à votre service Continuous Delivery, dans la région où vous souhaitez créer une chaîne d'outils.
Pourquoi ne puis-je pas afficher les instances de service que j'ai créées sur la page Chaînes d'outils lorsque la clé racine est désactivée?
Lorsque vous ouvrez votre chaîne d'outils, la notification suivante s'affiche: The root key of the key management service instance that was used to encrypt this toolchain is disabled.
Etant donné que les informations requises pour afficher les instances de service de la chaîne d'outils sont déchiffrées lorsque vous ouvrez une chaîne d'outils, vous devez vous assurer que la clé racine pour le chiffrement est activée.
Utilisez l'une des méthodes suivantes pour activer la clé racine pour le chiffrement:
-
Activez la clé racine pour l'instance IBM® Key Protect for IBM Cloud® associée à votre service Continuous Delivery, dans la région où vous souhaitez afficher la chaîne d'outils.
-
Activez la clé racine pour l'instance IBM Cloud® Hyper Protect Crypto Services associée à votre service Continuous Delivery, dans la région où vous souhaitez afficher la chaîne d'outils.
Lorsque j'utilise Terraform ou l'API pour configurer une intégration d'outils, pourquoi la configuration échoue-t-elle avec l'erreur Could not find value for secret reference... ?
L'intégration d'outils est configurée avec une référence à un secret, mais la chaîne d'outils ne trouve pas le secret ou le magasin de secrets référencé.
Lorsque vous utilisez Terraform ou l'API pour créer ou mettre à jour une intégration d'outils, la configuration échoue avec le message d'erreur Could not find value for secret reference....
De nombreuses intégrations d'outils incluent des propriétés de configuration qui sont classifiées en tant que secrets. Lorsque vous définissez ces propriétés dans une ressource Terraform ou un appel d'API, vous pouvez les définir en tant que
références de secrets. Une référence de secret est une chaîne spécialement formatée qui identifie le nom et l'emplacement d'un secret dans
un magasin de secrets qui est intégré à la chaîne d'outils. Cette erreur indique que la chaîne d'outils ne trouve pas le secret identifié ou que le magasin de secrets n'est pas intégré à la chaîne d'outils. L'erreur peut se produire pour les
références de secrets par nom si un ou plusieurs segments de la chaîne {vault:...} de référence de secrets sont incorrects ou si une clé du groupe, du nom ou de la zone spécifié n'existe pas dans le magasin de secrets. L'erreur
peut se produire pour les références de secrets par CRN si le CRN de secret fait référence à un secret qui a été supprimé.
Le message d'erreur inclut la chaîne de référence de secret qui ne peut pas être résolue.
Effectuez les tâches suivantes pour les références de secrets par nom:
- Vérifiez que le magasin de secrets est intégré en tant qu'outil dans la chaîne d'outils et que l'intégration d'outils est correctement configurée pour être identifiée par le nom d'instance de service. Si l'intégration d'outils est mal configurée, éditez l'intégration d'outils pour corriger la condition d'erreur, puis sauvegardez la configuration.
- Vérifiez que le premier segment de la référence de secret
{vault::...}correspond au nom de l'intégration de l'outil de magasin de secrets. Par exemple, la référence de secret{vault::my-secret-store.my-secret}s'attend à ce que la chaîne d'outils ait une intégration d'outils de magasin de secrets nomméemy-secret-store. Cette valeur est le nom de l'intégration d'outils, et non le nom de l'instance de service de magasin de secrets. - Si le secret est stocké dans Key Protect, vérifiez que le deuxième segment de la référence de secret
{vault::...}correspond au nom de la clé que vous souhaitez utiliser dans l'instance de service Key Protect. Par exemple, la référence de secret{vault::my-kms.my-key}s'attend à trouver une clé nomméemy-keydans l'instance de service Key Protect. Cette instance de service est intégrée à la chaîne d'outils avec une intégration d'outils Key Protect nomméemy-kms. - Si le secret est stocké dans Secrets Manager, vérifiez que les deuxième et troisième segments de la référence de secret
{vault::...}correspondent aux noms du groupe de secrets et du secret que vous souhaitez utiliser dans l'instance de service Secrets Manager. Par exemple, la référence de secret{vault::my-sm.my-group.my-key}s'attend à trouver un secret nommémy-keydans un groupe de secrets nommémy-group. Ce secret et ce groupe de secrets sont stockés dans l'instance de service Secrets Manager qui est intégrée à la chaîne d'outils à l'aide d'une intégration d'outils Secrets Manager nomméemy-sm. - Si le secret est stocké à l'adresse HashiCorp Vault, vérifiez que les deuxième et troisième segments de la référence du secret
{vault::...}correspondent aux noms du secret et du champ du secret dans le serveur HashiCorp Vault. Par exemple, le secret de référence{vault::my-hcv.my-secret.my-field}s'attend à trouver un secret nommémy-secretdans le serveur HashiCorp Vault et un champ nommémy-fielddans ce secret. Ce serveur est intégré dans la chaîne d'outils à l'aide d'un outil d'intégration HashiCorp Vault nommémy-hcv.
Effectuez les tâches suivantes pour les références de secrets par CRN:
- Vérifiez que le magasin de secrets est intégré en tant qu'outil dans la chaîne d'outils et que l'intégration d'outils est correctement configurée pour être identifiée par le CRN de l'instance de service. Si l'intégration d'outils est mal configurée, éditez l'intégration d'outils pour corriger la condition d'erreur, puis sauvegardez la configuration.
- Vérifiez que le CRN de l'instance de service Secrets Manager configurée dans l'intégration d'outils fait référence à la même instance que le CRN du secret défaillant.
Lorsque j'utilise Terraform ou l'API pour configurer une intégration d'outils, pourquoi la configuration échoue-t-elle avec l'erreur A problem was encountered while attempting to resolve secret reference... ?
L'intégration d'outils est configurée avec une référence à un secret, mais la chaîne d'outils n'est pas autorisée à extraire le secret du magasin de secrets où réside le secret.
Lorsque vous utilisez Terraform ou l'API pour créer ou mettre à jour une intégration d'outils, la configuration échoue avec le message d'erreur A problem was encountered while attempting to resolve secret reference....
De nombreuses intégrations d'outils incluent des propriétés de configuration qui sont classifiées en tant que secrets. Lorsque vous définissez ces propriétés dans une ressource Terraform ou un appel d'API, vous pouvez les définir en tant que références de secrets. Une référence de secret est une chaîne spécialement formatée qui identifie le nom et l'emplacement d'un secret dans un magasin de secrets qui est intégré à la chaîne d'outils. Avec les services IBM Cloud de stockage de secrets tels que Key Protect et Secrets Manager, l'erreur indique que la chaîne d'outils peut contacter le service de stockage de secrets, mais n'est pas autorisée à récupérer les secrets à partir du service. En général, ce problème se produit parce IBM CloudIdentity and Access Management que (IAM) ne dispose pas d'une politique d'autorisation de service à service qui permet à la chaîne d'outils de lire les secrets du service.
Le message d'erreur inclut la chaîne de référence de secret qui ne peut pas être résolue.
Effectuez les tâches suivantes pour les références de secrets par nom:
- Examinez le premier segment de la référence de secret
{vault::...}. Ce segment est le nom de l'intégration de l'outil de magasin de secrets dans la chaîne d'outils. Par exemple, la référence de secret{vault::my-kms.my-key}identifie une intégration d'outil de magasin de secrets nomméemy-kms. - Examinez la configuration d'intégration de l'outil de magasin de secrets pour vous assurer que le paramètre
namecorrespond au nom de l'intégration de l'outil de magasin de secrets. Vérifiez également que l'intégration d'outils est correctement configurée pour être identifiée par le nom d'instance de service et que l'instance de service Key Protect ou Secrets Manager correcte est sélectionnée. - A l'aide d'IAM, ajoutez une règle d'autorisation de service à service de la chaîne d'outils à l'instance de service Key Protect ou Secrets Manager. Dans la règle d'autorisation, la chaîne d'outils est le service source et le magasin
de secrets est le service cible. Lorsque vous ciblez Key Protect, assurez-vous que la règle accorde les rôles
VieweretReaderPlus. Lorsque vous ciblez Secrets Manager, assurez-vous que la règle accorde les rôlesVieweretSecretsReader.
Effectuez les tâches suivantes pour les références de secrets par CRN:
- Examinez la configuration d'intégration de l'outil de magasin de secrets pour vous assurer qu'elle est correctement configurée pour être identifiée par le CRN de l'instance de service. Vérifiez également que le CRN de l'instance de service Secrets Manager est correct.
- Utilisez IAM pour ajouter une règle d'autorisation de service à service de la chaîne d'outils à l'instance de service Secrets Manager. Dans la règle d'autorisation, la chaîne d'outils est le service source et l'instance Secrets Manager
est le service cible. Assurez-vous que la règle accorde les rôles
VieweretSecretsReader.
Pour plus d'informations sur les règles d'autorisation de service à service, voir Utilisation des autorisations pour accorder l'accès entre les services.
Pour un exemple de configuration d'une règle d'autorisation de service à service à partir d'une chaîne d'outils vers une instance de service de magasin de secrets avec Terraform, voir Spécification de références secrètes avec Terraform.
Lorsque j'utilise Terraform ou l'API pour configurer une intégration d'outils Key Protect, Secrets Managerou App Configuration, pourquoi la configuration échoue-t-elle?
L'intégration d'outils fait référence à une instance de service Key Protect, Secrets Managerou App Configuration qui n'existe pas.
Lorsque vous utilisez Terraform ou l'API pour créer ou mettre à jour une intégration Key Protect d'outil App Configuration, Secrets Manager, ou, la configuration échoue et le message There was a problem with the provided service parameters, please check that they are valid d'erreur s'affiche.
L'intégration de l'outil est configurée avec le nom ou l'ID d'une instance de Key Protect App Configuration service, Secrets Manager, ou qui est introuvable ou inaccessible. Si vous utilisez Terraform pour gérer à la fois l'instance de service et l'intégration d'outils, Terraform peut tenter de créer ou de mettre à jour l'intégration d'outils avant qu'elle ne crée l'instance de service.
Si vous utilisez Terraform, vérifiez votre configuration Terraform pour vous assurer que la ressource d'intégration ibm_cd_toolchain_tool_keyprotect d'outil ibm_cd_toolchain_tool_appconfig,
ibm_cd_toolchain_tool_secretsmanager, ou dépend de la ressource Key Protect
App Configurationibm_resource_instance, Secrets Manager, ou que l'intégration d'outil
représente. Vous pouvez spécifier cette dépendance dans la ressource d'intégration d'outils en faisant référence aux attributs de la ressource d'instance de service ou en spécifiant un méta-argument depends_on qui fait référence
à la ressource d'instance de service. Vous pouvez faire référence directement à la ressource d'instance de service ou indirectement via d'autres ressources intermédiaires. En déclarant correctement les dépendances entre les ressources, vous
pouvez forcer Terraform à créer, mettre à jour et supprimer des ressources dans l'ordre approprié.
Pour un exemple de fonctionnement des dépendances entre les ressources Terraform, voir Spécification de références secrètes avec Terraform.
Si vous utilisez l'API, vérifiez les paramètres de configuration de l'intégration d'outils Key Protect, Secrets Managerou App Configuration que vous tentez de créer ou de mettre à jour. Vérifiez que le nom ou l'ID de l'instance de service que vous tentez d'intégrer est correctement spécifié dans la configuration de l'intégration d'outils.